]> git.sven.stormbind.net Git - sven/tclcurl.git/commitdiff
Imported Upstream version 7.19.6 upstream/7.19.6
authorSven Hoexter <sven@stormbind.net>
Mon, 17 Jan 2011 15:46:33 +0000 (16:46 +0100)
committerSven Hoexter <sven@stormbind.net>
Mon, 17 Jan 2011 15:46:33 +0000 (16:46 +0100)
102 files changed:
Cambios TclCurl.txt [new file with mode: 0755]
ChangeLog.txt [new file with mode: 0755]
Changes.txt [new file with mode: 0755]
Makefile.in [new file with mode: 0755]
ReadMe.txt [new file with mode: 0755]
ReadMeW32.txt [new file with mode: 0755]
ToDo.txt [new file with mode: 0755]
aclocal.m4 [new file with mode: 0755]
autom4te.cache/output.0 [new file with mode: 0644]
autom4te.cache/requests [new file with mode: 0644]
autom4te.cache/traces.0 [new file with mode: 0644]
checkAutoPath.tcl [new file with mode: 0755]
configure [new file with mode: 0755]
configure.in [new file with mode: 0755]
doc/OpenSSL-LICENSE.txt [new file with mode: 0755]
doc/SinComprimir/tclcurl.n [new file with mode: 0644]
doc/SinComprimir/tclcurl_multi.n [new file with mode: 0644]
doc/SinComprimir/tclcurl_share.n [new file with mode: 0644]
doc/aolserver.txt [new file with mode: 0755]
doc/tclcurl.html [new file with mode: 0644]
doc/tclcurl.n [new file with mode: 0644]
doc/tclcurl_multi.html [new file with mode: 0755]
doc/tclcurl_multi.n [new file with mode: 0644]
doc/tclcurl_share.html [new file with mode: 0755]
doc/tclcurl_share.n [new file with mode: 0644]
generic/multi.c [new file with mode: 0755]
generic/multi.h [new file with mode: 0755]
generic/tclcurl.c [new file with mode: 0755]
generic/tclcurl.h [new file with mode: 0755]
generic/tclcurl.tcl [new file with mode: 0755]
license.terms [new file with mode: 0755]
packages/Linux/tclcurl-7.19.6.spec [new file with mode: 0755]
packages/Windows/SetUp.tcl [new file with mode: 0755]
packages/Windows/tclcurl.mk [new file with mode: 0755]
pkgIndex.tcl.in [new file with mode: 0755]
tclconfig/install-sh [new file with mode: 0755]
tclconfig/tcl.m4 [new file with mode: 0644]
tests/a.tcl [new file with mode: 0644]
tests/a.tcl~ [new file with mode: 0644]
tests/basico.tcl [new file with mode: 0755]
tests/bodyVar.tcl [new file with mode: 0755]
tests/bufferSize.tcl [new file with mode: 0755]
tests/command.tcl [new file with mode: 0755]
tests/cookie.tcl [new file with mode: 0755]
tests/cookieFile.tcl [new file with mode: 0755]
tests/curlConfig.tcl [new file with mode: 0755]
tests/debugProc.tcl [new file with mode: 0755]
tests/dict.tcl [new file with mode: 0755]
tests/dupHandle.tcl [new file with mode: 0755]
tests/encoding.tcl [new file with mode: 0755]
tests/errorBuffer.tcl [new file with mode: 0755]
tests/escape.tcl [new file with mode: 0755]
tests/failOnError.tcl [new file with mode: 0755]
tests/file.tcl [new file with mode: 0755]
tests/fileNoFile.tcl [new file with mode: 0755]
tests/formGet.tcl [new file with mode: 0755]
tests/ftp.tcl [new file with mode: 0755]
tests/ftpList.tcl [new file with mode: 0755]
tests/ftpUpload.tcl [new file with mode: 0755]
tests/getInfo.tcl [new file with mode: 0755]
tests/headNoHead.tcl [new file with mode: 0755]
tests/header.tcl [new file with mode: 0755]
tests/headerVar.tcl [new file with mode: 0755]
tests/http200Aliases.tcl [new file with mode: 0755]
tests/httpBufferPost.tcl [new file with mode: 0755]
tests/httpHeader.tcl [new file with mode: 0755]
tests/httpPost.tcl [new file with mode: 0755]
tests/httpVersion.tcl [new file with mode: 0755]
tests/https.tcl [new file with mode: 0755]
tests/interface.tcl [new file with mode: 0755]
tests/ipresolve.tcl [new file with mode: 0755]
tests/multi/auto.tcl [new file with mode: 0755]
tests/multi/autoGUI.tcl [new file with mode: 0755]
tests/multi/cancelTrans.tcl [new file with mode: 0755]
tests/multi/double.tcl [new file with mode: 0755]
tests/multi/single.tcl [new file with mode: 0755]
tests/netrcfile.tcl [new file with mode: 0755]
tests/noProgress.tcl [new file with mode: 0755]
tests/nobody.tcl [new file with mode: 0755]
tests/ntlm.tcl [new file with mode: 0755]
tests/progressProc.tcl [new file with mode: 0755]
tests/progressProcPause.tcl [new file with mode: 0755]
tests/proxy.tcl [new file with mode: 0755]
tests/proxyPort.tcl [new file with mode: 0755]
tests/proxyTunnel.tcl [new file with mode: 0755]
tests/range.tcl [new file with mode: 0755]
tests/readProc.tcl [new file with mode: 0755]
tests/referer.tcl [new file with mode: 0755]
tests/reset.tcl [new file with mode: 0755]
tests/resume.tcl [new file with mode: 0755]
tests/share.tcl [new file with mode: 0755]
tests/stderrNoStderr.tcl [new file with mode: 0755]
tests/strerror.tcl [new file with mode: 0755]
tests/timeout.tcl [new file with mode: 0755]
tests/transfer.tcl [new file with mode: 0755]
tests/upload.tcl [new file with mode: 0755]
tests/userAgent.tcl [new file with mode: 0755]
tests/verbose.tcl [new file with mode: 0755]
tests/version.tcl [new file with mode: 0755]
tests/versionInfo.tcl [new file with mode: 0755]
tests/writeHeader.tcl [new file with mode: 0755]
tests/writeProc.tcl [new file with mode: 0755]

diff --git a/Cambios TclCurl.txt b/Cambios TclCurl.txt
new file mode 100755 (executable)
index 0000000..fcc3882
--- /dev/null
@@ -0,0 +1,148 @@
+- All the quote options (CURLOPT_QUOTE, CURLOPT_POSTQUOTE and\r
+  CURLOPT_PREQUOTE) now accept a preceeding asterisk before the command to\r
+  send when using FTP, as a sign that libcurl shall simply ignore the response\r
+  from the server instead of treating it as an error. Not treating a 400+ FTP\r
+  response code as an error means that failed commands will not abort the\r
+  chain of commands, nor will they cause the connection to get disconnected.\r
+\r
+SOLO DOCS\r
+\r
+- Added CURLOPT_SSH_KNOWNHOSTS, CURLOPT_SSH_KEYFUNCTION, CURLOPT_SSH_KEYDATA.\r
+  They introduce known_host support for SSH keys to libcurl. See docs for\r
+  details. Note that this feature depends on a new enough libssh2 version, to\r
+  be supported in libssh2 1.2 and later (or current git repo at this time).\r
+\r
+HECHO\r
+\r
+- David Kierznowski notified us about a security flaw\r
+  (http://curl.haxx.se/docs/adv_20090303.html also known as CVE-2009-0037) in\r
+  which previous libcurl versions (by design) can be tricked to access an\r
+  arbitrary local/different file instead of a remote one when\r
+  CURLOPT_FOLLOWLOCATION is enabled. This flaw is now fixed in this release\r
+  together this the addition of two new setopt options for controlling this\r
+  new behavior:\r
+\r
+  o CURLOPT_REDIR_PROTOCOLS controls what protocols libcurl is allowed to\r
+  follow to when CURLOPT_FOLLOWLOCATION is enabled. By default, this option\r
+  excludes the FILE and SCP protocols and thus you nee to explicitly allow\r
+  them in your app if you really want that behavior.\r
+\r
+  o CURLOPT_PROTOCOLS controls what protocol(s) libcurl is allowed to fetch\r
+  using the primary URL option. This is useful if you want to allow a user or\r
+  other outsiders control what URL to pass to libcurl and yet not allow all\r
+  protocols libcurl may have been built to support.\r
+\r
+HECHO\r
+\r
+- After a bug reported by James Cheng I've made curl_easy_getinfo() for\r
+  CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD return\r
+  -1 if the sizes aren't know. Previously these returned 0, make it impossible\r
+  to detect the difference between actually zero and unknown.\r
+\r
+SOLO DOC\r
+\r
+- FTP downloads (i.e.: RETR) ending with code 550 now return error\r
+  CURLE_REMOTE_FILE_NOT_FOUND instead of CURLE_FTP_COULDNT_RETR_FILE.\r
+\r
+SOLO DOC\r
+\r
+- CURLOPT_FTP_CREATE_MISSING_DIRS can now be set to 2 in addition to 1 for\r
+  plain FTP connections, and it will then allow MKD to fail once and retry the\r
+  CWD afterwards. This is especially useful if you're doing many simultanoes\r
+  connections against the same server and they all have this option enabled,\r
+  as then CWD may first fail but then another connection does MKD before this\r
+  connection and thus MKD fails but trying CWD works! The numbers can\r
+  (should?) now be set with the convenience enums now called\r
+  CURLFTP_CREATE_DIR and CURLFTP_CREATE_DIR_RETRY.\r
+\r
+  Tests has proven that if you're making an application that uploads a set of\r
+  files to an ftp server, you will get a noticable gain in speed if you're\r
+  using multiple connections and this option will be then be very useful.\r
+\r
+SOLO DOC\r
+\r
+- CURLINFO_CONDITION_UNMET was added to allow an application to get to know if\r
+  the condition in the previous request was unmet. This is typically a time\r
+  condition set with CURLOPT_TIMECONDITION and was previously not possible to\r
+  reliably figure out. From bug report #2565128\r
+  (http://curl.haxx.se/bug/view.cgi?id=2565128) filed by Jocelyn Jaubert.\r
+\r
+HECHO\r
+\r
+- Markus Moeller introduced tw onew options to libcurl:\r
+  CURLOPT_SOCKS5_GSSAPI_SERVICE and CURLOPT_SOCKS5_GSSAPI_NEC to allow libcurl\r
+  to do GSS-style authentication with SOCKS5 proxies. The curl tool got the\r
+  options called --socks5-gssapi-service and --socks5-gssapi-nec to enable\r
+  these.\r
+\r
+HECHO\r
+\r
+- Chad Monroe provided the new CURLOPT_TFTP_BLKSIZE option that allows an app\r
+  to set desired block size to use for TFTP transfers instead of the default\r
+  512 bytes.\r
+\r
+HECHO\r
+\r
+- Internet Explorer had a broken HTTP digest authentication before v7 and\r
+  there are servers "out there" that relies on the client doing this broken\r
+  Digest authentication. Apache even comes with an option to work with such\r
+  broken clients.\r
+\r
+  The difference is only for URLs that contain a query-part (a '?'-letter and\r
+  text to the right of it).\r
+\r
+  libcurl now supports this quirk, and you enable it by setting the\r
+  CURLAUTH_DIGEST_IE bit in the bitmask you pass to the CURLOPT_HTTPAUTH or\r
+  CURLOPT_PROXYAUTH options. They are thus individually controlled to server\r
+  and proxy.\r
+\r
+HECHO\r
+\r
+- Igor Novoseltsev added CURLOPT_PROXYUSER and CURLOPT_PROXYPASSWORD that then\r
+  make CURLOPT_PROXYUSERPWD sort of deprecated. The primary motive for adding\r
+  these new options is that they have no problems with the colon separator\r
+  that the CURLOPT_PROXYUSERPWD option does.\r
+\r
+HECHO\r
+\r
+- Igor Novoseltsev brought a patch that introduced two new options to\r
+  curl_easy_setopt: CURLOPT_USERNAME and CURLOPT_PASSWORD that sort of\r
+  deprecates the good old CURLOPT_USERPWD since they allow applications to set\r
+  the user name and password independently and perhaps more importantly allow\r
+  both to contain colon(s) which CURLOPT_USERPWD doesn't fully support.\r
+\r
+HECHO\r
+\r
+- The libcurl FTP code now returns CURLE_REMOTE_FILE_NOT_FOUND error when SIZE\r
+  gets a 550 response back for the cases where a download (or NOBODY) is\r
+  wanted. It still allows a 550 as response if the SIZE is used as part of an\r
+  upload process (like if resuming an upload is requested and the file isn't\r
+  there before the upload). I also modified the FTP test server and a few test\r
+  cases accordingly to match this modified behavior.\r
+\r
+NADA\r
+\r
+- Martin Drasar provided the CURLOPT_POSTREDIR patch. It renames\r
+  CURLOPT_POST301 (but adds a define for backwards compatibility for you who\r
+  don't define CURL_NO_OLDIES). This option allows you to now also change the\r
+  libcurl behavior for a HTTP response 302 after a POST to not use GET in the\r
+  subsequent request (when CURLOPT_FOLLOWLOCATION is enabled). I edited the\r
+  patch somewhat before commit. The curl tool got a matching --post302\r
+  option. Test case 1076 was added to verify this.\r
+\r
+HECHO\r
+\r
+- Introducing CURLOPT_CERTINFO and the corresponding CURLINFO_CERTINFO. By\r
+  enabling this feature with CURLOPT_CERTINFO for a request using SSL (HTTPS\r
+  or FTPS), libcurl will gather lots of server certificate info and that info\r
+  can then get extracted by a client after the request has completed with\r
+  curl_easy_getinfo()'s CURLINFO_CERTINFO option. Linus Nielsen Feltzing\r
+  helped me test and smoothen out this feature.\r
+\r
+  Unfortunately, this feature currently only works with libcurl built to use\r
+  OpenSSL.\r
+\r
+  This feature was sponsored by networking4all.com - thanks!\r
+\r
+HECHO\r
+\r
diff --git a/ChangeLog.txt b/ChangeLog.txt
new file mode 100755 (executable)
index 0000000..a27e459
--- /dev/null
@@ -0,0 +1,1161 @@
+2009-09-25 Andres Garcia <fandom@telefonica.netrc
+  
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Fixed CURLOPT_FTP_SSL_CC and following options
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_PROTOCOLS and 
+      CURLOPT_REDIR_PROTOCOLS
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_SSH_KNOWNHOSTS and 
+      CURLOPT_SSH_KEYFUNCTION.
+
+2009-09-24 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_POSTREDIR
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLAUTH_DIGEST_IE
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_TFTP_BLKSIZE
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_SOCKS5_GSSAPI_SERVICE and
+      CURLOPT_SOCKS5_GSSAPI_NEC
+
+2009-09-23 Andres Garcia <fandom@telefonica.net>
+
+    * configure.in,
+      makefile.in: Updated to TEA 3.7
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_CERTINFO and CURLINFO_CERTINFO.
+
+2008-09-08 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 7.19.0
+
+2008-09-07 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_ADDRESS_SCOPE
+
+2008-08-31 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      generic/multi.h,
+      generic/multi.c: Had to add a lot of 'CONST's to prevent 
+      warnings when compiling with Tcl 8.5.4, pretty much the same
+      I had to remove because of 8.5.3. 
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLINFO_PRIMARY_IP and
+      CURLINFO_APPCONNECT_TIME
+
+2008-08-25 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      tests/getInfo.tcl: Added support for CURLINFO_REDIRECT_URL.
+
+2008-08-25 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Changed the 'anyauth rewind' to use the new
+      CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA.
+
+2008-08-24 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h: Fixed the writeproc option.
+
+2008-08-23 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      tests/progressProcPause.tcl: Added commands 'pause' and 'resume'.
+
+2008-08-19 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLPROXY_SOCKS4A and
+      CURLPROXY_SOCKS5_HOSTNAME.
+
+2008-08-19 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      generic/multi.h,
+      generic/multi.c: I had to remove a lot of 'CONST's from the code
+      to prevent warnings when compiling against Tcl 8.5.3.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_PROXY_TRANSFER_MODE.
+
+2007-11-01 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 7.17.1
+
+2007-10-25 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h
+      generic/tclcurl.c: Compensated for the options which changed names.
+
+    * generic/tclcurl.h
+      generic/tclcurl.c: Added support for CURLOPT_POST301 and
+      CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
+
+    * generic/tclcurl.c: Use CURLOPT_COPYPOSTFIELDS instead of 
+      CURLOPT_POSTFIELDS.
+
+2007-10-24 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h
+      generic/tclcurl.c: Took advantage of libcurl remembering options
+      passed as strings.
+
+2007-07-19 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 7.16.4
+
+2007-07-16 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Change krb4level to krblevel.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_NEW_FILE_PERMS and
+      CURLOPT_NEW_DIRECTORY_PERMS.
+
+2007-07-07 Andres Garcia <fandom@telefonica.net>
+
+    * generic/multi.h,
+      generic/multi.c: Added support for the CURLMOPT_MAXCONNECTS option.
+
+2007-05-22 Sven Hoexter
+
+    * doc/tclcurl.n: Fixed a couple of errors in the man page.
+
+2007-04-16 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 7.16.2
+
+2007-04-13 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: When saving the headers into an array, TclCurl
+      would only keep the last 'Set-Cookie' header.
+
+2007-04-12 Andres Garcia <fandom@telefonica.net>
+
+    * configure.in,
+      Makefile.in: Updated the configure scripts to TEA 3.6
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for the new SSH options.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_TIMEOUT_MS and
+      CURLOPT_CONNECTTIMEOUT_MS.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_HTTP_CONTENT_DECODING and
+      CURLOPT_HTTP_TRANSFER_DECODING.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c:  Added support for CURLOPT_FTP_SSL_CCC.
+
+    * generic/tclcurl.c: Added 'CONV' to the list 'curl::versioninfo' may return.
+
+2007-03-16 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Fixed a crash when changing a handle from using
+      'writeproc' to not using one.
+
+2006-11-15 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 7.16.0
+
+2006-11-11 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Use the new curl_easy_escape and
+      curl_easy_unescape.
+
+2006-11-07 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      generic/multi.h,
+      generic/multi.c: Added support for CURLMOPT_PIPELINING.
+
+2006-11-05 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Removed support for third party ftp transfers.
+
+2006-10-22 Andres Garcia <fandom@telefonoca.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_FTP_ALTERNATIVE_TO_USER.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_MAX_SEND_SPEED_LARGE and
+      CURLOPT_MAX_RECV_SPEED_LARGE.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLINFO_FTP_ENTRY_PATH
+
+2006-10-22 Andres Garcia <fandom@telefonica.net>
+
+    * configure.in: Changed the code to check the installed version of
+      libcurl to use 'curl-config --checkfor'
+
+2006-10-14 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Prevented a few warnings about casts to
+      and from pointers.
+
+2006-04-17 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 0.15.3
+
+2006-04-16 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLPROXY_SOCKS4.
+
+2006-04-15 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_LOCALPORT,
+      and CURLOPT_LOCALPORTRANGE.
+
+2006-04-13 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Prevented a few compiler warnings.
+
+2006-04-12 Andres Garcia <fandom@telefonica.net>
+
+    * configure.in,
+      Makefile.in,
+      pkIndex.tcl,
+      tclconfig/: Updated the TEA scripts to version 3.5.
+
+2006-01-10 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 0.15.1
+
+2006-01-09 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_FTP_FILEMETHOD.
+
+2006-01-07 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_FTP_SKIP_PASV_IP.
+
+2005-12-28 Andres Garcia <fandom@telefonica.net>
+
+    * packages/Windows/tclcurl.mk: Fixed the doc directory.
+
+2005-09-04 Andres Garcia <fandom@telefonica.net>
+
+    * Relase version 0.14.1
+
+2005-09-03 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      tests/getInfo.tcl: Added support for CURLOPT_COOKIELIST and
+      CURLINFO_COOKIELIST.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_IGNORE_CONTENT_LENGTH.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c.
+      tests/httpPost.tcl: Added support for CURLFORM_FILECONTENT.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Fixed memory leaks during http posts.
+
+2005-06-02 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 0.14.0
+
+2005-06-02 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Updated the way 'sslversion' works.
+
+2005-06-02 Andres Garcia <fandom@telefonica.net>
+
+    * configure.in,
+      Makefile.in: Updated the scripts to the latest version of TEA
+
+2005-05-10 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Fixed the options 'httpauth', 'proxyauth',
+      'ipresolve', 'ftpssl' and 'ftpsslauth'
+
+2005-04-19 Andres Garcia <fandom@telefonica.net>
+
+    * Released version 0.13.2
+
+2005-04-19 Andres Garcia <fandom@telefonica.net>
+
+    * Makefile.in: Daniel A. Steffen's fix for parallel builds.    
+    
+2005-04-16 Andres Garcia <fandom@telefonica.net>
+
+    * include/tclcurl.h: Fixed the msys-mingw build.
+
+2005-04-12 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: When the user chooses the 'any' auth method,
+      TclCurl will silently use CURLOPT_IOCTLFUNCTION and
+      CURLOPT_IOCTLDATA in case libcurl needs to 'rewind' the data.
+
+2005-04-08 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c:  Added support SSPI in curl::versioninfo.
+
+2005-04-07 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support fot CURLOPT_FTP_ACCOUNT.
+
+2005-04-06 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      tests/ftp3party.tcl: Removed suppport for the obsolete options
+      "-sourcehost", "-sourcepath", "-sourceport", "-pasvhost" and
+      added support for the new third party ftp options "-sourceurl"
+      and "-sourcequote".
+
+    * generic/tclcurl.h: Fixed the "-sourcepostquote" option.
+
+2005-04-05 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      tests/getInfo.tcl: Added support for CURLINFO_NUM_CONNECTS,
+      CURLINFO_SSL_ENGINES and CURLINFO_HTTP_CONNECTCODE.
+
+2004-10-18 Andres Garcia <fandom@telefonica.net>
+
+    * Released version 0.12.2
+
+2004-10-08 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Support for the share interface in threads.
+
+2004-10-07 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Fixed the 'cookiejar' option.
+
+2004-10-06 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      tests/strerror.tcl: Added the 'curl::easystrerror', 'curl::sharestrerror'
+      and 'curl::multistrerror' commands.
+
+2004-10-04 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_FTPSSLAUTH.
+
+2004-09-30 Andres Garcia <fandom@telefonica.net>
+
+    * Released version 0.12.1
+
+2004-09-29 Andres Garcia <fandom@telefonica.net>
+
+    * generic/multi.c: Used Tcl_SetMaxBlockTime to improve automatic
+      transfers.
+
+    * tests/ftpUpload: Added an example of ftp upload including commands
+      to the server.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      tests/ftp3party.tcl: Added support for third party ftp transfers.
+
+2004-09-28 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Fixed the 'autoreferer' option.
+
+2004-08-13 Andres Garcia <fandom@telefonica.net>
+
+    * tests/debugProc.tcl: Added the ssl data types.
+
+2004-08-13 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Use CURL_READFUNC_ABORT to abort uploads.
+
+2004-08-13 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added 'reset' to the easy interface commands.
+
+2004-08-12 Andres Garcia <fandom@telefonica.net>
+
+    * generic/multi.h,
+      generic/multi.c: Hooked the multi interface to Tcl's event loop,
+      doesn't work that well so far.
+
+
+2004-07-09 Andres Garcia <fandom@telefonica.net>
+
+    * Released version 0.12.0
+
+2004-07-05 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added incomplete support for the share
+      interface.
+
+2004-07-02 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_PORT,
+      CURLOPT_TCP_NODELAY, CURLOPT_AUTOREFERER.
+
+    * generic/tclcurl.h: Added 'IDN' to the features reported by
+      'curl::versioninfo'.
+
+2004-04-30 Andres Garcia <fandom@telefonica.net>
+
+    * packages/windows/tclcurl.mk: Uses new curl compilation.
+
+2004-04-06 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Fixed ftps support.
+
+2004-02-04 Andres Garcia <fandom@telefonica.net>
+
+    * Released version 0.11.0
+
+2004-01-15 Andres Garcia <fandom@telefonica.net>
+
+    * ReadMeW32.txt: Updated instructions to compile openssl.
+
+2004-01-08 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c,
+      generic/tclcurl.h: Added support for CURLOP_FTP_SSL.
+
+2004-01-02 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Fixed the 'netrc' option.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_NETRC_FILE.
+
+
+2003-12-29 Andres Garcia <fandom@telefonica.net>
+
+    * Released version 0.10.8
+
+2003-12-19 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h: TclCurl still thought it was in version
+      0.10.4.
+
+2003-12-18 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLINFO_HTTPAUTH_AVAIL.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLINFO_PROXYAUTH_AVAIL.
+
+    * generic/tclcurl.c: 'curl::versioninfo' will now say if there
+      is support for asynchronus DNS and SPNEGO.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_IPRESOLVE.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_MAXFILESIZE.
+
+2003-12-18 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Fixed the 'httpauth' option.
+
+2003-11-11 Andres Garcia <fandom@telefonica.net>
+
+    * autoconf.in: The configure scripts would sometimes use the
+      cURL in '/usr/bin' instead of the one in '/usr/local/bin'
+      despite the '--with-curlprefix' tag.
+
+2003-11-04 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLINFO_RESPONSE_CODE.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_FPT_RESPONSE_TIMEOUT.
+
+
+2003-09-03 Andres Garcia <fandom@telefonica.net>
+
+    * Release TclCurl 0.10.7
+
+2003-09-03 Andres Garcia <fandom@telefonica.net>
+
+    * configure.in: Changed because of the new version string used by
+      cURL.
+
+2003-08-17 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.tcl,
+      generic/tclcurl.c,
+      generic/tclcurl.h: Some work on hooking the multi interface
+      to Tcl's event loop, it isn't even close to working though.
+
+2003-08-14 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURL_FTP_CREATE_MISSING_DIRS.
+
+2003-08-04 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_HTTPAUTH.
+
+2003-07-31 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added 'command' option to 'configure'
+      to execute a Tcl command after the transfer is done. So
+      far it only works in blocking transfer which is pretty
+      much useless.
+
+2003-05-22 Andres Garcia <fandom@telefonica.net>
+
+    * Release TclCurl 0.10.5
+
+
+2003-05-20 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_FTP_USE_EPTR.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for 'all' in the 'encoding'
+      option.
+
+    * generic/tclcurl.c: Changed the way the http header is dealt
+      with in the 'headervar' option.
+
+
+2003-05-13 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: The 'progressproc' option would crash in
+      windows machines.
+
+    * packages/windows/tclcurl.mk: Changed for OpenSSL 0.9.7b.
+
+    * ReadMeW32.txt: New instructions on how to compile OpenSSL 0.9.7b.
+
+
+2003-05-12 Andres Garcia <fandom@telefonica.net>
+
+    * generic/multi.c: The multihandles couldn't store the data of more
+      than two easy handles.
+
+    * generic/multi.c: The '$multiHandle active' command wasn't returning
+      anything.
+
+
+2003-04-07 Andres Garcia <fandom@telefonica.net>
+
+    * Release TclCurl 0.10.4
+
+2003-04-04 Andres Garcia <fandom@retemailes>
+
+    * generic/tclcurl.tcl: If there is an error, the 'curl::transfer'
+      command will now return the code of the error, without the
+      'Couldn't perform transfer' message.
+
+2003-03-24 Andres Garcia <fandom@telefonica.net>
+
+    * ReadMeW32.txt: Updated build instructions for Windows.
+
+    * Makefile.in: Added an 'uninstall' target to the make file.
+
+2003-03-18 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.tcl: Added 'getinfo' features to 'curl::transfer'.
+
+2003-02-20 Andres Garcia <fandom@telefonica.net>
+
+    * packages/windows/tclcurl.mk: A make file to create all the Windows
+      packages.
+
+    * packages/windows/SetUp.tcl: The setup script for TclCurl in Windows.
+
+    * packages/rpm/tclcurl.spec: The spec file to create the rpm package.
+
+2003-02-04 Andres Garcia <fandom@telefonica.net>
+
+    * configure.in: It will no longer choke with the version
+      string of cURL's prereleases.
+
+2003-02-03 Andres Garcia <fandom@telefonica.net>
+
+    * tclconfig: Updated to the TEA2 scripts in the CVS.
+
+    * generic/tclcurl.tcl: Alex Khassin suggested using fully qualified
+      names to prevent problems with namespaces.
+
+
+2003-01-30 Andres Garcia <fandom@telefonica.net>
+
+    * Release TclCurl 0.10.3
+
+2003-01-29 Andres Garcia <fandom@telefonica.net>
+
+    * generic/multi.c: if 'curl_multi_perform' returns '-1' it will be
+      invoked again to read all data in the queue.
+
+2003-01-28 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Changed the source to use the new constant names
+      CURLOPT_WRITEDATA, CURLOPT_READDATA and CURLOPT_HEADERDATA.
+
+    * generic/tclcurl.c: When using '-headervar' in Windows you could end
+      up with carriage returns in the name of the header.
+
+2003-01-27 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_HTTP200ALIASES.
+
+2003-01-25 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c,
+      generic/multi.c: Applied Albert Chin-A-Young patch to change C++ style
+      comments to C style.
+
+    * configure.in: If 'curl' is in '/usr/bin/' or '/usr/local/bin' it will no
+      longer be necessary to use '--with-curlprefix' in Windows.
+
+2003-01-24 Andres Garcia <fandom@telefonica.net>
+
+    * configure.in: If you want to compile TclCurl with ssl support in Windows,
+      you can now use the '--enable-ssl' option.
+
+2003-01-08 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: No more crashes when using TclCurl in a threads enabled
+      Tcl.
+
+
+2002-10-14 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 0.10.1
+
+2002-10-13 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for 'CURLOPT_PROXYTYPE'.
+
+    * doc/tclcurl.n,
+      doc/tclcurl.html,
+      doc/tclcurl_multi.n,
+      doc/tclcurl_multi.html: Updated docs.
+
+    * configure.in: Updated version.
+
+    * generic/tclcurl.c: Started using 'curl_free' to free memory
+      allocated by 'curl_escape' and 'curl_unescape'.
+
+    * tests/escape.tcl: Added an example for 'curl::escape' and
+      'curl::unescape'
+
+
+2002-10-12 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Created the 'curl::versioninfo' command
+      to support 'curl_version_info'.
+
+
+2002-10-11 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for 'CURLOPT_ENCODING', it
+      can either be 'identity' or 'deflated'.
+
+
+2002-10-10 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      tests/bufferSize.tcl: Added support for CURLOPT_BUFFERSIZE.
+
+    * tests/writeProc.tcl: Added a message to the write callback, so
+      that the difference with bufferSize.tcl can be noticed.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLOPT_NOSIGNAL.
+
+
+    * generic/tclcurl.tcl,
+      tests/curlConfig.tcl: Added support for the '-ca' option for
+      the 'curl::curlConfig' command.
+
+
+2002-10-06 Andres Garcia <fandom@telefonica.net>
+
+    * generic/multi.h,
+      generic/multi.c,
+      tests/multi/single.tcl,
+      tests/multi/double.tcl: The multi interface tests should now work
+      as expected.
+
+
+2002-10-03: Andres Garcia <fandom@telefonica.net>
+
+    * configure.in,
+      Makefile.in: Asif Haswarey reported that '--with-curlinclude' did not
+      work and that the 'pkgIndex.tcl' generated would not do in Solaris.
+
+
+2002-10-01 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c,
+      generic/multi.h,
+      generic/multi.c: Added a bunch of CONSTs to prevent warnings when
+      compiling with Tcl/Tk 8.4.
+
+
+2002-09-29 Andres Garcia <fandom@telefonica.net>
+
+    * tests/progressProc.tcl: It will skip all that useless decimals now.
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: The buffer option to post data would not work.
+
+
+2002-09-26 Andres Garcia <fandom@telefonica.net>
+
+    * tests/headNoHead.tcl: removed the 'header 1' option, it is redundant
+      if you use 'writeheader', made the output more explicit.
+
+
+2002-09-24 Andres Garcia <fandom@telefonica.net>
+
+    * doc/tclcurl.n,
+      doc/tclcurl.html,
+      tests/debugProc.tcl: The values given for the data types in the
+      'debugproc' options were wrong, changed the test to show it more clearly.
+
+
+2002-08-14 Andres Garcia <fandom@telefonica.net>
+
+    * ReadMeW32.txt: New instructions on how to compile TclCurl in Windows.
+
+    * configure.in: Changed so that it will configure in msys-mingw
+      without using a 'curl-config'
+
+
+2002-06-25 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 0.9.8
+
+2002-06-23 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Changed the parameters of the curlProgressCallback
+      function from 'size_t' to 'double'.
+
+
+2002-06-22 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLFORM_BUFFER.
+
+    * generic/tclcurl.c: Fix a bug when duplication a curl handle, I was not
+      allocating space before doing a memcpy.
+
+    * generic/tclcurl.c: Changed all the calls to ckalloc, malloc, ckfree to
+      Tcl_Alloc and Tcl_Free.
+
+
+2002-06-13 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.c: Changed the TIMECOND_IFMODSINCE and
+      TIMECOND_IFMODSINCE, so that now they have a CURL_
+      prefix as they do now in libcurl.
+
+2002-06-12 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Added support for CURLINFO_REDIRECT_TIME and
+      CURLINFO_REDIRECT_COUNT.
+
+
+2002-05-14 Andres Garcia <fandom@telefonica.net>
+
+    * generic/multi.h,
+      generic/multi.c: Added support for the multi interface.
+
+
+2002-04-30 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 0.9.6
+
+2002-04-30 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.h,
+      tclcurl.c: Changed the 'interface' field in the 'curlObjData'
+      struct to 'interfaces', otherwise it wouldn't compile in Windows,
+      please, don't ask me why (but if you know, please tell me).
+
+    * setup.tcl: the setup script for Windows will now work with
+      older versions of Tcl/Tk.
+
+2002-04-23 Andres Garcia <fandom@telefonica.net>
+
+    * configure.in: fixed a small incompatibility with Solaris.
+
+    * tclcurl.c: fixed a seg fault when using the 'httpheader' option
+      twice.
+
+    * tclcurl.h,
+      tclcurl.c: support for CURLOPT_DNS_CACHE_TIMEOUT and
+      CURLOPT_DNS_USE_GLOBAL_CACHE.
+
+2002-04-22 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.n: Updated the documentation about the error codes.
+
+2002-04-17 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.h,
+      tclcurl.c: added support for CURLOPT_DEBUGFUNCTION.
+
+2002-04-16 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.c: If you set the progressproc option to the empty string
+      the internal progress function will be restored.
+
+
+2002-04-15 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.h,
+      tclcurl.c: added support for CURLFORM_FILENAME and changed the code
+      so that all options are passed in a CURLFORM_ARRAY.
+
+
+2002-04-14 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.h: Changed the 'httpPost' structs to their new
+      name 'curl_httppost'.
+
+2002-04-12 Andres Garcia <fandom@telefonica.net>
+
+    * configure.in,
+      makefile.in,
+      tclconfig/tcl.m4: changed the configure scripts to the lastest
+      CVS version of the sample extension.
+
+    * tclcurl.c,
+      tclcurl.h,
+      tclcurl.tcl: passed this files to the generic subdirectory as done
+      in the sample extension.
+
+2002-04-01 Andres Garcia <fandom@telefonica.net>
+
+    * Release version 0.9.5
+
+2002-03-29
+
+    * tclcurl.h,
+      tclcurl.c: Support for CURLOPT_PREQUOTE
+
+    * tclcurl.tcl: 'curl::transfer' now returns a '0' if everything
+      went well.
+
+2002-03-28
+
+    * Update the configure.in script to the new TEA scripts by
+      Jeff Hobbs.
+
+    * tclcurl.h, tclcurl.c: Added support for CURLINFO_CONTENT_TYPE.
+
+2002-01-29
+
+    * Release version 0.9.3
+
+2002-01-25 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.c: Added support for CURLFORM_CONTENTHEADER.
+
+2002-01-24 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl: the CURLOPT_SSL_VERIFYHOST was misspelled.
+
+    * Added support for CURLOPT_SSLCERTTYPE, CURLOPT_SSLKEY,
+      CURLOPT_SSLKEYTYPE, CURLOPT_SSLKEYPASSWD, CURLOPT_SSL_ENGINE,
+      CURLOPT_SSL_ENGINEDEFAULT.
+
+2002-01-17 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.h, tclcurl.c: TclCurl was not doing binary transfers
+      right in Windows.
+
+    * Makefile.in: 'checkAutoPath.tcl' will only be run if TclCurl
+      is not going to be installed in '/usr'
+
+    * checkAutoPath.tcl: The script will not try to change the 'auto_path'
+      variable in 'init.tcl' if the user doing the install does not
+      have write access to the file.
+
+
+2002-01-16 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.c: No more seg faults for trailing options at the end of
+      a configure command.
+
+
+2001-12-09
+
+    * Release version 0.9.2
+
+2001-12-09 Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.n, tclcurl.html: Updated docs, removed the 'setopt' references.
+
+2001-12-08 Andres Garcia <fandom@telefonica.net>
+
+    * Changed the 'httpversion' configure option to libcurl 7.9.2 behaviour.
+
+    * Added support for CURLOP_FTP_USE_EPVS
+
+
+2001-12-07 Andres Garcia <fandom@telefonica.net>
+
+    * The 'perform' command now returns the exit code form 'curl_easy_perform'
+
+    * configure.in, mkIndex.tcl.in: A port to Windows.
+
+    * tclcurl.c, tclcurl.h: The 'configure' command will now also return the
+      value given for the invalid option.
+
+2001-11-14 Andres Garcia <fandom@telefonica.net>
+
+    * mkIndex.tcl.in: Domenico Andreoli noticed there was a mistyped variable name.
+
+2001-11-05
+
+    * Release version 0.9
+
+2001-11-04  Andres Garcia <fandom@telefonica.net>
+
+    * Makefile.in: The man page will be installed compressed.
+
+
+2001-10-31  Andres Garcia <fandom@telefonica.net>
+
+    * Added the code to change the 'auto_path' variable in 'init.tcl' to the
+      makefile.
+
+
+2001-10-30 Andres Garcia <fandom@telefonica.net>
+
+    * Changed the options to the 'timecondition' configure option to lower case.
+
+    * Changed the options to the 'closepolicy' configure option to lower case.
+
+
+2001-10-29 Andres Garcia <fandom@telefonica.net>
+
+    * Added support for the CURLOPT_HTTP_VERSION option.
+
+    * Changed the http posts the new formadd function.
+
+
+2001-10-22 Andres Garcia <fandom@telefonica.net>
+
+    * Added the duphandle command to duplicate a curl handle.
+
+
+2001-10-21  Andres Garcia <fandom@telefonica.net>
+
+    * Added support for the CURLOPT_SSL_CIPHER_LIST option.
+
+    * Added support for the CURLOPT_COOKIEJAR option.
+
+    * Merged Domenico Andreoli patches to ease creating the Debian package.
+
+
+2001-09-03
+
+    * Release version 0.8
+
+
+2001-09-01 Andres Garcia <fandom@telefonica.net>
+
+    * Converted to the new 'curl::transfer' command all the tests
+      where it fitted.
+
+
+2001-08-31 Andres Garcia <fandom@telefonica.net>
+
+    * Added support for CURLOPT_HTTPGET
+
+    * Added support for CURLOPT_SSL_SSL_VERIFYHOST
+
+
+2001-08-30 Andres Garcia <fandom@telefonica.net>
+
+    * Converted all the options of the 'configure' command to
+      lowercase.
+
+    * Converted all the options of the 'getinfo' command to
+      lowercase.
+
+
+2001-08-29 Andres Garcia <fandom@telefonica.net>
+
+    * Fixed the 'infile' option.
+
+    * Added the 'readProc' option to the 'configure' commmand.
+
+
+2001-08-28 Andres Garcia <fandom@telefonica.net>
+
+    * Added the 'writeProc' option to the 'configure' command.
+
+
+2001-08-15 Andres Garcia <fandom@telefonica.net>
+
+    * Added the curl::transfer command.
+
+
+2001-06-13 Andres Garcia <fandom@telefonica.net>
+
+    * Version 0.7 released
+
+
+2001-06-12 Andres Garcia <fandom@telefonica.net>
+
+    * Removed support for the CURLOPT_MUTE option, it no longer does
+      anything.
+
+    * Added the '-vernum' options to 'curl::curlConfig'
+
+
+2001-06-10 Andres Garcia <fandom@telefonica.net>
+
+    * Used libcurl's mprintf funtions to improve TclCurl portability.
+
+    * CURLOPT_TIMEOUT was defined two times.
+
+    * Fixed the bug by which TclCurl would return two many possible options
+      after using a wrong one.
+
+    * Changed the way the curlObjData struct is initialized.
+
+    * Changed the syntax of the 'getinfo' command options.
+
+
+2001-06-08 Andres Garcia <fandom@telefonica.net>
+
+    * Passed all the tests cases to the new 'configure' option.
+
+
+2001-06-06 Andres Garcia <fandom@telefonica.net>
+
+    * Created the 'configure' command.
+
+
+2001-06-03 Andres Garcia <fandom@telefonica.net>
+
+    * TclCurl won't install the 'tclcurl.h' file.
+
+
+2001-05-21 Andres Garcia <fandom@telefonica.net>
+
+    * It is now possible to remove the CURLOPT_FILE, CURLOPT_INFILE and
+      CURLOPT_STDERR options between transfers in a persistant connection.
+
+
+2001-05-30  Andres Garcia <fandom@telefonica.net>
+
+    * Version 0.6.1 released.
+
+
+2001-05-04  Andres Garcia <fandom@telefonica.net>
+
+    * Trying to set a HTTPPOST would provoke a seg fault.
+
+
+2001-05-03  Andres Garcia <fandom@telefonica.net>
+
+    * Prevented segfault when saving to a file without the right permissions or
+      reading for a file that does not exist.
+
+
+2001-05-02  Andres Garcia <fandom@telefonica.net>
+
+    * Added the CURLOPT_CANCELTRANSVAR option.
+
+    * I think I removed some memory leaks by checking that strings are empty
+      before filling them with strdup.
+
+
+2001-05-01  Andres Garcia <fandom@telefonica.net>
+
+    * Added the CURLOPT_PROGRESSPROC option.
+
+
+2001-04-30  Andres Garcia <fandom@telefonica.net>
+
+    * Added the CURLOPT_BODYVAR option to put the body of a request into
+      a Tcl variable.
+
+    * Removed the alternative strdup implementation, if the system does not
+      have it libcurl will (I think).
+
+
+2001-04-28  Andres Garcia <fandom@telefonica.net>
+
+    * tclcurl.h: Added interp field to curlObjData.
+
+    * Added support for the 'CURLOPT_HEADERFUNCTION' option
+      through 'CURLOPT_HEADERVAR'.
+
+
+2001-04-25  Andres Garcia <fandom@telefonica.net>
+
+    * Makefile.in: Modified to be able to install tclcurl.tcl.
+
+    * tclcurl.tcl: Created this file to host the curl::curlConfig procedure.
+
+
+2001-04-23  Andres Garcia <fandom@telefonica.net>
+
+    * tests/getinfo.tcl: Added the option CURLOPT_FILETIME so
+      CURLINFO_FILETIME would work.
+
+
+2001-04-12  Andres Garcia <fandom@telefonica.net>
+
+    * First release.
+
diff --git a/Changes.txt b/Changes.txt
new file mode 100755 (executable)
index 0000000..8c64592
--- /dev/null
@@ -0,0 +1,778 @@
+
+
+Version 7.19.0 released 1-Sep-2008
+
+    * New commands:
+
+        * curlHandle pause and curlHandle resume: Pause and resume a
+          tranfer from within a progress callback procedure.
+
+    * New configure options:
+
+        * addressscope: Pass a number specifying the scope_id value to
+          use when connecting to IPv6 link-local or site-local addresses.
+
+        * proxytranfermode: Pass a number. If the value is set to 1 (one),
+          it tells TclCurl to set the transfer mode (binary or ASCII) for
+          FTP transfers done via an HTTP proxy, by appending ;type=a or
+          ;type=i to the URL. Without this setting, or if set to 0 (zero,
+          the default), '-tranfertext' has no effect when doing FTP via a
+          proxy. Beware that not all proxies support this feature.
+
+        * Added two new types for the '-proxytype' option: 'socks4a'
+          and 'socks5hostname'.
+
+    * New info available through the 'getinfo' command:
+
+        * appconnecttime: Returns the time, in seconds, it took from the start
+          until the SSL/SSH connect/handshake to the remote host was completed.
+
+        * primaryip: Returns the IP address of the most recent connection done
+          with this handle.
+
+        * redirecturl: Returns the URL a redirect would take you to if you would
+          enable 'followlocation'. This can come very handy if you think using
+          the built-in redirect logic isn't good enough for you but you would
+          still prefer to avoid implementing all the magic of figuring out the
+          new URL.
+
+    * Bug fix: The 'writeproc' option didn't work right.
+
+
+    * Internal changes:
+
+        * When compìling against Tcl 8.5.3 I had to remove a lot of CONSTs to
+          prevent warnings, and then I had to add them back with Tcl 8.5.4,
+          so, depending on which version you use you might get quite a few
+          warnings while compiling, they should be harmless though.
+
+        * The internal workings of the 'any' http authentication has been changed.
+
+2008-08-25 Andres Garcia <fandom@telefonica.net>
+
+    * generic/tclcurl.h,
+      generic/tclcurl.c: Changed the 'anyauth rewind' to use the new
+      CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA.
+
+Version 7.17.1 released 1-Nov-2007
+
+    * New configure options:
+
+        * post301: A non-zero parameter tells TclCurl to respect
+          RFC 2616/10.3.2 and not convert POST requests into GET
+          requests when following a 301 redirection like browsers
+          usually do.
+
+        * sshhostpublickeymd5: Pass a string containing 32 hexadecimal
+          digits. The string should be the 128 bit MD5 cheksum of the
+          remote host public key, and TclCurl will reject the connection
+          to the host unless the md5sums match.
+
+        * If you pass the magic string 'FLUSH' to the '-cookielist'
+          option all known cookies will be written to the file
+          specified by '-cookiejar'.
+
+    * Renamed options:
+
+        Some configure options have been renamed so they get more general
+        names, the old names are deprecated even if they may be supported
+        forever.
+
+            * sslpasswd   => keypasswd
+            * ftpappend   => append
+            * ftplistonly => dirlistonly
+            * ftpssl      => usessl
+
+    * Internal changes:
+
+        Up until the current version when we wanted libcurl to use a value
+        in a string, like the URL to download, we had to keep the string as
+        long as libcurl could use it. Since 7.17.0 libcurl keeps it own
+        copies, so I no longer make TclCurl do it.
+
+        That means this is a handle-with-care release, please report any
+        problems you may have.
+
+
+Version 7.16.4 released 19-July-07
+
+    * New configure options:
+
+        * newfileperms: Used to set the permissions, defalt 0664, that will be
+          assigned to newly created files on the remote server.
+
+        * newdirectoryperms: Used to set the permissions, default 0755, that
+          will be assigned to newly created directories on the remote server.
+
+          They can both be used for SFTP, SCP and FILE transfers.
+
+    * Changed option: The option to set the Kerberos security
+      level for FTP is now called 'krblevel', the old name
+      'krb4level' will be kept for some time for compatibility.
+
+    * New option for multi handles:
+
+        * maxconnects: Sets the maximum amount of simultaneously open
+          connections that TclCurl may cache. Default is 10.
+
+    * Bug fix: Sven Hoexter fixed a couple of errors in the man page.
+
+Version 7.16.2 released 16-April-07
+
+    * New feature: TclCurl now supports SSH for SFTP and SCP transfers as long
+      as libcurl has been compiled with libssh2 support.
+
+    * New configure options:
+
+        * publickeyfile: name of the file with the public key to use with SSH.
+
+        * privatekeyfile: name of the file with the provate key to use with SSH.
+
+        * sshauthtypes: Allowed types are "publickey", "password", "host",
+          "keyboard", or "any" to let TclCurl choose one.
+
+        * timeoutms and connectimeoutms: The work like 'timeout' and
+          'connectimeout' except the timout is given in miliseconds.
+
+        * ftpsslccc: If enabled, it will make libcurl shutdown SSL/TLS after
+          the authentication is done on a FTP-SSL operation.
+
+        * httpcontentdecoding: If set to zero content decoding is disabled.
+
+        * httptransferdecoding: If set to zero Set transfer decoding is
+          disabled. TclCurl does chunked transfer decoding by default
+          unless this option is set to zero.
+
+        * ftpsslccc: If enabled, it will make libcurl shutdown SSL/TLS after
+          the authentication is done on a FTP-SSL operation.
+
+    * Bug fixes:
+
+        * Olivier Lenormand reported that in case the server sends more than
+          one 'Set-Cookie' header, TclCurl would only save the last one in
+          the header array. Now the array will contain a list with all the
+          cookies.
+
+        * Jos Decoster reported and helped fixing a crash that happened when
+          changing a handle from using a 'writeproc' to not using one.
+
+    * I have updated the configure scripts to TEA 3.6, hope you don't bump into
+      any regressions.
+
+Version 7.16.0 released 15-November-06
+
+    * Removed feature: TclCurl no longer supports third party FTP transfers.
+
+    * New configure options:
+
+        * ftpalternativetouser: Pass a string which will be used to authenticate
+          if the usual FTP "USER user" and "PASS password" negotiation fails. This
+          is currently only known to be required when connecting to Tumbleweed's
+          Secure Transport FTPS server using client certificates for
+          authentication.
+
+        * ftpentrypath: Returns a string holding the path of the entry path.
+          That is the initial path TclCurl ended up in when logging on to the
+          remote FTP server. Returns an empty string if something is wrong.
+
+        * maxsendspeed: Pass a speed in bytes per seconds. If an upload exceeds this
+          speed on cumulative average during the transfer, the transfer will pause to
+          keep the average rate less than or equal to the parameter value.
+
+        * maxrecvspeed: Pass a speed in bytes per second. If a download exceeds this
+          speed on cumulative average during the transfer, the transfer will pause to
+          keep the average rate less than or equal to the parameter value.
+
+    * New command for multi handles 'configure', so far the is only one option to set:
+
+        * pipelining: Pass a 1 to enable or 0 to disable. Enabling pipelining on a multi
+          handle will make it attempt to perform HTTP Pipelining as far as possible for
+          transfers using this handle. This means that if you add a second request that
+          can use an already existing connection, the second request will be "piped" on
+          the same connection rather than being executed in parallel.
+
+Version 0.15.3 released 17-April-06
+
+    * I updated the autoconf scripts to TEA 3.5, this seems to prevent
+      the warnings about how the headers files couldn't be compiled,
+      but it may have (re)introduced other bugs.
+
+    * Removed feature: TclCurl no longer supports Gopher, it probably
+      didn't work anyway.
+
+    * New configure options:
+
+        * localport: Sets the local port number of the socket used for
+          the connection. This can be used in combination with '-interface'
+          and you are recommended to use 'localportrange' as well when this
+          is set.
+
+        * localportrange: Number of attempts TclCurl should do to find a
+          working local port number. It starts with the given 'localport'
+          and adds one to the number for each retry.
+
+Version 0.15.1 released 10-January-06
+
+    * New configure options:
+
+        * ftpskippasvip: If set to a non-zero value, it instructs TclCurl
+          not to use the IP address the server suggests in its 227-response
+          to TclCurl's PASV command when TclCurl connects the data connection.
+          Instead TclCurl will re-use the same IP address it already uses for
+          the control connection. But it will use the port number from the
+          227-response.
+
+        * ftpfilemethod: It allows three values:
+
+              * multicwd: the default, TclCurl will do a single CWD operation
+                for each path part in the given URL. For deep hierarchies this
+                means very many commands. This is how RFC1738 says it should
+                be done.
+
+              * nocwd: no CWD at all is done, TclCurl will do SIZE, RETR, STOR
+                etc and give a full path to the server.
+
+              * singlecwd: make one CWD with the full target directory and then
+                operate on the file "normally".
+
+          The support for this options is still experimental, comments whether
+          the methods work or don't with different methods are welcome.
+
+          Likewise, the options, or their names, may change in future releases,
+          so they are not yet documented elsewhere.
+
+     * Bug fix: The Windows packages had defective 'doc' directories. Thanks to
+       Alex Hisen for letting me know.
+
+Version 0.14.1 released 4-September-05
+
+    * New configure options:
+
+        * ingnorecontentlength: Ignore the Content-Length header. This is
+          useful for Apache 1.x (and similar servers) which will report
+          incorrect content length for files over 2 gigabytes.
+
+        * cookielist: Pass a string with a cookie. The cookie can be
+          either in Netscape / Mozilla format or just regular HTTP-style
+          header (Set-Cookie: ...) format.
+
+          '$curlHandle getinfo cookielist' will return a list of all
+          cookies TclCurl knows (expired ones, too).
+
+        * When posting data, you can use the new 'filecontent' option to
+          read a file and use its contents as data.
+
+    * Bug fix: The code to post data was filled with memory leaks, I hope
+      I have fixed them all.
+
+Version 0.14.0 released 3-June-05
+
+    * BEHAVIOUR CHANGE: To set the version SSL/TLS to use with
+      '-sslversion' you can know use the values:
+
+        * default
+            The default action. When libcurl built with OpenSSL, this will
+            attempt to figure out the remote SSL protocol version.
+            Unfortunately there are a lot of ancient and broken servers in
+            use which cannot handle this technique and will fail to
+            connect. When libcurl is built with GnuTLS, this will mean SSLv3.
+
+        * tlsv1
+            Force TLSv1
+
+        * sslv2
+            Force SSLv2
+
+        * sslv3
+            Force SSLv3
+
+    * Bug fix: A report by Melissa Millard made me realize that the
+      options 'httpauth', 'proxyauth', 'ipresolve', 'ftpssl' and
+      'ftpsslauth' have, probably, never worked. They should now.
+
+    * I updated 'configure.in' and 'Makefile.in' to the latest versions
+      in Tcl's sample extension, unfortunately that's likely to introduce
+      some bugs, so, please, report any problems.
+
+Version 0.13.2 released 16-April-05
+
+    * New features:
+
+        * New configure options:
+
+             * ftpaccount: When an FTP server asks for "account data"
+               after user name and password has been provided.
+
+             * sourceurl: When set, it enables a FTP third party transfer.
+
+             * sourcequote: Exactly like '-quote', but for the source host.
+
+        * The following options are now obsolete 'sourcehost', 'sourcepath',
+          'sourceport' and 'pasvhost'.
+
+        * curl::versioninfo will indicate if there is support for
+          SSPI.
+
+        * More information can be obtained using 'curl::getinfo':
+
+              * numconnects: to get the number of new connections
+                TclCurl had to create to achieve the previous transfer.
+
+              * sslengines: returns a list of the OpenSSL crypto-engines
+                supported.
+
+              * httpconnectcode: returns the last received proxy
+                response code to a CONNECT request
+
+    * Bug fix:
+
+        * Fixed the "-sourcepostquote" option.
+
+        * Daniel A. Steffen fixed a bug with parallel builds.
+
+Version 0.12.2 released 18-October-04
+
+    * New features:
+
+        * You can now share dns and cookie information among TclCurl
+          handles, please check the docs for details.
+
+        * New configure option: 'ftpsslauth', you may need this option
+          because of servers like BSDFTPD-SSL from won't work properly
+          when "AUTH SSL" is issued but require "AUTH TLS" instead.
+
+        * Added three new commands to the 'curl' namespace:
+
+            * curl::easystrerror   errorCode
+
+            * curl::sharestrerror  errorCode
+
+            * curl::multistrerror  errorCode
+
+          All three will return a string explaining what the given error
+          number means.
+
+    * Bug fix:
+
+        * Ralph Mitchell reported that the 'cookiejar' option wouldn't
+          work in the latest version, it should now.
+
+Version 0.12.1 released 30-September-04
+
+    * New features:
+
+        * Third party ftp support, you can now transfer a file between
+          two different ftp servers. Check the 'ftp options' in the docs
+          page for details.
+
+        * A new command for curl handles 'reset' which re-initializes all
+          options previously set on a specified handle to the default values.
+
+          This puts back the handle to the same state as it was in when it
+          was just created with curl::init.
+
+          It does not change the following information kept in the handle:
+          live connections, the Session ID cache, the DNS cache, the cookies
+          and shares.
+
+        * Hooked the multi interface to Tcl's event loop, so you can have
+          fire-and-forget transfers:
+
+                set multiHandle [curl::multiinit]
+                set easyHandle  [curl::init]
+
+                $easyHandle  configure -file home.tar.gz                  \
+                        -url http://127.0.0.1/~andres/HomePage.tar.gz
+
+                $multiHandle addhandle $easyHandle
+                $multiHandle auto -command "CleanUp $multiHandle $easyHandle"
+
+          This support is experimental, so any comments are welcome.
+
+          Thanks to Eric Boudaillier who answered my question about how to
+          do it.
+
+        * New ssl data types have been added to 'debugproc'.
+
+        * In case of error when setting post data, the error will include a
+          code about the nature of the error.
+
+    * Bug fix:
+
+        * The 'autoreferer' option should now work.
+
+Version 0.12.0 released 09-July-04
+
+    * New configure options:
+
+        * '-port': Pass the number specifying what remote port to connect to,
+          instead of the one specified in the URL or the default port for the
+          used protocol.
+
+        * '-tcpnodelay': To specify whether the TCP_NODELAY option should be
+           set or cleared.
+
+           Setting this option will disable TCP's Nagle algorithm. The purpose
+           of this algorithm is to try to minimize the number of small packets
+           on the network.
+
+        * '-autoreferer': When enabled, TclCurl will automatically set the
+          'Referer:' field in requests where it follows a 'Location:' redirect.
+
+    * Bug fix:
+
+        * Thanks to Stefano Federici I noticed that the 'ftpssl' option didn't
+          work.
+
+Version 0.11.0 released 04-febrary-04
+
+
+    * New configure options:
+
+        * 'ftpssl': You can use ftps:// URLs to explicitly switch on SSL/TSL
+          for the control connection and the data connection.
+
+          Alternatively you can set this option to one of these values:
+
+              * 'nope': Do not attempt to use SSL
+
+              * 'try': Try using SSL, proceed anyway otherwise.
+
+              * 'control': Use SSL for the control conecction or fail.
+
+              * 'all': Use SSL for all communication or fail.
+
+        * 'netrcfile': Pass a string containing the full path name to the
+          file you want to use as .netrc file. For the option to work, you
+          have to set the 'netrc' option to 'required'. If this option is
+          omitted, and 'netrc' is set, TclCurl will attempt to find the a
+          .netrc file in the current user's home directory.
+
+    * Bug fix: Fixed the 'netrc' option.
+
+Version 0.10.8 released 29-december-03
+
+    * New 'configure' options:
+
+      * 'ftpresponsetimeout': Causes TclCurl to set a timeout period
+        on the amount of time that the server is allowed to take in
+        order to generate a response message for a command before the
+        session is considered hung.
+
+      * 'ipresolve': Allows an application to select what kind of
+        IP addresses to use when resolving host names. This is only
+        interesting when using host names that resolve addresses
+        using more than one version of IP.
+
+      * 'maxfilesize': Allows you to specify the maximum size
+        of a file to download.
+
+    * New 'getinfo' options:
+
+      * 'httpauthavail': Returns a list with the authentication method(s)
+        available.
+
+      * 'proxyauthavail': Returns a list with the authentication method(s)
+        available for your proxy athentication.
+
+    * Misc:
+
+      * 'curl::versioninfo' will now say if there is support for
+        asynchronus DNS and SPNEGO.
+
+      * The 'httpcode' for 'getinfo' is now called 'responsecode'
+        since it will now work with FTP transfers. The old option
+        name, while deprecated, will continue to work.
+
+    * Bug fixes:
+
+      * TclCurl still thought it was in version 0.10.4.
+
+      * Fixed the 'httpauth' option.
+
+      * The configure scripts would sometimes use the cURL in
+        '/usr/bin' instead of the one in '/usr/local/bin' despite
+        the '--with-curlprefix' tag.
+
+Version 0.10.7 released 03-September-03
+
+  * New configure options:
+
+    * 'ftpcreatemissingdirs': If set to non-zero, TclCurl
+      will attempt to create any remote directory that it
+      fails to CWD into. CWD is the command that changes
+      working directory.
+
+    * 'httpauth': Set to the authentication method you want,
+      the available ones are:
+
+        * 'basic': HTTP Basic authentication. This is the
+          default choice, and the only method that is in
+          widespread use and supported virtually everywhere.
+          It sends the user name and password over the network
+          in plain text, easily captured by others.
+
+        * 'digest': HTTP Digest authentication. Digest
+           authentication is a more secure way to do
+           authentication over public networks than the
+           regular old-fashioned Basic method.
+
+        * 'gssnegotiate': HTTP GSS-Negotiate authentication.
+           The GSS-Negotiate method was designed by Microsoft
+           and is used in their web aplications. It is primarily
+           meant as a support for Kerberos5 authentication
+           but may be also used along with another authenti-
+           cation methods.
+
+        * 'ntlm': HTTP NTLM authentication. A proprietary
+          protocol invented and used by Microsoft.
+
+        * 'any':TclCurl will automaticaly select the one it
+          finds most secure.
+
+        * 'anysafe': It may use anything but basic, TclCurl
+          will automaticly select the one it finds most secure.
+
+
+    * 'command': Executes a Tcl command after the transfer
+      is done. So far it only works in blocking transfers
+      which is pretty much useless.
+
+Version 0.10.5 released 21-May-03
+
+  * New configure option:
+
+    * 'ftpuseeptr': Set to non-zero, to tell TclCurl to use the EPRT
+      (and LPRT) command when doing active FTP downloads (which is
+      enabled by 'ftpport'). Using EPRT means that it will first attempt
+      to use EPRT and then LPRT before using PORT, if you pass zero to
+      this option, it will not try using EPRT or LPRT, only plain PORT
+
+  * Bug fixes:
+
+    * The multi handles couldn't store the data of more than two
+     easy handles.
+
+    * Using the 'progressproc' option in Windows would crash Tcl.
+
+    * The '$multiHandle active' command wasn't returning anything.
+
+  * Misc:
+
+    * Updated ssl in Windows binaries to version 0.9.7b.
+
+    * Changed the way the http reponse header is dealt with in
+     the 'headervar' option. Now the whole header is put into
+     foo(http).
+
+     ************** POTENTIAL INCOMPATIBILITY **************
+
+Version 0.10.4 released 31-March-03
+
+  * New features:
+
+    * Added 'getinfo' features to the 'curl::transfer' command.
+
+     You can now do things like:
+
+       curl::transfer -url http://www.curl.com   \
+           -infohttpcode   httpCode              \
+           -infocontenttype contentType          \
+
+       puts "Http code: $httpCode"
+       puts "Content type: $contentType"
+
+    * New configure option: -unrestrictedauth, a non-zero parameter
+      tells the extension it can continue to send authentication
+      (user+password) when following locations, even when hostname
+      changed. Note that this is meaningful only when setting
+      -followlocation
+
+    * The makefile now has an 'uninstall' target.
+
+    * The Windows packages are now zlib enabled.
+
+    * Added a 'packages' directory with a makefile to create the
+      Windows packages and the spec file for rpm.
+
+  * Bug fix:
+
+    * The configure script will no longer choke with the version
+      string of cURL's prereleases.
+
+  * Misc
+
+    * If there is an error, the 'curl::transfer' command will now
+      return the code of the error, without the 'Couldn't perform
+      transfer' message.
+
+     ************** POTENTIAL INCOMPATIBILITY **************
+
+    * So that they have the same name in Windows and Linux, I have
+      changed the name of the certificate file in Windows to
+      'curl-ca-bundle.crt' and it will placed in the 'Windows'
+      directory.
+
+     ************** POTENTIAL INCOMPATIBILITY **************
+
+    * Alex Khassin suggested using fully qualified in 'tclcurl.tcl'
+      names to prevent problems with namespaces.
+
+Version 0.10.3 released 30-January-03
+
+  * New configure option:
+
+    * 'http200alieases': To pass a list of aliases to be treated as valid
+       HTTP 200 responses.
+
+  * Bug fixes:
+
+    * When using '-headervar' in Windows you could end up with carriage
+      returns in the name of the header.
+
+    * Julian let me know that TclCurl would crash when used in a thread
+      enabled Tcl.
+
+  * Enhancements:
+
+    * Since compiling TclCurl in Windows is a real pain, I will provide
+      more packages for it, thread and ssl enabled.
+
+    * Alex Khassin has written instructions on how to get TclCurl to work
+      with AOLSever.
+
+Version 0.10.1 released 14-October-02
+
+  * New configure options:
+
+    * 'proxytype': Allows you to set type of the proxy. Available options
+      are 'http' and 'socks5', with the HTTP one being default.
+
+    * 'encoding': TclCurl can now request compressed contents using the
+      'deflate' method.
+
+    * 'buffersize': To set prefered size for the receive buffer in TclCurl,
+      so that the write callback is called more often with smaller chunks.
+
+    * 'nosignal': Tells TclCurl not use any functions that install signal
+      handlers or any functions that cause signals to be sent to the process.
+
+  * New command:
+
+    * 'curl::versioninfo': Returns information about various run-time
+      features in TclCurl.
+
+  * Bug fixes:
+
+    * Fixed to 'buffer' option to post data.
+
+    * Asif Haswarey reported that '--with-curlinclude' wouldn't work.
+
+    * The multi interface examples suddenly stopped working, they
+      should now.
+
+Version 0.9.8 released 25-June-02
+
+  * Support for libcurl's multi interface, the main features are:
+
+    * Enable a "pull" interface. The application that uses TclCurl
+      decides where and when to get/send data.
+
+    * Enable multiple simultaneous transfers in the same thread
+      without making it complicated for the application.
+
+    * Keep Tk GUIs 'alive' while transfers are taking place.
+
+  * New 'httppost' options
+
+    * 'bufferName' and 'buffer', the contents of buffer will be sent
+       to the server as if they were a file whose name is in bufferName,
+       please check the 'httpBufferPost.tcl' example.
+
+  * New 'getinfo' options
+
+    * redirectime: Returns the total time, in seconds, it took for all
+      redirection steps including name lookup, connect, pretransfer and
+      transfer before the final transaction was started, it returns the
+      complete execution time for multiple redirections.
+
+    * redirectcount: Returns the total number of redirections that were
+      actually followed.
+
+Version 0.9.6 released 30-April-02
+
+  * New configure options:
+
+    * dnscachetimeout, to set the timeout in seconds for keeping the name resolves
+      in memory.
+
+    * dnsuseglobalcache, if set to '1' the DNS cache will be shared among
+      curl handles.
+
+    * debugproc, to set a procedure that will receive the debug data
+      produced by the 'verbose' option.
+
+
+  * Jonathan Matthew found and fixed a seg fault when you used
+    the 'httpheader' option twice with the same handle.
+
+
+  * The configure scripts saw more work in this release:
+
+    * I merged the latest changes to the TEA sample extension by
+      Jeff Hobbs.
+
+    * Suresh K. Sastry found and fixed an incompatibility with Solaris.
+
+    * And I hope I have not forgotten any 'DESTDIR' this time.
+
+Version 0.9.5 released 01-April-2002
+
+  * I have adapted the configure scripts to the new TEA scripts released by
+    Jeff Hobbs, for example, now it will compile 'out of the box' for freeBSD
+    systems (well, you may need to use '--with-curlprefix' and '--with-curlinclude')
+
+  * New configure option:
+
+    * prequote: use it to pass a list of ftp commands to execute *just before*
+      the transfer.
+
+  * New getinfo option:
+
+    * contenttype: if the servers bothers to tell you, this will return the type
+      of the downloadad object.
+
+  * Bug fix: 'curl::transfer' will return '0' if the transfer was successful.
+                     *** POTENTIAL INCOMPATIBILITY ***
+
+Version 0.9.3 released 29-Jan-2002
+
+  * Bug fix: There should no more seg faults because of trailing options
+    in configure commands.
+
+  * Bug fix: Binary transfer weren't done right in Windows, thanks to
+    Peter Waltenberg and Darren Blee for the report.
+
+  * TclCurl now supports OpenSSL engines, which allow you to keep your private
+    key stored in external hardware.
+
+        In order to manage this there are a few new configure options:
+
+            * sslcerttype: Set SSL cert type (PEM/DER).
+
+            * sslkey: Set SSL private key (file).
+
+            * sslkeytype: Set SSL key type (PEM/DER/ENG).
+
+            * sslkeypasswd: Set the passphrase for your private key.
+
+            * sslengine: Set the name of the crypto engine.
+
+            * sslenginedefault: Set the default engine.
+
+  * You can now add a set of headers for a particular part in a
+    multipart/form-post using the 'contentheader' option.
+
+  * It is now possible to execute commands in ftp servers without
+    transfering files, you have to set 'nobody' to '1' and 'header' to
+    '0'.
diff --git a/Makefile.in b/Makefile.in
new file mode 100755 (executable)
index 0000000..ef1b8e0
--- /dev/null
@@ -0,0 +1,458 @@
+# Makefile.in --
+#
+#      This file is a Makefile for Sample TEA Extension.  If it has the name
+#      "Makefile.in" then it is a template for a Makefile;  to generate the
+#      actual Makefile, run "./configure", which is a configuration script
+#      generated by the "autoconf" program (constructs like "@foo@" will get
+#      replaced in the actual Makefile.
+#
+# Copyright (c) 1999 Scriptics Corporation.
+# Copyright (c) 2002-2005 ActiveState Corporation.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: @(#) $Id: Makefile.in,v 1.66 2009/03/18 18:39:42 stwo Exp $
+
+#========================================================================
+# Add additional lines to handle any additional AC_SUBST cases that
+# have been added in a customized configure script.
+#========================================================================
+
+#SAMPLE_NEW_VAR        = @SAMPLE_NEW_VAR@
+
+#========================================================================
+# Nothing of the variables below this line should need to be changed.
+# Please check the TARGETS section below to make sure the make targets
+# are correct.
+#========================================================================
+
+#========================================================================
+# The names of the source files is defined in the configure script.
+# The object files are used for linking into the final library.
+# This will be used when a dist target is added to the Makefile.
+# It is not important to specify the directory, as long as it is the
+# $(srcdir) or in the generic, win or unix subdirectory.
+#========================================================================
+
+PKG_SOURCES    = @PKG_SOURCES@
+TCLCURL_SCRIPTS = @TCLCURL_SCRIPTS@
+PKG_OBJECTS    = @PKG_OBJECTS@
+
+PKG_STUB_SOURCES = @PKG_STUB_SOURCES@
+PKG_STUB_OBJECTS = @PKG_STUB_OBJECTS@
+
+#========================================================================
+# PKG_TCL_SOURCES identifies Tcl runtime files that are associated with
+# this package that need to be installed, if any.
+#========================================================================
+
+PKG_TCL_SOURCES = @PKG_TCL_SOURCES@
+
+#========================================================================
+# This is a list of public header files to be installed, if any.
+#========================================================================
+
+PKG_HEADERS    = @PKG_HEADERS@
+
+#========================================================================
+# "PKG_LIB_FILE" refers to the library (dynamic or static as per
+# configuration options) composed of the named objects.
+#========================================================================
+
+PKG_LIB_FILE   = @PKG_LIB_FILE@
+PKG_STUB_LIB_FILE = @PKG_STUB_LIB_FILE@
+
+lib_BINARIES   = $(PKG_LIB_FILE)
+BINARIES       = $(lib_BINARIES)
+
+SHELL          = @SHELL@
+
+srcdir         = @srcdir@
+prefix         = @prefix@
+exec_prefix    = @exec_prefix@
+
+bindir         = @bindir@
+libdir         = @libdir@
+includedir     = @includedir@
+datarootdir     = @datarootdir@
+datadir                = @datadir@
+mandir         = @mandir@
+
+DESTDIR                =
+
+PKG_DIR                = $(PACKAGE_NAME)$(PACKAGE_VERSION)
+pkgdatadir     = $(datadir)/$(PKG_DIR)
+pkglibdir      = $(libdir)/$(PKG_DIR)
+pkgincludedir  = $(includedir)/$(PKG_DIR)
+
+top_builddir   = .
+
+INSTALL                = @INSTALL@
+INSTALL_PROGRAM        = @INSTALL_PROGRAM@
+INSTALL_LIBRARY        = @INSTALL_PROGRAM@
+INSTALL_DATA   = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+
+PACKAGE_NAME   = @PACKAGE_NAME@
+PACKAGE_VERSION        = @PACKAGE_VERSION@
+CC             = @CC@
+CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
+CFLAGS_WARNING = @CFLAGS_WARNING@
+EXEEXT         = @EXEEXT@
+LDFLAGS_DEFAULT        = @LDFLAGS_DEFAULT@
+MAKE_LIB       = @MAKE_LIB@
+MAKE_SHARED_LIB        = @MAKE_SHARED_LIB@
+MAKE_STATIC_LIB        = @MAKE_STATIC_LIB@
+MAKE_STUB_LIB  = @MAKE_STUB_LIB@
+OBJEXT         = @OBJEXT@
+RANLIB         = @RANLIB@
+RANLIB_STUB    = @RANLIB_STUB@
+SHLIB_CFLAGS   = @SHLIB_CFLAGS@
+SHLIB_LD       = @SHLIB_LD@
+SHLIB_LD_LIBS  = @SHLIB_LD_LIBS@
+STLIB_LD       = @STLIB_LD@
+#TCL_DEFS      = @TCL_DEFS@
+TCL_BIN_DIR    = @TCL_BIN_DIR@
+TCL_SRC_DIR    = @TCL_SRC_DIR@
+#TK_BIN_DIR    = @TK_BIN_DIR@
+#TK_SRC_DIR    = @TK_SRC_DIR@
+
+# Not used, but retained for reference of what libs Tcl required
+#TCL_LIBS      = @TCL_LIBS@
+
+#========================================================================
+# TCLLIBPATH seeds the auto_path in Tcl's init.tcl so we can test our
+# package without installing.  The other environment variables allow us
+# to test against an uninstalled Tcl.  Add special env vars that you
+# require for testing here (like TCLX_LIBRARY).
+#========================================================================
+
+EXTRA_PATH     = $(top_builddir):$(TCL_BIN_DIR)
+#EXTRA_PATH    = $(top_builddir):$(TCL_BIN_DIR):$(TK_BIN_DIR)
+TCLLIBPATH     = $(top_builddir)
+TCLSH_ENV      = TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library`
+PKG_ENV                = @LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \
+                 PATH="$(EXTRA_PATH):$(PATH)" \
+                 TCLLIBPATH="$(TCLLIBPATH)"
+
+TCLSH_PROG     = @TCLSH_PROG@
+TCLSH          = $(PKG_ENV) $(TCLSH_ENV) $(TCLSH_PROG)
+
+#WISH_ENV      = TK_LIBRARY=`@CYGPATH@ $(TK_SRC_DIR)/library`
+#WISH_PROG     = @WISH_PROG@
+#WISH          = $(PKG_ENV) $(TCLSH_ENV) $(WISH_ENV) $(WISH_PROG)
+
+SHARED_BUILD   = @SHARED_BUILD@
+
+INCLUDES       = @PKG_INCLUDES@ @TCL_INCLUDES@
+#INCLUDES      = @PKG_INCLUDES@ @TCL_INCLUDES@ @TK_INCLUDES@ @TK_XINCLUDES@
+
+PKG_CFLAGS     = @PKG_CFLAGS@
+
+# TCL_DEFS is not strictly need here, but if you remove it, then you
+# must make sure that configure.in checks for the necessary components
+# that your library may use.  TCL_DEFS can actually be a problem if
+# you do not compile with a similar machine setup as the Tcl core was
+# compiled with.
+#DEFS          = $(TCL_DEFS) @DEFS@ $(PKG_CFLAGS)
+DEFS           = @DEFS@ $(PKG_CFLAGS)
+
+# Move pkgIndex.tcl to 'BINARIES' var if it is generated in the Makefile
+CONFIG_CLEAN_FILES = Makefile pkgIndex.tcl
+CLEANFILES     = @CLEANFILES@
+
+CPPFLAGS       = @CPPFLAGS@
+LIBS           = @PKG_LIBS@ @LIBS@
+AR             = @AR@
+CFLAGS         = @CFLAGS@
+COMPILE                = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+
+#========================================================================
+# Start of user-definable TARGETS section
+#========================================================================
+
+#========================================================================
+# TEA TARGETS.  Please note that the "libraries:" target refers to platform
+# independent files, and the "binaries:" target inclues executable programs and
+# platform-dependent libraries.  Modify these targets so that they install
+# the various pieces of your package.  The make and install rules
+# for the BINARIES that you specified above have already been done.
+#========================================================================
+
+all: binaries libraries doc
+
+#========================================================================
+# The binaries target builds executable programs, Windows .dll's, unix
+# shared/static libraries, and any other platform-dependent files.
+# The list of targets to build for "binaries:" is specified at the top
+# of the Makefile, in the "BINARIES" variable.
+#========================================================================
+
+binaries: $(BINARIES)
+
+libraries:
+
+scripts: $(TCLCURL_SCRIPTS)
+
+#========================================================================
+# Your doc target should differentiate from doc builds (by the developer)
+# and doc installs (see install-doc), which just install the docs on the
+# end user machine when building from source.
+#========================================================================
+
+doc:
+
+
+
+install: all install-binaries install-scripts install-libraries install-doc
+
+install-binaries: binaries install-lib-binaries install-bin-binaries
+
+#========================================================================
+# This rule installs platform-independent files, such as header files.
+# The list=...; for p in $$list handles the empty list case x-platform.
+#========================================================================
+
+install-libraries: libraries
+       @mkdir -p $(DESTDIR)$(includedir)
+       @echo "Installing header files in $(DESTDIR)$(includedir)"
+       @list='$(PKG_HEADERS)'; for i in $$list; do \
+           echo "Installing $(srcdir)/$$i" ; \
+           $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir) ; \
+       done;
+
+#========================================================================
+# Install documentation.  Unix manpages should go in the $(mandir)
+# directory.
+#========================================================================
+
+install-doc: doc
+       @mkdir -p $(DESTDIR)$(mandir)/mann
+       @echo "Installing documentation in $(DESTDIR)$(mandir)"
+       @list='$(srcdir)/doc/*.n'; for i in $$list; do \
+           echo "Installing $$i"; \
+           rm -f $(DESTDIR)$(mandir)/mann/`basename $$i`; \
+           gzip $$i; \
+           $(INSTALL_DATA) $$i.gz $(DESTDIR)$(mandir)/mann ; \
+           gunzip $$i.gz; \
+       done
+
+test: binaries libraries
+       $(TCLSH) `@CYGPATH@ $(srcdir)/tests/all.tcl` $(TESTFLAGS)
+
+shell: binaries libraries
+       @$(TCLSH) $(SCRIPT)
+
+gdb:
+       $(TCLSH_ENV) gdb $(TCLSH_PROG) $(SCRIPT)
+
+depend:
+
+#========================================================================
+# $(PKG_LIB_FILE) should be listed as part of the BINARIES variable
+# mentioned above.  That will ensure that this target is built when you
+# run "make binaries".
+#
+# The $(PKG_OBJECTS) objects are created and linked into the final
+# library.  In most cases these object files will correspond to the
+# source files above.
+#========================================================================
+
+$(PKG_LIB_FILE): $(PKG_OBJECTS)
+       -rm -f $(PKG_LIB_FILE)
+       ${MAKE_LIB}
+       $(RANLIB) $(PKG_LIB_FILE)
+
+$(PKG_STUB_LIB_FILE): $(PKG_STUB_OBJECTS)
+       -rm -f $(PKG_STUB_LIB_FILE)
+       ${MAKE_STUB_LIB}
+       $(RANLIB_STUB) $(PKG_STUB_LIB_FILE)
+
+#========================================================================
+# We need to enumerate the list of .c to .o lines here.
+#
+# In the following lines, $(srcdir) refers to the toplevel directory
+# containing your extension.  If your sources are in a subdirectory,
+# you will have to modify the paths to reflect this:
+#
+# sample.$(OBJEXT): $(srcdir)/generic/sample.c
+#      $(COMPILE) -c `@CYGPATH@ $(srcdir)/generic/sample.c` -o $@
+#
+# Setting the VPATH variable to a list of paths will cause the makefile
+# to look into these paths when resolving .c to .obj dependencies.
+# As necessary, add $(srcdir):$(srcdir)/compat:....
+#========================================================================
+
+VPATH = $(srcdir):$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win
+
+.c.@OBJEXT@:
+       $(COMPILE) -c `@CYGPATH@ $<` -o $@
+
+#========================================================================
+# Distribution creation
+# You may need to tweak this target to make it work correctly.
+#========================================================================
+
+#COMPRESS      = tar cvf $(PKG_DIR).tar $(PKG_DIR); compress $(PKG_DIR).tar
+COMPRESS       = gtar zcvf $(PKG_DIR).tar.gz $(PKG_DIR)
+DIST_ROOT      = /tmp/dist
+DIST_DIR       = $(DIST_ROOT)/$(PKG_DIR)
+
+dist-clean:
+       rm -rf $(DIST_DIR) $(DIST_ROOT)/$(PKG_DIR).tar.*
+
+dist: dist-clean
+       mkdir -p $(DIST_DIR)
+       cp -p $(srcdir)/ChangeLog $(srcdir)/README* $(srcdir)/license* \
+               $(srcdir)/aclocal.m4 $(srcdir)/configure $(srcdir)/*.in \
+               $(DIST_DIR)/
+       chmod 664 $(DIST_DIR)/Makefile.in $(DIST_DIR)/aclocal.m4
+       chmod 775 $(DIST_DIR)/configure $(DIST_DIR)/configure.in
+
+       for i in $(srcdir)/*.[ch]; do \
+           if [ -f $$i ]; then \
+               cp -p $$i $(DIST_DIR)/ ; \
+           fi; \
+       done;
+
+       mkdir $(DIST_DIR)/tclconfig
+       cp $(srcdir)/tclconfig/install-sh $(srcdir)/tclconfig/tcl.m4 \
+               $(DIST_DIR)/tclconfig/
+       chmod 664 $(DIST_DIR)/tclconfig/tcl.m4
+       chmod +x $(DIST_DIR)/tclconfig/install-sh
+
+       list='demos doc generic library mac tests unix win'; \
+       for p in $$list; do \
+           if test -d $(srcdir)/$$p ; then \
+               mkdir $(DIST_DIR)/$$p; \
+               cp -p $(srcdir)/$$p/*.* $(DIST_DIR)/$$p/; \
+           fi; \
+       done
+
+       (cd $(DIST_ROOT); $(COMPRESS);)
+
+#========================================================================
+# End of user-definable section
+#========================================================================
+
+#========================================================================
+# Don't modify the file to clean here.  Instead, set the "CLEANFILES"
+# variable in configure.in
+#========================================================================
+
+clean:  
+       -test -z "$(BINARIES)" || rm -f $(BINARIES)
+       -rm -f *.$(OBJEXT) core *.core
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean: clean
+       -rm -f *.tab.c
+       -rm -f $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log config.status
+
+#========================================================================
+# Install binary object libraries.  On Windows this includes both .dll and
+# .lib files.  Because the .lib files are not explicitly listed anywhere,
+# we need to deduce their existence from the .dll file of the same name.
+# Library files go into the lib directory.
+# In addition, this will generate the pkgIndex.tcl
+# file in the install location (assuming it can find a usable tclsh shell)
+#
+# You should not have to modify this target.
+#========================================================================
+
+install-lib-binaries: binaries
+       @mkdir -p $(DESTDIR)$(pkglibdir)
+       @list='$(lib_BINARIES)'; for p in $$list; do \
+         if test -f $$p; then \
+           echo " $(INSTALL_LIBRARY) $$p $(DESTDIR)$(pkglibdir)/$$p"; \
+           $(INSTALL_LIBRARY) $$p $(DESTDIR)$(pkglibdir)/$$p; \
+           stub=`echo $$p|sed -e "s/.*\(stub\).*/\1/"`; \
+           if test "x$$stub" = "xstub"; then \
+               echo " $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p"; \
+               $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p; \
+           else \
+               echo " $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p"; \
+               $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p; \
+           fi; \
+           ext=`echo $$p|sed -e "s/.*\.//"`; \
+           if test "x$$ext" = "xdll"; then \
+               lib=`basename $$p|sed -e 's/.[^.]*$$//'`.lib; \
+               if test -f $$lib; then \
+                   echo " $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib"; \
+                   $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib; \
+               fi; \
+           fi; \
+         fi; \
+       done
+       @list='$(PKG_TCL_SOURCES)'; for p in $$list; do \
+         if test -f $(srcdir)/$$p; then \
+           destp=`basename $$p`; \
+           echo " Install $$destp $(DESTDIR)$(pkglibdir)/$$destp"; \
+           $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkglibdir)/$$destp; \
+         fi; \
+       done
+       @if test "x$(SHARED_BUILD)" = "x1"; then \
+           echo " Install pkgIndex.tcl $(DESTDIR)$(pkglibdir)"; \
+           $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir); \
+       fi
+
+#========================================================================
+# Install binary executables (e.g. .exe files and dependent .dll files)
+# This is for files that must go in the bin directory (located next to
+# wish and tclsh), like dependent .dll files on Windows.
+#
+# You should not have to modify this target, except to define bin_BINARIES
+# above if necessary.
+#========================================================================
+
+install-bin-binaries: binaries
+       @mkdir -p $(DESTDIR)$(bindir)
+       @list='$(bin_BINARIES)'; for p in $$list; do \
+         if test -f $$p; then \
+           echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p"; \
+           $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p; \
+         fi; \
+       done
+
+#========================================================================
+# This rule installs the scripts that are part of TclCurl.
+#========================================================================
+
+install-scripts: scripts
+               @for i in generic/$(TCLCURL_SCRIPTS) ; do    \
+               echo "Installing $$i" ;                      \
+               $(INSTALL_DATA) $$i $(DESTDIR)$(pkglibdir) ; \
+       done;
+
+.SUFFIXES: .c .$(OBJEXT)
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+uninstall-binaries:
+       list='$(lib_BINARIES)'; for p in $$list; do \
+         rm -f $(DESTDIR)$(pkglibdir)/$$p; \
+       done
+       list='$(PKG_TCL_SOURCES)'; for p in $$list; do \
+         p=`basename $$p`; \
+         rm -f $(DESTDIR)$(pkglibdir)/$$p; \
+       done
+       list='$(bin_BINARIES)'; for p in $$list; do \
+         rm -f $(DESTDIR)$(bindir)/$$p; \
+       done
+
+checkAutoPath:
+       @if test "x$(DESTDIR)$(libdir)" != x/usr; then \
+                echo "Checking Tcl's autoPath variable" ; \
+               $(TCLSH_PROG) $(srcdir)/checkAutoPath.tcl $(DESTDIR)$(libdir); \
+       fi;
+
+
+.PHONY: all binaries clean depend distclean doc install libraries test
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/ReadMe.txt b/ReadMe.txt
new file mode 100755 (executable)
index 0000000..74e0329
--- /dev/null
@@ -0,0 +1,59 @@
+TclCurl - get a URL with FTP, TELNET, LDAP, DICT, FILE, HTTP or HTTPS syntax.
+
+TclCurl gives the Tcl programmer access to the facilities of libcurl, for more information
+about what libcurl is capable of check http://curl.haxx.se.
+
+To make type:
+
+      ./configure ?--enable-threads?
+      make
+      make install
+
+The configure script will deduce $PREFIX from the tcl installation.
+The generated Makefile uses the file $PREFIX/lib/tclConfig.sh that was left by
+the make of tcl for most of its configuration parameters.
+
+There is another README to explain how to compile in Windows.
+
+Troubleshooting
+
+If you are running Red Hat or Fedora and you are compiling from source,
+make sure the directory '/usr/local/lib' is listed in '/etc/ld.so.conf',
+if it isn't add it before installing cURL.
+
+If the configure script doesn't detect Tcl even though it is there, it
+is probably because there is no 'tclConfig.sh' file, maybe you need
+to install a 'tcl-devel' package or maybe it would be a good idea
+to download Tcl/Tk 8.4.5, the latest version, and install that.
+
+Usage:
+
+    package require TclCurl
+
+    set curlHandle [curl::init]
+
+    curlHandle perform
+
+    curlHandle getinfo curlinfo_option
+
+    curlHandle duphandle
+
+    curlhandle cleanup
+
+    curl::transfer
+
+    curl::version
+
+    curl::escape url
+
+    curl::unescape url
+
+    curl::curlConfig option
+
+Check the man page for details.
+
+
+Written by:  Andres Garcia (fandom@telefonica.net)
+
+Use at your own risk.  No support.
+BSD like license, check 'license.terms' for details.
diff --git a/ReadMeW32.txt b/ReadMeW32.txt
new file mode 100755 (executable)
index 0000000..fc2f36b
--- /dev/null
@@ -0,0 +1,151 @@
+To install TclCurl in Windows you simply have to double-click on the 'SetUp.tcl'
+file, provided you already have Tcl/Tk installed, the script will take care of
+everything.
+
+By the way, Tcl's console doesn't seem to like the output sent by TclCurl,
+for example, if you type:
+
+curl::transfer -url www.scriptics.com
+
+you will only get an error, you will have to dump it to a file with the
+'file' option, read it in to a variable with 'bodyvar', use Cygwin's console
+or use tkCon from msys-mingw.
+
+
+Compiling TclCurl in Windows
+
+
+First of all a little disclaimer:
+
+I know nothing about Windows programming, no kidding, not a thing,
+zip, zilch, nada. I can barely manage using tools, like Tcl/Tk and
+gcc, whose origin is in the Unix world, but that is just about it, so
+if you think that the following is just plain stupid, that is because
+it probably is, but in that case, don't forget to tell me all about it.
+
+To compile TclCurl in Windows you are going to need several things:
+
+    - A msys-mingw enviroment, you can get it at SourceForge:
+
+          http://sourceforge.net/projects/tcl/
+
+      or you can get MinGW and Msys from their project page:
+
+          http://sourceforge.net/projects/mingw/
+
+    - Since you are already at Tcl's page at SF, you can download the
+      lastest Tcl version, 8.4.13 at this writing. (These instructions won't
+      work with 8.3.x versions)
+
+    - Download zlib from http://www.gzip.org/zlib/
+
+    - Download bc from http://gnuwin32.sourceforge.net/packages/bc.htm and
+      install it.
+
+    - Extract Tcl, cURL, zlib and TclCurl in the same directory.
+
+    - Copy the 'tclcurl.mk' file in TclCurl/packages/windows to this directory.
+
+    - Start msys, go to the directory and type:
+
+            $ make -f tclcurl.mk tclcurl-plain
+
+      This command will compile and install Tcl, zlib, cURL and TclCurl, if
+      you want to have Tk though, you will have to install it yourself.
+
+      After compiling and installing all the elements, the make file will
+      try to create the self-extracting archive using 'rar', if you don't
+      have it installed it will fail, but don't worry, everything is already
+      installed. If you have rar and you want to create the archives, don't
+      forget to change the path at the end of the make file.
+
+    - If you want to use TclCurl with the Tcl/Tk you have installed in 
+      c:\Program Files or anywhere else, copy the directory
+      '/usr/local/lib/tclcurl0.110' to 'c:\Program Files\Tcl\lib'
+
+    - And now you should have a working TclCurl, run Tcl/Tk and type:
+
+            $ package require TclCurl.
+
+      Tcl should return TclCurl's version, if it doesn't something went wrong,
+      could you please tell me?
+
+    - Wish console doesn't really like TclCurl, so if you do:
+
+            $ curl::transfer -url slashdot.org
+
+      It will return a '0' to tell you that the transfer was successful, but it will
+      show you nothing, you will have to dump the page into a file to be able to read
+      it or use Cygwin's console.
+
+
+
+Compiling TclCurl with threads support
+
+You have to do basically the same thing, except that the command to compile is:
+
+    $ make -f tclcurl.mk tclcurl-threaded
+
+
+Compiling TclCurl with SSL support
+
+To prevent patent trouble, the SSL enabled binaries don't support the idea, rc5 and mdc2
+algorithms, if you need them, and you are allowed to do so, you can compile them yourself.
+
+
+      - First of all you have to compile Openssl, you can get the lastest version
+        at http://www.openssl.org, these instructions should work with version 0.9.8e
+
+      - To compile it you are going to need Perl in your system, for whatever the reason
+        I couldn't get it to work with the Perl that comes with Cygwin, so I had to
+        download ActivePerl: http://www.activestate.com.
+
+      - You will also need to download the MinGW compiler, the compiling scripts don't
+        like the msys enviroment though.
+
+      - The open a MS-DOS console in the openssl directory and make sure that both
+        perl and mingw are in you path:
+
+            c:\openssl-0.9.8e\> echo %PATH%
+
+        if they aren't add them:
+
+            c:\openssl-0.9.8e\> PATH=%PATH%;C:\Perl\bin;c:\MinGW\bin
+
+        change the paths if you need to.
+
+      - Only thing left is to type in the MS-DOS console:
+
+             c:\openssl-0.9.8e\> ms\mingw32.bat
+        and hope for the best.
+
+      - After it compiles you have to copy some files around:
+
+        - libcryto.a, libeay32.a, libssl.a and libssl32.a from 
+          openssl-0.9.8e\out to c:\msys\local\lib.
+
+        - libeay32.dll and libssl32.dll from openssl-0.9.8e to
+          c:\msys\local\lib and c:\msys\local\bin.
+
+        - The contents of openssl-0.9.8e\outinc to c:\msys\local\include.
+
+      - Now copy the 'tclcurl.mk' file from TclCurl/packages/windows to
+        the directory in which you have TclCurl, Tcl, cURL, TclCurl and OpenSSL.
+
+        - $ make -f tclcurl.mk tclcurl-ssl
+
+      - If you want to have threads support:
+
+        - $ make -f tclcurl.mk tclcurl-threaded-ssl        
+
+Sounds like a lot of work to run a little extension, but then again, you could
+have downloaded the self-extracting archive file.
+
+
+Share the wonders,
+Andres
+fandom@telefonica.net
+
+
+
diff --git a/ToDo.txt b/ToDo.txt
new file mode 100755 (executable)
index 0000000..0de6df4
--- /dev/null
+++ b/ToDo.txt
@@ -0,0 +1,18 @@
+
+Even though the extension is already quite functional, there are many
+things to improve:
+
+
+    - Automatic test suite.
+
+    - Ports to as many OS as possible.
+
+    - Whatever you suggest.
+
+
+I specially need help about porting, I guess it should work wherever Tcl and
+cURL are already present, I would be grateful for any feedback about where 
+it does or doesn't work.
+
+Andres
+fandom@telefonica.net
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100755 (executable)
index 0000000..0b05739
--- /dev/null
@@ -0,0 +1,9 @@
+#
+# Include the TEA standard macro set
+#
+
+builtin(include,tclconfig/tcl.m4)
+
+#
+# Add here whatever m4 macros you want to define for your package
+#
diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0
new file mode 100644 (file)
index 0000000..7a11280
--- /dev/null
@@ -0,0 +1,12598 @@
+@%:@! /bin/sh
+@%:@ Guess values for system-dependent variables and create Makefiles.
+@%:@ Generated by GNU Autoconf 2.63 for TclCurl 7.19.6.
+@%:@ 
+@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+@%:@ This configure script is free software; the Free Software Foundation
+@%:@ gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in
+      *"$as_nl"*)
+       expr "X$arg" : "X\\(.*\\)$as_nl";
+       arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""       $as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+if test "x$CONFIG_SHELL" = x; then
+  if (eval ":") 2>/dev/null; then
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+
+  if test $as_have_required = yes &&    (eval ":
+(as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=\$LINENO
+  as_lineno_2=\$LINENO
+  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+") 2> /dev/null; then
+  :
+else
+  as_candidate_shells=
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  case $as_dir in
+        /*)
+          for as_base in sh bash ksh sh5; do
+            as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+          done;;
+       esac
+done
+IFS=$as_save_IFS
+
+
+      for as_shell in $as_candidate_shells $SHELL; do
+        # Try only shells that exist, to save several forks.
+        if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+               { ("$as_shell") 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+_ASEOF
+}; then
+  CONFIG_SHELL=$as_shell
+              as_have_required=yes
+              if { "$as_shell" 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+(as_func_return () {
+  (exit $1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = "$1" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test $exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+
+_ASEOF
+}; then
+  break
+fi
+
+fi
+
+      done
+
+      if test "x$CONFIG_SHELL" != x; then
+  for as_var in BASH_ENV ENV
+       do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+       done
+       export CONFIG_SHELL
+       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+
+    if test $as_have_required = no; then
+  echo This script requires a shell more modern than all the
+      echo shells that I found on your system.  Please install a
+      echo modern shell, or manually run the script under such a
+      echo shell if you do have one.
+      { (exit 1); exit 1; }
+fi
+
+    
+fi
+
+fi
+
+
+
+(eval "as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0") || {
+  echo No shell found that supports shell functions.
+  echo Please tell bug-autoconf@gnu.org about your system,
+  echo including any error possibly output before this message.
+  echo This can help us improve future autoconf versions.
+  echo Configuration will now proceed without shell functions.
+}
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+       test -d "$1/.";
+      else
+       case $1 in
+       -*)set "./$1";;
+       esac;
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+       ???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIB@&t@OBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Identity of this package.
+PACKAGE_NAME='TclCurl'
+PACKAGE_TARNAME='tclcurl'
+PACKAGE_VERSION='7.19.6'
+PACKAGE_STRING='TclCurl 7.19.6'
+PACKAGE_BUGREPORT=''
+
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+TCLSH_PROG
+RANLIB_STUB
+MAKE_STUB_LIB
+MAKE_STATIC_LIB
+MAKE_SHARED_LIB
+MAKE_LIB
+TCL_DBGX
+LDFLAGS_DEFAULT
+CFLAGS_DEFAULT
+LD_LIBRARY_PATH_VAR
+SHLIB_CFLAGS
+SHLIB_LD_LIBS
+SHLIB_LD
+STLIB_LD
+CFLAGS_WARNING
+CFLAGS_OPTIMIZE
+CFLAGS_DEBUG
+DL_LIBS
+LIB@&t@OBJS
+CELIB_DIR
+AR
+SHARED_BUILD
+TCL_THREADS
+TCL_INCLUDES
+CLEANFILES
+curl
+TCLCURL_SCRIPTS
+PKG_OBJECTS
+PKG_SOURCES
+MATH_LIBS
+EGREP
+GREP
+RANLIB
+SET_MAKE
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+CPP
+OBJEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+TCL_SHLIB_LD_LIBS
+TCL_LD_FLAGS
+TCL_EXTRA_CFLAGS
+TCL_DEFS
+TCL_LIBS
+TCL_STUB_LIB_SPEC
+TCL_STUB_LIB_FLAG
+TCL_STUB_LIB_FILE
+TCL_LIB_SPEC
+TCL_LIB_FLAG
+TCL_LIB_FILE
+TCL_SRC_DIR
+TCL_BIN_DIR
+TCL_VERSION
+PKG_CFLAGS
+PKG_LIBS
+PKG_INCLUDES
+PKG_HEADERS
+PKG_TCL_SOURCES
+PKG_STUB_OBJECTS
+PKG_STUB_SOURCES
+PKG_STUB_LIB_FILE
+PKG_LIB_FILE
+EXEEXT
+CYGPATH
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_tcl
+with_curlprefix
+with_curlinclude
+with_libcurl
+with_tclinclude
+enable_threads
+enable_shared
+enable_64bit
+enable_64bit_vis
+enable_rpath
+enable_wince
+with_celib
+enable_load
+enable_symbols
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *)   ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
+   { (exit 1); exit 1; }; } ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
+               datadir sysconfdir sharedstatedir localstatedir includedir \
+               oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+               libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; }
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  { $as_echo "$as_me: error: working directory cannot be determined" >&2
+   { (exit 1); exit 1; }; }
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
+   { (exit 1); exit 1; }; }
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_myself" : 'X\(//\)[^/]' \| \
+        X"$as_myself" : 'X\(//\)$' \| \
+        X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+       cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
+   { (exit 1); exit 1; }; }
+       pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures TclCurl 7.19.6 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root @<:@DATAROOTDIR/doc/tclcurl@:>@
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of TclCurl 7.19.6:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-threads        build with threads
+  --enable-shared         build and link with shared libraries (default: on)
+  --enable-64bit          enable 64bit support (default: off)
+  --enable-64bit-vis      enable 64bit Sparc VIS support (default: off)
+  --disable-rpath         disable rpath support (default: on)
+  --enable-wince          enable Win/CE support (where applicable)
+  --enable-load           allow dynamic loading and "load" command (default:
+                          on)
+  --enable-symbols        build with debugging symbols (default: off)
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-tcl              directory containing tcl configuration
+                          (tclConfig.sh)
+  --with-curlprefix       base directory for the cURL install '/usr', '/usr/local',...
+  --with-curlinclude      directory containing the public libcurl header files
+  --with-libcurl          directory containing libcurl
+  --with-tclinclude       directory containing the public Tcl header files
+  --with-celib=DIR        use Windows/CE support library from DIR
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+TclCurl configure 7.19.6
+generated by GNU Autoconf 2.63
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by TclCurl $as_me 7.19.6, which was
+generated by GNU Autoconf 2.63.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+@%:@@%:@ --------- @%:@@%:@
+@%:@@%:@ Platform. @%:@@%:@
+@%:@@%:@ --------- @%:@@%:@
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  $as_echo "PATH: $as_dir"
+done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+@%:@@%:@ ----------- @%:@@%:@
+@%:@@%:@ Core tests. @%:@@%:@
+@%:@@%:@ ----------- @%:@@%:@
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+       ac_must_keep_next=false # Got value, back to normal.
+      else
+       case $ac_arg in
+         *=* | --config-cache | -C | -disable-* | --disable-* \
+         | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+         | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+         | -with-* | --with-* | -without-* | --without-* | --x)
+           case "$ac_configure_args0 " in
+             "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+           esac
+           ;;
+         -* ) ac_must_keep_next=true ;;
+       esac
+      fi
+      ac_configure_args="$ac_configure_args '$ac_arg'"
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    cat <<\_ASBOX
+@%:@@%:@ ---------------- @%:@@%:@
+@%:@@%:@ Cache variables. @%:@@%:@
+@%:@@%:@ ---------------- @%:@@%:@
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+       "s/'\''/'\''\\\\'\'''\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    cat <<\_ASBOX
+@%:@@%:@ ----------------- @%:@@%:@
+@%:@@%:@ Output variables. @%:@@%:@
+@%:@@%:@ ----------------- @%:@@%:@
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+@%:@@%:@ ------------------- @%:@@%:@
+@%:@@%:@ File substitutions. @%:@@%:@
+@%:@@%:@ ------------------- @%:@@%:@
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+       eval ac_val=\$$ac_var
+       case $ac_val in
+       *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+       esac
+       $as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+@%:@@%:@ ----------- @%:@@%:@
+@%:@@%:@ confdefs.h. @%:@@%:@
+@%:@@%:@ ----------- @%:@@%:@
+_ASBOX
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test -r "$ac_site_file"; then
+    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+       # differences in whitespace do not lead to failure.
+       ac_old_val_w=`echo x $ac_old_val`
+       ac_new_val_w=`echo x $ac_new_val`
+       if test "$ac_old_val_w" != "$ac_new_val_w"; then
+         { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+         ac_cache_corrupted=:
+       else
+         { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+         eval $ac_var=\$ac_old_val
+       fi
+       { $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+       { $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+#--------------------------------------------------------------------
+# Call TEA_INIT as the first TEA_ macro to set up initial vars.
+# This will define a ${TEA_PLATFORM} variable == "unix" or "windows"
+# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE.
+#--------------------------------------------------------------------
+
+
+    # TEA extensions pass this us the version of TEA they think they
+    # are compatible with.
+    TEA_VERSION="3.7"
+
+    { $as_echo "$as_me:$LINENO: checking for correct TEA configuration" >&5
+$as_echo_n "checking for correct TEA configuration... " >&6; }
+    if test x"${PACKAGE_NAME}" = x ; then
+       { { $as_echo "$as_me:$LINENO: error: 
+The PACKAGE_NAME variable must be defined by your TEA configure.in" >&5
+$as_echo "$as_me: error: 
+The PACKAGE_NAME variable must be defined by your TEA configure.in" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    if test x"3.7" = x ; then
+       { { $as_echo "$as_me:$LINENO: error: 
+TEA version not specified." >&5
+$as_echo "$as_me: error: 
+TEA version not specified." >&2;}
+   { (exit 1); exit 1; }; }
+    elif test "3.7" != "${TEA_VERSION}" ; then
+       { $as_echo "$as_me:$LINENO: result: warning: requested TEA version \"3.7\", have \"${TEA_VERSION}\"" >&5
+$as_echo "warning: requested TEA version \"3.7\", have \"${TEA_VERSION}\"" >&6; }
+    else
+       { $as_echo "$as_me:$LINENO: result: ok (TEA ${TEA_VERSION})" >&5
+$as_echo "ok (TEA ${TEA_VERSION})" >&6; }
+    fi
+    case "`uname -s`" in
+       *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW32_*)
+           # Extract the first word of "cygpath", so it can be a program name with args.
+set dummy cygpath; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CYGPATH+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CYGPATH"; then
+  ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CYGPATH="cygpath -w"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_CYGPATH" && ac_cv_prog_CYGPATH="echo"
+fi
+fi
+CYGPATH=$ac_cv_prog_CYGPATH
+if test -n "$CYGPATH"; then
+  { $as_echo "$as_me:$LINENO: result: $CYGPATH" >&5
+$as_echo "$CYGPATH" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+           EXEEXT=".exe"
+           TEA_PLATFORM="windows"
+           ;;
+       *)
+           CYGPATH=echo
+           EXEEXT=""
+           TEA_PLATFORM="unix"
+           ;;
+    esac
+
+    # Check if exec_prefix is set. If not use fall back to prefix.
+    # Note when adjusted, so that TEA_PREFIX can correct for this.
+    # This is needed for recursive configures, since autoconf propagates
+    # $prefix, but not $exec_prefix (doh!).
+    if test x$exec_prefix = xNONE ; then
+       exec_prefix_default=yes
+       exec_prefix=$prefix
+    fi
+
+    
+    
+
+    # This package name must be replaced statically for AC_SUBST to work
+    
+    # Substitute STUB_LIB_FILE in case package creates a stub library too.
+    
+
+    # We AC_SUBST these here to ensure they are subst'ed,
+    # in case the user doesn't call TEA_ADD_...
+    
+    
+    
+    
+    
+    
+    
+
+
+ac_aux_dir=
+for ac_dir in tclconfig "$srcdir"/tclconfig; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in tclconfig \"$srcdir\"/tclconfig" >&5
+$as_echo "$as_me: error: cannot find install-sh or install.sh in tclconfig \"$srcdir\"/tclconfig" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+
+#--------------------------------------------------------------------
+# Load the tclConfig.sh file
+#--------------------------------------------------------------------
+
+
+        
+    #
+    # Ok, lets find the tcl configuration
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-tcl
+    #
+
+    if test x"${no_tcl}" = x ; then
+       # we reset no_tcl in case something fails here
+       no_tcl=true
+       
+@%:@ Check whether --with-tcl was given.
+if test "${with_tcl+set}" = set; then
+  withval=$with_tcl; with_tclconfig=${withval}
+fi
+
+       { $as_echo "$as_me:$LINENO: checking for Tcl configuration" >&5
+$as_echo_n "checking for Tcl configuration... " >&6; }
+       if test "${ac_cv_c_tclconfig+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+
+           # First check to see if --with-tcl was specified.
+           if test x"${with_tclconfig}" != x ; then
+               case ${with_tclconfig} in
+                   */tclConfig.sh )
+                       if test -f ${with_tclconfig}; then
+                           { $as_echo "$as_me:$LINENO: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&5
+$as_echo "$as_me: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&2;}
+                           with_tclconfig=`echo ${with_tclconfig} | sed 's!/tclConfig\.sh$!!'`
+                       fi ;;
+               esac
+               if test -f "${with_tclconfig}/tclConfig.sh" ; then
+                   ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
+               else
+                   { { $as_echo "$as_me:$LINENO: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >&5
+$as_echo "$as_me: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+           fi
+
+           # then check for a private Tcl installation
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in \
+                       ../tcl \
+                       `ls -dr ../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
+                       `ls -dr ../tcl[8-9].[0-9] 2>/dev/null` \
+                       `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \
+                       ../../tcl \
+                       `ls -dr ../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
+                       `ls -dr ../../tcl[8-9].[0-9] 2>/dev/null` \
+                       `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \
+                       ../../../tcl \
+                       `ls -dr ../../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
+                       `ls -dr ../../../tcl[8-9].[0-9] 2>/dev/null` \
+                       `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do
+                   if test "${TEA_PLATFORM}" = "windows" \
+                           -a -f "$i/win/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+                       break
+                   fi
+                   if test -f "$i/unix/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # on Darwin, check in Framework installation locations
+           if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d ~/Library/Frameworks 2>/dev/null` \
+                       `ls -d /Library/Frameworks 2>/dev/null` \
+                       `ls -d /Network/Library/Frameworks 2>/dev/null` \
+                       `ls -d /System/Library/Frameworks 2>/dev/null` \
+                       ; do
+                   if test -f "$i/Tcl.framework/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/Tcl.framework; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # TEA specific: on Windows, check in common installation locations
+           if test "${TEA_PLATFORM}" = "windows" \
+               -a x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d C:/Tcl/lib 2>/dev/null` \
+                       `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few common install locations
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d ${libdir} 2>/dev/null` \
+                       `ls -d ${exec_prefix}/lib 2>/dev/null` \
+                       `ls -d ${prefix}/lib 2>/dev/null` \
+                       `ls -d /usr/local/lib 2>/dev/null` \
+                       `ls -d /usr/contrib/lib 2>/dev/null` \
+                       `ls -d /usr/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few other private locations
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in \
+                       ${srcdir}/../tcl \
+                       `ls -dr ${srcdir}/../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
+                       `ls -dr ${srcdir}/../tcl[8-9].[0-9] 2>/dev/null` \
+                       `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null` ; do
+                   if test "${TEA_PLATFORM}" = "windows" \
+                           -a -f "$i/win/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+                       break
+                   fi
+                   if test -f "$i/unix/tclConfig.sh" ; then
+                   ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+                   break
+               fi
+               done
+           fi
+       
+fi
+
+
+       if test x"${ac_cv_c_tclconfig}" = x ; then
+           TCL_BIN_DIR="# no Tcl configs found"
+           { { $as_echo "$as_me:$LINENO: error: Can't find Tcl configuration definitions" >&5
+$as_echo "$as_me: error: Can't find Tcl configuration definitions" >&2;}
+   { (exit 1); exit 1; }; }
+       else
+           no_tcl=
+           TCL_BIN_DIR=${ac_cv_c_tclconfig}
+           { $as_echo "$as_me:$LINENO: result: found ${TCL_BIN_DIR}/tclConfig.sh" >&5
+$as_echo "found ${TCL_BIN_DIR}/tclConfig.sh" >&6; }
+       fi
+    fi
+
+
+    { $as_echo "$as_me:$LINENO: checking for existence of ${TCL_BIN_DIR}/tclConfig.sh" >&5
+$as_echo_n "checking for existence of ${TCL_BIN_DIR}/tclConfig.sh... " >&6; }
+
+    if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then
+        { $as_echo "$as_me:$LINENO: result: loading" >&5
+$as_echo "loading" >&6; }
+       . "${TCL_BIN_DIR}/tclConfig.sh"
+    else
+        { $as_echo "$as_me:$LINENO: result: could not find ${TCL_BIN_DIR}/tclConfig.sh" >&5
+$as_echo "could not find ${TCL_BIN_DIR}/tclConfig.sh" >&6; }
+    fi
+
+    # eval is required to do the TCL_DBGX substitution
+    eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
+    eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
+
+    # If the TCL_BIN_DIR is the build directory (not the install directory),
+    # then set the common variable name to the value of the build variables.
+    # For example, the variable TCL_LIB_SPEC will be set to the value
+    # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC
+    # instead of TCL_BUILD_LIB_SPEC since it will work with both an
+    # installed and uninstalled version of Tcl.
+    if test -f "${TCL_BIN_DIR}/Makefile" ; then
+        TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC}
+        TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC}
+        TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH}
+    elif test "`uname -s`" = "Darwin"; then
+       # If Tcl was built as a framework, attempt to use the libraries
+       # from the framework at the given location so that linking works
+       # against Tcl.framework installed in an arbitrary location.
+       case ${TCL_DEFS} in
+           *TCL_FRAMEWORK*)
+               if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then
+                   for i in "`cd ${TCL_BIN_DIR}; pwd`" \
+                            "`cd ${TCL_BIN_DIR}/../..; pwd`"; do
+                       if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then
+                           TCL_LIB_SPEC="-F`dirname "$i"` -framework ${TCL_LIB_FILE}"
+                           break
+                       fi
+                   done
+               fi
+               if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then
+                   TCL_STUB_LIB_SPEC="-L${TCL_BIN_DIR} ${TCL_STUB_LIB_FLAG}"
+                   TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"
+               fi
+               ;;
+       esac
+    fi
+
+    # eval is required to do the TCL_DBGX substitution
+    eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
+    eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
+    eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
+    eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
+
+    
+    
+    
+
+    
+    
+    
+
+    
+    
+    
+
+    # TEA specific:
+    
+    
+    
+    
+    
+
+
+#--------------------------------------------------------------------
+# Load the tkConfig.sh file if necessary (Tk extension)
+#--------------------------------------------------------------------
+
+#TEA_PATH_TKCONFIG
+#TEA_LOAD_TKCONFIG
+
+#-----------------------------------------------------------------------
+# Handle the --prefix=... option by defaulting to what Tcl gave.
+# Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER.
+#-----------------------------------------------------------------------
+
+
+    if test "${prefix}" = "NONE"; then
+       prefix_default=yes
+       if test x"${TCL_PREFIX}" != x; then
+           { $as_echo "$as_me:$LINENO: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&5
+$as_echo "$as_me: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&6;}
+           prefix=${TCL_PREFIX}
+       else
+           { $as_echo "$as_me:$LINENO: --prefix defaulting to /usr/local" >&5
+$as_echo "$as_me: --prefix defaulting to /usr/local" >&6;}
+           prefix=/usr/local
+       fi
+    fi
+    if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \
+       -o x"${exec_prefix_default}" = x"yes" ; then
+       if test x"${TCL_EXEC_PREFIX}" != x; then
+           { $as_echo "$as_me:$LINENO: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&5
+$as_echo "$as_me: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&6;}
+           exec_prefix=${TCL_EXEC_PREFIX}
+       else
+           { $as_echo "$as_me:$LINENO: --exec-prefix defaulting to ${prefix}" >&5
+$as_echo "$as_me: --exec-prefix defaulting to ${prefix}" >&6;}
+           exec_prefix=$prefix
+       fi
+    fi
+
+
+#-----------------------------------------------------------------------
+# Standard compiler checks.
+# This sets up CC by using the CC env var, or looks for gcc otherwise.
+# This also calls AC_PROG_CC, AC_PROG_INSTALL and a few others to create
+# the basic setup necessary to compile executables.
+#-----------------------------------------------------------------------
+
+
+    # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE)
+    # in this macro, they need to go into TEA_SETUP_COMPILER instead.
+
+    # If the user did not set CFLAGS, set it now to keep
+    # the AC_PROG_CC macro from adding "-g -O2".
+    if test "${CFLAGS+set}" != "set" ; then
+       CFLAGS=""
+    fi
+
+    ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $@%:@ != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { (ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+       ;;
+    [ab].out )
+       # We found the default executable, but exeext='' is most
+       # certainly right.
+       break;;
+    *.* )
+        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+       then :; else
+          ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+       fi
+       # We set ac_cv_exeext here because the later test for it is not
+       # safe: cross compilers may not add the suffix if given an `-o'
+       # argument, so we may need to know it at that point already.
+       # Even if this section looks crufty: it has the advantage of
+       # actually working.
+       break;;
+    * )
+       break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+if test -z "$ac_file"; then
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+    else
+       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+         break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_compiler_gnu=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_c_werror_flag=$ac_save_c_werror_flag
+        CFLAGS="-g"
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_c89=$ac_arg
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       
+fi
+
+rm -f core conftest.err conftest.$ac_objext 
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+    ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+                    Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+  
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+                    Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+    # Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+       if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+         if test $ac_prog = install &&
+           grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+           # AIX install.  It has an incompatible calling convention.
+           :
+         elif test $ac_prog = install &&
+           grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+           # program-specific install script used by HP pwplus--don't use.
+           :
+         else
+           rm -rf conftest.one conftest.two conftest.dir
+           echo one > conftest.one
+           echo two > conftest.two
+           mkdir conftest.dir
+           if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+             test -s conftest.one && test -s conftest.two &&
+             test -s conftest.dir/conftest.one &&
+             test -s conftest.dir/conftest.two
+           then
+             ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+             break 3
+           fi
+         fi
+       fi
+      done
+    done
+    ;;
+esac
+
+done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+    #--------------------------------------------------------------------
+    # Checks to see if the make program sets the $MAKE variable.
+    #--------------------------------------------------------------------
+
+    { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+       @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+    #--------------------------------------------------------------------
+    # Find ranlib
+    #--------------------------------------------------------------------
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+
+    #--------------------------------------------------------------------
+    # Determines the correct binary file extension (.o, .obj, .exe etc.)
+    #--------------------------------------------------------------------
+
+    
+    
+
+
+
+{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_header_stdc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_header_stdc=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+                  (('a' <= (c) && (c) <= 'i') \
+                    || ('j' <= (c) && (c) <= 'r') \
+                    || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+       || toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+  
+cat >>confdefs.h <<\_ACEOF
+@%:@define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                 inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+@%:@include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  eval "$as_ac_Header=yes"
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       eval "$as_ac_Header=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+fi
+
+done
+
+
+
+    # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here.
+    
+
+    #------------------------------------------------------------------------
+    # If we're using GCC, see if the compiler understands -pipe. If so, use it.
+    # It makes compiling go faster.  (This is only a performance feature.)
+    #------------------------------------------------------------------------
+
+    if test -z "$no_pipe" -a -n "$GCC"; then
+       { $as_echo "$as_me:$LINENO: checking if the compiler understands -pipe" >&5
+$as_echo_n "checking if the compiler understands -pipe... " >&6; }
+if test "${tcl_cv_cc_pipe+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+           hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe"
+           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_cc_pipe=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_cc_pipe=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           CFLAGS=$hold_cflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_cc_pipe" >&5
+$as_echo "$tcl_cv_cc_pipe" >&6; }
+       if test $tcl_cv_cc_pipe = yes; then
+           CFLAGS="$CFLAGS -pipe"
+       fi
+    fi
+
+    #--------------------------------------------------------------------
+    # Common compiler flag setup
+    #--------------------------------------------------------------------
+
+    
+ { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if test "${ac_cv_c_bigendian+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+              not a universal capable compiler
+            #endif
+            typedef int dummy;
+           
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  
+       # Check for potential -arch flags.  It is not universal unless
+       # there are some -arch flags.  Note that *ppc* also matches
+       # ppc64.  This check is also rather less than ideal.
+       case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in  #(
+         *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
+       esac
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+            #include <sys/param.h>
+          
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+                    && LITTLE_ENDIAN)
+             bogus endian macros
+            #endif
+          
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+               #include <sys/param.h>
+             
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+                not big endian
+               #endif
+             
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_bigendian=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_c_bigendian=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <limits.h>
+          
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+             bogus endian macros
+            #endif
+          
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <limits.h>
+             
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+                not big endian
+               #endif
+             
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_bigendian=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_c_bigendian=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then
+  # Try to guess by grepping values from an object file.
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+short int ascii_mm[] =
+                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+               short int ascii_ii[] =
+                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+               int use_ascii (int i) {
+                 return ascii_mm[i] + ascii_ii[i];
+               }
+               short int ebcdic_ii[] =
+                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+               short int ebcdic_mm[] =
+                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+               int use_ebcdic (int i) {
+                 return ebcdic_mm[i] + ebcdic_ii[i];
+               }
+               extern int foo;
+             
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+             ac_cv_c_bigendian=yes
+           fi
+           if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+             if test "$ac_cv_c_bigendian" = unknown; then
+               ac_cv_c_bigendian=no
+             else
+               # finding both strings is unlikely to happen, but who knows?
+               ac_cv_c_bigendian=unknown
+             fi
+           fi
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+            /* Are we little or big endian?  From Harbison&Steele.  */
+            union
+            {
+              long int l;
+              char c[sizeof (long int)];
+            } u;
+            u.l = 1;
+            return u.c[sizeof (long int) - 1] == 1;
+          
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=no
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_bigendian=yes
+fi
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+    fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     cat >>confdefs.h <<\_ACEOF
+@%:@define WORDS_BIGENDIAN 1
+_ACEOF
+;; #(
+   no)
+      ;; #(
+   universal)
+             
+cat >>confdefs.h <<\_ACEOF
+@%:@define AC_APPLE_UNIVERSAL_BUILD 1
+_ACEOF
+
+     ;; #(
+   *)
+     { { $as_echo "$as_me:$LINENO: error: unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+$as_echo "$as_me: error: unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+   { (exit 1); exit 1; }; } ;;
+ esac
+
+    if test "${TEA_PLATFORM}" = "unix" ; then
+       
+    #--------------------------------------------------------------------
+    # On a few very rare systems, all of the libm.a stuff is
+    # already in libc.a.  Set compiler flags accordingly.
+    # Also, Linux requires the "ieee" library for math to work
+    # right (and it must appear before "-lm").
+    #--------------------------------------------------------------------
+
+    { $as_echo "$as_me:$LINENO: checking for sin" >&5
+$as_echo_n "checking for sin... " >&6; }
+if test "${ac_cv_func_sin+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define sin to an innocuous variant, in case <limits.h> declares sin.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define sin innocuous_sin
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char sin (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef sin
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sin ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_sin || defined __stub___sin
+choke me
+#endif
+
+int
+main ()
+{
+return sin ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_func_sin=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_func_sin=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_sin" >&5
+$as_echo "$ac_cv_func_sin" >&6; }
+if test "x$ac_cv_func_sin" = x""yes; then
+  MATH_LIBS=""
+else
+  MATH_LIBS="-lm"
+fi
+
+    { $as_echo "$as_me:$LINENO: checking for main in -lieee" >&5
+$as_echo_n "checking for main in -lieee... " >&6; }
+if test "${ac_cv_lib_ieee_main+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lieee  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_ieee_main=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_ieee_main=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ieee_main" >&5
+$as_echo "$ac_cv_lib_ieee_main" >&6; }
+if test "x$ac_cv_lib_ieee_main" = x""yes; then
+  MATH_LIBS="-lieee $MATH_LIBS"
+fi
+
+
+    #--------------------------------------------------------------------
+    # Interactive UNIX requires -linet instead of -lsocket, plus it
+    # needs net/errno.h to define the socket-related error codes.
+    #--------------------------------------------------------------------
+
+    { $as_echo "$as_me:$LINENO: checking for main in -linet" >&5
+$as_echo_n "checking for main in -linet... " >&6; }
+if test "${ac_cv_lib_inet_main+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-linet  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_inet_main=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_inet_main=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_inet_main" >&5
+$as_echo "$ac_cv_lib_inet_main" >&6; }
+if test "x$ac_cv_lib_inet_main" = x""yes; then
+  LIBS="$LIBS -linet"
+fi
+
+    if test "${ac_cv_header_net_errno_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for net/errno.h" >&5
+$as_echo_n "checking for net/errno.h... " >&6; }
+if test "${ac_cv_header_net_errno_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_net_errno_h" >&5
+$as_echo "$ac_cv_header_net_errno_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking net/errno.h usability" >&5
+$as_echo_n "checking net/errno.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <net/errno.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking net/errno.h presence" >&5
+$as_echo_n "checking net/errno.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <net/errno.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: net/errno.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: net/errno.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: net/errno.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: net/errno.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: net/errno.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: net/errno.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: net/errno.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: net/errno.h: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for net/errno.h" >&5
+$as_echo_n "checking for net/errno.h... " >&6; }
+if test "${ac_cv_header_net_errno_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_net_errno_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_net_errno_h" >&5
+$as_echo "$ac_cv_header_net_errno_h" >&6; }
+
+fi
+if test "x$ac_cv_header_net_errno_h" = x""yes; then
+  
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define HAVE_NET_ERRNO_H 1
+_ACEOF
+
+fi
+
+
+
+    #--------------------------------------------------------------------
+    #  Check for the existence of the -lsocket and -lnsl libraries.
+    #  The order here is important, so that they end up in the right
+    #  order in the command line generated by make.  Here are some
+    #  special considerations:
+    #  1. Use "connect" and "accept" to check for -lsocket, and
+    #     "gethostbyname" to check for -lnsl.
+    #  2. Use each function name only once:  can't redo a check because
+    #     autoconf caches the results of the last check and won't redo it.
+    #  3. Use -lnsl and -lsocket only if they supply procedures that
+    #     aren't already present in the normal libraries.  This is because
+    #     IRIX 5.2 has libraries, but they aren't needed and they're
+    #     bogus:  they goof up name resolution if used.
+    #  4. On some SVR4 systems, can't use -lsocket without -lnsl too.
+    #     To get around this problem, check for both libraries together
+    #     if -lsocket doesn't work by itself.
+    #--------------------------------------------------------------------
+
+    tcl_checkBoth=0
+    { $as_echo "$as_me:$LINENO: checking for connect" >&5
+$as_echo_n "checking for connect... " >&6; }
+if test "${ac_cv_func_connect+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define connect to an innocuous variant, in case <limits.h> declares connect.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define connect innocuous_connect
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char connect (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef connect
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_connect || defined __stub___connect
+choke me
+#endif
+
+int
+main ()
+{
+return connect ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_func_connect=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_func_connect=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5
+$as_echo "$ac_cv_func_connect" >&6; }
+if test "x$ac_cv_func_connect" = x""yes; then
+  tcl_checkSocket=0
+else
+  tcl_checkSocket=1
+fi
+
+    if test "$tcl_checkSocket" = 1; then
+       { $as_echo "$as_me:$LINENO: checking for setsockopt" >&5
+$as_echo_n "checking for setsockopt... " >&6; }
+if test "${ac_cv_func_setsockopt+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define setsockopt to an innocuous variant, in case <limits.h> declares setsockopt.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define setsockopt innocuous_setsockopt
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char setsockopt (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef setsockopt
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setsockopt ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_setsockopt || defined __stub___setsockopt
+choke me
+#endif
+
+int
+main ()
+{
+return setsockopt ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_func_setsockopt=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_func_setsockopt=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_setsockopt" >&5
+$as_echo "$ac_cv_func_setsockopt" >&6; }
+if test "x$ac_cv_func_setsockopt" = x""yes; then
+  :
+else
+  { $as_echo "$as_me:$LINENO: checking for setsockopt in -lsocket" >&5
+$as_echo_n "checking for setsockopt in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_setsockopt+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_socket_setsockopt=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_socket_setsockopt=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_setsockopt" >&5
+$as_echo "$ac_cv_lib_socket_setsockopt" >&6; }
+if test "x$ac_cv_lib_socket_setsockopt" = x""yes; then
+  LIBS="$LIBS -lsocket"
+else
+  tcl_checkBoth=1
+fi
+
+fi
+
+    fi
+    if test "$tcl_checkBoth" = 1; then
+       tk_oldLibs=$LIBS
+       LIBS="$LIBS -lsocket -lnsl"
+       { $as_echo "$as_me:$LINENO: checking for accept" >&5
+$as_echo_n "checking for accept... " >&6; }
+if test "${ac_cv_func_accept+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define accept to an innocuous variant, in case <limits.h> declares accept.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define accept innocuous_accept
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char accept (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef accept
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char accept ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_accept || defined __stub___accept
+choke me
+#endif
+
+int
+main ()
+{
+return accept ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_func_accept=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_func_accept=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_accept" >&5
+$as_echo "$ac_cv_func_accept" >&6; }
+if test "x$ac_cv_func_accept" = x""yes; then
+  tcl_checkNsl=0
+else
+  LIBS=$tk_oldLibs
+fi
+
+    fi
+    { $as_echo "$as_me:$LINENO: checking for gethostbyname" >&5
+$as_echo_n "checking for gethostbyname... " >&6; }
+if test "${ac_cv_func_gethostbyname+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define gethostbyname innocuous_gethostbyname
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char gethostbyname (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef gethostbyname
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_gethostbyname || defined __stub___gethostbyname
+choke me
+#endif
+
+int
+main ()
+{
+return gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_func_gethostbyname=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_func_gethostbyname=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
+$as_echo "$ac_cv_func_gethostbyname" >&6; }
+if test "x$ac_cv_func_gethostbyname" = x""yes; then
+  :
+else
+  { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_nsl_gethostbyname=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_nsl_gethostbyname=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then
+  LIBS="$LIBS -lnsl"
+fi
+
+fi
+
+
+    # TEA specific: Don't perform the eval of the libraries here because
+    # DL_LIBS won't be set until we call TEA_CONFIG_CFLAGS
+
+    TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}'
+    
+    
+
+       
+    { $as_echo "$as_me:$LINENO: checking dirent.h" >&5
+$as_echo_n "checking dirent.h... " >&6; }
+if test "${tcl_cv_dirent_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <dirent.h>
+int
+main ()
+{
+
+#ifndef _POSIX_SOURCE
+#   ifdef __Lynx__
+       /*
+        * Generate compilation error to make the test fail:  Lynx headers
+        * are only valid if really in the POSIX environment.
+        */
+
+       missing_procedure();
+#   endif
+#endif
+DIR *d;
+struct dirent *entryPtr;
+char *p;
+d = opendir("foobar");
+entryPtr = readdir(d);
+p = entryPtr->d_name;
+closedir(d);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_dirent_h=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_dirent_h=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_dirent_h" >&5
+$as_echo "$tcl_cv_dirent_h" >&6; }
+
+    if test $tcl_cv_dirent_h = no; then
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define NO_DIRENT_H 1
+_ACEOF
+
+    fi
+
+    # TEA specific:
+    if test "${ac_cv_header_errno_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for errno.h" >&5
+$as_echo_n "checking for errno.h... " >&6; }
+if test "${ac_cv_header_errno_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_errno_h" >&5
+$as_echo "$ac_cv_header_errno_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking errno.h usability" >&5
+$as_echo_n "checking errno.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <errno.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking errno.h presence" >&5
+$as_echo_n "checking errno.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <errno.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: errno.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: errno.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: errno.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: errno.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: errno.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: errno.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: errno.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: errno.h: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for errno.h" >&5
+$as_echo_n "checking for errno.h... " >&6; }
+if test "${ac_cv_header_errno_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_errno_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_errno_h" >&5
+$as_echo "$ac_cv_header_errno_h" >&6; }
+
+fi
+if test "x$ac_cv_header_errno_h" = x""yes; then
+  :
+else
+  
+cat >>confdefs.h <<\_ACEOF
+@%:@define NO_ERRNO_H 1
+_ACEOF
+
+fi
+
+
+    if test "${ac_cv_header_float_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for float.h" >&5
+$as_echo_n "checking for float.h... " >&6; }
+if test "${ac_cv_header_float_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_float_h" >&5
+$as_echo "$ac_cv_header_float_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking float.h usability" >&5
+$as_echo_n "checking float.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <float.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking float.h presence" >&5
+$as_echo_n "checking float.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <float.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: float.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: float.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: float.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: float.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: float.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: float.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: float.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: float.h: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for float.h" >&5
+$as_echo_n "checking for float.h... " >&6; }
+if test "${ac_cv_header_float_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_float_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_float_h" >&5
+$as_echo "$ac_cv_header_float_h" >&6; }
+
+fi
+if test "x$ac_cv_header_float_h" = x""yes; then
+  :
+else
+  
+cat >>confdefs.h <<\_ACEOF
+@%:@define NO_FLOAT_H 1
+_ACEOF
+
+fi
+
+
+    if test "${ac_cv_header_values_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for values.h" >&5
+$as_echo_n "checking for values.h... " >&6; }
+if test "${ac_cv_header_values_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_values_h" >&5
+$as_echo "$ac_cv_header_values_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking values.h usability" >&5
+$as_echo_n "checking values.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <values.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking values.h presence" >&5
+$as_echo_n "checking values.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <values.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: values.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: values.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: values.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: values.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: values.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: values.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: values.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: values.h: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for values.h" >&5
+$as_echo_n "checking for values.h... " >&6; }
+if test "${ac_cv_header_values_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_values_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_values_h" >&5
+$as_echo "$ac_cv_header_values_h" >&6; }
+
+fi
+if test "x$ac_cv_header_values_h" = x""yes; then
+  :
+else
+  
+cat >>confdefs.h <<\_ACEOF
+@%:@define NO_VALUES_H 1
+_ACEOF
+
+fi
+
+
+    if test "${ac_cv_header_limits_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for limits.h" >&5
+$as_echo_n "checking for limits.h... " >&6; }
+if test "${ac_cv_header_limits_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_limits_h" >&5
+$as_echo "$ac_cv_header_limits_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking limits.h usability" >&5
+$as_echo_n "checking limits.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <limits.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking limits.h presence" >&5
+$as_echo_n "checking limits.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <limits.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: limits.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: limits.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: limits.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: limits.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: limits.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: limits.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: limits.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: limits.h: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for limits.h" >&5
+$as_echo_n "checking for limits.h... " >&6; }
+if test "${ac_cv_header_limits_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_limits_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_limits_h" >&5
+$as_echo "$ac_cv_header_limits_h" >&6; }
+
+fi
+if test "x$ac_cv_header_limits_h" = x""yes; then
+  
+cat >>confdefs.h <<\_ACEOF
+@%:@define HAVE_LIMITS_H 1
+_ACEOF
+
+else
+  
+cat >>confdefs.h <<\_ACEOF
+@%:@define NO_LIMITS_H 1
+_ACEOF
+
+fi
+
+
+    if test "${ac_cv_header_stdlib_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for stdlib.h" >&5
+$as_echo_n "checking for stdlib.h... " >&6; }
+if test "${ac_cv_header_stdlib_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdlib_h" >&5
+$as_echo "$ac_cv_header_stdlib_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking stdlib.h usability" >&5
+$as_echo_n "checking stdlib.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <stdlib.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking stdlib.h presence" >&5
+$as_echo_n "checking stdlib.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <stdlib.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: stdlib.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: stdlib.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: stdlib.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: stdlib.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: stdlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: stdlib.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: stdlib.h: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for stdlib.h" >&5
+$as_echo_n "checking for stdlib.h... " >&6; }
+if test "${ac_cv_header_stdlib_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_stdlib_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdlib_h" >&5
+$as_echo "$ac_cv_header_stdlib_h" >&6; }
+
+fi
+if test "x$ac_cv_header_stdlib_h" = x""yes; then
+  tcl_ok=1
+else
+  tcl_ok=0
+fi
+
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "strtol" >/dev/null 2>&1; then
+  :
+else
+  tcl_ok=0
+fi
+rm -f conftest*
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "strtoul" >/dev/null 2>&1; then
+  :
+else
+  tcl_ok=0
+fi
+rm -f conftest*
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "strtod" >/dev/null 2>&1; then
+  :
+else
+  tcl_ok=0
+fi
+rm -f conftest*
+
+    if test $tcl_ok = 0; then
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define NO_STDLIB_H 1
+_ACEOF
+
+    fi
+    if test "${ac_cv_header_string_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for string.h" >&5
+$as_echo_n "checking for string.h... " >&6; }
+if test "${ac_cv_header_string_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_string_h" >&5
+$as_echo "$ac_cv_header_string_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking string.h usability" >&5
+$as_echo_n "checking string.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <string.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking string.h presence" >&5
+$as_echo_n "checking string.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <string.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: string.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: string.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: string.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: string.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: string.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: string.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: string.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: string.h: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for string.h" >&5
+$as_echo_n "checking for string.h... " >&6; }
+if test "${ac_cv_header_string_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_string_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_string_h" >&5
+$as_echo "$ac_cv_header_string_h" >&6; }
+
+fi
+if test "x$ac_cv_header_string_h" = x""yes; then
+  tcl_ok=1
+else
+  tcl_ok=0
+fi
+
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "strstr" >/dev/null 2>&1; then
+  :
+else
+  tcl_ok=0
+fi
+rm -f conftest*
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "strerror" >/dev/null 2>&1; then
+  :
+else
+  tcl_ok=0
+fi
+rm -f conftest*
+
+
+    # See also memmove check below for a place where NO_STRING_H can be
+    # set and why.
+
+    if test $tcl_ok = 0; then
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define NO_STRING_H 1
+_ACEOF
+
+    fi
+
+    if test "${ac_cv_header_sys_wait_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for sys/wait.h" >&5
+$as_echo_n "checking for sys/wait.h... " >&6; }
+if test "${ac_cv_header_sys_wait_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
+$as_echo "$ac_cv_header_sys_wait_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking sys/wait.h usability" >&5
+$as_echo_n "checking sys/wait.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <sys/wait.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking sys/wait.h presence" >&5
+$as_echo_n "checking sys/wait.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <sys/wait.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: sys/wait.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: sys/wait.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for sys/wait.h" >&5
+$as_echo_n "checking for sys/wait.h... " >&6; }
+if test "${ac_cv_header_sys_wait_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_sys_wait_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
+$as_echo "$ac_cv_header_sys_wait_h" >&6; }
+
+fi
+if test "x$ac_cv_header_sys_wait_h" = x""yes; then
+  :
+else
+  
+cat >>confdefs.h <<\_ACEOF
+@%:@define NO_SYS_WAIT_H 1
+_ACEOF
+
+fi
+
+
+    if test "${ac_cv_header_dlfcn_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for dlfcn.h" >&5
+$as_echo_n "checking for dlfcn.h... " >&6; }
+if test "${ac_cv_header_dlfcn_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5
+$as_echo "$ac_cv_header_dlfcn_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking dlfcn.h usability" >&5
+$as_echo_n "checking dlfcn.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <dlfcn.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking dlfcn.h presence" >&5
+$as_echo_n "checking dlfcn.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <dlfcn.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: dlfcn.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: dlfcn.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for dlfcn.h" >&5
+$as_echo_n "checking for dlfcn.h... " >&6; }
+if test "${ac_cv_header_dlfcn_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_dlfcn_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5
+$as_echo "$ac_cv_header_dlfcn_h" >&6; }
+
+fi
+if test "x$ac_cv_header_dlfcn_h" = x""yes; then
+  :
+else
+  
+cat >>confdefs.h <<\_ACEOF
+@%:@define NO_DLFCN_H 1
+_ACEOF
+
+fi
+
+
+
+    # OS/390 lacks sys/param.h (and doesn't need it, by chance).
+    
+for ac_header in sys/param.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+fi
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+fi
+
+done
+
+
+       # Let the user call this, because if it triggers, they will
+       # need a compat/strtod.c that is correct.  Users can also
+       # use Tcl_GetDouble(FromObj) instead.
+       #TEA_BUGGY_STRTOD
+    fi
+
+
+#-----------------------------------------------------------------------
+# __CHANGE__
+# Specify the C source files to compile in TEA_ADD_SOURCES,
+# public headers that need to be installed in TEA_ADD_HEADERS,
+# stub library C source files to compile in TEA_ADD_STUB_SOURCES,
+# and runtime Tcl library files in TEA_ADD_TCL_SOURCES.
+# This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS
+# and PKG_TCL_SOURCES.
+#-----------------------------------------------------------------------
+
+
+    vars="tclcurl.c multi.c"
+    for i in $vars; do
+       case $i in
+           \$*)
+               # allow $-var names
+               PKG_SOURCES="$PKG_SOURCES $i"
+               PKG_OBJECTS="$PKG_OBJECTS $i"
+               ;;
+           *)
+               # check for existence - allows for generic/win/unix VPATH
+               # To add more dirs here (like 'src'), you have to update VPATH
+               # in Makefile.in as well
+               if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
+                   -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
+                   ; then
+                   { { $as_echo "$as_me:$LINENO: error: could not find source file '$i'" >&5
+$as_echo "$as_me: error: could not find source file '$i'" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+               PKG_SOURCES="$PKG_SOURCES $i"
+               # this assumes it is in a VPATH dir
+               i=`basename $i`
+               # handle user calling this before or after TEA_SETUP_COMPILER
+               if test x"${OBJEXT}" != x ; then
+                   j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}"
+               else
+                   j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}"
+               fi
+               PKG_OBJECTS="$PKG_OBJECTS $j"
+               ;;
+       esac
+    done
+    
+    
+
+TCLCURL_SCRIPTS=tclcurl.tcl
+
+
+#--------------------------------------------------------------------
+# Find libcurl, if it's not present, it makes no sense to compile
+# this.
+#--------------------------------------------------------------------
+
+
+@%:@ Check whether --with-curlprefix was given.
+if test "${with_curlprefix+set}" = set; then
+  withval=$with_curlprefix; 
+    curlprefix=$withval
+    curlpath=$curlprefix/bin
+    # Extract the first word of "curl", so it can be a program name with args.
+set dummy curl; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_curl+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$curl"; then
+  ac_cv_prog_curl="$curl" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $curlpath
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_curl="yes"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_curl" && ac_cv_prog_curl="no"
+fi
+fi
+curl=$ac_cv_prog_curl
+if test -n "$curl"; then
+  { $as_echo "$as_me:$LINENO: result: $curl" >&5
+$as_echo "$curl" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    if test "x$curl" = xno ; then
+       { { $as_echo "$as_me:$LINENO: error: can not find cURL in $curlpath" >&5
+$as_echo "$as_me: error: can not find cURL in $curlpath" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+else
+  
+    # Extract the first word of "curl-config", so it can be a program name with args.
+set dummy curl-config; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_curl+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$curl"; then
+  ac_cv_prog_curl="$curl" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_curl="yes"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_curl" && ac_cv_prog_curl="no"
+fi
+fi
+curl=$ac_cv_prog_curl
+if test -n "$curl"; then
+  { $as_echo "$as_me:$LINENO: result: $curl" >&5
+$as_echo "$curl" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    if test "x$curl" = xno ; then
+        { { $as_echo "$as_me:$LINENO: error: can not find cURL or libcurl... go to http://curl.haxx.se/ to download and then install it first" >&5
+$as_echo "$as_me: error: can not find cURL or libcurl... go to http://curl.haxx.se/ to download and then install it first" >&2;}
+   { (exit 1); exit 1; }; }
+    else
+        curlprefix=`curl-config --prefix`
+        curlpath=$curlprefix/bin
+    fi
+
+fi
+
+
+
+@%:@ Check whether --with-curlinclude was given.
+if test "${with_curlinclude+set}" = set; then
+  withval=$with_curlinclude; 
+    
+    vars="-I$withval"
+    for i in $vars; do
+       PKG_INCLUDES="$PKG_INCLUDES $i"
+    done
+    
+
+    curlinclude=$withval
+else
+  
+    
+    vars="-I$curlprefix/include"
+    for i in $vars; do
+       PKG_INCLUDES="$PKG_INCLUDES $i"
+    done
+    
+
+     curlinclude=$curlprefix/include
+fi
+
+
+if test "${ac_cv_header_curl_curl_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for curl/curl.h" >&5
+$as_echo_n "checking for curl/curl.h... " >&6; }
+if test "${ac_cv_header_curl_curl_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_curl_curl_h" >&5
+$as_echo "$ac_cv_header_curl_curl_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking curl/curl.h usability" >&5
+$as_echo_n "checking curl/curl.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+@%:@include <curl/curl.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking curl/curl.h presence" >&5
+$as_echo_n "checking curl/curl.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+@%:@include <curl/curl.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: curl/curl.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: curl/curl.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: in the future, the compiler will take precedence" >&2;}
+    
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for curl/curl.h" >&5
+$as_echo_n "checking for curl/curl.h... " >&6; }
+if test "${ac_cv_header_curl_curl_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_curl_curl_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_curl_curl_h" >&5
+$as_echo "$ac_cv_header_curl_curl_h" >&6; }
+
+fi
+if test "x$ac_cv_header_curl_curl_h" = x""yes; then
+  headercurl=yes
+else
+  headercurl=no
+fi
+
+
+if test "x$headercurl" = xno ; then
+    { $as_echo "$as_me:$LINENO: checking checking for headers at $curlinclude" >&5
+$as_echo_n "checking checking for headers at $curlinclude... " >&6; }
+    if test  ! -r $curlinclude/curl/curl.h  ; then
+        { { $as_echo "$as_me:$LINENO: error: cURL headers not found, you may need to install a curl-devel package" >&5
+$as_echo "$as_me: error: cURL headers not found, you may need to install a curl-devel package" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    { $as_echo "$as_me:$LINENO: result: found" >&5
+$as_echo "found" >&6; }
+fi
+
+
+@%:@ Check whether --with-libcurl was given.
+if test "${with_libcurl+set}" = set; then
+  withval=$with_libcurl; 
+    
+    vars="-L$withval"
+    for i in $vars; do
+       if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
+           # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
+           i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'`
+       fi
+       PKG_LIBS="$PKG_LIBS $i"
+    done
+    
+
+else
+   
+    
+    vars="-L$curlprefix/lib"
+    for i in $vars; do
+       if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
+           # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
+           i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'`
+       fi
+       PKG_LIBS="$PKG_LIBS $i"
+    done
+    
+
+fi
+
+
+{ $as_echo "$as_me:$LINENO: checking if libcurl version is recent enough" >&5
+$as_echo_n "checking if libcurl version is recent enough... " >&6; }
+CURL_VERSION=`$curlpath/curl-config --checkfor 7.19.6`
+if test "${CURL_VERSION}" != "" ; then
+    echo ${CURL_VERSION}
+    { { $as_echo "$as_me:$LINENO: error: libcurl version too old, please upgrade" >&5
+$as_echo "$as_me: error: libcurl version too old, please upgrade" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+    vars="`$curlpath/curl-config --libs`"
+    for i in $vars; do
+       if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
+           # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
+           i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'`
+       fi
+       PKG_LIBS="$PKG_LIBS $i"
+    done
+    
+
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# A few miscellaneous platform-specific items:
+#
+# Define a special symbol for Windows (BUILD_sample in this case) so
+# that we create the export library with the dll.
+#
+# Windows creates a few extra files that need to be cleaned up.
+# You can add more files to clean if your extension creates any extra
+# files.
+#
+# TEA_ADD_* any platform specific compiler/build info here.
+#--------------------------------------------------------------------
+
+# Add pkgIndex.tcl if it is generated in the Makefile instead of ./configure
+# and change Makefile.in to move it from CONFIG_CLEAN_FILES to BINARIES var.
+#CLEANFILES="pkgIndex.tcl"
+if test "${TEA_PLATFORM}" = "windows" ; then
+    
+cat >>confdefs.h <<\_ACEOF
+@%:@define BUILD_sample 1
+_ACEOF
+
+    CLEANFILES="$CLEANFILES *.lib *.dll *.exp *.ilk *.pdb vc*.pch"
+    #TEA_ADD_SOURCES([win/winFile.c])
+    #TEA_ADD_INCLUDES([-I\"$(${CYGPATH} ${srcdir}/win)\"])
+else
+    # Ensure no empty else clauses
+    :
+    #TEA_ADD_SOURCES([unix/unixFile.c])
+    #TEA_ADD_LIBS([-lsuperfly])
+fi
+
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Choose which headers you need.  Extension authors should try very
+# hard to only rely on the Tcl public header files.  Internal headers
+# contain private data structures and are subject to change without
+# notice.
+# This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG
+#--------------------------------------------------------------------
+
+
+    { $as_echo "$as_me:$LINENO: checking for Tcl public headers" >&5
+$as_echo_n "checking for Tcl public headers... " >&6; }
+
+    
+@%:@ Check whether --with-tclinclude was given.
+if test "${with_tclinclude+set}" = set; then
+  withval=$with_tclinclude; with_tclinclude=${withval}
+fi
+
+
+    if test "${ac_cv_c_tclh+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+       # Use the value from --with-tclinclude, if it was given
+
+       if test x"${with_tclinclude}" != x ; then
+           if test -f "${with_tclinclude}/tcl.h" ; then
+               ac_cv_c_tclh=${with_tclinclude}
+           else
+               { { $as_echo "$as_me:$LINENO: error: ${with_tclinclude} directory does not contain tcl.h" >&5
+$as_echo "$as_me: error: ${with_tclinclude} directory does not contain tcl.h" >&2;}
+   { (exit 1); exit 1; }; }
+           fi
+       else
+           list=""
+           if test "`uname -s`" = "Darwin"; then
+               # If Tcl was built as a framework, attempt to use
+               # the framework's Headers directory
+               case ${TCL_DEFS} in
+                   *TCL_FRAMEWORK*)
+                       list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`"
+                       ;;
+               esac
+           fi
+
+           # Look in the source dir only if Tcl is not installed,
+           # and in that situation, look there before installed locations.
+           if test -f "${TCL_BIN_DIR}/Makefile" ; then
+               list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`"
+           fi
+
+           # Check order: pkg --prefix location, Tcl's --prefix location,
+           # relative to directory of tclConfig.sh.
+
+           eval "temp_includedir=${includedir}"
+           list="$list \
+               `ls -d ${temp_includedir}        2>/dev/null` \
+               `ls -d ${TCL_PREFIX}/include     2>/dev/null` \
+               `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
+           if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
+               list="$list /usr/local/include /usr/include"
+               if test x"${TCL_INCLUDE_SPEC}" != x ; then
+                   d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'`
+                   list="$list `ls -d ${d} 2>/dev/null`"
+               fi
+           fi
+           for i in $list ; do
+               if test -f "$i/tcl.h" ; then
+                   ac_cv_c_tclh=$i
+                   break
+               fi
+           done
+       fi
+    
+fi
+
+
+    # Print a message based on how we determined the include path
+
+    if test x"${ac_cv_c_tclh}" = x ; then
+       { { $as_echo "$as_me:$LINENO: error: tcl.h not found.  Please specify its location with --with-tclinclude" >&5
+$as_echo "$as_me: error: tcl.h not found.  Please specify its location with --with-tclinclude" >&2;}
+   { (exit 1); exit 1; }; }
+    else
+       { $as_echo "$as_me:$LINENO: result: ${ac_cv_c_tclh}" >&5
+$as_echo "${ac_cv_c_tclh}" >&6; }
+    fi
+
+    # Convert to a native path and substitute into the output files.
+
+    INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}`
+
+    TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
+
+    
+
+#TEA_PRIVATE_TCL_HEADERS
+
+#TEA_PUBLIC_TK_HEADERS
+#TEA_PRIVATE_TK_HEADERS
+#TEA_PATH_X
+
+#--------------------------------------------------------------------
+# Check whether --enable-threads or --disable-threads was given.
+# This auto-enables if Tcl was compiled threaded.
+#--------------------------------------------------------------------
+
+
+    @%:@ Check whether --enable-threads was given.
+if test "${enable_threads+set}" = set; then
+  enableval=$enable_threads; tcl_ok=$enableval
+else
+  tcl_ok=yes
+fi
+
+
+    if test "${enable_threads+set}" = set; then
+       enableval="$enable_threads"
+       tcl_ok=$enableval
+    else
+       tcl_ok=yes
+    fi
+
+    if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
+       TCL_THREADS=1
+
+       if test "${TEA_PLATFORM}" != "windows" ; then
+           # We are always OK on Windows, so check what this platform wants:
+
+           # USE_THREAD_ALLOC tells us to try the special thread-based
+           # allocator that significantly reduces lock contention
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define USE_THREAD_ALLOC 1
+_ACEOF
+
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define _REENTRANT 1
+_ACEOF
+
+           if test "`uname -s`" = "SunOS" ; then
+               
+cat >>confdefs.h <<\_ACEOF
+@%:@define _POSIX_PTHREAD_SEMANTICS 1
+_ACEOF
+
+           fi
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define _THREAD_SAFE 1
+_ACEOF
+
+           { $as_echo "$as_me:$LINENO: checking for pthread_mutex_init in -lpthread" >&5
+$as_echo_n "checking for pthread_mutex_init in -lpthread... " >&6; }
+if test "${ac_cv_lib_pthread_pthread_mutex_init+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_mutex_init ();
+int
+main ()
+{
+return pthread_mutex_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_pthread_pthread_mutex_init=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_pthread_pthread_mutex_init=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_mutex_init" >&5
+$as_echo "$ac_cv_lib_pthread_pthread_mutex_init" >&6; }
+if test "x$ac_cv_lib_pthread_pthread_mutex_init" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+           if test "$tcl_ok" = "no"; then
+               # Check a little harder for __pthread_mutex_init in the same
+               # library, as some systems hide it there until pthread.h is
+               # defined.  We could alternatively do an AC_TRY_COMPILE with
+               # pthread.h, but that will work with libpthread really doesn't
+               # exist, like AIX 4.2.  [Bug: 4359]
+               { $as_echo "$as_me:$LINENO: checking for __pthread_mutex_init in -lpthread" >&5
+$as_echo_n "checking for __pthread_mutex_init in -lpthread... " >&6; }
+if test "${ac_cv_lib_pthread___pthread_mutex_init+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char __pthread_mutex_init ();
+int
+main ()
+{
+return __pthread_mutex_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_pthread___pthread_mutex_init=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_pthread___pthread_mutex_init=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread___pthread_mutex_init" >&5
+$as_echo "$ac_cv_lib_pthread___pthread_mutex_init" >&6; }
+if test "x$ac_cv_lib_pthread___pthread_mutex_init" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+           fi
+
+           if test "$tcl_ok" = "yes"; then
+               # The space is needed
+               THREADS_LIBS=" -lpthread"
+           else
+               { $as_echo "$as_me:$LINENO: checking for pthread_mutex_init in -lpthreads" >&5
+$as_echo_n "checking for pthread_mutex_init in -lpthreads... " >&6; }
+if test "${ac_cv_lib_pthreads_pthread_mutex_init+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthreads  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_mutex_init ();
+int
+main ()
+{
+return pthread_mutex_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_pthreads_pthread_mutex_init=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_pthreads_pthread_mutex_init=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthreads_pthread_mutex_init" >&5
+$as_echo "$ac_cv_lib_pthreads_pthread_mutex_init" >&6; }
+if test "x$ac_cv_lib_pthreads_pthread_mutex_init" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+               if test "$tcl_ok" = "yes"; then
+                   # The space is needed
+                   THREADS_LIBS=" -lpthreads"
+               else
+                   { $as_echo "$as_me:$LINENO: checking for pthread_mutex_init in -lc" >&5
+$as_echo_n "checking for pthread_mutex_init in -lc... " >&6; }
+if test "${ac_cv_lib_c_pthread_mutex_init+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lc  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_mutex_init ();
+int
+main ()
+{
+return pthread_mutex_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_c_pthread_mutex_init=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_c_pthread_mutex_init=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_c_pthread_mutex_init" >&5
+$as_echo "$ac_cv_lib_c_pthread_mutex_init" >&6; }
+if test "x$ac_cv_lib_c_pthread_mutex_init" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+                   if test "$tcl_ok" = "no"; then
+                       { $as_echo "$as_me:$LINENO: checking for pthread_mutex_init in -lc_r" >&5
+$as_echo_n "checking for pthread_mutex_init in -lc_r... " >&6; }
+if test "${ac_cv_lib_c_r_pthread_mutex_init+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lc_r  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_mutex_init ();
+int
+main ()
+{
+return pthread_mutex_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_c_r_pthread_mutex_init=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_c_r_pthread_mutex_init=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_pthread_mutex_init" >&5
+$as_echo "$ac_cv_lib_c_r_pthread_mutex_init" >&6; }
+if test "x$ac_cv_lib_c_r_pthread_mutex_init" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+                       if test "$tcl_ok" = "yes"; then
+                           # The space is needed
+                           THREADS_LIBS=" -pthread"
+                       else
+                           TCL_THREADS=0
+                           { $as_echo "$as_me:$LINENO: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&5
+$as_echo "$as_me: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&2;}
+                       fi
+                   fi
+               fi
+           fi
+       fi
+    else
+       TCL_THREADS=0
+    fi
+    # Do checking message here to not mess up interleaved configure output
+    { $as_echo "$as_me:$LINENO: checking for building with threads" >&5
+$as_echo_n "checking for building with threads... " >&6; }
+    if test "${TCL_THREADS}" = 1; then
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define TCL_THREADS 1
+_ACEOF
+
+       { $as_echo "$as_me:$LINENO: result: yes (default)" >&5
+$as_echo "yes (default)" >&6; }
+    else
+       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+    fi
+    # TCL_THREADS sanity checking.  See if our request for building with
+    # threads is the same as the way Tcl was built.  If not, warn the user.
+    case ${TCL_DEFS} in
+       *THREADS=1*)
+           if test "${TCL_THREADS}" = "0"; then
+               { $as_echo "$as_me:$LINENO: WARNING: 
+    Building ${PACKAGE_NAME} without threads enabled, but building against Tcl
+    that IS thread-enabled.  It is recommended to use --enable-threads." >&5
+$as_echo "$as_me: WARNING: 
+    Building ${PACKAGE_NAME} without threads enabled, but building against Tcl
+    that IS thread-enabled.  It is recommended to use --enable-threads." >&2;}
+           fi
+           ;;
+       *)
+           if test "${TCL_THREADS}" = "1"; then
+               { $as_echo "$as_me:$LINENO: WARNING: 
+    --enable-threads requested, but building against a Tcl that is NOT
+    thread-enabled.  This is an OK configuration that will also run in
+    a thread-enabled core." >&5
+$as_echo "$as_me: WARNING: 
+    --enable-threads requested, but building against a Tcl that is NOT
+    thread-enabled.  This is an OK configuration that will also run in
+    a thread-enabled core." >&2;}
+           fi
+           ;;
+    esac
+    
+
+
+#--------------------------------------------------------------------
+# The statement below defines a collection of symbols related to
+# building as a shared library instead of a static library.
+#--------------------------------------------------------------------
+
+
+    { $as_echo "$as_me:$LINENO: checking how to build libraries" >&5
+$as_echo_n "checking how to build libraries... " >&6; }
+    @%:@ Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval=$enable_shared; tcl_ok=$enableval
+else
+  tcl_ok=yes
+fi
+
+
+    if test "${enable_shared+set}" = set; then
+       enableval="$enable_shared"
+       tcl_ok=$enableval
+    else
+       tcl_ok=yes
+    fi
+
+    if test "$tcl_ok" = "yes" ; then
+       { $as_echo "$as_me:$LINENO: result: shared" >&5
+$as_echo "shared" >&6; }
+       SHARED_BUILD=1
+    else
+       { $as_echo "$as_me:$LINENO: result: static" >&5
+$as_echo "static" >&6; }
+       SHARED_BUILD=0
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define STATIC_BUILD 1
+_ACEOF
+
+    fi
+    
+
+
+#--------------------------------------------------------------------
+# This macro figures out what flags to use with the compiler/linker
+# when building shared/static debug/optimized objects.  This information
+# can be taken from the tclConfig.sh file, but this figures it all out.
+#--------------------------------------------------------------------
+
+
+        
+
+    # Step 0.a: Enable 64 bit support?
+
+    { $as_echo "$as_me:$LINENO: checking if 64bit support is requested" >&5
+$as_echo_n "checking if 64bit support is requested... " >&6; }
+    @%:@ Check whether --enable-64bit was given.
+if test "${enable_64bit+set}" = set; then
+  enableval=$enable_64bit; do64bit=$enableval
+else
+  do64bit=no
+fi
+
+    { $as_echo "$as_me:$LINENO: result: $do64bit" >&5
+$as_echo "$do64bit" >&6; }
+
+    # Step 0.b: Enable Solaris 64 bit VIS support?
+
+    { $as_echo "$as_me:$LINENO: checking if 64bit Sparc VIS support is requested" >&5
+$as_echo_n "checking if 64bit Sparc VIS support is requested... " >&6; }
+    @%:@ Check whether --enable-64bit-vis was given.
+if test "${enable_64bit_vis+set}" = set; then
+  enableval=$enable_64bit_vis; do64bitVIS=$enableval
+else
+  do64bitVIS=no
+fi
+
+    { $as_echo "$as_me:$LINENO: result: $do64bitVIS" >&5
+$as_echo "$do64bitVIS" >&6; }
+    # Force 64bit on with VIS
+    if test "$do64bitVIS" = "yes"; then
+  do64bit=yes
+fi
+
+
+    # Step 0.c: Check if visibility support is available. Do this here so
+    # that platform specific alternatives can be used below if this fails.
+
+    { $as_echo "$as_me:$LINENO: checking if compiler supports visibility \"hidden\"" >&5
+$as_echo_n "checking if compiler supports visibility \"hidden\"... " >&6; }
+if test "${tcl_cv_cc_visibility_hidden+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+       hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror"
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+           extern __attribute__((__visibility__("hidden"))) void f(void);
+           void f(void) {}
+int
+main ()
+{
+f();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_cc_visibility_hidden=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_cc_visibility_hidden=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+       CFLAGS=$hold_cflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_cc_visibility_hidden" >&5
+$as_echo "$tcl_cv_cc_visibility_hidden" >&6; }
+    if test $tcl_cv_cc_visibility_hidden = yes; then
+  
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define MODULE_SCOPE extern __attribute__((__visibility__("hidden")))
+_ACEOF
+
+    
+fi
+
+
+    # Step 0.d: Disable -rpath support?
+
+    { $as_echo "$as_me:$LINENO: checking if rpath support is requested" >&5
+$as_echo_n "checking if rpath support is requested... " >&6; }
+    @%:@ Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then
+  enableval=$enable_rpath; doRpath=$enableval
+else
+  doRpath=yes
+fi
+
+    { $as_echo "$as_me:$LINENO: result: $doRpath" >&5
+$as_echo "$doRpath" >&6; }
+
+    # TEA specific: Cross-compiling options for Windows/CE builds?
+
+    if test "${TEA_PLATFORM}" = windows; then
+  
+       { $as_echo "$as_me:$LINENO: checking if Windows/CE build is requested" >&5
+$as_echo_n "checking if Windows/CE build is requested... " >&6; }
+       @%:@ Check whether --enable-wince was given.
+if test "${enable_wince+set}" = set; then
+  enableval=$enable_wince; doWince=$enableval
+else
+  doWince=no
+fi
+
+       { $as_echo "$as_me:$LINENO: result: $doWince" >&5
+$as_echo "$doWince" >&6; }
+    
+fi
+
+
+    # Step 1: set the variable "system" to hold the name and version number
+    # for the system.
+
+    
+    { $as_echo "$as_me:$LINENO: checking system version" >&5
+$as_echo_n "checking system version... " >&6; }
+if test "${tcl_cv_sys_version+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+       # TEA specific:
+       if test "${TEA_PLATFORM}" = "windows" ; then
+           tcl_cv_sys_version=windows
+       elif test -f /usr/lib/NextStep/software_version; then
+           tcl_cv_sys_version=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
+       else
+           tcl_cv_sys_version=`uname -s`-`uname -r`
+           if test "$?" -ne 0 ; then
+               { $as_echo "$as_me:$LINENO: WARNING: can't find uname command" >&5
+$as_echo "$as_me: WARNING: can't find uname command" >&2;}
+               tcl_cv_sys_version=unknown
+           else
+               # Special check for weird MP-RAS system (uname returns weird
+               # results, and the version is kept in special file).
+
+               if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+                   tcl_cv_sys_version=MP-RAS-`awk '{print $3}' /etc/.relid`
+               fi
+               if test "`uname -s`" = "AIX" ; then
+                   tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+               fi
+           fi
+       fi
+    
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_sys_version" >&5
+$as_echo "$tcl_cv_sys_version" >&6; }
+    system=$tcl_cv_sys_version
+
+
+    # Step 2: check for existence of -ldl library.  This is needed because
+    # Linux can use either -ldl or -ldld for dynamic loading.
+
+    { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_dl_dlopen=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+  have_dl=yes
+else
+  have_dl=no
+fi
+
+
+    # Require ranlib early so we can override it in special cases below.
+
+    
+
+    # Step 3: set configuration options based on system name and version.
+    # This is similar to Tcl's unix/tcl.m4 except that we've added a
+    # "windows" case.
+
+    do64bit_ok=no
+    LDFLAGS_ORIG="$LDFLAGS"
+    # When ld needs options to work in 64-bit mode, put them in
+    # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load]
+    # is disabled by the user. [Bug 1016796]
+    LDFLAGS_ARCH=""
+    TCL_EXPORT_FILE_SUFFIX=""
+    UNSHARED_LIB_SUFFIX=""
+    # TEA specific: use PACKAGE_VERSION instead of VERSION
+    TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`'
+    ECHO_VERSION='`echo ${PACKAGE_VERSION}`'
+    TCL_LIB_VERSIONS_OK=ok
+    CFLAGS_DEBUG=-g
+    CFLAGS_OPTIMIZE=-O
+    if test "$GCC" = yes; then
+  
+       # TEA specific:
+       CFLAGS_OPTIMIZE=-O2
+       CFLAGS_WARNING="-Wall"
+    
+else
+  CFLAGS_WARNING=""
+fi
+
+    TCL_NEEDS_EXP_FILE=0
+    TCL_BUILD_EXP_FILE=""
+    TCL_EXP_FILE=""
+    # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AR+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_AR="ar"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:$LINENO: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    STLIB_LD='${AR} cr'
+    LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"
+    if test "x$SHLIB_VERSION" = x; then
+  SHLIB_VERSION="1.0"
+fi
+
+    case $system in
+       # TEA specific:
+       windows)
+           # This is a 2-stage check to make sure we have the 64-bit SDK
+           # We have to know where the SDK is installed.
+           # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs
+           # MACHINE is IX86 for LINK, but this is used by the manifest,
+           # which requires x86|amd64|ia64.
+           MACHINE="X86"
+           if test "$do64bit" != "no" ; then
+               if test "x${MSSDK}x" = "xx" ; then
+                   MSSDK="C:/Progra~1/Microsoft Platform SDK"
+               fi
+               MSSDK=`echo "$MSSDK" | sed -e  's!\\\!/!g'`
+               PATH64=""
+               case "$do64bit" in
+                   amd64|x64|yes)
+                       MACHINE="AMD64" ; # default to AMD64 64-bit build
+                       PATH64="${MSSDK}/Bin/Win64/x86/AMD64"
+                       ;;
+                   ia64)
+                       MACHINE="IA64"
+                       PATH64="${MSSDK}/Bin/Win64"
+                       ;;
+               esac
+               if test ! -d "${PATH64}" ; then
+                   { $as_echo "$as_me:$LINENO: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5
+$as_echo "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;}
+                   { $as_echo "$as_me:$LINENO: WARNING: Ensure latest Platform SDK is installed" >&5
+$as_echo "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;}
+                   do64bit="no"
+               else
+                   { $as_echo "$as_me:$LINENO: result:    Using 64-bit $MACHINE mode" >&5
+$as_echo "   Using 64-bit $MACHINE mode" >&6; }
+                   do64bit_ok="yes"
+               fi
+           fi
+
+           if test "$doWince" != "no" ; then
+               if test "$do64bit" != "no" ; then
+                   { { $as_echo "$as_me:$LINENO: error: Windows/CE and 64-bit builds incompatible" >&5
+$as_echo "$as_me: error: Windows/CE and 64-bit builds incompatible" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+               if test "$GCC" = "yes" ; then
+                   { { $as_echo "$as_me:$LINENO: error: Windows/CE and GCC builds incompatible" >&5
+$as_echo "$as_me: error: Windows/CE and GCC builds incompatible" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+               
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-celib
+
+    if test x"${no_celib}" = x ; then
+       # we reset no_celib in case something fails here
+       no_celib=true
+       
+@%:@ Check whether --with-celib was given.
+if test "${with_celib+set}" = set; then
+  withval=$with_celib; with_celibconfig=${withval}
+fi
+
+       { $as_echo "$as_me:$LINENO: checking for Windows/CE celib directory" >&5
+$as_echo_n "checking for Windows/CE celib directory... " >&6; }
+       if test "${ac_cv_c_celibconfig+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+           # First check to see if --with-celibconfig was specified.
+           if test x"${with_celibconfig}" != x ; then
+               if test -d "${with_celibconfig}/inc" ; then
+                   ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)`
+               else
+                   { { $as_echo "$as_me:$LINENO: error: ${with_celibconfig} directory doesn't contain inc directory" >&5
+$as_echo "$as_me: error: ${with_celibconfig} directory doesn't contain inc directory" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+           fi
+
+           # then check for a celib library
+           if test x"${ac_cv_c_celibconfig}" = x ; then
+               for i in \
+                       ../celib-palm-3.0 \
+                       ../celib \
+                       ../../celib-palm-3.0 \
+                       ../../celib \
+                       `ls -dr ../celib-*3.[0-9]* 2>/dev/null` \
+                       ${srcdir}/../celib-palm-3.0 \
+                       ${srcdir}/../celib \
+                       `ls -dr ${srcdir}/../celib-*3.[0-9]* 2>/dev/null` \
+                       ; do
+                   if test -d "$i/inc" ; then
+                       ac_cv_c_celibconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+       
+fi
+
+       if test x"${ac_cv_c_celibconfig}" = x ; then
+           { { $as_echo "$as_me:$LINENO: error: Cannot find celib support library directory" >&5
+$as_echo "$as_me: error: Cannot find celib support library directory" >&2;}
+   { (exit 1); exit 1; }; }
+       else
+           no_celib=
+           CELIB_DIR=${ac_cv_c_celibconfig}
+           CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'`
+           { $as_echo "$as_me:$LINENO: result: found $CELIB_DIR" >&5
+$as_echo "found $CELIB_DIR" >&6; }
+       fi
+    fi
+
+               # Set defaults for common evc4/PPC2003 setup
+               # Currently Tcl requires 300+, possibly 420+ for sockets
+               CEVERSION=420;          # could be 211 300 301 400 420 ...
+               TARGETCPU=ARMV4;        # could be ARMV4 ARM MIPS SH3 X86 ...
+               ARCH=ARM;               # could be ARM MIPS X86EM ...
+               PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002"
+               if test "$doWince" != "yes"; then
+                   # If !yes then the user specified something
+                   # Reset ARCH to allow user to skip specifying it
+                   ARCH=
+                   eval `echo $doWince | awk -F, '{ \
+           if (length($1)) { printf "CEVERSION=\"%s\"\n", $1; \
+           if ($1 < 400)   { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \
+           if (length($2)) { printf "TARGETCPU=\"%s\"\n", toupper($2) }; \
+           if (length($3)) { printf "ARCH=\"%s\"\n", toupper($3) }; \
+           if (length($4)) { printf "PLATFORM=\"%s\"\n", $4 }; \
+                   }'`
+                   if test "x${ARCH}" = "x" ; then
+                       ARCH=$TARGETCPU;
+                   fi
+               fi
+               OSVERSION=WCE$CEVERSION;
+               if test "x${WCEROOT}" = "x" ; then
+                       WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0"
+                   if test ! -d "${WCEROOT}" ; then
+                       WCEROOT="C:/Program Files/Microsoft eMbedded Tools"
+                   fi
+               fi
+               if test "x${SDKROOT}" = "x" ; then
+                   SDKROOT="C:/Program Files/Windows CE Tools"
+                   if test ! -d "${SDKROOT}" ; then
+                       SDKROOT="C:/Windows CE Tools"
+                   fi
+               fi
+               WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'`
+               SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'`
+               if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \
+                   -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then
+                   { { $as_echo "$as_me:$LINENO: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&5
+$as_echo "$as_me: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&2;}
+   { (exit 1); exit 1; }; }
+                   doWince="no"
+               else
+                   # We could PATH_NOSPACE these, but that's not important,
+                   # as long as we quote them when used.
+                   CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include"
+                   if test -d "${CEINCLUDE}/${TARGETCPU}" ; then
+                       CEINCLUDE="${CEINCLUDE}/${TARGETCPU}"
+                   fi
+                   CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}"
+               fi
+           fi
+
+           if test "$GCC" != "yes" ; then
+               if test "${SHARED_BUILD}" = "0" ; then
+                   runtime=-MT
+               else
+                   runtime=-MD
+               fi
+
+                if test "$do64bit" != "no" ; then
+                   # All this magic is necessary for the Win64 SDK RC1 - hobbs
+                   CC="\"${PATH64}/cl.exe\""
+                   CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\""
+                   RC="\"${MSSDK}/bin/rc.exe\""
+                   lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
+                   LINKBIN="\"${PATH64}/link.exe\""
+                   CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"
+                   CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+                   # Avoid 'unresolved external symbol __security_cookie'
+                   # errors, c.f. http://support.microsoft.com/?id=894573
+                   
+    vars="bufferoverflowU.lib"
+    for i in $vars; do
+       if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
+           # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
+           i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'`
+       fi
+       PKG_LIBS="$PKG_LIBS $i"
+    done
+    
+
+               elif test "$doWince" != "no" ; then
+                   CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin"
+                   if test "${TARGETCPU}" = "X86"; then
+                       CC="\"${CEBINROOT}/cl.exe\""
+                   else
+                       CC="\"${CEBINROOT}/cl${ARCH}.exe\""
+                   fi
+                   CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\""
+                   RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\""
+                   arch=`echo ${ARCH} | awk '{print tolower($0)}'`
+                   defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS"
+                   if test "${SHARED_BUILD}" = "1" ; then
+                       # Static CE builds require static celib as well
+                       defs="${defs} _DLL"
+                   fi
+                   for i in $defs ; do
+                       
+cat >>confdefs.h <<_ACEOF
+@%:@define $i 1
+_ACEOF
+
+                   done
+                   
+cat >>confdefs.h <<_ACEOF
+@%:@define _WIN32_WCE $CEVERSION
+_ACEOF
+
+                   
+cat >>confdefs.h <<_ACEOF
+@%:@define UNDER_CE $CEVERSION
+_ACEOF
+
+                   CFLAGS_DEBUG="-nologo -Zi -Od"
+                   CFLAGS_OPTIMIZE="-nologo -Ox"
+                   lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'`
+                   lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo"
+                   LINKBIN="\"${CEBINROOT}/link.exe\""
+                   
+               else
+                   RC="rc"
+                   lflags="-nologo"
+                   LINKBIN="link"
+                   CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d"
+                   CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+               fi
+           fi
+
+           if test "$GCC" = "yes"; then
+               # mingw gcc mode
+               RC="windres"
+               CFLAGS_DEBUG="-g"
+               CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer"
+               SHLIB_LD="$CC -shared"
+               UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+               LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}"
+               LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}"
+           else
+               SHLIB_LD="${LINKBIN} -dll ${lflags}"
+               # link -lib only works when -lib is the first arg
+               STLIB_LD="${LINKBIN} -lib ${lflags}"
+               UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.lib'
+               PATHTYPE=-w
+               # For information on what debugtype is most useful, see:
+               # http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp
+               # and also
+               # http://msdn2.microsoft.com/en-us/library/y0zzbyt4%28VS.80%29.aspx
+               # This essentially turns it all on.
+               LDFLAGS_DEBUG="-debug -debugtype:cv"
+               LDFLAGS_OPTIMIZE="-release"
+               if test "$doWince" != "no" ; then
+                   LDFLAGS_CONSOLE="-link ${lflags}"
+                   LDFLAGS_WINDOW=${LDFLAGS_CONSOLE}
+               else
+                   LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}"
+                   LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}"
+               fi
+           fi
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".dll"
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll'
+
+           TCL_LIB_VERSIONS_OK=nodots
+           # Bogus to avoid getting this turned off
+           DL_OBJS="tclLoadNone.obj"
+           ;;
+       AIX-*)
+           if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"; then
+  
+               # AIX requires the _r compiler when gcc isn't being used
+               case "${CC}" in
+                   *_r|*_r\ *)
+                       # ok ...
+                       ;;
+                   *)
+                       # Make sure only first arg gets _r
+                       CC=`echo "$CC" | sed -e 's/^\([^ ]*\)/\1_r/'`
+                       ;;
+               esac
+               { $as_echo "$as_me:$LINENO: result: Using $CC for compiling with threads" >&5
+$as_echo "Using $CC for compiling with threads" >&6; }
+           
+fi
+
+           LIBS="$LIBS -lc"
+           SHLIB_CFLAGS=""
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           DL_OBJS="tclLoadDl.o"
+           LD_LIBRARY_PATH_VAR="LIBPATH"
+
+           # Check to enable 64-bit flags for compiler/linker on AIX 4+
+           if test "$do64bit" = yes -a "`uname -v`" -gt 3; then
+  
+               if test "$GCC" = yes; then
+  
+                   { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;}
+               
+else
+  
+                   do64bit_ok=yes
+                   CFLAGS="$CFLAGS -q64"
+                   LDFLAGS_ARCH="-q64"
+                   RANLIB="${RANLIB} -X64"
+                   AR="${AR} -X64"
+                   SHLIB_LD_FLAGS="-b64"
+               
+fi
+
+           
+fi
+
+
+           if test "`uname -m`" = ia64; then
+  
+               # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC
+               SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+               # AIX-5 has dl* in libc.so
+               DL_LIBS=""
+               if test "$GCC" = yes; then
+  
+                   CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               
+else
+  
+                   CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
+               
+fi
+
+               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+           
+else
+  
+               if test "$GCC" = yes; then
+  SHLIB_LD='${CC} -shared'
+else
+  
+                   SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry"
+               
+fi
+
+               SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}"
+               DL_LIBS="-ldl"
+               CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+               TCL_NEEDS_EXP_FILE=1
+               # TEA specific: use PACKAGE_VERSION instead of VERSION
+               TCL_EXPORT_FILE_SUFFIX='${PACKAGE_VERSION}.exp'
+           
+fi
+
+
+           # AIX v<=4.1 has some different flags than 4.2+
+           if test "$system" = "AIX-4.1" -o "`uname -v`" -lt 4; then
+  
+               case " $LIB@&t@OBJS " in
+  *" tclLoadAix.$ac_objext "* ) ;;
+  *) LIB@&t@OBJS="$LIB@&t@OBJS tclLoadAix.$ac_objext"
+ ;;
+esac
+
+               DL_LIBS="-lld"
+           
+fi
+
+
+           # On AIX <=v4 systems, libbsd.a has to be linked in to support
+           # non-blocking file IO.  This library has to be linked in after
+           # the MATH_LIBS or it breaks the pow() function.  The way to
+           # insure proper sequencing, is to add it to the tail of MATH_LIBS.
+           # This library also supplies gettimeofday.
+           #
+           # AIX does not have a timezone field in struct tm. When the AIX
+           # bsd library is used, the timezone global and the gettimeofday
+           # methods are to be avoided for timezone deduction instead, we
+           # deduce the timezone by comparing the localtime result on a
+           # known GMT value.
+
+           { $as_echo "$as_me:$LINENO: checking for gettimeofday in -lbsd" >&5
+$as_echo_n "checking for gettimeofday in -lbsd... " >&6; }
+if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gettimeofday ();
+int
+main ()
+{
+return gettimeofday ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_bsd_gettimeofday=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_bsd_gettimeofday=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gettimeofday" >&5
+$as_echo "$ac_cv_lib_bsd_gettimeofday" >&6; }
+if test "x$ac_cv_lib_bsd_gettimeofday" = x""yes; then
+  libbsd=yes
+else
+  libbsd=no
+fi
+
+           if test $libbsd = yes; then
+  
+               MATH_LIBS="$MATH_LIBS -lbsd"
+               
+cat >>confdefs.h <<\_ACEOF
+@%:@define USE_DELTA_FOR_TZ 1
+_ACEOF
+
+           
+fi
+
+           ;;
+       BeOS*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD='${CC} -nostart'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+
+           #-----------------------------------------------------------
+           # Check for inet_ntoa in -lbind, for BeOS (which also needs
+           # -lsocket, even if the network functions are in -lnet which
+           # is always linked to, for compatibility.
+           #-----------------------------------------------------------
+           { $as_echo "$as_me:$LINENO: checking for inet_ntoa in -lbind" >&5
+$as_echo_n "checking for inet_ntoa in -lbind... " >&6; }
+if test "${ac_cv_lib_bind_inet_ntoa+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbind  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char inet_ntoa ();
+int
+main ()
+{
+return inet_ntoa ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_bind_inet_ntoa=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_bind_inet_ntoa=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_bind_inet_ntoa" >&5
+$as_echo "$ac_cv_lib_bind_inet_ntoa" >&6; }
+if test "x$ac_cv_lib_bind_inet_ntoa" = x""yes; then
+  LIBS="$LIBS -lbind -lsocket"
+fi
+
+           ;;
+       BSD/OS-2.1*|BSD/OS-3*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="shlicc -r"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       BSD/OS-4.*)
+           SHLIB_CFLAGS="-export-dynamic -fPIC"
+           SHLIB_LD='${CC} -shared'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -export-dynamic"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       dgux*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       HP-UX-*.11.*)
+           # Use updated header definitions where possible
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define _XOPEN_SOURCE_EXTENDED 1
+_ACEOF
+
+           # TEA specific: Needed by Tcl, but not most extensions
+           #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?])
+           #LIBS="$LIBS -lxnet"               # Use the XOPEN network library
+
+           if test "`uname -m`" = ia64; then
+  
+               SHLIB_SUFFIX=".so"
+               # Use newer C++ library for C++ extensions
+               #if test "$GCC" != "yes" ; then
+               #   CPPFLAGS="-AA"
+               #fi
+           
+else
+  
+               SHLIB_SUFFIX=".sl"
+           
+fi
+
+           { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_dld_shl_load=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+           if test "$tcl_ok" = yes; then
+  
+               SHLIB_LD_LIBS='${LIBS}'
+               DL_OBJS="tclLoadShl.o"
+               DL_LIBS="-ldld"
+               LDFLAGS="$LDFLAGS -E"
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
+               LD_LIBRARY_PATH_VAR="SHLIB_PATH"
+           
+fi
+
+           if test "$GCC" = yes; then
+  
+               SHLIB_LD='${CC} -shared'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           
+else
+  
+               CFLAGS="$CFLAGS -z"
+               # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc
+               #CFLAGS="$CFLAGS +DAportable"
+               SHLIB_CFLAGS="+z"
+               SHLIB_LD="ld -b"
+           
+fi
+
+
+           # Check to enable 64-bit flags for compiler/linker
+           if test "$do64bit" = "yes"; then
+  
+               if test "$GCC" = yes; then
+  
+                   case `${CC} -dumpmachine` in
+                       hppa64*)
+                           # 64-bit gcc in use.  Fix flags for GNU ld.
+                           do64bit_ok=yes
+                           SHLIB_LD='${CC} -shared'
+                           SHLIB_LD_LIBS='${LIBS}'
+                           if test $doRpath = yes; then
+  
+                               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+fi
+
+                           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+                           ;;
+                       *)
+                           { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;}
+                           ;;
+                   esac
+               
+else
+  
+                   do64bit_ok=yes
+                   CFLAGS="$CFLAGS +DD64"
+                   LDFLAGS_ARCH="+DD64"
+               
+fi
+
+           
+fi
+ ;;
+       HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*)
+           SHLIB_SUFFIX=".sl"
+           { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_dld_shl_load=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+           if test "$tcl_ok" = yes; then
+  
+               SHLIB_CFLAGS="+z"
+               SHLIB_LD="ld -b"
+               SHLIB_LD_LIBS=""
+               DL_OBJS="tclLoadShl.o"
+               DL_LIBS="-ldld"
+               LDFLAGS="$LDFLAGS -Wl,-E"
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
+               LD_LIBRARY_PATH_VAR="SHLIB_PATH"
+           
+fi
+ ;;
+       IRIX-5.*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -shared -rdata_shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+  
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+fi
+
+           ;;
+       IRIX-6.*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -n32 -shared -rdata_shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+  
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+fi
+
+           if test "$GCC" = yes; then
+  
+               CFLAGS="$CFLAGS -mabi=n32"
+               LDFLAGS="$LDFLAGS -mabi=n32"
+           
+else
+  
+               case $system in
+                   IRIX-6.3)
+                       # Use to build 6.2 compatible binaries on 6.3.
+                       CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS"
+                       ;;
+                   *)
+                       CFLAGS="$CFLAGS -n32"
+                       ;;
+               esac
+               LDFLAGS="$LDFLAGS -n32"
+           
+fi
+
+           ;;
+       IRIX64-6.*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -n32 -shared -rdata_shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+  
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+fi
+
+
+           # Check to enable 64-bit flags for compiler/linker
+
+           if test "$do64bit" = yes; then
+  
+               if test "$GCC" = yes; then
+  
+                   { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported by gcc" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported by gcc" >&2;}
+               
+else
+  
+                   do64bit_ok=yes
+                   SHLIB_LD="ld -64 -shared -rdata_shared"
+                   CFLAGS="$CFLAGS -64"
+                   LDFLAGS_ARCH="-64"
+               
+fi
+
+           
+fi
+
+           ;;
+       Linux*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           # TEA specific:
+           CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer"
+           # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
+           # when you inline the string and math operations.  Turn this off to
+           # get rid of the warnings.
+           #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+
+           # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
+           SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS_DEFAULT}'
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           if test $doRpath = yes; then
+  
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+fi
+
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           if test "`uname -m`" = "alpha"; then
+  CFLAGS="$CFLAGS -mieee"
+fi
+
+           if test $do64bit = yes; then
+  
+               { $as_echo "$as_me:$LINENO: checking if compiler accepts -m64 flag" >&5
+$as_echo_n "checking if compiler accepts -m64 flag... " >&6; }
+if test "${tcl_cv_cc_m64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+                   hold_cflags=$CFLAGS
+                   CFLAGS="$CFLAGS -m64"
+                   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_cc_m64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_cc_m64=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                   CFLAGS=$hold_cflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_cc_m64" >&5
+$as_echo "$tcl_cv_cc_m64" >&6; }
+               if test $tcl_cv_cc_m64 = yes; then
+  
+                   CFLAGS="$CFLAGS -m64"
+                   do64bit_ok=yes
+               
+fi
+
+          
+fi
+
+
+           # The combo of gcc + glibc has a bug related to inlining of
+           # functions like strtod(). The -fno-builtin flag should address
+           # this problem but it does not work. The -fno-inline flag is kind
+           # of overkill but it works. Disable inlining only when one of the
+           # files in compat/*.c is being linked in.
+
+           if test x"${USE_COMPAT}" != x; then
+  CFLAGS="$CFLAGS -fno-inline"
+fi
+
+
+           ;;
+       GNU*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           SHLIB_LD='${CC} -shared'
+           DL_OBJS=""
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           if test "`uname -m`" = "alpha"; then
+  CFLAGS="$CFLAGS -mieee"
+fi
+
+           ;;
+       Lynx*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           CFLAGS_OPTIMIZE=-02
+           SHLIB_LD='${CC} -shared'
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-mshared -ldl"
+           LD_FLAGS="-Wl,--export-dynamic"
+           if test $doRpath = yes; then
+  
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+fi
+
+           ;;
+       MP-RAS-02*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       MP-RAS-*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,-Bexport"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       NetBSD-1.*|FreeBSD-[1-2].*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+  
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+fi
+
+           { $as_echo "$as_me:$LINENO: checking for ELF" >&5
+$as_echo_n "checking for ELF... " >&6; }
+if test "${tcl_cv_ld_elf+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#ifdef __ELF__
+       yes
+#endif
+               
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  tcl_cv_ld_elf=yes
+else
+  tcl_cv_ld_elf=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5
+$as_echo "$tcl_cv_ld_elf" >&6; }
+           if test $tcl_cv_ld_elf = yes; then
+  
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+           
+else
+  
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
+           
+fi
+
+
+           # Ancient FreeBSD doesn't handle version numbers with dots.
+
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       OpenBSD-*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+  
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+fi
+
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
+           { $as_echo "$as_me:$LINENO: checking for ELF" >&5
+$as_echo_n "checking for ELF... " >&6; }
+if test "${tcl_cv_ld_elf+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#ifdef __ELF__
+       yes
+#endif
+               
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  tcl_cv_ld_elf=yes
+else
+  tcl_cv_ld_elf=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5
+$as_echo "$tcl_cv_ld_elf" >&6; }
+           if test $tcl_cv_ld_elf = yes; then
+  
+               LDFLAGS=-Wl,-export-dynamic
+           
+else
+  LDFLAGS=""
+fi
+
+
+           # OpenBSD doesn't do version numbers with dots.
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       NetBSD-*|FreeBSD-*)
+           # FreeBSD 3.* and greater have ELF.
+           # NetBSD 2.* has ELF and can use 'cc -shared' to build shared libs
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           LDFLAGS="$LDFLAGS -export-dynamic"
+           if test $doRpath = yes; then
+  
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+fi
+
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           if test "${TCL_THREADS}" = "1"; then
+  
+               # The -pthread needs to go in the CFLAGS, not LIBS
+               LIBS=`echo $LIBS | sed s/-pthread//`
+               CFLAGS="$CFLAGS -pthread"
+               LDFLAGS="$LDFLAGS -pthread"
+           
+fi
+
+           case $system in
+           FreeBSD-3.*)
+               # FreeBSD-3 doesn't handle version numbers with dots.
+               UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+               TCL_LIB_VERSIONS_OK=nodots
+               ;;
+           esac
+           ;;
+       Darwin-*)
+           CFLAGS_OPTIMIZE="-Os"
+           SHLIB_CFLAGS="-fno-common"
+           # To avoid discrepancies between what headers configure sees during
+           # preprocessing tests and compiling tests, move any -isysroot and
+           # -mmacosx-version-min flags from CFLAGS to CPPFLAGS:
+           CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \
+               awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \
+               if ($i~/^(isysroot|mmacosx-version-min)/) print "-"$i}'`"
+           CFLAGS="`echo " ${CFLAGS}" | \
+               awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \
+               if (!($i~/^(isysroot|mmacosx-version-min)/)) print "-"$i}'`"
+           if test $do64bit = yes; then
+  
+               case `arch` in
+                   ppc)
+                       { $as_echo "$as_me:$LINENO: checking if compiler accepts -arch ppc64 flag" >&5
+$as_echo_n "checking if compiler accepts -arch ppc64 flag... " >&6; }
+if test "${tcl_cv_cc_arch_ppc64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+                           hold_cflags=$CFLAGS
+                           CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
+                           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_cc_arch_ppc64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_cc_arch_ppc64=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                           CFLAGS=$hold_cflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_cc_arch_ppc64" >&5
+$as_echo "$tcl_cv_cc_arch_ppc64" >&6; }
+                       if test $tcl_cv_cc_arch_ppc64 = yes; then
+  
+                           CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
+                           do64bit_ok=yes
+                       
+fi
+;;
+                   i386)
+                       { $as_echo "$as_me:$LINENO: checking if compiler accepts -arch x86_64 flag" >&5
+$as_echo_n "checking if compiler accepts -arch x86_64 flag... " >&6; }
+if test "${tcl_cv_cc_arch_x86_64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+                           hold_cflags=$CFLAGS
+                           CFLAGS="$CFLAGS -arch x86_64"
+                           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_cc_arch_x86_64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_cc_arch_x86_64=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                           CFLAGS=$hold_cflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_cc_arch_x86_64" >&5
+$as_echo "$tcl_cv_cc_arch_x86_64" >&6; }
+                       if test $tcl_cv_cc_arch_x86_64 = yes; then
+  
+                           CFLAGS="$CFLAGS -arch x86_64"
+                           do64bit_ok=yes
+                       
+fi
+;;
+                   *)
+                       { $as_echo "$as_me:$LINENO: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5
+$as_echo "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&2;};;
+               esac
+           
+else
+  
+               # Check for combined 32-bit and 64-bit fat build
+               if echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \
+                   && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '; then
+  
+                   fat_32_64=yes
+fi
+
+           
+fi
+
+           # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
+           SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}'
+           { $as_echo "$as_me:$LINENO: checking if ld accepts -single_module flag" >&5
+$as_echo_n "checking if ld accepts -single_module flag... " >&6; }
+if test "${tcl_cv_ld_single_module+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module"
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+int i;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_ld_single_module=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_ld_single_module=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+               LDFLAGS=$hold_ldflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_ld_single_module" >&5
+$as_echo "$tcl_cv_ld_single_module" >&6; }
+           if test $tcl_cv_ld_single_module = yes; then
+  
+               SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
+           
+fi
+
+           # TEA specific: link shlib with current and compatiblity version flags
+           vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([0-9]\{1,5\}\)\(\(\.[0-9]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d`
+           SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".dylib"
+           DL_OBJS="tclLoadDyld.o"
+           DL_LIBS=""
+           # Don't use -prebind when building for Mac OS X 10.4 or later only:
+           if test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int($2)}'`" -lt 4 -a \
+               "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4; then
+  
+               LDFLAGS="$LDFLAGS -prebind"
+fi
+
+           LDFLAGS="$LDFLAGS -headerpad_max_install_names"
+           { $as_echo "$as_me:$LINENO: checking if ld accepts -search_paths_first flag" >&5
+$as_echo_n "checking if ld accepts -search_paths_first flag... " >&6; }
+if test "${tcl_cv_ld_search_paths_first+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+int i;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_ld_search_paths_first=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_ld_search_paths_first=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+               LDFLAGS=$hold_ldflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_ld_search_paths_first" >&5
+$as_echo "$tcl_cv_ld_search_paths_first" >&6; }
+           if test $tcl_cv_ld_search_paths_first = yes; then
+  
+               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+           
+fi
+
+           if test "$tcl_cv_cc_visibility_hidden" != yes; then
+  
+               
+cat >>confdefs.h <<\_ACEOF
+@%:@define MODULE_SCOPE __private_extern__
+_ACEOF
+
+           
+fi
+
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
+           # TEA specific: for combined 32 & 64 bit fat builds of Tk
+           # extensions, verify that 64-bit build is possible.
+           if test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}"; then
+  
+               if test "${TEA_WINDOWINGSYSTEM}" = x11; then
+  
+                   { $as_echo "$as_me:$LINENO: checking for 64-bit X11" >&5
+$as_echo_n "checking for 64-bit X11... " >&6; }
+if test "${tcl_cv_lib_x11_64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
+                       done
+                       CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include"
+                       LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
+                       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <X11/Xlib.h>
+int
+main ()
+{
+XrmInitialize();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_lib_x11_64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_lib_x11_64=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval $v'="$hold_'$v'"'
+                       done
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_lib_x11_64" >&5
+$as_echo "$tcl_cv_lib_x11_64" >&6; }
+               
+fi
+
+               if test "${TEA_WINDOWINGSYSTEM}" = aqua; then
+  
+                   { $as_echo "$as_me:$LINENO: checking for 64-bit Tk" >&5
+$as_echo_n "checking for 64-bit Tk... " >&6; }
+if test "${tcl_cv_lib_tk_64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
+                       done
+                       CPPFLAGS="$CPPFLAGS -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 ${TCL_INCLUDES} ${TK_INCLUDES}"
+                       LDFLAGS="$LDFLAGS ${TCL_STUB_LIB_SPEC} ${TK_STUB_LIB_SPEC}"
+                       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <tk.h>
+int
+main ()
+{
+Tk_InitStubs(NULL, "", 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_lib_tk_64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_lib_tk_64=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval $v'="$hold_'$v'"'
+                       done
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_lib_tk_64" >&5
+$as_echo "$tcl_cv_lib_tk_64" >&6; }
+               
+fi
+
+               # remove 64-bit arch flags from CFLAGS et al. if configuration
+               # does not support 64-bit.
+               if test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no; then
+  
+                   { $as_echo "$as_me:$LINENO: Removing 64-bit architectures from compiler & linker flags" >&5
+$as_echo "$as_me: Removing 64-bit architectures from compiler & linker flags" >&6;}
+                   for v in CFLAGS CPPFLAGS LDFLAGS; do
+                       eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"'
+                   done
+fi
+
+           
+fi
+
+           ;;
+       NEXTSTEP-*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD='${CC} -nostdlib -r'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadNext.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OS/390-*)
+           CFLAGS_OPTIMIZE=""          # Optimizer is buggy
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define _OE_SOCKETS 1
+_ACEOF
+
+           ;;
+       OSF1-1.0|OSF1-1.1|OSF1-1.2)
+           # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1
+           SHLIB_CFLAGS=""
+           # Hack: make package name same as library name
+           SHLIB_LD='ld -R -export :'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadOSF.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OSF1-1.*)
+           # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2
+           SHLIB_CFLAGS="-fPIC"
+           if test "$SHARED_BUILD" = 1; then
+  SHLIB_LD="ld -shared"
+else
+  
+               SHLIB_LD="ld -non_shared"
+           
+fi
+
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OSF1-V*)
+           # Digital OSF/1
+           SHLIB_CFLAGS=""
+           if test "$SHARED_BUILD" = 1; then
+  
+               SHLIB_LD='ld -shared -expect_unresolved "*"'
+           
+else
+  
+               SHLIB_LD='ld -non_shared -expect_unresolved "*"'
+           
+fi
+
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+  
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+fi
+
+           if test "$GCC" = yes; then
+  CFLAGS="$CFLAGS -mieee"
+else
+  
+               CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee"
+fi
+
+           # see pthread_intro(3) for pthread support on osf1, k.furukawa
+           if test "${TCL_THREADS}" = 1; then
+  
+               CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE"
+               CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64"
+               LIBS=`echo $LIBS | sed s/-lpthreads//`
+               if test "$GCC" = yes; then
+  
+                   LIBS="$LIBS -lpthread -lmach -lexc"
+               
+else
+  
+                   CFLAGS="$CFLAGS -pthread"
+                   LDFLAGS="$LDFLAGS -pthread"
+               
+fi
+
+           
+fi
+
+           ;;
+       QNX-6*)
+           # QNX RTP
+           # This may work for all QNX, but it was only reported for v6.
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           # dlopen is in -lc on QNX
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       SCO_SV-3.2*)
+           # Note, dlopen is available only on SCO 3.2.5 and greater. However,
+           # this test works, since "uname -s" was non-standard in 3.2.4 and
+           # below.
+           if test "$GCC" = yes; then
+  
+               SHLIB_CFLAGS="-fPIC -melf"
+               LDFLAGS="$LDFLAGS -melf -Wl,-Bexport"
+           
+else
+  
+               SHLIB_CFLAGS="-Kpic -belf"
+               LDFLAGS="$LDFLAGS -belf -Wl,-Bexport"
+           
+fi
+
+           SHLIB_LD="ld -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       SINIX*5.4*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       SunOS-4*)
+           SHLIB_CFLAGS="-PIC"
+           SHLIB_LD="ld"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+
+           # SunOS can't handle version numbers with dots in them in library
+           # specs, like -ltcl7.5, so use -ltcl75 instead.  Also, it
+           # requires an extra version number at the end of .so file names.
+           # So, the library has to have a name like libtcl75.so.1.0
+
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       SunOS-5.[0-6])
+           # Careful to not let 5.10+ fall into this case
+
+           # Note: If _REENTRANT isn't defined, then Solaris
+           # won't define thread-safe library routines.
+
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define _REENTRANT 1
+_ACEOF
+
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define _POSIX_PTHREAD_SEMANTICS 1
+_ACEOF
+
+
+           SHLIB_CFLAGS="-KPIC"
+
+           # Note: need the LIBS below, otherwise Tk won't find Tcl's
+           # symbols when dynamically loaded into tclsh.
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           if test "$GCC" = yes; then
+  
+               SHLIB_LD='${CC} -shared'
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           
+else
+  
+               SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+               CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           
+fi
+
+           ;;
+       SunOS-5*)
+           # Note: If _REENTRANT isn't defined, then Solaris
+           # won't define thread-safe library routines.
+
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define _REENTRANT 1
+_ACEOF
+
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define _POSIX_PTHREAD_SEMANTICS 1
+_ACEOF
+
+
+           SHLIB_CFLAGS="-KPIC"
+
+           # Check to enable 64-bit flags for compiler/linker
+           if test "$do64bit" = yes; then
+  
+               arch=`isainfo`
+               if test "$arch" = "sparcv9 sparc"; then
+  
+                   if test "$GCC" = yes; then
+  
+                       if test "`${CC} -dumpversion | awk -F. '{print $1}'`" -lt 3; then
+  
+                           { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;}
+                       
+else
+  
+                           do64bit_ok=yes
+                           CFLAGS="$CFLAGS -m64 -mcpu=v9"
+                           LDFLAGS="$LDFLAGS -m64 -mcpu=v9"
+                           SHLIB_CFLAGS="-fPIC"
+                       
+fi
+
+                   
+else
+  
+                       do64bit_ok=yes
+                       if test "$do64bitVIS" = yes; then
+  
+                           CFLAGS="$CFLAGS -xarch=v9a"
+                           LDFLAGS_ARCH="-xarch=v9a"
+                       
+else
+  
+                           CFLAGS="$CFLAGS -xarch=v9"
+                           LDFLAGS_ARCH="-xarch=v9"
+                       
+fi
+
+                       # Solaris 64 uses this as well
+                       #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64"
+                   
+fi
+
+               
+else
+  if test "$arch" = "amd64 i386"; then
+  
+                   if test "$GCC" = yes; then
+  
+                       case $system in
+                           SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*)
+                               do64bit_ok=yes
+                               CFLAGS="$CFLAGS -m64"
+                               LDFLAGS="$LDFLAGS -m64";;
+                           *)
+                               { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;};;
+                       esac
+                   
+else
+  
+                       do64bit_ok=yes
+                       case $system in
+                           SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*)
+                               CFLAGS="$CFLAGS -m64"
+                               LDFLAGS="$LDFLAGS -m64";;
+                           *)
+                               CFLAGS="$CFLAGS -xarch=amd64"
+                               LDFLAGS="$LDFLAGS -xarch=amd64";;
+                       esac
+                   
+fi
+
+               
+else
+  { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported for $arch" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;}
+fi
+
+fi
+
+           
+fi
+
+
+           # Note: need the LIBS below, otherwise Tk won't find Tcl's
+           # symbols when dynamically loaded into tclsh.
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           if test "$GCC" = yes; then
+  
+               SHLIB_LD='${CC} -shared'
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+               if test "$do64bit_ok" = yes; then
+  
+                   if test "$arch" = "sparcv9 sparc"; then
+  
+                       # We need to specify -static-libgcc or we need to
+                       # add the path to the sparv9 libgcc.
+                       # JH: static-libgcc is necessary for core Tcl, but may
+                       # not be necessary for extensions.
+                       SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc"
+                       # for finding sparcv9 libgcc, get the regular libgcc
+                       # path, remove so name and append 'sparcv9'
+                       #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
+                       #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir"
+                   
+else
+  if test "$arch" = "amd64 i386"; then
+  
+                       # JH: static-libgcc is necessary for core Tcl, but may
+                       # not be necessary for extensions.
+                       SHLIB_LD="$SHLIB_LD -m64 -static-libgcc"
+                   
+fi
+
+fi
+
+               
+fi
+
+           
+else
+  
+               case $system in
+                   SunOS-5.[1-9][0-9]*)
+                       # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
+                       SHLIB_LD='${CC} -G -z text ${LDFLAGS_DEFAULT}';;
+                   *)
+                       SHLIB_LD='/usr/ccs/bin/ld -G -z text';;
+               esac
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+           
+fi
+
+           ;;
+       UNIX_SV* | UnixWare-5*)
+           SHLIB_CFLAGS="-KPIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
+           # that don't grok the -Bexport option.  Test that it does.
+           { $as_echo "$as_me:$LINENO: checking for ld accepts -Bexport flag" >&5
+$as_echo_n "checking for ld accepts -Bexport flag... " >&6; }
+if test "${tcl_cv_ld_Bexport+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+int i;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_ld_Bexport=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_ld_Bexport=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+               LDFLAGS=$hold_ldflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_ld_Bexport" >&5
+$as_echo "$tcl_cv_ld_Bexport" >&6; }
+           if test $tcl_cv_ld_Bexport = yes; then
+  
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
+           
+fi
+
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+    esac
+
+    if test "$do64bit" = yes -a "$do64bit_ok" = no; then
+  
+       { $as_echo "$as_me:$LINENO: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5
+$as_echo "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;}
+    
+fi
+
+
+    
+
+    # Step 4: disable dynamic loading if requested via a command-line switch.
+
+    @%:@ Check whether --enable-load was given.
+if test "${enable_load+set}" = set; then
+  enableval=$enable_load; tcl_ok=$enableval
+else
+  tcl_ok=yes
+fi
+
+    if test "$tcl_ok" = no; then
+  DL_OBJS=""
+fi
+
+
+    if test "x$DL_OBJS" != x; then
+  BUILD_DLTEST="\$(DLTEST_TARGETS)"
+else
+  
+       { $as_echo "$as_me:$LINENO: WARNING: Can't figure out how to do dynamic loading or shared libraries on this system." >&5
+$as_echo "$as_me: WARNING: Can't figure out how to do dynamic loading or shared libraries on this system." >&2;}
+       SHLIB_CFLAGS=""
+       SHLIB_LD=""
+       SHLIB_SUFFIX=""
+       DL_OBJS="tclLoadNone.o"
+       DL_LIBS=""
+       LDFLAGS="$LDFLAGS_ORIG"
+       CC_SEARCH_FLAGS=""
+       LD_SEARCH_FLAGS=""
+       BUILD_DLTEST=""
+    
+fi
+
+    LDFLAGS="$LDFLAGS $LDFLAGS_ARCH"
+
+    # If we're running gcc, then change the C flags for compiling shared
+    # libraries to the right flags for gcc, instead of those for the
+    # standard manufacturer compiler.
+
+    if test "$DL_OBJS" != "tclLoadNone.o" -a "$GCC" = yes; then
+  
+       case $system in
+           AIX-*) ;;
+           BSD/OS*) ;;
+           IRIX*) ;;
+           NetBSD-*|FreeBSD-*) ;;
+           Darwin-*) ;;
+           SCO_SV-3.2*) ;;
+           windows) ;;
+           *) SHLIB_CFLAGS="-fPIC" ;;
+       esac
+fi
+
+
+    if test "$SHARED_LIB_SUFFIX" = ""; then
+  
+       # TEA specific: use PACKAGE_VERSION instead of VERSION
+       SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}'
+fi
+
+    if test "$UNSHARED_LIB_SUFFIX" = ""; then
+  
+       # TEA specific: use PACKAGE_VERSION instead of VERSION
+       UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a'
+fi
+
+
+    
+
+    
+    
+    
+
+    
+    
+
+    
+    
+
+    
+
+    # These must be called after we do the basic CFLAGS checks and
+    # verify any possible 64-bit or similar switches are necessary
+    
+    { $as_echo "$as_me:$LINENO: checking for required early compiler flags" >&5
+$as_echo_n "checking for required early compiler flags... " >&6; }
+    tcl_flags=""
+    
+    if test "${tcl_cv_flag__isoc99_source+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+int
+main ()
+{
+char *p = (char *)strtoll; char *q = (char *)strtoull;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__isoc99_source=no
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _ISOC99_SOURCE 1
+#include <stdlib.h>
+int
+main ()
+{
+char *p = (char *)strtoll; char *q = (char *)strtoull;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__isoc99_source=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_flag__isoc99_source=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    if test "x${tcl_cv_flag__isoc99_source}" = "xyes" ; then
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define _ISOC99_SOURCE 1
+_ACEOF
+
+       tcl_flags="$tcl_flags _ISOC99_SOURCE"
+    fi
+
+    
+    if test "${tcl_cv_flag__largefile64_source+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/stat.h>
+int
+main ()
+{
+struct stat64 buf; int i = stat64("/", &buf);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__largefile64_source=no
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGEFILE64_SOURCE 1
+#include <sys/stat.h>
+int
+main ()
+{
+struct stat64 buf; int i = stat64("/", &buf);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__largefile64_source=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_flag__largefile64_source=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    if test "x${tcl_cv_flag__largefile64_source}" = "xyes" ; then
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define _LARGEFILE64_SOURCE 1
+_ACEOF
+
+       tcl_flags="$tcl_flags _LARGEFILE64_SOURCE"
+    fi
+
+    
+    if test "${tcl_cv_flag__largefile_source64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/stat.h>
+int
+main ()
+{
+char *p = (char *)open64;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__largefile_source64=no
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGEFILE_SOURCE64 1
+#include <sys/stat.h>
+int
+main ()
+{
+char *p = (char *)open64;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__largefile_source64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_flag__largefile_source64=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    if test "x${tcl_cv_flag__largefile_source64}" = "xyes" ; then
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define _LARGEFILE_SOURCE64 1
+_ACEOF
+
+       tcl_flags="$tcl_flags _LARGEFILE_SOURCE64"
+    fi
+
+    if test "x${tcl_flags}" = "x" ; then
+       { $as_echo "$as_me:$LINENO: result: none" >&5
+$as_echo "none" >&6; }
+    else
+       { $as_echo "$as_me:$LINENO: result: ${tcl_flags}" >&5
+$as_echo "${tcl_flags}" >&6; }
+    fi
+
+    
+    { $as_echo "$as_me:$LINENO: checking for 64-bit integer type" >&5
+$as_echo_n "checking for 64-bit integer type... " >&6; }
+    if test "${tcl_cv_type_64bit+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+       tcl_cv_type_64bit=none
+       # See if the compiler knows natively about __int64
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+__int64 value = (__int64) 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_type_64bit=__int64
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_type_64bit="long long"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       # See if we should use long anyway  Note that we substitute in the
+       # type that is our current guess for a 64-bit type inside this check
+       # program, so it should be modified only carefully...
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+switch (0) { 
+            case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ; 
+        }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_type_64bit=${tcl_type_64bit}
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    if test "${tcl_cv_type_64bit}" = none ; then
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define TCL_WIDE_INT_IS_LONG 1
+_ACEOF
+
+       { $as_echo "$as_me:$LINENO: result: using long" >&5
+$as_echo "using long" >&6; }
+    elif test "${tcl_cv_type_64bit}" = "__int64" \
+               -a "${TEA_PLATFORM}" = "windows" ; then
+       # TEA specific: We actually want to use the default tcl.h checks in
+       # this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER*
+       { $as_echo "$as_me:$LINENO: result: using Tcl header defaults" >&5
+$as_echo "using Tcl header defaults" >&6; }
+    else
+       
+cat >>confdefs.h <<_ACEOF
+@%:@define TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit}
+_ACEOF
+
+       { $as_echo "$as_me:$LINENO: result: ${tcl_cv_type_64bit}" >&5
+$as_echo "${tcl_cv_type_64bit}" >&6; }
+
+       # Now check for auxiliary declarations
+       { $as_echo "$as_me:$LINENO: checking for struct dirent64" >&5
+$as_echo_n "checking for struct dirent64... " >&6; }
+if test "${tcl_cv_struct_dirent64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/dirent.h>
+int
+main ()
+{
+struct dirent64 p;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_struct_dirent64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_struct_dirent64=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_struct_dirent64" >&5
+$as_echo "$tcl_cv_struct_dirent64" >&6; }
+       if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define HAVE_STRUCT_DIRENT64 1
+_ACEOF
+
+       fi
+
+       { $as_echo "$as_me:$LINENO: checking for struct stat64" >&5
+$as_echo_n "checking for struct stat64... " >&6; }
+if test "${tcl_cv_struct_stat64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/stat.h>
+int
+main ()
+{
+struct stat64 p;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_struct_stat64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_struct_stat64=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_struct_stat64" >&5
+$as_echo "$tcl_cv_struct_stat64" >&6; }
+       if test "x${tcl_cv_struct_stat64}" = "xyes" ; then
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define HAVE_STRUCT_STAT64 1
+_ACEOF
+
+       fi
+
+       
+
+for ac_func in open64 lseek64
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  eval "$as_ac_var=yes"
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       eval "$as_ac_var=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+fi
+done
+
+       { $as_echo "$as_me:$LINENO: checking for off64_t" >&5
+$as_echo_n "checking for off64_t... " >&6; }
+       if test "${tcl_cv_type_off64_t+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  
+           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+int
+main ()
+{
+off64_t offset;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_type_off64_t=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_type_off64_t=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+                       if test "x${tcl_cv_type_off64_t}" = "xyes" && \
+               test "x${ac_cv_func_lseek64}" = "xyes" && \
+               test "x${ac_cv_func_open64}" = "xyes" ; then
+           
+cat >>confdefs.h <<\_ACEOF
+@%:@define HAVE_TYPE_OFF64_T 1
+_ACEOF
+
+           { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+       else
+           { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+       fi
+    fi
+
+
+
+#--------------------------------------------------------------------
+# Set the default compiler switches based on the --enable-symbols option.
+#--------------------------------------------------------------------
+
+
+        
+    { $as_echo "$as_me:$LINENO: checking for build with symbols" >&5
+$as_echo_n "checking for build with symbols... " >&6; }
+    @%:@ Check whether --enable-symbols was given.
+if test "${enable_symbols+set}" = set; then
+  enableval=$enable_symbols; tcl_ok=$enableval
+else
+  tcl_ok=no
+fi
+
+    DBGX=""
+    if test "$tcl_ok" = "no"; then
+       CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
+       LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
+       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+    else
+       CFLAGS_DEFAULT="${CFLAGS_DEBUG}"
+       LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}"
+       if test "$tcl_ok" = "yes"; then
+           { $as_echo "$as_me:$LINENO: result: yes (standard debugging)" >&5
+$as_echo "yes (standard debugging)" >&6; }
+       fi
+    fi
+    # TEA specific:
+    if test "${TEA_PLATFORM}" != "windows" ; then
+       LDFLAGS_DEFAULT="${LDFLAGS}"
+    fi
+    
+    
+    
+
+    if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then
+       
+cat >>confdefs.h <<\_ACEOF
+@%:@define TCL_MEM_DEBUG 1
+_ACEOF
+
+    fi
+
+    if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then
+       if test "$tcl_ok" = "all"; then
+           { $as_echo "$as_me:$LINENO: result: enabled symbols mem debugging" >&5
+$as_echo "enabled symbols mem debugging" >&6; }
+       else
+           { $as_echo "$as_me:$LINENO: result: enabled $tcl_ok debugging" >&5
+$as_echo "enabled $tcl_ok debugging" >&6; }
+       fi
+    fi
+
+
+#--------------------------------------------------------------------
+# Everyone should be linking against the Tcl stub library.  If you
+# can't for some reason, remove this definition.  If you aren't using
+# stubs, you also need to modify the SHLIB_LD_LIBS setting below to
+# link against the non-stubbed Tcl library.  Add Tk too if necessary.
+#--------------------------------------------------------------------
+
+
+cat >>confdefs.h <<\_ACEOF
+@%:@define USE_TCL_STUBS 1
+_ACEOF
+
+#AC_DEFINE(USE_TK_STUBS, 1, [Use Tk stubs])
+
+#--------------------------------------------------------------------
+# This macro generates a line to use when building a library.  It
+# depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS,
+# and TEA_LOAD_TCLCONFIG macros above.
+#--------------------------------------------------------------------
+
+
+    if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then
+       MAKE_STATIC_LIB="\${STLIB_LD} -out:\$@ \$(PKG_OBJECTS)"
+       MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\$@ \$(PKG_OBJECTS)"
+       MAKE_STUB_LIB="\${STLIB_LD} -out:\$@ \$(PKG_STUB_OBJECTS)"
+    else
+       MAKE_STATIC_LIB="\${STLIB_LD} \$@ \$(PKG_OBJECTS)"
+       MAKE_SHARED_LIB="\${SHLIB_LD} -o \$@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}"
+       MAKE_STUB_LIB="\${STLIB_LD} \$@ \$(PKG_STUB_OBJECTS)"
+    fi
+
+    if test "${SHARED_BUILD}" = "1" ; then
+       MAKE_LIB="${MAKE_SHARED_LIB} "
+    else
+       MAKE_LIB="${MAKE_STATIC_LIB} "
+    fi
+
+    #--------------------------------------------------------------------
+    # Shared libraries and static libraries have different names.
+    # Use the double eval to make sure any variables in the suffix is
+    # substituted. (@@@ Might not be necessary anymore)
+    #--------------------------------------------------------------------
+
+    if test "${TEA_PLATFORM}" = "windows" ; then
+       if test "${SHARED_BUILD}" = "1" ; then
+           # We force the unresolved linking of symbols that are really in
+           # the private libraries of Tcl and Tk.
+           SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\""
+           if test x"${TK_BIN_DIR}" != x ; then
+               SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\""
+           fi
+           eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+       else
+           eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+       fi
+       # Some packages build their own stubs libraries
+       eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+       if test "$GCC" = "yes"; then
+           PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE}
+       fi
+       # These aren't needed on Windows (either MSVC or gcc)
+       RANLIB=:
+       RANLIB_STUB=:
+    else
+       RANLIB_STUB="${RANLIB}"
+       if test "${SHARED_BUILD}" = "1" ; then
+           SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}"
+           if test x"${TK_BIN_DIR}" != x ; then
+               SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}"
+           fi
+           eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+           RANLIB=:
+       else
+           eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+       fi
+       # Some packages build their own stubs libraries
+       eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+    fi
+
+    # These are escaped so that only CFLAGS is picked up at configure time.
+    # The other values will be substituted at make time.
+    CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}"
+    if test "${SHARED_BUILD}" = "1" ; then
+       CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}"
+    fi
+
+    
+    
+    
+    
+    
+
+
+#--------------------------------------------------------------------
+# Determine the name of the tclsh and/or wish executables in the
+# Tcl and Tk build directories or the location they were installed
+# into. These paths are used to support running test cases only,
+# the Makefile should not be making use of these paths to generate
+# a pkgIndex.tcl file or anything else at extension build time.
+#--------------------------------------------------------------------
+
+
+    { $as_echo "$as_me:$LINENO: checking for tclsh" >&5
+$as_echo_n "checking for tclsh... " >&6; }
+    if test -f "${TCL_BIN_DIR}/Makefile" ; then
+        # tclConfig.sh is in Tcl build directory
+        if test "${TEA_PLATFORM}" = "windows"; then
+            TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
+        else
+            TCLSH_PROG="${TCL_BIN_DIR}/tclsh"
+        fi
+    else
+        # tclConfig.sh is in install location
+        if test "${TEA_PLATFORM}" = "windows"; then
+            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
+        else
+            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}"
+        fi
+        list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \
+              `ls -d ${TCL_BIN_DIR}/..     2>/dev/null` \
+              `ls -d ${TCL_PREFIX}/bin     2>/dev/null`"
+        for i in $list ; do
+            if test -f "$i/${TCLSH_PROG}" ; then
+                REAL_TCL_BIN_DIR="`cd "$i"; pwd`/"
+                break
+            fi
+        done
+        TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}"
+    fi
+    { $as_echo "$as_me:$LINENO: result: ${TCLSH_PROG}" >&5
+$as_echo "${TCLSH_PROG}" >&6; }
+    
+
+#TEA_PROG_WISH
+
+#--------------------------------------------------------------------
+# Finally, substitute all of the various values into the Makefile.
+# You may alternatively have a special pkgIndex.tcl.in or other files
+# which require substituting th AC variables in.  Include these here.
+#--------------------------------------------------------------------
+
+ac_config_files="$ac_config_files Makefile pkgIndex.tcl"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+       "s/'/'\\\\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    test "x$cache_file" != "x/dev/null" &&
+      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+    cat confcache >$cache_file
+  else
+    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section.  Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[    ]*#[    ]*define[       ][      ]*\([^  (][^    (]*([^)]*)\)[   ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[    ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[     `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+       g
+       s/^\n//
+       s/\n/ /g
+       p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIB@&t@OBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS=""
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in
+      *"$as_nl"*)
+       expr "X$arg" : "X\\(.*\\)$as_nl";
+       arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""       $as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+       test -d "$1/.";
+      else
+       case $1 in
+       -*)set "./$1";;
+       esac;
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+       ???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+
+# Save the log message, to keep $[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by TclCurl $as_me 7.19.6, which was
+generated by GNU Autoconf 2.63.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="`echo $ac_config_files`"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTION]... [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE] 
+                   instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Report bugs to <bug-autoconf@gnu.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_version="\\
+TclCurl config.status 7.19.6
+configured by $0, generated by GNU Autoconf 2.63,
+  with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h |  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { $as_echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
+@%:@@%:@ Running $as_me. @%:@@%:@
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "pkgIndex.tcl") CONFIG_FILES="$CONFIG_FILES pkgIndex.tcl" ;;
+
+  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp=
+  trap 'exit_status=$?
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} ||
+{
+   $as_echo "$as_me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr='\r'
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\).*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\).*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = "\a"
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
+$as_echo "$as_me: error: could not setup config files machinery" >&2;}
+   { (exit 1); exit 1; }; }
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[         ]*VPATH[        ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[    ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[      ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X "  :F $CONFIG_FILES      "
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
+   { (exit 1); exit 1; }; };;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+        # (if the path is not absolute).  The absolute path cannot be DOS-style,
+        # because $ac_f cannot contain `:'.
+        test -f "$ac_f" ||
+          case $ac_f in
+          [\\/$]*) false;;
+          *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+          esac ||
+          { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+   { (exit 1); exit 1; }; };;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      ac_file_inputs="$ac_file_inputs '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+         $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+       `' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$tmp/stdin" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; } ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$ac_file" : 'X\(//\)[^/]' \| \
+        X"$ac_file" : 'X\(//\)$' \| \
+        X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+  { as_dir="$ac_dir"
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
+   { (exit 1); exit 1; }; }; }
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p
+'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+    s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&2;}
+
+  rm -f "$tmp/stdin"
+  case $ac_file in
+  -) cat "$tmp/out" && rm -f "$tmp/out";;
+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  esac \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
+ ;;
+  
+  
+  
+  esac
+
+done # for ac_tag
+
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/autom4te.cache/requests b/autom4te.cache/requests
new file mode 100644 (file)
index 0000000..fbfa6dc
--- /dev/null
@@ -0,0 +1,67 @@
+# This file was generated.
+# It contains the lists of macros which have been traced.
+# It can be safely removed.
+
+@request = (
+             bless( [
+                      '0',
+                      1,
+                      [
+                        '/usr/share/autoconf'
+                      ],
+                      [
+                        '/usr/share/autoconf/autoconf/autoconf.m4f',
+                        'aclocal.m4',
+                        'configure.in'
+                      ],
+                      {
+                        'AM_PROG_F77_C_O' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'AC_INIT' => 1,
+                        'AC_CANONICAL_TARGET' => 1,
+                        '_AM_COND_IF' => 1,
+                        'AC_CONFIG_LIBOBJ_DIR' => 1,
+                        'AC_SUBST' => 1,
+                        'AC_CANONICAL_HOST' => 1,
+                        'AC_FC_SRCEXT' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
+                        'AC_CONFIG_SUBDIRS' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
+                        'AC_CONFIG_LINKS' => 1,
+                        'AC_REQUIRE_AUX_FILE' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        'm4_sinclude' => 1,
+                        'AM_MAINTAINER_MODE' => 1,
+                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+                        '_m4_warn' => 1,
+                        'AM_PROG_CXX_C_O' => 1,
+                        '_AM_COND_ENDIF' => 1,
+                        'AM_ENABLE_MULTILIB' => 1,
+                        'AC_CONFIG_FILES' => 1,
+                        'include' => 1,
+                        'LT_INIT' => 1,
+                        'AM_GNU_GETTEXT' => 1,
+                        'AC_LIBSOURCE' => 1,
+                        'AM_PROG_FC_C_O' => 1,
+                        'AC_CANONICAL_BUILD' => 1,
+                        'AC_FC_FREEFORM' => 1,
+                        'AH_OUTPUT' => 1,
+                        'AC_CONFIG_AUX_DIR' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
+                        'AM_PROG_CC_C_O' => 1,
+                        'm4_pattern_allow' => 1,
+                        'sinclude' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        'AC_CANONICAL_SYSTEM' => 1,
+                        'AC_CONFIG_HEADERS' => 1,
+                        'AC_DEFINE_TRACE_LITERAL' => 1,
+                        'm4_include' => 1,
+                        '_AM_COND_ELSE' => 1,
+                        'AC_SUBST_TRACE' => 1
+                      }
+                    ], 'Autom4te::Request' )
+           );
+
diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0
new file mode 100644 (file)
index 0000000..e05efa2
--- /dev/null
@@ -0,0 +1,823 @@
+m4trace:configure.in:22: -1- AC_INIT([TclCurl], [7.19.6])
+m4trace:configure.in:22: -1- m4_pattern_forbid([^_?A[CHUM]_])
+m4trace:configure.in:22: -1- m4_pattern_forbid([_AC_])
+m4trace:configure.in:22: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
+m4trace:configure.in:22: -1- m4_pattern_allow([^AS_FLAGS$])
+m4trace:configure.in:22: -1- m4_pattern_forbid([^_?m4_])
+m4trace:configure.in:22: -1- m4_pattern_forbid([^dnl$])
+m4trace:configure.in:22: -1- m4_pattern_forbid([^_?AS_])
+m4trace:configure.in:22: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([SHELL])
+m4trace:configure.in:22: -1- m4_pattern_allow([^SHELL$])
+m4trace:configure.in:22: -1- AC_SUBST([PATH_SEPARATOR])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PATH_SEPARATOR$])
+m4trace:configure.in:22: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME],      ['AC_PACKAGE_NAME'])])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([PACKAGE_NAME])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.in:22: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME],   ['AC_PACKAGE_TARNAME'])])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.in:22: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION],   ['AC_PACKAGE_VERSION'])])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.in:22: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING],    ['AC_PACKAGE_STRING'])])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([PACKAGE_STRING])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.in:22: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.in:22: -1- AC_SUBST([exec_prefix], [NONE])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([exec_prefix])
+m4trace:configure.in:22: -1- m4_pattern_allow([^exec_prefix$])
+m4trace:configure.in:22: -1- AC_SUBST([prefix], [NONE])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([prefix])
+m4trace:configure.in:22: -1- m4_pattern_allow([^prefix$])
+m4trace:configure.in:22: -1- AC_SUBST([program_transform_name], [s,x,x,])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([program_transform_name])
+m4trace:configure.in:22: -1- m4_pattern_allow([^program_transform_name$])
+m4trace:configure.in:22: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([bindir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^bindir$])
+m4trace:configure.in:22: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([sbindir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^sbindir$])
+m4trace:configure.in:22: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([libexecdir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^libexecdir$])
+m4trace:configure.in:22: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([datarootdir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.in:22: -1- AC_SUBST([datadir], ['${datarootdir}'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([datadir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^datadir$])
+m4trace:configure.in:22: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([sysconfdir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^sysconfdir$])
+m4trace:configure.in:22: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([sharedstatedir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^sharedstatedir$])
+m4trace:configure.in:22: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([localstatedir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^localstatedir$])
+m4trace:configure.in:22: -1- AC_SUBST([includedir], ['${prefix}/include'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([includedir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^includedir$])
+m4trace:configure.in:22: -1- AC_SUBST([oldincludedir], ['/usr/include'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([oldincludedir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^oldincludedir$])
+m4trace:configure.in:22: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
+                                    ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
+                                    ['${datarootdir}/doc/${PACKAGE}'])])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([docdir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.in:22: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([infodir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^infodir$])
+m4trace:configure.in:22: -1- AC_SUBST([htmldir], ['${docdir}'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([htmldir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.in:22: -1- AC_SUBST([dvidir], ['${docdir}'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([dvidir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.in:22: -1- AC_SUBST([pdfdir], ['${docdir}'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([pdfdir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.in:22: -1- AC_SUBST([psdir], ['${docdir}'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([psdir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.in:22: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([libdir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^libdir$])
+m4trace:configure.in:22: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([localedir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.in:22: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([mandir])
+m4trace:configure.in:22: -1- m4_pattern_allow([^mandir$])
+m4trace:configure.in:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.in:22: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
+#undef PACKAGE_NAME])
+m4trace:configure.in:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.in:22: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME])
+m4trace:configure.in:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.in:22: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
+#undef PACKAGE_VERSION])
+m4trace:configure.in:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.in:22: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING])
+m4trace:configure.in:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
+m4trace:configure.in:22: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.in:22: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT])
+m4trace:configure.in:22: -1- AC_SUBST([DEFS])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([DEFS])
+m4trace:configure.in:22: -1- m4_pattern_allow([^DEFS$])
+m4trace:configure.in:22: -1- AC_SUBST([ECHO_C])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([ECHO_C])
+m4trace:configure.in:22: -1- m4_pattern_allow([^ECHO_C$])
+m4trace:configure.in:22: -1- AC_SUBST([ECHO_N])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([ECHO_N])
+m4trace:configure.in:22: -1- m4_pattern_allow([^ECHO_N$])
+m4trace:configure.in:22: -1- AC_SUBST([ECHO_T])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([ECHO_T])
+m4trace:configure.in:22: -1- m4_pattern_allow([^ECHO_T$])
+m4trace:configure.in:22: -1- AC_SUBST([LIBS])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.in:22: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.in:22: -1- AC_SUBST([build_alias])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([build_alias])
+m4trace:configure.in:22: -1- m4_pattern_allow([^build_alias$])
+m4trace:configure.in:22: -1- AC_SUBST([host_alias])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([host_alias])
+m4trace:configure.in:22: -1- m4_pattern_allow([^host_alias$])
+m4trace:configure.in:22: -1- AC_SUBST([target_alias])
+m4trace:configure.in:22: -1- AC_SUBST_TRACE([target_alias])
+m4trace:configure.in:22: -1- m4_pattern_allow([^target_alias$])
+m4trace:configure.in:30: -1- AC_SUBST([CYGPATH])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([CYGPATH])
+m4trace:configure.in:30: -1- m4_pattern_allow([^CYGPATH$])
+m4trace:configure.in:30: -1- AC_SUBST([EXEEXT])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([EXEEXT])
+m4trace:configure.in:30: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.in:30: -1- AC_SUBST([CYGPATH])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([CYGPATH])
+m4trace:configure.in:30: -1- m4_pattern_allow([^CYGPATH$])
+m4trace:configure.in:30: -1- AC_SUBST([PKG_LIB_FILE])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([PKG_LIB_FILE])
+m4trace:configure.in:30: -1- m4_pattern_allow([^PKG_LIB_FILE$])
+m4trace:configure.in:30: -1- AC_SUBST([PKG_STUB_LIB_FILE])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([PKG_STUB_LIB_FILE])
+m4trace:configure.in:30: -1- m4_pattern_allow([^PKG_STUB_LIB_FILE$])
+m4trace:configure.in:30: -1- AC_SUBST([PKG_STUB_SOURCES])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([PKG_STUB_SOURCES])
+m4trace:configure.in:30: -1- m4_pattern_allow([^PKG_STUB_SOURCES$])
+m4trace:configure.in:30: -1- AC_SUBST([PKG_STUB_OBJECTS])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([PKG_STUB_OBJECTS])
+m4trace:configure.in:30: -1- m4_pattern_allow([^PKG_STUB_OBJECTS$])
+m4trace:configure.in:30: -1- AC_SUBST([PKG_TCL_SOURCES])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([PKG_TCL_SOURCES])
+m4trace:configure.in:30: -1- m4_pattern_allow([^PKG_TCL_SOURCES$])
+m4trace:configure.in:30: -1- AC_SUBST([PKG_HEADERS])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([PKG_HEADERS])
+m4trace:configure.in:30: -1- m4_pattern_allow([^PKG_HEADERS$])
+m4trace:configure.in:30: -1- AC_SUBST([PKG_INCLUDES])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([PKG_INCLUDES])
+m4trace:configure.in:30: -1- m4_pattern_allow([^PKG_INCLUDES$])
+m4trace:configure.in:30: -1- AC_SUBST([PKG_LIBS])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([PKG_LIBS])
+m4trace:configure.in:30: -1- m4_pattern_allow([^PKG_LIBS$])
+m4trace:configure.in:30: -1- AC_SUBST([PKG_CFLAGS])
+m4trace:configure.in:30: -1- AC_SUBST_TRACE([PKG_CFLAGS])
+m4trace:configure.in:30: -1- m4_pattern_allow([^PKG_CFLAGS$])
+m4trace:configure.in:32: -1- AC_CONFIG_AUX_DIR([tclconfig])
+m4trace:configure.in:38: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+tclconfig/tcl.m4:45: TEA_PATH_TCLCONFIG is expanded from...
+configure.in:38: the top level])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_VERSION])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_VERSION])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_VERSION$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_BIN_DIR])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_BIN_DIR])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_BIN_DIR$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_SRC_DIR])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_SRC_DIR])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_SRC_DIR$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_LIB_FILE])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_LIB_FILE])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_LIB_FILE$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_LIB_FLAG])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_LIB_FLAG])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_LIB_FLAG$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_LIB_SPEC])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_LIB_SPEC])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_LIB_SPEC$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_STUB_LIB_FILE])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_STUB_LIB_FILE])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_STUB_LIB_FILE$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_STUB_LIB_FLAG])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_STUB_LIB_FLAG])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_STUB_LIB_FLAG$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_STUB_LIB_SPEC])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_STUB_LIB_SPEC])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_STUB_LIB_SPEC$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_LIBS])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_LIBS])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_LIBS$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_DEFS])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_DEFS])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_DEFS$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_EXTRA_CFLAGS])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_EXTRA_CFLAGS])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_EXTRA_CFLAGS$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_LD_FLAGS])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_LD_FLAGS])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_LD_FLAGS$])
+m4trace:configure.in:39: -1- AC_SUBST([TCL_SHLIB_LD_LIBS])
+m4trace:configure.in:39: -1- AC_SUBST_TRACE([TCL_SHLIB_LD_LIBS])
+m4trace:configure.in:39: -1- m4_pattern_allow([^TCL_SHLIB_LD_LIBS$])
+m4trace:configure.in:62: -1- AC_SUBST([CC])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.in:62: -1- m4_pattern_allow([^CC$])
+m4trace:configure.in:62: -1- AC_SUBST([CFLAGS])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([CFLAGS])
+m4trace:configure.in:62: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.in:62: -1- AC_SUBST([LDFLAGS])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([LDFLAGS])
+m4trace:configure.in:62: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.in:62: -1- AC_SUBST([LIBS])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.in:62: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.in:62: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.in:62: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.in:62: -1- AC_SUBST([CC])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.in:62: -1- m4_pattern_allow([^CC$])
+m4trace:configure.in:62: -1- AC_SUBST([CC])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.in:62: -1- m4_pattern_allow([^CC$])
+m4trace:configure.in:62: -1- AC_SUBST([CC])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.in:62: -1- m4_pattern_allow([^CC$])
+m4trace:configure.in:62: -1- AC_SUBST([CC])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.in:62: -1- m4_pattern_allow([^CC$])
+m4trace:configure.in:62: -1- AC_SUBST([ac_ct_CC])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([ac_ct_CC])
+m4trace:configure.in:62: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.in:62: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([EXEEXT])
+m4trace:configure.in:62: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.in:62: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([OBJEXT])
+m4trace:configure.in:62: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.in:62: -1- AC_SUBST([CPP])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([CPP])
+m4trace:configure.in:62: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.in:62: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.in:62: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.in:62: -1- AC_SUBST([CPP])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([CPP])
+m4trace:configure.in:62: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.in:62: -1- AC_REQUIRE_AUX_FILE([install-sh])
+m4trace:configure.in:62: -1- AC_SUBST([INSTALL_PROGRAM])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
+m4trace:configure.in:62: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.in:62: -1- AC_SUBST([INSTALL_SCRIPT])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
+m4trace:configure.in:62: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.in:62: -1- AC_SUBST([INSTALL_DATA])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([INSTALL_DATA])
+m4trace:configure.in:62: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.in:62: -1- AC_SUBST([SET_MAKE])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([SET_MAKE])
+m4trace:configure.in:62: -1- m4_pattern_allow([^SET_MAKE$])
+m4trace:configure.in:62: -1- AC_SUBST([RANLIB])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([RANLIB])
+m4trace:configure.in:62: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.in:62: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+tclconfig/tcl.m4:3344: TEA_SETUP_COMPILER is expanded from...
+configure.in:62: the top level])
+m4trace:configure.in:62: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+#  undef WORDS_BIGENDIAN
+# endif
+#endif])
+m4trace:configure.in:62: -1- AC_SUBST([GREP])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([GREP])
+m4trace:configure.in:62: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.in:62: -1- AC_SUBST([EGREP])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([EGREP])
+m4trace:configure.in:62: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
+m4trace:configure.in:62: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.in:62: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN])
+m4trace:configure.in:62: -1- m4_pattern_allow([^WORDS_BIGENDIAN$])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([AC_APPLE_UNIVERSAL_BUILD])
+m4trace:configure.in:62: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$])
+m4trace:configure.in:62: -1- AH_OUTPUT([AC_APPLE_UNIVERSAL_BUILD], [/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([HAVE_NET_ERRNO_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^HAVE_NET_ERRNO_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_NET_ERRNO_H], [/* Do we have <net/errno.h>? */
+#undef HAVE_NET_ERRNO_H])
+m4trace:configure.in:62: -1- AC_SUBST([TCL_LIBS])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([TCL_LIBS])
+m4trace:configure.in:62: -1- m4_pattern_allow([^TCL_LIBS$])
+m4trace:configure.in:62: -1- AC_SUBST([MATH_LIBS])
+m4trace:configure.in:62: -1- AC_SUBST_TRACE([MATH_LIBS])
+m4trace:configure.in:62: -1- m4_pattern_allow([^MATH_LIBS$])
+m4trace:configure.in:62: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+tclconfig/tcl.m4:2398: TEA_MISSING_POSIX_HEADERS is expanded from...
+tclconfig/tcl.m4:3344: TEA_SETUP_COMPILER is expanded from...
+configure.in:62: the top level])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([NO_DIRENT_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^NO_DIRENT_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([NO_DIRENT_H], [/* Do we have <dirent.h>? */
+#undef NO_DIRENT_H])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([NO_ERRNO_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^NO_ERRNO_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([NO_ERRNO_H], [/* Do we have <errno.h>? */
+#undef NO_ERRNO_H])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([NO_FLOAT_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^NO_FLOAT_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([NO_FLOAT_H], [/* Do we have <float.h>? */
+#undef NO_FLOAT_H])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([NO_VALUES_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^NO_VALUES_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([NO_VALUES_H], [/* Do we have <values.h>? */
+#undef NO_VALUES_H])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIMITS_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^HAVE_LIMITS_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Do we have <limits.h>? */
+#undef HAVE_LIMITS_H])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([NO_LIMITS_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^NO_LIMITS_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([NO_LIMITS_H], [/* Do we have <limits.h>? */
+#undef NO_LIMITS_H])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([NO_STDLIB_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^NO_STDLIB_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([NO_STDLIB_H], [/* Do we have <stdlib.h>? */
+#undef NO_STDLIB_H])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([NO_STRING_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^NO_STRING_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([NO_STRING_H], [/* Do we have <string.h>? */
+#undef NO_STRING_H])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([NO_SYS_WAIT_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^NO_SYS_WAIT_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([NO_SYS_WAIT_H], [/* Do we have <sys/wait.h>? */
+#undef NO_SYS_WAIT_H])
+m4trace:configure.in:62: -1- AC_DEFINE_TRACE_LITERAL([NO_DLFCN_H])
+m4trace:configure.in:62: -1- m4_pattern_allow([^NO_DLFCN_H$])
+m4trace:configure.in:62: -1- AH_OUTPUT([NO_DLFCN_H], [/* Do we have <dlfcn.h>? */
+#undef NO_DLFCN_H])
+m4trace:configure.in:62: -1- _m4_warn([obsolete], [The macro `AC_HAVE_HEADERS' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/oldnames.m4:56: AC_HAVE_HEADERS is expanded from...
+tclconfig/tcl.m4:2398: TEA_MISSING_POSIX_HEADERS is expanded from...
+tclconfig/tcl.m4:3344: TEA_SETUP_COMPILER is expanded from...
+configure.in:62: the top level])
+m4trace:configure.in:62: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H])
+m4trace:configure.in:74: -1- AC_SUBST([PKG_SOURCES])
+m4trace:configure.in:74: -1- AC_SUBST_TRACE([PKG_SOURCES])
+m4trace:configure.in:74: -1- m4_pattern_allow([^PKG_SOURCES$])
+m4trace:configure.in:74: -1- AC_SUBST([PKG_OBJECTS])
+m4trace:configure.in:74: -1- AC_SUBST_TRACE([PKG_OBJECTS])
+m4trace:configure.in:74: -1- m4_pattern_allow([^PKG_OBJECTS$])
+m4trace:configure.in:76: -1- AC_SUBST([TCLCURL_SCRIPTS])
+m4trace:configure.in:76: -1- AC_SUBST_TRACE([TCLCURL_SCRIPTS])
+m4trace:configure.in:76: -1- m4_pattern_allow([^TCLCURL_SCRIPTS$])
+m4trace:configure.in:83: -1- AC_SUBST([curl])
+m4trace:configure.in:83: -1- AC_SUBST_TRACE([curl])
+m4trace:configure.in:83: -1- m4_pattern_allow([^curl$])
+m4trace:configure.in:83: -1- AC_SUBST([curl])
+m4trace:configure.in:83: -1- AC_SUBST_TRACE([curl])
+m4trace:configure.in:83: -1- m4_pattern_allow([^curl$])
+m4trace:configure.in:102: -1- AC_SUBST([PKG_INCLUDES])
+m4trace:configure.in:102: -1- AC_SUBST_TRACE([PKG_INCLUDES])
+m4trace:configure.in:102: -1- m4_pattern_allow([^PKG_INCLUDES$])
+m4trace:configure.in:102: -1- AC_SUBST([PKG_INCLUDES])
+m4trace:configure.in:102: -1- AC_SUBST_TRACE([PKG_INCLUDES])
+m4trace:configure.in:102: -1- m4_pattern_allow([^PKG_INCLUDES$])
+m4trace:configure.in:121: -1- AC_SUBST([PKG_LIBS])
+m4trace:configure.in:121: -1- AC_SUBST_TRACE([PKG_LIBS])
+m4trace:configure.in:121: -1- m4_pattern_allow([^PKG_LIBS$])
+m4trace:configure.in:121: -1- AC_SUBST([PKG_LIBS])
+m4trace:configure.in:121: -1- AC_SUBST_TRACE([PKG_LIBS])
+m4trace:configure.in:121: -1- m4_pattern_allow([^PKG_LIBS$])
+m4trace:configure.in:137: -1- AC_SUBST([PKG_LIBS])
+m4trace:configure.in:137: -1- AC_SUBST_TRACE([PKG_LIBS])
+m4trace:configure.in:137: -1- m4_pattern_allow([^PKG_LIBS$])
+m4trace:configure.in:157: -1- AC_DEFINE_TRACE_LITERAL([BUILD_sample])
+m4trace:configure.in:157: -1- m4_pattern_allow([^BUILD_sample$])
+m4trace:configure.in:157: -1- AH_OUTPUT([BUILD_sample], [/* Build windows export dll */
+#undef BUILD_sample])
+m4trace:configure.in:167: -1- AC_SUBST([CLEANFILES])
+m4trace:configure.in:167: -1- AC_SUBST_TRACE([CLEANFILES])
+m4trace:configure.in:167: -1- m4_pattern_allow([^CLEANFILES$])
+m4trace:configure.in:178: -1- AC_SUBST([TCL_INCLUDES])
+m4trace:configure.in:178: -1- AC_SUBST_TRACE([TCL_INCLUDES])
+m4trace:configure.in:178: -1- m4_pattern_allow([^TCL_INCLUDES$])
+m4trace:configure.in:190: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+tclconfig/tcl.m4:705: TEA_ENABLE_THREADS is expanded from...
+configure.in:190: the top level])
+m4trace:configure.in:190: -1- AC_DEFINE_TRACE_LITERAL([USE_THREAD_ALLOC])
+m4trace:configure.in:190: -1- m4_pattern_allow([^USE_THREAD_ALLOC$])
+m4trace:configure.in:190: -1- AH_OUTPUT([USE_THREAD_ALLOC], [/* Do we want to use the threaded memory allocator? */
+#undef USE_THREAD_ALLOC])
+m4trace:configure.in:190: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
+m4trace:configure.in:190: -1- m4_pattern_allow([^_REENTRANT$])
+m4trace:configure.in:190: -1- AH_OUTPUT([_REENTRANT], [/* Do we want the reentrant OS API? */
+#undef _REENTRANT])
+m4trace:configure.in:190: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS])
+m4trace:configure.in:190: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$])
+m4trace:configure.in:190: -1- AH_OUTPUT([_POSIX_PTHREAD_SEMANTICS], [/* Do we really want to follow the standard? Yes we do! */
+#undef _POSIX_PTHREAD_SEMANTICS])
+m4trace:configure.in:190: -1- AC_DEFINE_TRACE_LITERAL([_THREAD_SAFE])
+m4trace:configure.in:190: -1- m4_pattern_allow([^_THREAD_SAFE$])
+m4trace:configure.in:190: -1- AH_OUTPUT([_THREAD_SAFE], [/* Do we want the thread-safe OS API? */
+#undef _THREAD_SAFE])
+m4trace:configure.in:190: -1- AC_DEFINE_TRACE_LITERAL([TCL_THREADS])
+m4trace:configure.in:190: -1- m4_pattern_allow([^TCL_THREADS$])
+m4trace:configure.in:190: -1- AH_OUTPUT([TCL_THREADS], [/* Are we building with threads enabled? */
+#undef TCL_THREADS])
+m4trace:configure.in:190: -1- AC_SUBST([TCL_THREADS])
+m4trace:configure.in:190: -1- AC_SUBST_TRACE([TCL_THREADS])
+m4trace:configure.in:190: -1- m4_pattern_allow([^TCL_THREADS$])
+m4trace:configure.in:197: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+tclconfig/tcl.m4:647: TEA_ENABLE_SHARED is expanded from...
+configure.in:197: the top level])
+m4trace:configure.in:197: -1- AC_DEFINE_TRACE_LITERAL([STATIC_BUILD])
+m4trace:configure.in:197: -1- m4_pattern_allow([^STATIC_BUILD$])
+m4trace:configure.in:197: -1- AH_OUTPUT([STATIC_BUILD], [/* Is this a static build? */
+#undef STATIC_BUILD])
+m4trace:configure.in:197: -1- AC_SUBST([SHARED_BUILD])
+m4trace:configure.in:197: -1- AC_SUBST_TRACE([SHARED_BUILD])
+m4trace:configure.in:197: -1- m4_pattern_allow([^SHARED_BUILD$])
+m4trace:configure.in:205: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([MODULE_SCOPE])
+m4trace:configure.in:205: -1- m4_pattern_allow([^MODULE_SCOPE$])
+m4trace:configure.in:205: -1- AH_OUTPUT([MODULE_SCOPE], [/* Compiler support for module scope symbols */
+#undef MODULE_SCOPE])
+m4trace:configure.in:205: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_SUBST([AR])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([AR])
+m4trace:configure.in:205: -1- m4_pattern_allow([^AR$])
+m4trace:configure.in:205: -1- AC_SUBST([PKG_LIBS])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([PKG_LIBS])
+m4trace:configure.in:205: -1- m4_pattern_allow([^PKG_LIBS$])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([_WIN32_WCE])
+m4trace:configure.in:205: -1- m4_pattern_allow([^_WIN32_WCE$])
+m4trace:configure.in:205: -1- AH_OUTPUT([_WIN32_WCE], [/* _WIN32_WCE version */
+#undef _WIN32_WCE])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([UNDER_CE])
+m4trace:configure.in:205: -1- m4_pattern_allow([^UNDER_CE$])
+m4trace:configure.in:205: -1- AH_OUTPUT([UNDER_CE], [/* UNDER_CE version */
+#undef UNDER_CE])
+m4trace:configure.in:205: -1- AC_SUBST([CELIB_DIR])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([CELIB_DIR])
+m4trace:configure.in:205: -1- m4_pattern_allow([^CELIB_DIR$])
+m4trace:configure.in:205: -1- AC_LIBSOURCE([tclLoadAix.c])
+m4trace:configure.in:205: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS tclLoadAix.$ac_objext"])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
+m4trace:configure.in:205: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([USE_DELTA_FOR_TZ])
+m4trace:configure.in:205: -1- m4_pattern_allow([^USE_DELTA_FOR_TZ$])
+m4trace:configure.in:205: -1- AH_OUTPUT([USE_DELTA_FOR_TZ], [/* Do we need a special AIX hack for timezones? */
+#undef USE_DELTA_FOR_TZ])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([_XOPEN_SOURCE_EXTENDED])
+m4trace:configure.in:205: -1- m4_pattern_allow([^_XOPEN_SOURCE_EXTENDED$])
+m4trace:configure.in:205: -1- AH_OUTPUT([_XOPEN_SOURCE_EXTENDED], [/* Do we want to use the XOPEN network library? */
+#undef _XOPEN_SOURCE_EXTENDED])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([MODULE_SCOPE])
+m4trace:configure.in:205: -1- m4_pattern_allow([^MODULE_SCOPE$])
+m4trace:configure.in:205: -1- AH_OUTPUT([MODULE_SCOPE], [/* Compiler support for module scope symbols */
+#undef MODULE_SCOPE])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([_OE_SOCKETS])
+m4trace:configure.in:205: -1- m4_pattern_allow([^_OE_SOCKETS$])
+m4trace:configure.in:205: -1- AH_OUTPUT([_OE_SOCKETS], [/* # needed in sys/socket.h Should OS/390 do the right thing with sockets? */
+#undef _OE_SOCKETS])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
+m4trace:configure.in:205: -1- m4_pattern_allow([^_REENTRANT$])
+m4trace:configure.in:205: -1- AH_OUTPUT([_REENTRANT], [/* Do we want the reentrant OS API? */
+#undef _REENTRANT])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS])
+m4trace:configure.in:205: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$])
+m4trace:configure.in:205: -1- AH_OUTPUT([_POSIX_PTHREAD_SEMANTICS], [/* Do we really want to follow the standard? Yes we do! */
+#undef _POSIX_PTHREAD_SEMANTICS])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
+m4trace:configure.in:205: -1- m4_pattern_allow([^_REENTRANT$])
+m4trace:configure.in:205: -1- AH_OUTPUT([_REENTRANT], [/* Do we want the reentrant OS API? */
+#undef _REENTRANT])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS])
+m4trace:configure.in:205: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$])
+m4trace:configure.in:205: -1- AH_OUTPUT([_POSIX_PTHREAD_SEMANTICS], [/* Do we really want to follow the standard? Yes we do! */
+#undef _POSIX_PTHREAD_SEMANTICS])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_SUBST([DL_LIBS])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([DL_LIBS])
+m4trace:configure.in:205: -1- m4_pattern_allow([^DL_LIBS$])
+m4trace:configure.in:205: -1- AC_SUBST([CFLAGS_DEBUG])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([CFLAGS_DEBUG])
+m4trace:configure.in:205: -1- m4_pattern_allow([^CFLAGS_DEBUG$])
+m4trace:configure.in:205: -1- AC_SUBST([CFLAGS_OPTIMIZE])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([CFLAGS_OPTIMIZE])
+m4trace:configure.in:205: -1- m4_pattern_allow([^CFLAGS_OPTIMIZE$])
+m4trace:configure.in:205: -1- AC_SUBST([CFLAGS_WARNING])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([CFLAGS_WARNING])
+m4trace:configure.in:205: -1- m4_pattern_allow([^CFLAGS_WARNING$])
+m4trace:configure.in:205: -1- AC_SUBST([STLIB_LD])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([STLIB_LD])
+m4trace:configure.in:205: -1- m4_pattern_allow([^STLIB_LD$])
+m4trace:configure.in:205: -1- AC_SUBST([SHLIB_LD])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([SHLIB_LD])
+m4trace:configure.in:205: -1- m4_pattern_allow([^SHLIB_LD$])
+m4trace:configure.in:205: -1- AC_SUBST([SHLIB_LD_LIBS])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([SHLIB_LD_LIBS])
+m4trace:configure.in:205: -1- m4_pattern_allow([^SHLIB_LD_LIBS$])
+m4trace:configure.in:205: -1- AC_SUBST([SHLIB_CFLAGS])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([SHLIB_CFLAGS])
+m4trace:configure.in:205: -1- m4_pattern_allow([^SHLIB_CFLAGS$])
+m4trace:configure.in:205: -1- AC_SUBST([LD_LIBRARY_PATH_VAR])
+m4trace:configure.in:205: -1- AC_SUBST_TRACE([LD_LIBRARY_PATH_VAR])
+m4trace:configure.in:205: -1- m4_pattern_allow([^LD_LIBRARY_PATH_VAR$])
+m4trace:configure.in:205: -3- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+tclconfig/tcl.m4:2829: TEA_TCL_EARLY_FLAG is expanded from...
+tclconfig/tcl.m4:2842: TEA_TCL_EARLY_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -2- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+tclconfig/tcl.m4:2829: TEA_TCL_EARLY_FLAG is expanded from...
+tclconfig/tcl.m4:2842: TEA_TCL_EARLY_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([_ISOC99_SOURCE])
+m4trace:configure.in:205: -1- m4_pattern_allow([^_ISOC99_SOURCE$])
+m4trace:configure.in:205: -1- AH_OUTPUT([_ISOC99_SOURCE], [/* Add the _ISOC99_SOURCE flag when building */
+#undef _ISOC99_SOURCE])
+m4trace:configure.in:205: -3- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+tclconfig/tcl.m4:2829: TEA_TCL_EARLY_FLAG is expanded from...
+tclconfig/tcl.m4:2842: TEA_TCL_EARLY_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -2- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+tclconfig/tcl.m4:2829: TEA_TCL_EARLY_FLAG is expanded from...
+tclconfig/tcl.m4:2842: TEA_TCL_EARLY_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([_LARGEFILE64_SOURCE])
+m4trace:configure.in:205: -1- m4_pattern_allow([^_LARGEFILE64_SOURCE$])
+m4trace:configure.in:205: -1- AH_OUTPUT([_LARGEFILE64_SOURCE], [/* Add the _LARGEFILE64_SOURCE flag when building */
+#undef _LARGEFILE64_SOURCE])
+m4trace:configure.in:205: -3- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+tclconfig/tcl.m4:2829: TEA_TCL_EARLY_FLAG is expanded from...
+tclconfig/tcl.m4:2842: TEA_TCL_EARLY_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -2- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+tclconfig/tcl.m4:2829: TEA_TCL_EARLY_FLAG is expanded from...
+tclconfig/tcl.m4:2842: TEA_TCL_EARLY_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([_LARGEFILE_SOURCE64])
+m4trace:configure.in:205: -1- m4_pattern_allow([^_LARGEFILE_SOURCE64$])
+m4trace:configure.in:205: -1- AH_OUTPUT([_LARGEFILE_SOURCE64], [/* Add the _LARGEFILE_SOURCE64 flag when building */
+#undef _LARGEFILE_SOURCE64])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+tclconfig/tcl.m4:2877: TEA_TCL_64BIT_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+tclconfig/tcl.m4:2877: TEA_TCL_64BIT_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([TCL_WIDE_INT_IS_LONG])
+m4trace:configure.in:205: -1- m4_pattern_allow([^TCL_WIDE_INT_IS_LONG$])
+m4trace:configure.in:205: -1- AH_OUTPUT([TCL_WIDE_INT_IS_LONG], [/* Are wide integers to be implemented with C \'long\'s? */
+#undef TCL_WIDE_INT_IS_LONG])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([TCL_WIDE_INT_TYPE])
+m4trace:configure.in:205: -1- m4_pattern_allow([^TCL_WIDE_INT_TYPE$])
+m4trace:configure.in:205: -1- AH_OUTPUT([TCL_WIDE_INT_TYPE], [/* What type should be used to define wide integers? */
+#undef TCL_WIDE_INT_TYPE])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+tclconfig/tcl.m4:2877: TEA_TCL_64BIT_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT64])
+m4trace:configure.in:205: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT64$])
+m4trace:configure.in:205: -1- AH_OUTPUT([HAVE_STRUCT_DIRENT64], [/* Is \'struct dirent64\' in <sys/types.h>? */
+#undef HAVE_STRUCT_DIRENT64])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
+tclconfig/tcl.m4:2877: TEA_TCL_64BIT_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT64])
+m4trace:configure.in:205: -1- m4_pattern_allow([^HAVE_STRUCT_STAT64$])
+m4trace:configure.in:205: -1- AH_OUTPUT([HAVE_STRUCT_STAT64], [/* Is \'struct stat64\' in <sys/stat.h>? */
+#undef HAVE_STRUCT_STAT64])
+m4trace:configure.in:205: -1- AH_OUTPUT([HAVE_OPEN64], [/* Define to 1 if you have the `open64\' function. */
+#undef HAVE_OPEN64])
+m4trace:configure.in:205: -1- AH_OUTPUT([HAVE_LSEEK64], [/* Define to 1 if you have the `lseek64\' function. */
+#undef HAVE_LSEEK64])
+m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
+../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
+tclconfig/tcl.m4:2877: TEA_TCL_64BIT_FLAGS is expanded from...
+tclconfig/tcl.m4:1040: TEA_CONFIG_CFLAGS is expanded from...
+configure.in:205: the top level])
+m4trace:configure.in:205: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TYPE_OFF64_T])
+m4trace:configure.in:205: -1- m4_pattern_allow([^HAVE_TYPE_OFF64_T$])
+m4trace:configure.in:205: -1- AH_OUTPUT([HAVE_TYPE_OFF64_T], [/* Is off64_t in <sys/types.h>? */
+#undef HAVE_TYPE_OFF64_T])
+m4trace:configure.in:211: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+tclconfig/tcl.m4:834: TEA_ENABLE_SYMBOLS is expanded from...
+configure.in:211: the top level])
+m4trace:configure.in:211: -1- AC_SUBST([CFLAGS_DEFAULT])
+m4trace:configure.in:211: -1- AC_SUBST_TRACE([CFLAGS_DEFAULT])
+m4trace:configure.in:211: -1- m4_pattern_allow([^CFLAGS_DEFAULT$])
+m4trace:configure.in:211: -1- AC_SUBST([LDFLAGS_DEFAULT])
+m4trace:configure.in:211: -1- AC_SUBST_TRACE([LDFLAGS_DEFAULT])
+m4trace:configure.in:211: -1- m4_pattern_allow([^LDFLAGS_DEFAULT$])
+m4trace:configure.in:211: -1- AC_SUBST([TCL_DBGX])
+m4trace:configure.in:211: -1- AC_SUBST_TRACE([TCL_DBGX])
+m4trace:configure.in:211: -1- m4_pattern_allow([^TCL_DBGX$])
+m4trace:configure.in:211: -1- AC_DEFINE_TRACE_LITERAL([TCL_MEM_DEBUG])
+m4trace:configure.in:211: -1- m4_pattern_allow([^TCL_MEM_DEBUG$])
+m4trace:configure.in:211: -1- AH_OUTPUT([TCL_MEM_DEBUG], [/* Is memory debugging enabled? */
+#undef TCL_MEM_DEBUG])
+m4trace:configure.in:220: -1- AC_DEFINE_TRACE_LITERAL([USE_TCL_STUBS])
+m4trace:configure.in:220: -1- m4_pattern_allow([^USE_TCL_STUBS$])
+m4trace:configure.in:220: -1- AH_OUTPUT([USE_TCL_STUBS], [/* Use Tcl stubs */
+#undef USE_TCL_STUBS])
+m4trace:configure.in:229: -1- AC_SUBST([MAKE_LIB])
+m4trace:configure.in:229: -1- AC_SUBST_TRACE([MAKE_LIB])
+m4trace:configure.in:229: -1- m4_pattern_allow([^MAKE_LIB$])
+m4trace:configure.in:229: -1- AC_SUBST([MAKE_SHARED_LIB])
+m4trace:configure.in:229: -1- AC_SUBST_TRACE([MAKE_SHARED_LIB])
+m4trace:configure.in:229: -1- m4_pattern_allow([^MAKE_SHARED_LIB$])
+m4trace:configure.in:229: -1- AC_SUBST([MAKE_STATIC_LIB])
+m4trace:configure.in:229: -1- AC_SUBST_TRACE([MAKE_STATIC_LIB])
+m4trace:configure.in:229: -1- m4_pattern_allow([^MAKE_STATIC_LIB$])
+m4trace:configure.in:229: -1- AC_SUBST([MAKE_STUB_LIB])
+m4trace:configure.in:229: -1- AC_SUBST_TRACE([MAKE_STUB_LIB])
+m4trace:configure.in:229: -1- m4_pattern_allow([^MAKE_STUB_LIB$])
+m4trace:configure.in:229: -1- AC_SUBST([RANLIB_STUB])
+m4trace:configure.in:229: -1- AC_SUBST_TRACE([RANLIB_STUB])
+m4trace:configure.in:229: -1- m4_pattern_allow([^RANLIB_STUB$])
+m4trace:configure.in:239: -1- AC_SUBST([TCLSH_PROG])
+m4trace:configure.in:239: -1- AC_SUBST_TRACE([TCLSH_PROG])
+m4trace:configure.in:239: -1- m4_pattern_allow([^TCLSH_PROG$])
+m4trace:configure.in:248: -1- AC_CONFIG_FILES([Makefile pkgIndex.tcl])
+m4trace:configure.in:248: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments.
+You should run autoupdate.], [])
+m4trace:configure.in:248: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
+m4trace:configure.in:248: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.in:248: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([LTLIBOBJS])
+m4trace:configure.in:248: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.in:248: -1- _m4_warn([obsolete], [AC_C_BIGENDIAN should be used with AC_CONFIG_HEADERS], [])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([top_builddir])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([top_build_prefix])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([srcdir])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([abs_srcdir])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([top_srcdir])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([abs_top_srcdir])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([builddir])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([abs_builddir])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([abs_top_builddir])
+m4trace:configure.in:248: -1- AC_SUBST_TRACE([INSTALL])
diff --git a/checkAutoPath.tcl b/checkAutoPath.tcl
new file mode 100755 (executable)
index 0000000..71d41a6
--- /dev/null
@@ -0,0 +1,17 @@
+# This file checks that the directory where TclCurl is going to be
+# installed is actually in the auto_path variable, if it isn't it 
+# modifies 'init.tcl'.
+
+set tclCurlDir  [lindex $argv 0]
+set initTclDir  [lindex $argv 1]
+set initFile    [file join $tcl_library init.tcl]
+if {[file writable $initFile]==0} exit
+
+
+if {[lsearch $auto_path $tclCurlDir]==-1} {
+    set handle [open "$initFile" a]
+    puts $handle "\nlappend auto_path $tclCurlDir\n"
+}
+
+exit
+
diff --git a/configure b/configure
new file mode 100755 (executable)
index 0000000..9b58381
--- /dev/null
+++ b/configure
@@ -0,0 +1,12598 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.63 for TclCurl 7.19.6.
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in
+      *"$as_nl"*)
+       expr "X$arg" : "X\\(.*\\)$as_nl";
+       arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""       $as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+if test "x$CONFIG_SHELL" = x; then
+  if (eval ":") 2>/dev/null; then
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+
+  if test $as_have_required = yes &&    (eval ":
+(as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=\$LINENO
+  as_lineno_2=\$LINENO
+  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+") 2> /dev/null; then
+  :
+else
+  as_candidate_shells=
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  case $as_dir in
+        /*)
+          for as_base in sh bash ksh sh5; do
+            as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+          done;;
+       esac
+done
+IFS=$as_save_IFS
+
+
+      for as_shell in $as_candidate_shells $SHELL; do
+        # Try only shells that exist, to save several forks.
+        if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+               { ("$as_shell") 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+_ASEOF
+}; then
+  CONFIG_SHELL=$as_shell
+              as_have_required=yes
+              if { "$as_shell" 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+(as_func_return () {
+  (exit $1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = "$1" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test $exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+
+_ASEOF
+}; then
+  break
+fi
+
+fi
+
+      done
+
+      if test "x$CONFIG_SHELL" != x; then
+  for as_var in BASH_ENV ENV
+       do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+       done
+       export CONFIG_SHELL
+       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+
+    if test $as_have_required = no; then
+  echo This script requires a shell more modern than all the
+      echo shells that I found on your system.  Please install a
+      echo modern shell, or manually run the script under such a
+      echo shell if you do have one.
+      { (exit 1); exit 1; }
+fi
+
+
+fi
+
+fi
+
+
+
+(eval "as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0") || {
+  echo No shell found that supports shell functions.
+  echo Please tell bug-autoconf@gnu.org about your system,
+  echo including any error possibly output before this message.
+  echo This can help us improve future autoconf versions.
+  echo Configuration will now proceed without shell functions.
+}
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+       test -d "$1/.";
+      else
+       case $1 in
+       -*)set "./$1";;
+       esac;
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+       ???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Identity of this package.
+PACKAGE_NAME='TclCurl'
+PACKAGE_TARNAME='tclcurl'
+PACKAGE_VERSION='7.19.6'
+PACKAGE_STRING='TclCurl 7.19.6'
+PACKAGE_BUGREPORT=''
+
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+TCLSH_PROG
+RANLIB_STUB
+MAKE_STUB_LIB
+MAKE_STATIC_LIB
+MAKE_SHARED_LIB
+MAKE_LIB
+TCL_DBGX
+LDFLAGS_DEFAULT
+CFLAGS_DEFAULT
+LD_LIBRARY_PATH_VAR
+SHLIB_CFLAGS
+SHLIB_LD_LIBS
+SHLIB_LD
+STLIB_LD
+CFLAGS_WARNING
+CFLAGS_OPTIMIZE
+CFLAGS_DEBUG
+DL_LIBS
+LIBOBJS
+CELIB_DIR
+AR
+SHARED_BUILD
+TCL_THREADS
+TCL_INCLUDES
+CLEANFILES
+curl
+TCLCURL_SCRIPTS
+PKG_OBJECTS
+PKG_SOURCES
+MATH_LIBS
+EGREP
+GREP
+RANLIB
+SET_MAKE
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+CPP
+OBJEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+TCL_SHLIB_LD_LIBS
+TCL_LD_FLAGS
+TCL_EXTRA_CFLAGS
+TCL_DEFS
+TCL_LIBS
+TCL_STUB_LIB_SPEC
+TCL_STUB_LIB_FLAG
+TCL_STUB_LIB_FILE
+TCL_LIB_SPEC
+TCL_LIB_FLAG
+TCL_LIB_FILE
+TCL_SRC_DIR
+TCL_BIN_DIR
+TCL_VERSION
+PKG_CFLAGS
+PKG_LIBS
+PKG_INCLUDES
+PKG_HEADERS
+PKG_TCL_SOURCES
+PKG_STUB_OBJECTS
+PKG_STUB_SOURCES
+PKG_STUB_LIB_FILE
+PKG_LIB_FILE
+EXEEXT
+CYGPATH
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_tcl
+with_curlprefix
+with_curlinclude
+with_libcurl
+with_tclinclude
+enable_threads
+enable_shared
+enable_64bit
+enable_64bit_vis
+enable_rpath
+enable_wince
+with_celib
+enable_load
+enable_symbols
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *)   ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
+   { (exit 1); exit 1; }; } ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
+               datadir sysconfdir sharedstatedir localstatedir includedir \
+               oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+               libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; }
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  { $as_echo "$as_me: error: working directory cannot be determined" >&2
+   { (exit 1); exit 1; }; }
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
+   { (exit 1); exit 1; }; }
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_myself" : 'X\(//\)[^/]' \| \
+        X"$as_myself" : 'X\(//\)$' \| \
+        X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+       cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
+   { (exit 1); exit 1; }; }
+       pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures TclCurl 7.19.6 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/tclcurl]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of TclCurl 7.19.6:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-threads        build with threads
+  --enable-shared         build and link with shared libraries (default: on)
+  --enable-64bit          enable 64bit support (default: off)
+  --enable-64bit-vis      enable 64bit Sparc VIS support (default: off)
+  --disable-rpath         disable rpath support (default: on)
+  --enable-wince          enable Win/CE support (where applicable)
+  --enable-load           allow dynamic loading and "load" command (default:
+                          on)
+  --enable-symbols        build with debugging symbols (default: off)
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-tcl              directory containing tcl configuration
+                          (tclConfig.sh)
+  --with-curlprefix       base directory for the cURL install '/usr', '/usr/local',...
+  --with-curlinclude      directory containing the public libcurl header files
+  --with-libcurl          directory containing libcurl
+  --with-tclinclude       directory containing the public Tcl header files
+  --with-celib=DIR        use Windows/CE support library from DIR
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+TclCurl configure 7.19.6
+generated by GNU Autoconf 2.63
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by TclCurl $as_me 7.19.6, which was
+generated by GNU Autoconf 2.63.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  $as_echo "PATH: $as_dir"
+done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+       ac_must_keep_next=false # Got value, back to normal.
+      else
+       case $ac_arg in
+         *=* | --config-cache | -C | -disable-* | --disable-* \
+         | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+         | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+         | -with-* | --with-* | -without-* | --without-* | --x)
+           case "$ac_configure_args0 " in
+             "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+           esac
+           ;;
+         -* ) ac_must_keep_next=true ;;
+       esac
+      fi
+      ac_configure_args="$ac_configure_args '$ac_arg'"
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+       "s/'\''/'\''\\\\'\'''\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+       eval ac_val=\$$ac_var
+       case $ac_val in
+       *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+       esac
+       $as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test -r "$ac_site_file"; then
+    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+       # differences in whitespace do not lead to failure.
+       ac_old_val_w=`echo x $ac_old_val`
+       ac_new_val_w=`echo x $ac_new_val`
+       if test "$ac_old_val_w" != "$ac_new_val_w"; then
+         { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+         ac_cache_corrupted=:
+       else
+         { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+         eval $ac_var=\$ac_old_val
+       fi
+       { $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+       { $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+#--------------------------------------------------------------------
+# Call TEA_INIT as the first TEA_ macro to set up initial vars.
+# This will define a ${TEA_PLATFORM} variable == "unix" or "windows"
+# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE.
+#--------------------------------------------------------------------
+
+
+    # TEA extensions pass this us the version of TEA they think they
+    # are compatible with.
+    TEA_VERSION="3.7"
+
+    { $as_echo "$as_me:$LINENO: checking for correct TEA configuration" >&5
+$as_echo_n "checking for correct TEA configuration... " >&6; }
+    if test x"${PACKAGE_NAME}" = x ; then
+       { { $as_echo "$as_me:$LINENO: error:
+The PACKAGE_NAME variable must be defined by your TEA configure.in" >&5
+$as_echo "$as_me: error:
+The PACKAGE_NAME variable must be defined by your TEA configure.in" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    if test x"3.7" = x ; then
+       { { $as_echo "$as_me:$LINENO: error:
+TEA version not specified." >&5
+$as_echo "$as_me: error:
+TEA version not specified." >&2;}
+   { (exit 1); exit 1; }; }
+    elif test "3.7" != "${TEA_VERSION}" ; then
+       { $as_echo "$as_me:$LINENO: result: warning: requested TEA version \"3.7\", have \"${TEA_VERSION}\"" >&5
+$as_echo "warning: requested TEA version \"3.7\", have \"${TEA_VERSION}\"" >&6; }
+    else
+       { $as_echo "$as_me:$LINENO: result: ok (TEA ${TEA_VERSION})" >&5
+$as_echo "ok (TEA ${TEA_VERSION})" >&6; }
+    fi
+    case "`uname -s`" in
+       *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW32_*)
+           # Extract the first word of "cygpath", so it can be a program name with args.
+set dummy cygpath; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CYGPATH+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CYGPATH"; then
+  ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CYGPATH="cygpath -w"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_CYGPATH" && ac_cv_prog_CYGPATH="echo"
+fi
+fi
+CYGPATH=$ac_cv_prog_CYGPATH
+if test -n "$CYGPATH"; then
+  { $as_echo "$as_me:$LINENO: result: $CYGPATH" >&5
+$as_echo "$CYGPATH" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+           EXEEXT=".exe"
+           TEA_PLATFORM="windows"
+           ;;
+       *)
+           CYGPATH=echo
+           EXEEXT=""
+           TEA_PLATFORM="unix"
+           ;;
+    esac
+
+    # Check if exec_prefix is set. If not use fall back to prefix.
+    # Note when adjusted, so that TEA_PREFIX can correct for this.
+    # This is needed for recursive configures, since autoconf propagates
+    # $prefix, but not $exec_prefix (doh!).
+    if test x$exec_prefix = xNONE ; then
+       exec_prefix_default=yes
+       exec_prefix=$prefix
+    fi
+
+
+
+
+    # This package name must be replaced statically for AC_SUBST to work
+
+    # Substitute STUB_LIB_FILE in case package creates a stub library too.
+
+
+    # We AC_SUBST these here to ensure they are subst'ed,
+    # in case the user doesn't call TEA_ADD_...
+
+
+
+
+
+
+
+
+
+ac_aux_dir=
+for ac_dir in tclconfig "$srcdir"/tclconfig; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in tclconfig \"$srcdir\"/tclconfig" >&5
+$as_echo "$as_me: error: cannot find install-sh or install.sh in tclconfig \"$srcdir\"/tclconfig" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+
+#--------------------------------------------------------------------
+# Load the tclConfig.sh file
+#--------------------------------------------------------------------
+
+
+
+    #
+    # Ok, lets find the tcl configuration
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-tcl
+    #
+
+    if test x"${no_tcl}" = x ; then
+       # we reset no_tcl in case something fails here
+       no_tcl=true
+
+# Check whether --with-tcl was given.
+if test "${with_tcl+set}" = set; then
+  withval=$with_tcl; with_tclconfig=${withval}
+fi
+
+       { $as_echo "$as_me:$LINENO: checking for Tcl configuration" >&5
+$as_echo_n "checking for Tcl configuration... " >&6; }
+       if test "${ac_cv_c_tclconfig+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+           # First check to see if --with-tcl was specified.
+           if test x"${with_tclconfig}" != x ; then
+               case ${with_tclconfig} in
+                   */tclConfig.sh )
+                       if test -f ${with_tclconfig}; then
+                           { $as_echo "$as_me:$LINENO: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&5
+$as_echo "$as_me: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&2;}
+                           with_tclconfig=`echo ${with_tclconfig} | sed 's!/tclConfig\.sh$!!'`
+                       fi ;;
+               esac
+               if test -f "${with_tclconfig}/tclConfig.sh" ; then
+                   ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
+               else
+                   { { $as_echo "$as_me:$LINENO: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >&5
+$as_echo "$as_me: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+           fi
+
+           # then check for a private Tcl installation
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in \
+                       ../tcl \
+                       `ls -dr ../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
+                       `ls -dr ../tcl[8-9].[0-9] 2>/dev/null` \
+                       `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \
+                       ../../tcl \
+                       `ls -dr ../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
+                       `ls -dr ../../tcl[8-9].[0-9] 2>/dev/null` \
+                       `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \
+                       ../../../tcl \
+                       `ls -dr ../../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
+                       `ls -dr ../../../tcl[8-9].[0-9] 2>/dev/null` \
+                       `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do
+                   if test "${TEA_PLATFORM}" = "windows" \
+                           -a -f "$i/win/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+                       break
+                   fi
+                   if test -f "$i/unix/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # on Darwin, check in Framework installation locations
+           if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d ~/Library/Frameworks 2>/dev/null` \
+                       `ls -d /Library/Frameworks 2>/dev/null` \
+                       `ls -d /Network/Library/Frameworks 2>/dev/null` \
+                       `ls -d /System/Library/Frameworks 2>/dev/null` \
+                       ; do
+                   if test -f "$i/Tcl.framework/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/Tcl.framework; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # TEA specific: on Windows, check in common installation locations
+           if test "${TEA_PLATFORM}" = "windows" \
+               -a x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d C:/Tcl/lib 2>/dev/null` \
+                       `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few common install locations
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d ${libdir} 2>/dev/null` \
+                       `ls -d ${exec_prefix}/lib 2>/dev/null` \
+                       `ls -d ${prefix}/lib 2>/dev/null` \
+                       `ls -d /usr/local/lib 2>/dev/null` \
+                       `ls -d /usr/contrib/lib 2>/dev/null` \
+                       `ls -d /usr/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few other private locations
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in \
+                       ${srcdir}/../tcl \
+                       `ls -dr ${srcdir}/../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
+                       `ls -dr ${srcdir}/../tcl[8-9].[0-9] 2>/dev/null` \
+                       `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null` ; do
+                   if test "${TEA_PLATFORM}" = "windows" \
+                           -a -f "$i/win/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+                       break
+                   fi
+                   if test -f "$i/unix/tclConfig.sh" ; then
+                   ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+                   break
+               fi
+               done
+           fi
+
+fi
+
+
+       if test x"${ac_cv_c_tclconfig}" = x ; then
+           TCL_BIN_DIR="# no Tcl configs found"
+           { { $as_echo "$as_me:$LINENO: error: Can't find Tcl configuration definitions" >&5
+$as_echo "$as_me: error: Can't find Tcl configuration definitions" >&2;}
+   { (exit 1); exit 1; }; }
+       else
+           no_tcl=
+           TCL_BIN_DIR=${ac_cv_c_tclconfig}
+           { $as_echo "$as_me:$LINENO: result: found ${TCL_BIN_DIR}/tclConfig.sh" >&5
+$as_echo "found ${TCL_BIN_DIR}/tclConfig.sh" >&6; }
+       fi
+    fi
+
+
+    { $as_echo "$as_me:$LINENO: checking for existence of ${TCL_BIN_DIR}/tclConfig.sh" >&5
+$as_echo_n "checking for existence of ${TCL_BIN_DIR}/tclConfig.sh... " >&6; }
+
+    if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then
+        { $as_echo "$as_me:$LINENO: result: loading" >&5
+$as_echo "loading" >&6; }
+       . "${TCL_BIN_DIR}/tclConfig.sh"
+    else
+        { $as_echo "$as_me:$LINENO: result: could not find ${TCL_BIN_DIR}/tclConfig.sh" >&5
+$as_echo "could not find ${TCL_BIN_DIR}/tclConfig.sh" >&6; }
+    fi
+
+    # eval is required to do the TCL_DBGX substitution
+    eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
+    eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
+
+    # If the TCL_BIN_DIR is the build directory (not the install directory),
+    # then set the common variable name to the value of the build variables.
+    # For example, the variable TCL_LIB_SPEC will be set to the value
+    # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC
+    # instead of TCL_BUILD_LIB_SPEC since it will work with both an
+    # installed and uninstalled version of Tcl.
+    if test -f "${TCL_BIN_DIR}/Makefile" ; then
+        TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC}
+        TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC}
+        TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH}
+    elif test "`uname -s`" = "Darwin"; then
+       # If Tcl was built as a framework, attempt to use the libraries
+       # from the framework at the given location so that linking works
+       # against Tcl.framework installed in an arbitrary location.
+       case ${TCL_DEFS} in
+           *TCL_FRAMEWORK*)
+               if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then
+                   for i in "`cd ${TCL_BIN_DIR}; pwd`" \
+                            "`cd ${TCL_BIN_DIR}/../..; pwd`"; do
+                       if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then
+                           TCL_LIB_SPEC="-F`dirname "$i"` -framework ${TCL_LIB_FILE}"
+                           break
+                       fi
+                   done
+               fi
+               if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then
+                   TCL_STUB_LIB_SPEC="-L${TCL_BIN_DIR} ${TCL_STUB_LIB_FLAG}"
+                   TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"
+               fi
+               ;;
+       esac
+    fi
+
+    # eval is required to do the TCL_DBGX substitution
+    eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
+    eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
+    eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
+    eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
+
+
+
+
+
+
+
+
+
+
+
+
+
+    # TEA specific:
+
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# Load the tkConfig.sh file if necessary (Tk extension)
+#--------------------------------------------------------------------
+
+#TEA_PATH_TKCONFIG
+#TEA_LOAD_TKCONFIG
+
+#-----------------------------------------------------------------------
+# Handle the --prefix=... option by defaulting to what Tcl gave.
+# Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER.
+#-----------------------------------------------------------------------
+
+
+    if test "${prefix}" = "NONE"; then
+       prefix_default=yes
+       if test x"${TCL_PREFIX}" != x; then
+           { $as_echo "$as_me:$LINENO: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&5
+$as_echo "$as_me: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&6;}
+           prefix=${TCL_PREFIX}
+       else
+           { $as_echo "$as_me:$LINENO: --prefix defaulting to /usr/local" >&5
+$as_echo "$as_me: --prefix defaulting to /usr/local" >&6;}
+           prefix=/usr/local
+       fi
+    fi
+    if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \
+       -o x"${exec_prefix_default}" = x"yes" ; then
+       if test x"${TCL_EXEC_PREFIX}" != x; then
+           { $as_echo "$as_me:$LINENO: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&5
+$as_echo "$as_me: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&6;}
+           exec_prefix=${TCL_EXEC_PREFIX}
+       else
+           { $as_echo "$as_me:$LINENO: --exec-prefix defaulting to ${prefix}" >&5
+$as_echo "$as_me: --exec-prefix defaulting to ${prefix}" >&6;}
+           exec_prefix=$prefix
+       fi
+    fi
+
+
+#-----------------------------------------------------------------------
+# Standard compiler checks.
+# This sets up CC by using the CC env var, or looks for gcc otherwise.
+# This also calls AC_PROG_CC, AC_PROG_INSTALL and a few others to create
+# the basic setup necessary to compile executables.
+#-----------------------------------------------------------------------
+
+
+    # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE)
+    # in this macro, they need to go into TEA_SETUP_COMPILER instead.
+
+    # If the user did not set CFLAGS, set it now to keep
+    # the AC_PROG_CC macro from adding "-g -O2".
+    if test "${CFLAGS+set}" != "set" ; then
+       CFLAGS=""
+    fi
+
+    ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { (ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+       ;;
+    [ab].out )
+       # We found the default executable, but exeext='' is most
+       # certainly right.
+       break;;
+    *.* )
+        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+       then :; else
+          ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+       fi
+       # We set ac_cv_exeext here because the later test for it is not
+       # safe: cross compilers may not add the suffix if given an `-o'
+       # argument, so we may need to know it at that point already.
+       # Even if this section looks crufty: it has the advantage of
+       # actually working.
+       break;;
+    * )
+       break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+if test -z "$ac_file"; then
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+    else
+       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+         break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_compiler_gnu=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_c_werror_flag=$ac_save_c_werror_flag
+        CFLAGS="-g"
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_c89=$ac_arg
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+    ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+    # Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+       if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+         if test $ac_prog = install &&
+           grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+           # AIX install.  It has an incompatible calling convention.
+           :
+         elif test $ac_prog = install &&
+           grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+           # program-specific install script used by HP pwplus--don't use.
+           :
+         else
+           rm -rf conftest.one conftest.two conftest.dir
+           echo one > conftest.one
+           echo two > conftest.two
+           mkdir conftest.dir
+           if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+             test -s conftest.one && test -s conftest.two &&
+             test -s conftest.dir/conftest.one &&
+             test -s conftest.dir/conftest.two
+           then
+             ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+             break 3
+           fi
+         fi
+       fi
+      done
+    done
+    ;;
+esac
+
+done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+    #--------------------------------------------------------------------
+    # Checks to see if the make program sets the $MAKE variable.
+    #--------------------------------------------------------------------
+
+    { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+       @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+    #--------------------------------------------------------------------
+    # Find ranlib
+    #--------------------------------------------------------------------
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+
+    #--------------------------------------------------------------------
+    # Determines the correct binary file extension (.o, .obj, .exe etc.)
+    #--------------------------------------------------------------------
+
+
+
+
+
+
+{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_header_stdc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_header_stdc=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+                  (('a' <= (c) && (c) <= 'i') \
+                    || ('j' <= (c) && (c) <= 'r') \
+                    || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+       || toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                 inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  eval "$as_ac_Header=yes"
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       eval "$as_ac_Header=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+    # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here.
+
+
+    #------------------------------------------------------------------------
+    # If we're using GCC, see if the compiler understands -pipe. If so, use it.
+    # It makes compiling go faster.  (This is only a performance feature.)
+    #------------------------------------------------------------------------
+
+    if test -z "$no_pipe" -a -n "$GCC"; then
+       { $as_echo "$as_me:$LINENO: checking if the compiler understands -pipe" >&5
+$as_echo_n "checking if the compiler understands -pipe... " >&6; }
+if test "${tcl_cv_cc_pipe+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+           hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe"
+           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_cc_pipe=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_cc_pipe=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           CFLAGS=$hold_cflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_cc_pipe" >&5
+$as_echo "$tcl_cv_cc_pipe" >&6; }
+       if test $tcl_cv_cc_pipe = yes; then
+           CFLAGS="$CFLAGS -pipe"
+       fi
+    fi
+
+    #--------------------------------------------------------------------
+    # Common compiler flag setup
+    #--------------------------------------------------------------------
+
+
+ { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if test "${ac_cv_c_bigendian+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+              not a universal capable compiler
+            #endif
+            typedef int dummy;
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+
+       # Check for potential -arch flags.  It is not universal unless
+       # there are some -arch flags.  Note that *ppc* also matches
+       # ppc64.  This check is also rather less than ideal.
+       case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in  #(
+         *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
+       esac
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+            #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+                    && LITTLE_ENDIAN)
+             bogus endian macros
+            #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+               #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+                not big endian
+               #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_bigendian=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_c_bigendian=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+             bogus endian macros
+            #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+                not big endian
+               #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_bigendian=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_c_bigendian=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then
+  # Try to guess by grepping values from an object file.
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+short int ascii_mm[] =
+                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+               short int ascii_ii[] =
+                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+               int use_ascii (int i) {
+                 return ascii_mm[i] + ascii_ii[i];
+               }
+               short int ebcdic_ii[] =
+                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+               short int ebcdic_mm[] =
+                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+               int use_ebcdic (int i) {
+                 return ebcdic_mm[i] + ebcdic_ii[i];
+               }
+               extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+             ac_cv_c_bigendian=yes
+           fi
+           if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+             if test "$ac_cv_c_bigendian" = unknown; then
+               ac_cv_c_bigendian=no
+             else
+               # finding both strings is unlikely to happen, but who knows?
+               ac_cv_c_bigendian=unknown
+             fi
+           fi
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+            /* Are we little or big endian?  From Harbison&Steele.  */
+            union
+            {
+              long int l;
+              char c[sizeof (long int)];
+            } u;
+            u.l = 1;
+            return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=no
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_bigendian=yes
+fi
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+    fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     cat >>confdefs.h <<\_ACEOF
+#define WORDS_BIGENDIAN 1
+_ACEOF
+;; #(
+   no)
+      ;; #(
+   universal)
+
+cat >>confdefs.h <<\_ACEOF
+#define AC_APPLE_UNIVERSAL_BUILD 1
+_ACEOF
+
+     ;; #(
+   *)
+     { { $as_echo "$as_me:$LINENO: error: unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+$as_echo "$as_me: error: unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+   { (exit 1); exit 1; }; } ;;
+ esac
+
+    if test "${TEA_PLATFORM}" = "unix" ; then
+
+    #--------------------------------------------------------------------
+    # On a few very rare systems, all of the libm.a stuff is
+    # already in libc.a.  Set compiler flags accordingly.
+    # Also, Linux requires the "ieee" library for math to work
+    # right (and it must appear before "-lm").
+    #--------------------------------------------------------------------
+
+    { $as_echo "$as_me:$LINENO: checking for sin" >&5
+$as_echo_n "checking for sin... " >&6; }
+if test "${ac_cv_func_sin+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define sin to an innocuous variant, in case <limits.h> declares sin.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define sin innocuous_sin
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char sin (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef sin
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sin ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_sin || defined __stub___sin
+choke me
+#endif
+
+int
+main ()
+{
+return sin ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_func_sin=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_func_sin=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_sin" >&5
+$as_echo "$ac_cv_func_sin" >&6; }
+if test "x$ac_cv_func_sin" = x""yes; then
+  MATH_LIBS=""
+else
+  MATH_LIBS="-lm"
+fi
+
+    { $as_echo "$as_me:$LINENO: checking for main in -lieee" >&5
+$as_echo_n "checking for main in -lieee... " >&6; }
+if test "${ac_cv_lib_ieee_main+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lieee  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_ieee_main=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_ieee_main=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ieee_main" >&5
+$as_echo "$ac_cv_lib_ieee_main" >&6; }
+if test "x$ac_cv_lib_ieee_main" = x""yes; then
+  MATH_LIBS="-lieee $MATH_LIBS"
+fi
+
+
+    #--------------------------------------------------------------------
+    # Interactive UNIX requires -linet instead of -lsocket, plus it
+    # needs net/errno.h to define the socket-related error codes.
+    #--------------------------------------------------------------------
+
+    { $as_echo "$as_me:$LINENO: checking for main in -linet" >&5
+$as_echo_n "checking for main in -linet... " >&6; }
+if test "${ac_cv_lib_inet_main+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-linet  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_inet_main=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_inet_main=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_inet_main" >&5
+$as_echo "$ac_cv_lib_inet_main" >&6; }
+if test "x$ac_cv_lib_inet_main" = x""yes; then
+  LIBS="$LIBS -linet"
+fi
+
+    if test "${ac_cv_header_net_errno_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for net/errno.h" >&5
+$as_echo_n "checking for net/errno.h... " >&6; }
+if test "${ac_cv_header_net_errno_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_net_errno_h" >&5
+$as_echo "$ac_cv_header_net_errno_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking net/errno.h usability" >&5
+$as_echo_n "checking net/errno.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <net/errno.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking net/errno.h presence" >&5
+$as_echo_n "checking net/errno.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <net/errno.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: net/errno.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: net/errno.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: net/errno.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: net/errno.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: net/errno.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: net/errno.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: net/errno.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: net/errno.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: net/errno.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for net/errno.h" >&5
+$as_echo_n "checking for net/errno.h... " >&6; }
+if test "${ac_cv_header_net_errno_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_net_errno_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_net_errno_h" >&5
+$as_echo "$ac_cv_header_net_errno_h" >&6; }
+
+fi
+if test "x$ac_cv_header_net_errno_h" = x""yes; then
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_NET_ERRNO_H 1
+_ACEOF
+
+fi
+
+
+
+    #--------------------------------------------------------------------
+    #  Check for the existence of the -lsocket and -lnsl libraries.
+    #  The order here is important, so that they end up in the right
+    #  order in the command line generated by make.  Here are some
+    #  special considerations:
+    #  1. Use "connect" and "accept" to check for -lsocket, and
+    #     "gethostbyname" to check for -lnsl.
+    #  2. Use each function name only once:  can't redo a check because
+    #     autoconf caches the results of the last check and won't redo it.
+    #  3. Use -lnsl and -lsocket only if they supply procedures that
+    #     aren't already present in the normal libraries.  This is because
+    #     IRIX 5.2 has libraries, but they aren't needed and they're
+    #     bogus:  they goof up name resolution if used.
+    #  4. On some SVR4 systems, can't use -lsocket without -lnsl too.
+    #     To get around this problem, check for both libraries together
+    #     if -lsocket doesn't work by itself.
+    #--------------------------------------------------------------------
+
+    tcl_checkBoth=0
+    { $as_echo "$as_me:$LINENO: checking for connect" >&5
+$as_echo_n "checking for connect... " >&6; }
+if test "${ac_cv_func_connect+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define connect to an innocuous variant, in case <limits.h> declares connect.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define connect innocuous_connect
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char connect (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef connect
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_connect || defined __stub___connect
+choke me
+#endif
+
+int
+main ()
+{
+return connect ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_func_connect=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_func_connect=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5
+$as_echo "$ac_cv_func_connect" >&6; }
+if test "x$ac_cv_func_connect" = x""yes; then
+  tcl_checkSocket=0
+else
+  tcl_checkSocket=1
+fi
+
+    if test "$tcl_checkSocket" = 1; then
+       { $as_echo "$as_me:$LINENO: checking for setsockopt" >&5
+$as_echo_n "checking for setsockopt... " >&6; }
+if test "${ac_cv_func_setsockopt+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define setsockopt to an innocuous variant, in case <limits.h> declares setsockopt.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define setsockopt innocuous_setsockopt
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char setsockopt (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef setsockopt
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setsockopt ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_setsockopt || defined __stub___setsockopt
+choke me
+#endif
+
+int
+main ()
+{
+return setsockopt ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_func_setsockopt=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_func_setsockopt=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_setsockopt" >&5
+$as_echo "$ac_cv_func_setsockopt" >&6; }
+if test "x$ac_cv_func_setsockopt" = x""yes; then
+  :
+else
+  { $as_echo "$as_me:$LINENO: checking for setsockopt in -lsocket" >&5
+$as_echo_n "checking for setsockopt in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_setsockopt+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_socket_setsockopt=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_socket_setsockopt=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_setsockopt" >&5
+$as_echo "$ac_cv_lib_socket_setsockopt" >&6; }
+if test "x$ac_cv_lib_socket_setsockopt" = x""yes; then
+  LIBS="$LIBS -lsocket"
+else
+  tcl_checkBoth=1
+fi
+
+fi
+
+    fi
+    if test "$tcl_checkBoth" = 1; then
+       tk_oldLibs=$LIBS
+       LIBS="$LIBS -lsocket -lnsl"
+       { $as_echo "$as_me:$LINENO: checking for accept" >&5
+$as_echo_n "checking for accept... " >&6; }
+if test "${ac_cv_func_accept+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define accept to an innocuous variant, in case <limits.h> declares accept.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define accept innocuous_accept
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char accept (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef accept
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char accept ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_accept || defined __stub___accept
+choke me
+#endif
+
+int
+main ()
+{
+return accept ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_func_accept=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_func_accept=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_accept" >&5
+$as_echo "$ac_cv_func_accept" >&6; }
+if test "x$ac_cv_func_accept" = x""yes; then
+  tcl_checkNsl=0
+else
+  LIBS=$tk_oldLibs
+fi
+
+    fi
+    { $as_echo "$as_me:$LINENO: checking for gethostbyname" >&5
+$as_echo_n "checking for gethostbyname... " >&6; }
+if test "${ac_cv_func_gethostbyname+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define gethostbyname innocuous_gethostbyname
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char gethostbyname (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef gethostbyname
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_gethostbyname || defined __stub___gethostbyname
+choke me
+#endif
+
+int
+main ()
+{
+return gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_func_gethostbyname=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_func_gethostbyname=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
+$as_echo "$ac_cv_func_gethostbyname" >&6; }
+if test "x$ac_cv_func_gethostbyname" = x""yes; then
+  :
+else
+  { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_nsl_gethostbyname=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_nsl_gethostbyname=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then
+  LIBS="$LIBS -lnsl"
+fi
+
+fi
+
+
+    # TEA specific: Don't perform the eval of the libraries here because
+    # DL_LIBS won't be set until we call TEA_CONFIG_CFLAGS
+
+    TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}'
+
+
+
+
+    { $as_echo "$as_me:$LINENO: checking dirent.h" >&5
+$as_echo_n "checking dirent.h... " >&6; }
+if test "${tcl_cv_dirent_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <dirent.h>
+int
+main ()
+{
+
+#ifndef _POSIX_SOURCE
+#   ifdef __Lynx__
+       /*
+        * Generate compilation error to make the test fail:  Lynx headers
+        * are only valid if really in the POSIX environment.
+        */
+
+       missing_procedure();
+#   endif
+#endif
+DIR *d;
+struct dirent *entryPtr;
+char *p;
+d = opendir("foobar");
+entryPtr = readdir(d);
+p = entryPtr->d_name;
+closedir(d);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_dirent_h=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_dirent_h=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_dirent_h" >&5
+$as_echo "$tcl_cv_dirent_h" >&6; }
+
+    if test $tcl_cv_dirent_h = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_DIRENT_H 1
+_ACEOF
+
+    fi
+
+    # TEA specific:
+    if test "${ac_cv_header_errno_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for errno.h" >&5
+$as_echo_n "checking for errno.h... " >&6; }
+if test "${ac_cv_header_errno_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_errno_h" >&5
+$as_echo "$ac_cv_header_errno_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking errno.h usability" >&5
+$as_echo_n "checking errno.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <errno.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking errno.h presence" >&5
+$as_echo_n "checking errno.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <errno.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: errno.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: errno.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: errno.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: errno.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: errno.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: errno.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: errno.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: errno.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: errno.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for errno.h" >&5
+$as_echo_n "checking for errno.h... " >&6; }
+if test "${ac_cv_header_errno_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_errno_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_errno_h" >&5
+$as_echo "$ac_cv_header_errno_h" >&6; }
+
+fi
+if test "x$ac_cv_header_errno_h" = x""yes; then
+  :
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_ERRNO_H 1
+_ACEOF
+
+fi
+
+
+    if test "${ac_cv_header_float_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for float.h" >&5
+$as_echo_n "checking for float.h... " >&6; }
+if test "${ac_cv_header_float_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_float_h" >&5
+$as_echo "$ac_cv_header_float_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking float.h usability" >&5
+$as_echo_n "checking float.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <float.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking float.h presence" >&5
+$as_echo_n "checking float.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <float.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: float.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: float.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: float.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: float.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: float.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: float.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: float.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: float.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: float.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for float.h" >&5
+$as_echo_n "checking for float.h... " >&6; }
+if test "${ac_cv_header_float_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_float_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_float_h" >&5
+$as_echo "$ac_cv_header_float_h" >&6; }
+
+fi
+if test "x$ac_cv_header_float_h" = x""yes; then
+  :
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_FLOAT_H 1
+_ACEOF
+
+fi
+
+
+    if test "${ac_cv_header_values_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for values.h" >&5
+$as_echo_n "checking for values.h... " >&6; }
+if test "${ac_cv_header_values_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_values_h" >&5
+$as_echo "$ac_cv_header_values_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking values.h usability" >&5
+$as_echo_n "checking values.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <values.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking values.h presence" >&5
+$as_echo_n "checking values.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <values.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: values.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: values.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: values.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: values.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: values.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: values.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: values.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: values.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: values.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for values.h" >&5
+$as_echo_n "checking for values.h... " >&6; }
+if test "${ac_cv_header_values_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_values_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_values_h" >&5
+$as_echo "$ac_cv_header_values_h" >&6; }
+
+fi
+if test "x$ac_cv_header_values_h" = x""yes; then
+  :
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_VALUES_H 1
+_ACEOF
+
+fi
+
+
+    if test "${ac_cv_header_limits_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for limits.h" >&5
+$as_echo_n "checking for limits.h... " >&6; }
+if test "${ac_cv_header_limits_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_limits_h" >&5
+$as_echo "$ac_cv_header_limits_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking limits.h usability" >&5
+$as_echo_n "checking limits.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <limits.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking limits.h presence" >&5
+$as_echo_n "checking limits.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <limits.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: limits.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: limits.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: limits.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: limits.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: limits.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: limits.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: limits.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: limits.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: limits.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for limits.h" >&5
+$as_echo_n "checking for limits.h... " >&6; }
+if test "${ac_cv_header_limits_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_limits_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_limits_h" >&5
+$as_echo "$ac_cv_header_limits_h" >&6; }
+
+fi
+if test "x$ac_cv_header_limits_h" = x""yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIMITS_H 1
+_ACEOF
+
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_LIMITS_H 1
+_ACEOF
+
+fi
+
+
+    if test "${ac_cv_header_stdlib_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for stdlib.h" >&5
+$as_echo_n "checking for stdlib.h... " >&6; }
+if test "${ac_cv_header_stdlib_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdlib_h" >&5
+$as_echo "$ac_cv_header_stdlib_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking stdlib.h usability" >&5
+$as_echo_n "checking stdlib.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <stdlib.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking stdlib.h presence" >&5
+$as_echo_n "checking stdlib.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: stdlib.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: stdlib.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: stdlib.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: stdlib.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: stdlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: stdlib.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: stdlib.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: stdlib.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for stdlib.h" >&5
+$as_echo_n "checking for stdlib.h... " >&6; }
+if test "${ac_cv_header_stdlib_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_stdlib_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdlib_h" >&5
+$as_echo "$ac_cv_header_stdlib_h" >&6; }
+
+fi
+if test "x$ac_cv_header_stdlib_h" = x""yes; then
+  tcl_ok=1
+else
+  tcl_ok=0
+fi
+
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "strtol" >/dev/null 2>&1; then
+  :
+else
+  tcl_ok=0
+fi
+rm -f conftest*
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "strtoul" >/dev/null 2>&1; then
+  :
+else
+  tcl_ok=0
+fi
+rm -f conftest*
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "strtod" >/dev/null 2>&1; then
+  :
+else
+  tcl_ok=0
+fi
+rm -f conftest*
+
+    if test $tcl_ok = 0; then
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_STDLIB_H 1
+_ACEOF
+
+    fi
+    if test "${ac_cv_header_string_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for string.h" >&5
+$as_echo_n "checking for string.h... " >&6; }
+if test "${ac_cv_header_string_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_string_h" >&5
+$as_echo "$ac_cv_header_string_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking string.h usability" >&5
+$as_echo_n "checking string.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <string.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking string.h presence" >&5
+$as_echo_n "checking string.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: string.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: string.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: string.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: string.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: string.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: string.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: string.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: string.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: string.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for string.h" >&5
+$as_echo_n "checking for string.h... " >&6; }
+if test "${ac_cv_header_string_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_string_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_string_h" >&5
+$as_echo "$ac_cv_header_string_h" >&6; }
+
+fi
+if test "x$ac_cv_header_string_h" = x""yes; then
+  tcl_ok=1
+else
+  tcl_ok=0
+fi
+
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "strstr" >/dev/null 2>&1; then
+  :
+else
+  tcl_ok=0
+fi
+rm -f conftest*
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "strerror" >/dev/null 2>&1; then
+  :
+else
+  tcl_ok=0
+fi
+rm -f conftest*
+
+
+    # See also memmove check below for a place where NO_STRING_H can be
+    # set and why.
+
+    if test $tcl_ok = 0; then
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_STRING_H 1
+_ACEOF
+
+    fi
+
+    if test "${ac_cv_header_sys_wait_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for sys/wait.h" >&5
+$as_echo_n "checking for sys/wait.h... " >&6; }
+if test "${ac_cv_header_sys_wait_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
+$as_echo "$ac_cv_header_sys_wait_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking sys/wait.h usability" >&5
+$as_echo_n "checking sys/wait.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <sys/wait.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking sys/wait.h presence" >&5
+$as_echo_n "checking sys/wait.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/wait.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: sys/wait.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: sys/wait.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for sys/wait.h" >&5
+$as_echo_n "checking for sys/wait.h... " >&6; }
+if test "${ac_cv_header_sys_wait_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_sys_wait_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
+$as_echo "$ac_cv_header_sys_wait_h" >&6; }
+
+fi
+if test "x$ac_cv_header_sys_wait_h" = x""yes; then
+  :
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_SYS_WAIT_H 1
+_ACEOF
+
+fi
+
+
+    if test "${ac_cv_header_dlfcn_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for dlfcn.h" >&5
+$as_echo_n "checking for dlfcn.h... " >&6; }
+if test "${ac_cv_header_dlfcn_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5
+$as_echo "$ac_cv_header_dlfcn_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking dlfcn.h usability" >&5
+$as_echo_n "checking dlfcn.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <dlfcn.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking dlfcn.h presence" >&5
+$as_echo_n "checking dlfcn.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <dlfcn.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: dlfcn.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: dlfcn.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for dlfcn.h" >&5
+$as_echo_n "checking for dlfcn.h... " >&6; }
+if test "${ac_cv_header_dlfcn_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_dlfcn_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5
+$as_echo "$ac_cv_header_dlfcn_h" >&6; }
+
+fi
+if test "x$ac_cv_header_dlfcn_h" = x""yes; then
+  :
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_DLFCN_H 1
+_ACEOF
+
+fi
+
+
+
+    # OS/390 lacks sys/param.h (and doesn't need it, by chance).
+
+for ac_header in sys/param.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+fi
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+       # Let the user call this, because if it triggers, they will
+       # need a compat/strtod.c that is correct.  Users can also
+       # use Tcl_GetDouble(FromObj) instead.
+       #TEA_BUGGY_STRTOD
+    fi
+
+
+#-----------------------------------------------------------------------
+# __CHANGE__
+# Specify the C source files to compile in TEA_ADD_SOURCES,
+# public headers that need to be installed in TEA_ADD_HEADERS,
+# stub library C source files to compile in TEA_ADD_STUB_SOURCES,
+# and runtime Tcl library files in TEA_ADD_TCL_SOURCES.
+# This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS
+# and PKG_TCL_SOURCES.
+#-----------------------------------------------------------------------
+
+
+    vars="tclcurl.c multi.c"
+    for i in $vars; do
+       case $i in
+           \$*)
+               # allow $-var names
+               PKG_SOURCES="$PKG_SOURCES $i"
+               PKG_OBJECTS="$PKG_OBJECTS $i"
+               ;;
+           *)
+               # check for existence - allows for generic/win/unix VPATH
+               # To add more dirs here (like 'src'), you have to update VPATH
+               # in Makefile.in as well
+               if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
+                   -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
+                   ; then
+                   { { $as_echo "$as_me:$LINENO: error: could not find source file '$i'" >&5
+$as_echo "$as_me: error: could not find source file '$i'" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+               PKG_SOURCES="$PKG_SOURCES $i"
+               # this assumes it is in a VPATH dir
+               i=`basename $i`
+               # handle user calling this before or after TEA_SETUP_COMPILER
+               if test x"${OBJEXT}" != x ; then
+                   j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}"
+               else
+                   j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}"
+               fi
+               PKG_OBJECTS="$PKG_OBJECTS $j"
+               ;;
+       esac
+    done
+
+
+
+TCLCURL_SCRIPTS=tclcurl.tcl
+
+
+#--------------------------------------------------------------------
+# Find libcurl, if it's not present, it makes no sense to compile
+# this.
+#--------------------------------------------------------------------
+
+
+# Check whether --with-curlprefix was given.
+if test "${with_curlprefix+set}" = set; then
+  withval=$with_curlprefix;
+    curlprefix=$withval
+    curlpath=$curlprefix/bin
+    # Extract the first word of "curl", so it can be a program name with args.
+set dummy curl; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_curl+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$curl"; then
+  ac_cv_prog_curl="$curl" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $curlpath
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_curl="yes"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_curl" && ac_cv_prog_curl="no"
+fi
+fi
+curl=$ac_cv_prog_curl
+if test -n "$curl"; then
+  { $as_echo "$as_me:$LINENO: result: $curl" >&5
+$as_echo "$curl" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    if test "x$curl" = xno ; then
+       { { $as_echo "$as_me:$LINENO: error: can not find cURL in $curlpath" >&5
+$as_echo "$as_me: error: can not find cURL in $curlpath" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+
+else
+
+    # Extract the first word of "curl-config", so it can be a program name with args.
+set dummy curl-config; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_curl+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$curl"; then
+  ac_cv_prog_curl="$curl" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_curl="yes"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_curl" && ac_cv_prog_curl="no"
+fi
+fi
+curl=$ac_cv_prog_curl
+if test -n "$curl"; then
+  { $as_echo "$as_me:$LINENO: result: $curl" >&5
+$as_echo "$curl" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    if test "x$curl" = xno ; then
+        { { $as_echo "$as_me:$LINENO: error: can not find cURL or libcurl... go to http://curl.haxx.se/ to download and then install it first" >&5
+$as_echo "$as_me: error: can not find cURL or libcurl... go to http://curl.haxx.se/ to download and then install it first" >&2;}
+   { (exit 1); exit 1; }; }
+    else
+        curlprefix=`curl-config --prefix`
+        curlpath=$curlprefix/bin
+    fi
+
+fi
+
+
+
+# Check whether --with-curlinclude was given.
+if test "${with_curlinclude+set}" = set; then
+  withval=$with_curlinclude;
+
+    vars="-I$withval"
+    for i in $vars; do
+       PKG_INCLUDES="$PKG_INCLUDES $i"
+    done
+
+
+    curlinclude=$withval
+
+else
+
+
+    vars="-I$curlprefix/include"
+    for i in $vars; do
+       PKG_INCLUDES="$PKG_INCLUDES $i"
+    done
+
+
+     curlinclude=$curlprefix/include
+
+fi
+
+
+if test "${ac_cv_header_curl_curl_h+set}" = set; then
+  { $as_echo "$as_me:$LINENO: checking for curl/curl.h" >&5
+$as_echo_n "checking for curl/curl.h... " >&6; }
+if test "${ac_cv_header_curl_curl_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_curl_curl_h" >&5
+$as_echo "$ac_cv_header_curl_curl_h" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking curl/curl.h usability" >&5
+$as_echo_n "checking curl/curl.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <curl/curl.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking curl/curl.h presence" >&5
+$as_echo_n "checking curl/curl.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <curl/curl.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: curl/curl.h:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: curl/curl.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: curl/curl.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: curl/curl.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for curl/curl.h" >&5
+$as_echo_n "checking for curl/curl.h... " >&6; }
+if test "${ac_cv_header_curl_curl_h+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_header_curl_curl_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_curl_curl_h" >&5
+$as_echo "$ac_cv_header_curl_curl_h" >&6; }
+
+fi
+if test "x$ac_cv_header_curl_curl_h" = x""yes; then
+  headercurl=yes
+else
+  headercurl=no
+fi
+
+
+if test "x$headercurl" = xno ; then
+    { $as_echo "$as_me:$LINENO: checking checking for headers at $curlinclude" >&5
+$as_echo_n "checking checking for headers at $curlinclude... " >&6; }
+    if test  ! -r $curlinclude/curl/curl.h  ; then
+        { { $as_echo "$as_me:$LINENO: error: cURL headers not found, you may need to install a curl-devel package" >&5
+$as_echo "$as_me: error: cURL headers not found, you may need to install a curl-devel package" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    { $as_echo "$as_me:$LINENO: result: found" >&5
+$as_echo "found" >&6; }
+fi
+
+
+# Check whether --with-libcurl was given.
+if test "${with_libcurl+set}" = set; then
+  withval=$with_libcurl;
+
+    vars="-L$withval"
+    for i in $vars; do
+       if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
+           # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
+           i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'`
+       fi
+       PKG_LIBS="$PKG_LIBS $i"
+    done
+
+
+
+else
+
+
+    vars="-L$curlprefix/lib"
+    for i in $vars; do
+       if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
+           # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
+           i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'`
+       fi
+       PKG_LIBS="$PKG_LIBS $i"
+    done
+
+
+
+fi
+
+
+{ $as_echo "$as_me:$LINENO: checking if libcurl version is recent enough" >&5
+$as_echo_n "checking if libcurl version is recent enough... " >&6; }
+CURL_VERSION=`$curlpath/curl-config --checkfor 7.19.6`
+if test "${CURL_VERSION}" != "" ; then
+    echo ${CURL_VERSION}
+    { { $as_echo "$as_me:$LINENO: error: libcurl version too old, please upgrade" >&5
+$as_echo "$as_me: error: libcurl version too old, please upgrade" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+    vars="`$curlpath/curl-config --libs`"
+    for i in $vars; do
+       if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
+           # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
+           i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'`
+       fi
+       PKG_LIBS="$PKG_LIBS $i"
+    done
+
+
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# A few miscellaneous platform-specific items:
+#
+# Define a special symbol for Windows (BUILD_sample in this case) so
+# that we create the export library with the dll.
+#
+# Windows creates a few extra files that need to be cleaned up.
+# You can add more files to clean if your extension creates any extra
+# files.
+#
+# TEA_ADD_* any platform specific compiler/build info here.
+#--------------------------------------------------------------------
+
+# Add pkgIndex.tcl if it is generated in the Makefile instead of ./configure
+# and change Makefile.in to move it from CONFIG_CLEAN_FILES to BINARIES var.
+#CLEANFILES="pkgIndex.tcl"
+if test "${TEA_PLATFORM}" = "windows" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define BUILD_sample 1
+_ACEOF
+
+    CLEANFILES="$CLEANFILES *.lib *.dll *.exp *.ilk *.pdb vc*.pch"
+    #TEA_ADD_SOURCES([win/winFile.c])
+    #TEA_ADD_INCLUDES([-I\"$(${CYGPATH} ${srcdir}/win)\"])
+else
+    # Ensure no empty else clauses
+    :
+    #TEA_ADD_SOURCES([unix/unixFile.c])
+    #TEA_ADD_LIBS([-lsuperfly])
+fi
+
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Choose which headers you need.  Extension authors should try very
+# hard to only rely on the Tcl public header files.  Internal headers
+# contain private data structures and are subject to change without
+# notice.
+# This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG
+#--------------------------------------------------------------------
+
+
+    { $as_echo "$as_me:$LINENO: checking for Tcl public headers" >&5
+$as_echo_n "checking for Tcl public headers... " >&6; }
+
+
+# Check whether --with-tclinclude was given.
+if test "${with_tclinclude+set}" = set; then
+  withval=$with_tclinclude; with_tclinclude=${withval}
+fi
+
+
+    if test "${ac_cv_c_tclh+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+       # Use the value from --with-tclinclude, if it was given
+
+       if test x"${with_tclinclude}" != x ; then
+           if test -f "${with_tclinclude}/tcl.h" ; then
+               ac_cv_c_tclh=${with_tclinclude}
+           else
+               { { $as_echo "$as_me:$LINENO: error: ${with_tclinclude} directory does not contain tcl.h" >&5
+$as_echo "$as_me: error: ${with_tclinclude} directory does not contain tcl.h" >&2;}
+   { (exit 1); exit 1; }; }
+           fi
+       else
+           list=""
+           if test "`uname -s`" = "Darwin"; then
+               # If Tcl was built as a framework, attempt to use
+               # the framework's Headers directory
+               case ${TCL_DEFS} in
+                   *TCL_FRAMEWORK*)
+                       list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`"
+                       ;;
+               esac
+           fi
+
+           # Look in the source dir only if Tcl is not installed,
+           # and in that situation, look there before installed locations.
+           if test -f "${TCL_BIN_DIR}/Makefile" ; then
+               list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`"
+           fi
+
+           # Check order: pkg --prefix location, Tcl's --prefix location,
+           # relative to directory of tclConfig.sh.
+
+           eval "temp_includedir=${includedir}"
+           list="$list \
+               `ls -d ${temp_includedir}        2>/dev/null` \
+               `ls -d ${TCL_PREFIX}/include     2>/dev/null` \
+               `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
+           if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
+               list="$list /usr/local/include /usr/include"
+               if test x"${TCL_INCLUDE_SPEC}" != x ; then
+                   d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'`
+                   list="$list `ls -d ${d} 2>/dev/null`"
+               fi
+           fi
+           for i in $list ; do
+               if test -f "$i/tcl.h" ; then
+                   ac_cv_c_tclh=$i
+                   break
+               fi
+           done
+       fi
+
+fi
+
+
+    # Print a message based on how we determined the include path
+
+    if test x"${ac_cv_c_tclh}" = x ; then
+       { { $as_echo "$as_me:$LINENO: error: tcl.h not found.  Please specify its location with --with-tclinclude" >&5
+$as_echo "$as_me: error: tcl.h not found.  Please specify its location with --with-tclinclude" >&2;}
+   { (exit 1); exit 1; }; }
+    else
+       { $as_echo "$as_me:$LINENO: result: ${ac_cv_c_tclh}" >&5
+$as_echo "${ac_cv_c_tclh}" >&6; }
+    fi
+
+    # Convert to a native path and substitute into the output files.
+
+    INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}`
+
+    TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
+
+
+
+#TEA_PRIVATE_TCL_HEADERS
+
+#TEA_PUBLIC_TK_HEADERS
+#TEA_PRIVATE_TK_HEADERS
+#TEA_PATH_X
+
+#--------------------------------------------------------------------
+# Check whether --enable-threads or --disable-threads was given.
+# This auto-enables if Tcl was compiled threaded.
+#--------------------------------------------------------------------
+
+
+    # Check whether --enable-threads was given.
+if test "${enable_threads+set}" = set; then
+  enableval=$enable_threads; tcl_ok=$enableval
+else
+  tcl_ok=yes
+fi
+
+
+    if test "${enable_threads+set}" = set; then
+       enableval="$enable_threads"
+       tcl_ok=$enableval
+    else
+       tcl_ok=yes
+    fi
+
+    if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
+       TCL_THREADS=1
+
+       if test "${TEA_PLATFORM}" != "windows" ; then
+           # We are always OK on Windows, so check what this platform wants:
+
+           # USE_THREAD_ALLOC tells us to try the special thread-based
+           # allocator that significantly reduces lock contention
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_THREAD_ALLOC 1
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define _REENTRANT 1
+_ACEOF
+
+           if test "`uname -s`" = "SunOS" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define _POSIX_PTHREAD_SEMANTICS 1
+_ACEOF
+
+           fi
+
+cat >>confdefs.h <<\_ACEOF
+#define _THREAD_SAFE 1
+_ACEOF
+
+           { $as_echo "$as_me:$LINENO: checking for pthread_mutex_init in -lpthread" >&5
+$as_echo_n "checking for pthread_mutex_init in -lpthread... " >&6; }
+if test "${ac_cv_lib_pthread_pthread_mutex_init+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_mutex_init ();
+int
+main ()
+{
+return pthread_mutex_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_pthread_pthread_mutex_init=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_pthread_pthread_mutex_init=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_mutex_init" >&5
+$as_echo "$ac_cv_lib_pthread_pthread_mutex_init" >&6; }
+if test "x$ac_cv_lib_pthread_pthread_mutex_init" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+           if test "$tcl_ok" = "no"; then
+               # Check a little harder for __pthread_mutex_init in the same
+               # library, as some systems hide it there until pthread.h is
+               # defined.  We could alternatively do an AC_TRY_COMPILE with
+               # pthread.h, but that will work with libpthread really doesn't
+               # exist, like AIX 4.2.  [Bug: 4359]
+               { $as_echo "$as_me:$LINENO: checking for __pthread_mutex_init in -lpthread" >&5
+$as_echo_n "checking for __pthread_mutex_init in -lpthread... " >&6; }
+if test "${ac_cv_lib_pthread___pthread_mutex_init+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char __pthread_mutex_init ();
+int
+main ()
+{
+return __pthread_mutex_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_pthread___pthread_mutex_init=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_pthread___pthread_mutex_init=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread___pthread_mutex_init" >&5
+$as_echo "$ac_cv_lib_pthread___pthread_mutex_init" >&6; }
+if test "x$ac_cv_lib_pthread___pthread_mutex_init" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+           fi
+
+           if test "$tcl_ok" = "yes"; then
+               # The space is needed
+               THREADS_LIBS=" -lpthread"
+           else
+               { $as_echo "$as_me:$LINENO: checking for pthread_mutex_init in -lpthreads" >&5
+$as_echo_n "checking for pthread_mutex_init in -lpthreads... " >&6; }
+if test "${ac_cv_lib_pthreads_pthread_mutex_init+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthreads  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_mutex_init ();
+int
+main ()
+{
+return pthread_mutex_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_pthreads_pthread_mutex_init=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_pthreads_pthread_mutex_init=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthreads_pthread_mutex_init" >&5
+$as_echo "$ac_cv_lib_pthreads_pthread_mutex_init" >&6; }
+if test "x$ac_cv_lib_pthreads_pthread_mutex_init" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+               if test "$tcl_ok" = "yes"; then
+                   # The space is needed
+                   THREADS_LIBS=" -lpthreads"
+               else
+                   { $as_echo "$as_me:$LINENO: checking for pthread_mutex_init in -lc" >&5
+$as_echo_n "checking for pthread_mutex_init in -lc... " >&6; }
+if test "${ac_cv_lib_c_pthread_mutex_init+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lc  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_mutex_init ();
+int
+main ()
+{
+return pthread_mutex_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_c_pthread_mutex_init=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_c_pthread_mutex_init=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_c_pthread_mutex_init" >&5
+$as_echo "$ac_cv_lib_c_pthread_mutex_init" >&6; }
+if test "x$ac_cv_lib_c_pthread_mutex_init" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+                   if test "$tcl_ok" = "no"; then
+                       { $as_echo "$as_me:$LINENO: checking for pthread_mutex_init in -lc_r" >&5
+$as_echo_n "checking for pthread_mutex_init in -lc_r... " >&6; }
+if test "${ac_cv_lib_c_r_pthread_mutex_init+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lc_r  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_mutex_init ();
+int
+main ()
+{
+return pthread_mutex_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_c_r_pthread_mutex_init=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_c_r_pthread_mutex_init=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_pthread_mutex_init" >&5
+$as_echo "$ac_cv_lib_c_r_pthread_mutex_init" >&6; }
+if test "x$ac_cv_lib_c_r_pthread_mutex_init" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+                       if test "$tcl_ok" = "yes"; then
+                           # The space is needed
+                           THREADS_LIBS=" -pthread"
+                       else
+                           TCL_THREADS=0
+                           { $as_echo "$as_me:$LINENO: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&5
+$as_echo "$as_me: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&2;}
+                       fi
+                   fi
+               fi
+           fi
+       fi
+    else
+       TCL_THREADS=0
+    fi
+    # Do checking message here to not mess up interleaved configure output
+    { $as_echo "$as_me:$LINENO: checking for building with threads" >&5
+$as_echo_n "checking for building with threads... " >&6; }
+    if test "${TCL_THREADS}" = 1; then
+
+cat >>confdefs.h <<\_ACEOF
+#define TCL_THREADS 1
+_ACEOF
+
+       { $as_echo "$as_me:$LINENO: result: yes (default)" >&5
+$as_echo "yes (default)" >&6; }
+    else
+       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+    fi
+    # TCL_THREADS sanity checking.  See if our request for building with
+    # threads is the same as the way Tcl was built.  If not, warn the user.
+    case ${TCL_DEFS} in
+       *THREADS=1*)
+           if test "${TCL_THREADS}" = "0"; then
+               { $as_echo "$as_me:$LINENO: WARNING:
+    Building ${PACKAGE_NAME} without threads enabled, but building against Tcl
+    that IS thread-enabled.  It is recommended to use --enable-threads." >&5
+$as_echo "$as_me: WARNING:
+    Building ${PACKAGE_NAME} without threads enabled, but building against Tcl
+    that IS thread-enabled.  It is recommended to use --enable-threads." >&2;}
+           fi
+           ;;
+       *)
+           if test "${TCL_THREADS}" = "1"; then
+               { $as_echo "$as_me:$LINENO: WARNING:
+    --enable-threads requested, but building against a Tcl that is NOT
+    thread-enabled.  This is an OK configuration that will also run in
+    a thread-enabled core." >&5
+$as_echo "$as_me: WARNING:
+    --enable-threads requested, but building against a Tcl that is NOT
+    thread-enabled.  This is an OK configuration that will also run in
+    a thread-enabled core." >&2;}
+           fi
+           ;;
+    esac
+
+
+
+#--------------------------------------------------------------------
+# The statement below defines a collection of symbols related to
+# building as a shared library instead of a static library.
+#--------------------------------------------------------------------
+
+
+    { $as_echo "$as_me:$LINENO: checking how to build libraries" >&5
+$as_echo_n "checking how to build libraries... " >&6; }
+    # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval=$enable_shared; tcl_ok=$enableval
+else
+  tcl_ok=yes
+fi
+
+
+    if test "${enable_shared+set}" = set; then
+       enableval="$enable_shared"
+       tcl_ok=$enableval
+    else
+       tcl_ok=yes
+    fi
+
+    if test "$tcl_ok" = "yes" ; then
+       { $as_echo "$as_me:$LINENO: result: shared" >&5
+$as_echo "shared" >&6; }
+       SHARED_BUILD=1
+    else
+       { $as_echo "$as_me:$LINENO: result: static" >&5
+$as_echo "static" >&6; }
+       SHARED_BUILD=0
+
+cat >>confdefs.h <<\_ACEOF
+#define STATIC_BUILD 1
+_ACEOF
+
+    fi
+
+
+
+#--------------------------------------------------------------------
+# This macro figures out what flags to use with the compiler/linker
+# when building shared/static debug/optimized objects.  This information
+# can be taken from the tclConfig.sh file, but this figures it all out.
+#--------------------------------------------------------------------
+
+
+
+
+    # Step 0.a: Enable 64 bit support?
+
+    { $as_echo "$as_me:$LINENO: checking if 64bit support is requested" >&5
+$as_echo_n "checking if 64bit support is requested... " >&6; }
+    # Check whether --enable-64bit was given.
+if test "${enable_64bit+set}" = set; then
+  enableval=$enable_64bit; do64bit=$enableval
+else
+  do64bit=no
+fi
+
+    { $as_echo "$as_me:$LINENO: result: $do64bit" >&5
+$as_echo "$do64bit" >&6; }
+
+    # Step 0.b: Enable Solaris 64 bit VIS support?
+
+    { $as_echo "$as_me:$LINENO: checking if 64bit Sparc VIS support is requested" >&5
+$as_echo_n "checking if 64bit Sparc VIS support is requested... " >&6; }
+    # Check whether --enable-64bit-vis was given.
+if test "${enable_64bit_vis+set}" = set; then
+  enableval=$enable_64bit_vis; do64bitVIS=$enableval
+else
+  do64bitVIS=no
+fi
+
+    { $as_echo "$as_me:$LINENO: result: $do64bitVIS" >&5
+$as_echo "$do64bitVIS" >&6; }
+    # Force 64bit on with VIS
+    if test "$do64bitVIS" = "yes"; then
+  do64bit=yes
+fi
+
+
+    # Step 0.c: Check if visibility support is available. Do this here so
+    # that platform specific alternatives can be used below if this fails.
+
+    { $as_echo "$as_me:$LINENO: checking if compiler supports visibility \"hidden\"" >&5
+$as_echo_n "checking if compiler supports visibility \"hidden\"... " >&6; }
+if test "${tcl_cv_cc_visibility_hidden+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+       hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror"
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+           extern __attribute__((__visibility__("hidden"))) void f(void);
+           void f(void) {}
+int
+main ()
+{
+f();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_cc_visibility_hidden=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_cc_visibility_hidden=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+       CFLAGS=$hold_cflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_cc_visibility_hidden" >&5
+$as_echo "$tcl_cv_cc_visibility_hidden" >&6; }
+    if test $tcl_cv_cc_visibility_hidden = yes; then
+
+
+cat >>confdefs.h <<\_ACEOF
+#define MODULE_SCOPE extern __attribute__((__visibility__("hidden")))
+_ACEOF
+
+
+fi
+
+
+    # Step 0.d: Disable -rpath support?
+
+    { $as_echo "$as_me:$LINENO: checking if rpath support is requested" >&5
+$as_echo_n "checking if rpath support is requested... " >&6; }
+    # Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then
+  enableval=$enable_rpath; doRpath=$enableval
+else
+  doRpath=yes
+fi
+
+    { $as_echo "$as_me:$LINENO: result: $doRpath" >&5
+$as_echo "$doRpath" >&6; }
+
+    # TEA specific: Cross-compiling options for Windows/CE builds?
+
+    if test "${TEA_PLATFORM}" = windows; then
+
+       { $as_echo "$as_me:$LINENO: checking if Windows/CE build is requested" >&5
+$as_echo_n "checking if Windows/CE build is requested... " >&6; }
+       # Check whether --enable-wince was given.
+if test "${enable_wince+set}" = set; then
+  enableval=$enable_wince; doWince=$enableval
+else
+  doWince=no
+fi
+
+       { $as_echo "$as_me:$LINENO: result: $doWince" >&5
+$as_echo "$doWince" >&6; }
+
+fi
+
+
+    # Step 1: set the variable "system" to hold the name and version number
+    # for the system.
+
+
+    { $as_echo "$as_me:$LINENO: checking system version" >&5
+$as_echo_n "checking system version... " >&6; }
+if test "${tcl_cv_sys_version+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+       # TEA specific:
+       if test "${TEA_PLATFORM}" = "windows" ; then
+           tcl_cv_sys_version=windows
+       elif test -f /usr/lib/NextStep/software_version; then
+           tcl_cv_sys_version=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
+       else
+           tcl_cv_sys_version=`uname -s`-`uname -r`
+           if test "$?" -ne 0 ; then
+               { $as_echo "$as_me:$LINENO: WARNING: can't find uname command" >&5
+$as_echo "$as_me: WARNING: can't find uname command" >&2;}
+               tcl_cv_sys_version=unknown
+           else
+               # Special check for weird MP-RAS system (uname returns weird
+               # results, and the version is kept in special file).
+
+               if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+                   tcl_cv_sys_version=MP-RAS-`awk '{print $3}' /etc/.relid`
+               fi
+               if test "`uname -s`" = "AIX" ; then
+                   tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+               fi
+           fi
+       fi
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_sys_version" >&5
+$as_echo "$tcl_cv_sys_version" >&6; }
+    system=$tcl_cv_sys_version
+
+
+    # Step 2: check for existence of -ldl library.  This is needed because
+    # Linux can use either -ldl or -ldld for dynamic loading.
+
+    { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_dl_dlopen=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+  have_dl=yes
+else
+  have_dl=no
+fi
+
+
+    # Require ranlib early so we can override it in special cases below.
+
+
+
+    # Step 3: set configuration options based on system name and version.
+    # This is similar to Tcl's unix/tcl.m4 except that we've added a
+    # "windows" case.
+
+    do64bit_ok=no
+    LDFLAGS_ORIG="$LDFLAGS"
+    # When ld needs options to work in 64-bit mode, put them in
+    # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load]
+    # is disabled by the user. [Bug 1016796]
+    LDFLAGS_ARCH=""
+    TCL_EXPORT_FILE_SUFFIX=""
+    UNSHARED_LIB_SUFFIX=""
+    # TEA specific: use PACKAGE_VERSION instead of VERSION
+    TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`'
+    ECHO_VERSION='`echo ${PACKAGE_VERSION}`'
+    TCL_LIB_VERSIONS_OK=ok
+    CFLAGS_DEBUG=-g
+    CFLAGS_OPTIMIZE=-O
+    if test "$GCC" = yes; then
+
+       # TEA specific:
+       CFLAGS_OPTIMIZE=-O2
+       CFLAGS_WARNING="-Wall"
+
+else
+  CFLAGS_WARNING=""
+fi
+
+    TCL_NEEDS_EXP_FILE=0
+    TCL_BUILD_EXP_FILE=""
+    TCL_EXP_FILE=""
+    # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AR+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_AR="ar"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:$LINENO: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    STLIB_LD='${AR} cr'
+    LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"
+    if test "x$SHLIB_VERSION" = x; then
+  SHLIB_VERSION="1.0"
+fi
+
+    case $system in
+       # TEA specific:
+       windows)
+           # This is a 2-stage check to make sure we have the 64-bit SDK
+           # We have to know where the SDK is installed.
+           # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs
+           # MACHINE is IX86 for LINK, but this is used by the manifest,
+           # which requires x86|amd64|ia64.
+           MACHINE="X86"
+           if test "$do64bit" != "no" ; then
+               if test "x${MSSDK}x" = "xx" ; then
+                   MSSDK="C:/Progra~1/Microsoft Platform SDK"
+               fi
+               MSSDK=`echo "$MSSDK" | sed -e  's!\\\!/!g'`
+               PATH64=""
+               case "$do64bit" in
+                   amd64|x64|yes)
+                       MACHINE="AMD64" ; # default to AMD64 64-bit build
+                       PATH64="${MSSDK}/Bin/Win64/x86/AMD64"
+                       ;;
+                   ia64)
+                       MACHINE="IA64"
+                       PATH64="${MSSDK}/Bin/Win64"
+                       ;;
+               esac
+               if test ! -d "${PATH64}" ; then
+                   { $as_echo "$as_me:$LINENO: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5
+$as_echo "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;}
+                   { $as_echo "$as_me:$LINENO: WARNING: Ensure latest Platform SDK is installed" >&5
+$as_echo "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;}
+                   do64bit="no"
+               else
+                   { $as_echo "$as_me:$LINENO: result:    Using 64-bit $MACHINE mode" >&5
+$as_echo "   Using 64-bit $MACHINE mode" >&6; }
+                   do64bit_ok="yes"
+               fi
+           fi
+
+           if test "$doWince" != "no" ; then
+               if test "$do64bit" != "no" ; then
+                   { { $as_echo "$as_me:$LINENO: error: Windows/CE and 64-bit builds incompatible" >&5
+$as_echo "$as_me: error: Windows/CE and 64-bit builds incompatible" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+               if test "$GCC" = "yes" ; then
+                   { { $as_echo "$as_me:$LINENO: error: Windows/CE and GCC builds incompatible" >&5
+$as_echo "$as_me: error: Windows/CE and GCC builds incompatible" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-celib
+
+    if test x"${no_celib}" = x ; then
+       # we reset no_celib in case something fails here
+       no_celib=true
+
+# Check whether --with-celib was given.
+if test "${with_celib+set}" = set; then
+  withval=$with_celib; with_celibconfig=${withval}
+fi
+
+       { $as_echo "$as_me:$LINENO: checking for Windows/CE celib directory" >&5
+$as_echo_n "checking for Windows/CE celib directory... " >&6; }
+       if test "${ac_cv_c_celibconfig+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+           # First check to see if --with-celibconfig was specified.
+           if test x"${with_celibconfig}" != x ; then
+               if test -d "${with_celibconfig}/inc" ; then
+                   ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)`
+               else
+                   { { $as_echo "$as_me:$LINENO: error: ${with_celibconfig} directory doesn't contain inc directory" >&5
+$as_echo "$as_me: error: ${with_celibconfig} directory doesn't contain inc directory" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+           fi
+
+           # then check for a celib library
+           if test x"${ac_cv_c_celibconfig}" = x ; then
+               for i in \
+                       ../celib-palm-3.0 \
+                       ../celib \
+                       ../../celib-palm-3.0 \
+                       ../../celib \
+                       `ls -dr ../celib-*3.[0-9]* 2>/dev/null` \
+                       ${srcdir}/../celib-palm-3.0 \
+                       ${srcdir}/../celib \
+                       `ls -dr ${srcdir}/../celib-*3.[0-9]* 2>/dev/null` \
+                       ; do
+                   if test -d "$i/inc" ; then
+                       ac_cv_c_celibconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+fi
+
+       if test x"${ac_cv_c_celibconfig}" = x ; then
+           { { $as_echo "$as_me:$LINENO: error: Cannot find celib support library directory" >&5
+$as_echo "$as_me: error: Cannot find celib support library directory" >&2;}
+   { (exit 1); exit 1; }; }
+       else
+           no_celib=
+           CELIB_DIR=${ac_cv_c_celibconfig}
+           CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'`
+           { $as_echo "$as_me:$LINENO: result: found $CELIB_DIR" >&5
+$as_echo "found $CELIB_DIR" >&6; }
+       fi
+    fi
+
+               # Set defaults for common evc4/PPC2003 setup
+               # Currently Tcl requires 300+, possibly 420+ for sockets
+               CEVERSION=420;          # could be 211 300 301 400 420 ...
+               TARGETCPU=ARMV4;        # could be ARMV4 ARM MIPS SH3 X86 ...
+               ARCH=ARM;               # could be ARM MIPS X86EM ...
+               PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002"
+               if test "$doWince" != "yes"; then
+                   # If !yes then the user specified something
+                   # Reset ARCH to allow user to skip specifying it
+                   ARCH=
+                   eval `echo $doWince | awk -F, '{ \
+           if (length($1)) { printf "CEVERSION=\"%s\"\n", $1; \
+           if ($1 < 400)   { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \
+           if (length($2)) { printf "TARGETCPU=\"%s\"\n", toupper($2) }; \
+           if (length($3)) { printf "ARCH=\"%s\"\n", toupper($3) }; \
+           if (length($4)) { printf "PLATFORM=\"%s\"\n", $4 }; \
+                   }'`
+                   if test "x${ARCH}" = "x" ; then
+                       ARCH=$TARGETCPU;
+                   fi
+               fi
+               OSVERSION=WCE$CEVERSION;
+               if test "x${WCEROOT}" = "x" ; then
+                       WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0"
+                   if test ! -d "${WCEROOT}" ; then
+                       WCEROOT="C:/Program Files/Microsoft eMbedded Tools"
+                   fi
+               fi
+               if test "x${SDKROOT}" = "x" ; then
+                   SDKROOT="C:/Program Files/Windows CE Tools"
+                   if test ! -d "${SDKROOT}" ; then
+                       SDKROOT="C:/Windows CE Tools"
+                   fi
+               fi
+               WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'`
+               SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'`
+               if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \
+                   -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then
+                   { { $as_echo "$as_me:$LINENO: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&5
+$as_echo "$as_me: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&2;}
+   { (exit 1); exit 1; }; }
+                   doWince="no"
+               else
+                   # We could PATH_NOSPACE these, but that's not important,
+                   # as long as we quote them when used.
+                   CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include"
+                   if test -d "${CEINCLUDE}/${TARGETCPU}" ; then
+                       CEINCLUDE="${CEINCLUDE}/${TARGETCPU}"
+                   fi
+                   CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}"
+               fi
+           fi
+
+           if test "$GCC" != "yes" ; then
+               if test "${SHARED_BUILD}" = "0" ; then
+                   runtime=-MT
+               else
+                   runtime=-MD
+               fi
+
+                if test "$do64bit" != "no" ; then
+                   # All this magic is necessary for the Win64 SDK RC1 - hobbs
+                   CC="\"${PATH64}/cl.exe\""
+                   CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\""
+                   RC="\"${MSSDK}/bin/rc.exe\""
+                   lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
+                   LINKBIN="\"${PATH64}/link.exe\""
+                   CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"
+                   CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+                   # Avoid 'unresolved external symbol __security_cookie'
+                   # errors, c.f. http://support.microsoft.com/?id=894573
+
+    vars="bufferoverflowU.lib"
+    for i in $vars; do
+       if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
+           # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
+           i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'`
+       fi
+       PKG_LIBS="$PKG_LIBS $i"
+    done
+
+
+               elif test "$doWince" != "no" ; then
+                   CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin"
+                   if test "${TARGETCPU}" = "X86"; then
+                       CC="\"${CEBINROOT}/cl.exe\""
+                   else
+                       CC="\"${CEBINROOT}/cl${ARCH}.exe\""
+                   fi
+                   CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\""
+                   RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\""
+                   arch=`echo ${ARCH} | awk '{print tolower($0)}'`
+                   defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS"
+                   if test "${SHARED_BUILD}" = "1" ; then
+                       # Static CE builds require static celib as well
+                       defs="${defs} _DLL"
+                   fi
+                   for i in $defs ; do
+
+cat >>confdefs.h <<_ACEOF
+#define $i 1
+_ACEOF
+
+                   done
+
+cat >>confdefs.h <<_ACEOF
+#define _WIN32_WCE $CEVERSION
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define UNDER_CE $CEVERSION
+_ACEOF
+
+                   CFLAGS_DEBUG="-nologo -Zi -Od"
+                   CFLAGS_OPTIMIZE="-nologo -Ox"
+                   lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'`
+                   lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo"
+                   LINKBIN="\"${CEBINROOT}/link.exe\""
+
+               else
+                   RC="rc"
+                   lflags="-nologo"
+                   LINKBIN="link"
+                   CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d"
+                   CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+               fi
+           fi
+
+           if test "$GCC" = "yes"; then
+               # mingw gcc mode
+               RC="windres"
+               CFLAGS_DEBUG="-g"
+               CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer"
+               SHLIB_LD="$CC -shared"
+               UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+               LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}"
+               LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}"
+           else
+               SHLIB_LD="${LINKBIN} -dll ${lflags}"
+               # link -lib only works when -lib is the first arg
+               STLIB_LD="${LINKBIN} -lib ${lflags}"
+               UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.lib'
+               PATHTYPE=-w
+               # For information on what debugtype is most useful, see:
+               # http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp
+               # and also
+               # http://msdn2.microsoft.com/en-us/library/y0zzbyt4%28VS.80%29.aspx
+               # This essentially turns it all on.
+               LDFLAGS_DEBUG="-debug -debugtype:cv"
+               LDFLAGS_OPTIMIZE="-release"
+               if test "$doWince" != "no" ; then
+                   LDFLAGS_CONSOLE="-link ${lflags}"
+                   LDFLAGS_WINDOW=${LDFLAGS_CONSOLE}
+               else
+                   LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}"
+                   LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}"
+               fi
+           fi
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".dll"
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll'
+
+           TCL_LIB_VERSIONS_OK=nodots
+           # Bogus to avoid getting this turned off
+           DL_OBJS="tclLoadNone.obj"
+           ;;
+       AIX-*)
+           if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"; then
+
+               # AIX requires the _r compiler when gcc isn't being used
+               case "${CC}" in
+                   *_r|*_r\ *)
+                       # ok ...
+                       ;;
+                   *)
+                       # Make sure only first arg gets _r
+                       CC=`echo "$CC" | sed -e 's/^\([^ ]*\)/\1_r/'`
+                       ;;
+               esac
+               { $as_echo "$as_me:$LINENO: result: Using $CC for compiling with threads" >&5
+$as_echo "Using $CC for compiling with threads" >&6; }
+
+fi
+
+           LIBS="$LIBS -lc"
+           SHLIB_CFLAGS=""
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           DL_OBJS="tclLoadDl.o"
+           LD_LIBRARY_PATH_VAR="LIBPATH"
+
+           # Check to enable 64-bit flags for compiler/linker on AIX 4+
+           if test "$do64bit" = yes -a "`uname -v`" -gt 3; then
+
+               if test "$GCC" = yes; then
+
+                   { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;}
+
+else
+
+                   do64bit_ok=yes
+                   CFLAGS="$CFLAGS -q64"
+                   LDFLAGS_ARCH="-q64"
+                   RANLIB="${RANLIB} -X64"
+                   AR="${AR} -X64"
+                   SHLIB_LD_FLAGS="-b64"
+
+fi
+
+
+fi
+
+
+           if test "`uname -m`" = ia64; then
+
+               # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC
+               SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+               # AIX-5 has dl* in libc.so
+               DL_LIBS=""
+               if test "$GCC" = yes; then
+
+                   CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+
+else
+
+                   CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
+
+fi
+
+               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+
+else
+
+               if test "$GCC" = yes; then
+  SHLIB_LD='${CC} -shared'
+else
+
+                   SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry"
+
+fi
+
+               SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}"
+               DL_LIBS="-ldl"
+               CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+               TCL_NEEDS_EXP_FILE=1
+               # TEA specific: use PACKAGE_VERSION instead of VERSION
+               TCL_EXPORT_FILE_SUFFIX='${PACKAGE_VERSION}.exp'
+
+fi
+
+
+           # AIX v<=4.1 has some different flags than 4.2+
+           if test "$system" = "AIX-4.1" -o "`uname -v`" -lt 4; then
+
+               case " $LIBOBJS " in
+  *" tclLoadAix.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS tclLoadAix.$ac_objext"
+ ;;
+esac
+
+               DL_LIBS="-lld"
+
+fi
+
+
+           # On AIX <=v4 systems, libbsd.a has to be linked in to support
+           # non-blocking file IO.  This library has to be linked in after
+           # the MATH_LIBS or it breaks the pow() function.  The way to
+           # insure proper sequencing, is to add it to the tail of MATH_LIBS.
+           # This library also supplies gettimeofday.
+           #
+           # AIX does not have a timezone field in struct tm. When the AIX
+           # bsd library is used, the timezone global and the gettimeofday
+           # methods are to be avoided for timezone deduction instead, we
+           # deduce the timezone by comparing the localtime result on a
+           # known GMT value.
+
+           { $as_echo "$as_me:$LINENO: checking for gettimeofday in -lbsd" >&5
+$as_echo_n "checking for gettimeofday in -lbsd... " >&6; }
+if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gettimeofday ();
+int
+main ()
+{
+return gettimeofday ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_bsd_gettimeofday=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_bsd_gettimeofday=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gettimeofday" >&5
+$as_echo "$ac_cv_lib_bsd_gettimeofday" >&6; }
+if test "x$ac_cv_lib_bsd_gettimeofday" = x""yes; then
+  libbsd=yes
+else
+  libbsd=no
+fi
+
+           if test $libbsd = yes; then
+
+               MATH_LIBS="$MATH_LIBS -lbsd"
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_DELTA_FOR_TZ 1
+_ACEOF
+
+
+fi
+
+           ;;
+       BeOS*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD='${CC} -nostart'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+
+           #-----------------------------------------------------------
+           # Check for inet_ntoa in -lbind, for BeOS (which also needs
+           # -lsocket, even if the network functions are in -lnet which
+           # is always linked to, for compatibility.
+           #-----------------------------------------------------------
+           { $as_echo "$as_me:$LINENO: checking for inet_ntoa in -lbind" >&5
+$as_echo_n "checking for inet_ntoa in -lbind... " >&6; }
+if test "${ac_cv_lib_bind_inet_ntoa+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbind  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char inet_ntoa ();
+int
+main ()
+{
+return inet_ntoa ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_bind_inet_ntoa=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_bind_inet_ntoa=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_bind_inet_ntoa" >&5
+$as_echo "$ac_cv_lib_bind_inet_ntoa" >&6; }
+if test "x$ac_cv_lib_bind_inet_ntoa" = x""yes; then
+  LIBS="$LIBS -lbind -lsocket"
+fi
+
+           ;;
+       BSD/OS-2.1*|BSD/OS-3*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="shlicc -r"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       BSD/OS-4.*)
+           SHLIB_CFLAGS="-export-dynamic -fPIC"
+           SHLIB_LD='${CC} -shared'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -export-dynamic"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       dgux*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       HP-UX-*.11.*)
+           # Use updated header definitions where possible
+
+cat >>confdefs.h <<\_ACEOF
+#define _XOPEN_SOURCE_EXTENDED 1
+_ACEOF
+
+           # TEA specific: Needed by Tcl, but not most extensions
+           #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?])
+           #LIBS="$LIBS -lxnet"               # Use the XOPEN network library
+
+           if test "`uname -m`" = ia64; then
+
+               SHLIB_SUFFIX=".so"
+               # Use newer C++ library for C++ extensions
+               #if test "$GCC" != "yes" ; then
+               #   CPPFLAGS="-AA"
+               #fi
+
+else
+
+               SHLIB_SUFFIX=".sl"
+
+fi
+
+           { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_dld_shl_load=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+           if test "$tcl_ok" = yes; then
+
+               SHLIB_LD_LIBS='${LIBS}'
+               DL_OBJS="tclLoadShl.o"
+               DL_LIBS="-ldld"
+               LDFLAGS="$LDFLAGS -E"
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
+               LD_LIBRARY_PATH_VAR="SHLIB_PATH"
+
+fi
+
+           if test "$GCC" = yes; then
+
+               SHLIB_LD='${CC} -shared'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+
+else
+
+               CFLAGS="$CFLAGS -z"
+               # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc
+               #CFLAGS="$CFLAGS +DAportable"
+               SHLIB_CFLAGS="+z"
+               SHLIB_LD="ld -b"
+
+fi
+
+
+           # Check to enable 64-bit flags for compiler/linker
+           if test "$do64bit" = "yes"; then
+
+               if test "$GCC" = yes; then
+
+                   case `${CC} -dumpmachine` in
+                       hppa64*)
+                           # 64-bit gcc in use.  Fix flags for GNU ld.
+                           do64bit_ok=yes
+                           SHLIB_LD='${CC} -shared'
+                           SHLIB_LD_LIBS='${LIBS}'
+                           if test $doRpath = yes; then
+
+                               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+fi
+
+                           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+                           ;;
+                       *)
+                           { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;}
+                           ;;
+                   esac
+
+else
+
+                   do64bit_ok=yes
+                   CFLAGS="$CFLAGS +DD64"
+                   LDFLAGS_ARCH="+DD64"
+
+fi
+
+
+fi
+ ;;
+       HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*)
+           SHLIB_SUFFIX=".sl"
+           { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_dld_shl_load=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
+fi
+
+           if test "$tcl_ok" = yes; then
+
+               SHLIB_CFLAGS="+z"
+               SHLIB_LD="ld -b"
+               SHLIB_LD_LIBS=""
+               DL_OBJS="tclLoadShl.o"
+               DL_LIBS="-ldld"
+               LDFLAGS="$LDFLAGS -Wl,-E"
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
+               LD_LIBRARY_PATH_VAR="SHLIB_PATH"
+
+fi
+ ;;
+       IRIX-5.*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -shared -rdata_shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+fi
+
+           ;;
+       IRIX-6.*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -n32 -shared -rdata_shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+fi
+
+           if test "$GCC" = yes; then
+
+               CFLAGS="$CFLAGS -mabi=n32"
+               LDFLAGS="$LDFLAGS -mabi=n32"
+
+else
+
+               case $system in
+                   IRIX-6.3)
+                       # Use to build 6.2 compatible binaries on 6.3.
+                       CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS"
+                       ;;
+                   *)
+                       CFLAGS="$CFLAGS -n32"
+                       ;;
+               esac
+               LDFLAGS="$LDFLAGS -n32"
+
+fi
+
+           ;;
+       IRIX64-6.*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -n32 -shared -rdata_shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+fi
+
+
+           # Check to enable 64-bit flags for compiler/linker
+
+           if test "$do64bit" = yes; then
+
+               if test "$GCC" = yes; then
+
+                   { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported by gcc" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported by gcc" >&2;}
+
+else
+
+                   do64bit_ok=yes
+                   SHLIB_LD="ld -64 -shared -rdata_shared"
+                   CFLAGS="$CFLAGS -64"
+                   LDFLAGS_ARCH="-64"
+
+fi
+
+
+fi
+
+           ;;
+       Linux*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           # TEA specific:
+           CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer"
+           # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
+           # when you inline the string and math operations.  Turn this off to
+           # get rid of the warnings.
+           #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+
+           # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
+           SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS_DEFAULT}'
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           if test $doRpath = yes; then
+
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+fi
+
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           if test "`uname -m`" = "alpha"; then
+  CFLAGS="$CFLAGS -mieee"
+fi
+
+           if test $do64bit = yes; then
+
+               { $as_echo "$as_me:$LINENO: checking if compiler accepts -m64 flag" >&5
+$as_echo_n "checking if compiler accepts -m64 flag... " >&6; }
+if test "${tcl_cv_cc_m64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+                   hold_cflags=$CFLAGS
+                   CFLAGS="$CFLAGS -m64"
+                   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_cc_m64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_cc_m64=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                   CFLAGS=$hold_cflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_cc_m64" >&5
+$as_echo "$tcl_cv_cc_m64" >&6; }
+               if test $tcl_cv_cc_m64 = yes; then
+
+                   CFLAGS="$CFLAGS -m64"
+                   do64bit_ok=yes
+
+fi
+
+
+fi
+
+
+           # The combo of gcc + glibc has a bug related to inlining of
+           # functions like strtod(). The -fno-builtin flag should address
+           # this problem but it does not work. The -fno-inline flag is kind
+           # of overkill but it works. Disable inlining only when one of the
+           # files in compat/*.c is being linked in.
+
+           if test x"${USE_COMPAT}" != x; then
+  CFLAGS="$CFLAGS -fno-inline"
+fi
+
+
+           ;;
+       GNU*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           SHLIB_LD='${CC} -shared'
+           DL_OBJS=""
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           if test "`uname -m`" = "alpha"; then
+  CFLAGS="$CFLAGS -mieee"
+fi
+
+           ;;
+       Lynx*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           CFLAGS_OPTIMIZE=-02
+           SHLIB_LD='${CC} -shared'
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-mshared -ldl"
+           LD_FLAGS="-Wl,--export-dynamic"
+           if test $doRpath = yes; then
+
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+fi
+
+           ;;
+       MP-RAS-02*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       MP-RAS-*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,-Bexport"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       NetBSD-1.*|FreeBSD-[1-2].*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+fi
+
+           { $as_echo "$as_me:$LINENO: checking for ELF" >&5
+$as_echo_n "checking for ELF... " >&6; }
+if test "${tcl_cv_ld_elf+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#ifdef __ELF__
+       yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  tcl_cv_ld_elf=yes
+else
+  tcl_cv_ld_elf=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5
+$as_echo "$tcl_cv_ld_elf" >&6; }
+           if test $tcl_cv_ld_elf = yes; then
+
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+
+else
+
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
+
+fi
+
+
+           # Ancient FreeBSD doesn't handle version numbers with dots.
+
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       OpenBSD-*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+fi
+
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
+           { $as_echo "$as_me:$LINENO: checking for ELF" >&5
+$as_echo_n "checking for ELF... " >&6; }
+if test "${tcl_cv_ld_elf+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#ifdef __ELF__
+       yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  tcl_cv_ld_elf=yes
+else
+  tcl_cv_ld_elf=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5
+$as_echo "$tcl_cv_ld_elf" >&6; }
+           if test $tcl_cv_ld_elf = yes; then
+
+               LDFLAGS=-Wl,-export-dynamic
+
+else
+  LDFLAGS=""
+fi
+
+
+           # OpenBSD doesn't do version numbers with dots.
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       NetBSD-*|FreeBSD-*)
+           # FreeBSD 3.* and greater have ELF.
+           # NetBSD 2.* has ELF and can use 'cc -shared' to build shared libs
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           LDFLAGS="$LDFLAGS -export-dynamic"
+           if test $doRpath = yes; then
+
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+fi
+
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           if test "${TCL_THREADS}" = "1"; then
+
+               # The -pthread needs to go in the CFLAGS, not LIBS
+               LIBS=`echo $LIBS | sed s/-pthread//`
+               CFLAGS="$CFLAGS -pthread"
+               LDFLAGS="$LDFLAGS -pthread"
+
+fi
+
+           case $system in
+           FreeBSD-3.*)
+               # FreeBSD-3 doesn't handle version numbers with dots.
+               UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+               TCL_LIB_VERSIONS_OK=nodots
+               ;;
+           esac
+           ;;
+       Darwin-*)
+           CFLAGS_OPTIMIZE="-Os"
+           SHLIB_CFLAGS="-fno-common"
+           # To avoid discrepancies between what headers configure sees during
+           # preprocessing tests and compiling tests, move any -isysroot and
+           # -mmacosx-version-min flags from CFLAGS to CPPFLAGS:
+           CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \
+               awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \
+               if ($i~/^(isysroot|mmacosx-version-min)/) print "-"$i}'`"
+           CFLAGS="`echo " ${CFLAGS}" | \
+               awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \
+               if (!($i~/^(isysroot|mmacosx-version-min)/)) print "-"$i}'`"
+           if test $do64bit = yes; then
+
+               case `arch` in
+                   ppc)
+                       { $as_echo "$as_me:$LINENO: checking if compiler accepts -arch ppc64 flag" >&5
+$as_echo_n "checking if compiler accepts -arch ppc64 flag... " >&6; }
+if test "${tcl_cv_cc_arch_ppc64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+                           hold_cflags=$CFLAGS
+                           CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
+                           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_cc_arch_ppc64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_cc_arch_ppc64=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                           CFLAGS=$hold_cflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_cc_arch_ppc64" >&5
+$as_echo "$tcl_cv_cc_arch_ppc64" >&6; }
+                       if test $tcl_cv_cc_arch_ppc64 = yes; then
+
+                           CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
+                           do64bit_ok=yes
+
+fi
+;;
+                   i386)
+                       { $as_echo "$as_me:$LINENO: checking if compiler accepts -arch x86_64 flag" >&5
+$as_echo_n "checking if compiler accepts -arch x86_64 flag... " >&6; }
+if test "${tcl_cv_cc_arch_x86_64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+                           hold_cflags=$CFLAGS
+                           CFLAGS="$CFLAGS -arch x86_64"
+                           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_cc_arch_x86_64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_cc_arch_x86_64=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                           CFLAGS=$hold_cflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_cc_arch_x86_64" >&5
+$as_echo "$tcl_cv_cc_arch_x86_64" >&6; }
+                       if test $tcl_cv_cc_arch_x86_64 = yes; then
+
+                           CFLAGS="$CFLAGS -arch x86_64"
+                           do64bit_ok=yes
+
+fi
+;;
+                   *)
+                       { $as_echo "$as_me:$LINENO: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5
+$as_echo "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&2;};;
+               esac
+
+else
+
+               # Check for combined 32-bit and 64-bit fat build
+               if echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \
+                   && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '; then
+
+                   fat_32_64=yes
+fi
+
+
+fi
+
+           # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
+           SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}'
+           { $as_echo "$as_me:$LINENO: checking if ld accepts -single_module flag" >&5
+$as_echo_n "checking if ld accepts -single_module flag... " >&6; }
+if test "${tcl_cv_ld_single_module+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module"
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+int i;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_ld_single_module=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_ld_single_module=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+               LDFLAGS=$hold_ldflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_ld_single_module" >&5
+$as_echo "$tcl_cv_ld_single_module" >&6; }
+           if test $tcl_cv_ld_single_module = yes; then
+
+               SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
+
+fi
+
+           # TEA specific: link shlib with current and compatiblity version flags
+           vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([0-9]\{1,5\}\)\(\(\.[0-9]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d`
+           SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".dylib"
+           DL_OBJS="tclLoadDyld.o"
+           DL_LIBS=""
+           # Don't use -prebind when building for Mac OS X 10.4 or later only:
+           if test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int($2)}'`" -lt 4 -a \
+               "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4; then
+
+               LDFLAGS="$LDFLAGS -prebind"
+fi
+
+           LDFLAGS="$LDFLAGS -headerpad_max_install_names"
+           { $as_echo "$as_me:$LINENO: checking if ld accepts -search_paths_first flag" >&5
+$as_echo_n "checking if ld accepts -search_paths_first flag... " >&6; }
+if test "${tcl_cv_ld_search_paths_first+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+int i;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_ld_search_paths_first=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_ld_search_paths_first=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+               LDFLAGS=$hold_ldflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_ld_search_paths_first" >&5
+$as_echo "$tcl_cv_ld_search_paths_first" >&6; }
+           if test $tcl_cv_ld_search_paths_first = yes; then
+
+               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+
+fi
+
+           if test "$tcl_cv_cc_visibility_hidden" != yes; then
+
+
+cat >>confdefs.h <<\_ACEOF
+#define MODULE_SCOPE __private_extern__
+_ACEOF
+
+
+fi
+
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
+           # TEA specific: for combined 32 & 64 bit fat builds of Tk
+           # extensions, verify that 64-bit build is possible.
+           if test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}"; then
+
+               if test "${TEA_WINDOWINGSYSTEM}" = x11; then
+
+                   { $as_echo "$as_me:$LINENO: checking for 64-bit X11" >&5
+$as_echo_n "checking for 64-bit X11... " >&6; }
+if test "${tcl_cv_lib_x11_64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
+                       done
+                       CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include"
+                       LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
+                       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <X11/Xlib.h>
+int
+main ()
+{
+XrmInitialize();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_lib_x11_64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_lib_x11_64=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval $v'="$hold_'$v'"'
+                       done
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_lib_x11_64" >&5
+$as_echo "$tcl_cv_lib_x11_64" >&6; }
+
+fi
+
+               if test "${TEA_WINDOWINGSYSTEM}" = aqua; then
+
+                   { $as_echo "$as_me:$LINENO: checking for 64-bit Tk" >&5
+$as_echo_n "checking for 64-bit Tk... " >&6; }
+if test "${tcl_cv_lib_tk_64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
+                       done
+                       CPPFLAGS="$CPPFLAGS -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 ${TCL_INCLUDES} ${TK_INCLUDES}"
+                       LDFLAGS="$LDFLAGS ${TCL_STUB_LIB_SPEC} ${TK_STUB_LIB_SPEC}"
+                       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <tk.h>
+int
+main ()
+{
+Tk_InitStubs(NULL, "", 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_lib_tk_64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_lib_tk_64=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval $v'="$hold_'$v'"'
+                       done
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_lib_tk_64" >&5
+$as_echo "$tcl_cv_lib_tk_64" >&6; }
+
+fi
+
+               # remove 64-bit arch flags from CFLAGS et al. if configuration
+               # does not support 64-bit.
+               if test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no; then
+
+                   { $as_echo "$as_me:$LINENO: Removing 64-bit architectures from compiler & linker flags" >&5
+$as_echo "$as_me: Removing 64-bit architectures from compiler & linker flags" >&6;}
+                   for v in CFLAGS CPPFLAGS LDFLAGS; do
+                       eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"'
+                   done
+fi
+
+
+fi
+
+           ;;
+       NEXTSTEP-*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD='${CC} -nostdlib -r'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadNext.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OS/390-*)
+           CFLAGS_OPTIMIZE=""          # Optimizer is buggy
+
+cat >>confdefs.h <<\_ACEOF
+#define _OE_SOCKETS 1
+_ACEOF
+
+           ;;
+       OSF1-1.0|OSF1-1.1|OSF1-1.2)
+           # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1
+           SHLIB_CFLAGS=""
+           # Hack: make package name same as library name
+           SHLIB_LD='ld -R -export :'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadOSF.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OSF1-1.*)
+           # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2
+           SHLIB_CFLAGS="-fPIC"
+           if test "$SHARED_BUILD" = 1; then
+  SHLIB_LD="ld -shared"
+else
+
+               SHLIB_LD="ld -non_shared"
+
+fi
+
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OSF1-V*)
+           # Digital OSF/1
+           SHLIB_CFLAGS=""
+           if test "$SHARED_BUILD" = 1; then
+
+               SHLIB_LD='ld -shared -expect_unresolved "*"'
+
+else
+
+               SHLIB_LD='ld -non_shared -expect_unresolved "*"'
+
+fi
+
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           if test $doRpath = yes; then
+
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+fi
+
+           if test "$GCC" = yes; then
+  CFLAGS="$CFLAGS -mieee"
+else
+
+               CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee"
+fi
+
+           # see pthread_intro(3) for pthread support on osf1, k.furukawa
+           if test "${TCL_THREADS}" = 1; then
+
+               CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE"
+               CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64"
+               LIBS=`echo $LIBS | sed s/-lpthreads//`
+               if test "$GCC" = yes; then
+
+                   LIBS="$LIBS -lpthread -lmach -lexc"
+
+else
+
+                   CFLAGS="$CFLAGS -pthread"
+                   LDFLAGS="$LDFLAGS -pthread"
+
+fi
+
+
+fi
+
+           ;;
+       QNX-6*)
+           # QNX RTP
+           # This may work for all QNX, but it was only reported for v6.
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           # dlopen is in -lc on QNX
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       SCO_SV-3.2*)
+           # Note, dlopen is available only on SCO 3.2.5 and greater. However,
+           # this test works, since "uname -s" was non-standard in 3.2.4 and
+           # below.
+           if test "$GCC" = yes; then
+
+               SHLIB_CFLAGS="-fPIC -melf"
+               LDFLAGS="$LDFLAGS -melf -Wl,-Bexport"
+
+else
+
+               SHLIB_CFLAGS="-Kpic -belf"
+               LDFLAGS="$LDFLAGS -belf -Wl,-Bexport"
+
+fi
+
+           SHLIB_LD="ld -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       SINIX*5.4*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       SunOS-4*)
+           SHLIB_CFLAGS="-PIC"
+           SHLIB_LD="ld"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+
+           # SunOS can't handle version numbers with dots in them in library
+           # specs, like -ltcl7.5, so use -ltcl75 instead.  Also, it
+           # requires an extra version number at the end of .so file names.
+           # So, the library has to have a name like libtcl75.so.1.0
+
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       SunOS-5.[0-6])
+           # Careful to not let 5.10+ fall into this case
+
+           # Note: If _REENTRANT isn't defined, then Solaris
+           # won't define thread-safe library routines.
+
+
+cat >>confdefs.h <<\_ACEOF
+#define _REENTRANT 1
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define _POSIX_PTHREAD_SEMANTICS 1
+_ACEOF
+
+
+           SHLIB_CFLAGS="-KPIC"
+
+           # Note: need the LIBS below, otherwise Tk won't find Tcl's
+           # symbols when dynamically loaded into tclsh.
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           if test "$GCC" = yes; then
+
+               SHLIB_LD='${CC} -shared'
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+
+else
+
+               SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+               CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+
+fi
+
+           ;;
+       SunOS-5*)
+           # Note: If _REENTRANT isn't defined, then Solaris
+           # won't define thread-safe library routines.
+
+
+cat >>confdefs.h <<\_ACEOF
+#define _REENTRANT 1
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define _POSIX_PTHREAD_SEMANTICS 1
+_ACEOF
+
+
+           SHLIB_CFLAGS="-KPIC"
+
+           # Check to enable 64-bit flags for compiler/linker
+           if test "$do64bit" = yes; then
+
+               arch=`isainfo`
+               if test "$arch" = "sparcv9 sparc"; then
+
+                   if test "$GCC" = yes; then
+
+                       if test "`${CC} -dumpversion | awk -F. '{print $1}'`" -lt 3; then
+
+                           { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;}
+
+else
+
+                           do64bit_ok=yes
+                           CFLAGS="$CFLAGS -m64 -mcpu=v9"
+                           LDFLAGS="$LDFLAGS -m64 -mcpu=v9"
+                           SHLIB_CFLAGS="-fPIC"
+
+fi
+
+
+else
+
+                       do64bit_ok=yes
+                       if test "$do64bitVIS" = yes; then
+
+                           CFLAGS="$CFLAGS -xarch=v9a"
+                           LDFLAGS_ARCH="-xarch=v9a"
+
+else
+
+                           CFLAGS="$CFLAGS -xarch=v9"
+                           LDFLAGS_ARCH="-xarch=v9"
+
+fi
+
+                       # Solaris 64 uses this as well
+                       #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64"
+
+fi
+
+
+else
+  if test "$arch" = "amd64 i386"; then
+
+                   if test "$GCC" = yes; then
+
+                       case $system in
+                           SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*)
+                               do64bit_ok=yes
+                               CFLAGS="$CFLAGS -m64"
+                               LDFLAGS="$LDFLAGS -m64";;
+                           *)
+                               { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;};;
+                       esac
+
+else
+
+                       do64bit_ok=yes
+                       case $system in
+                           SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*)
+                               CFLAGS="$CFLAGS -m64"
+                               LDFLAGS="$LDFLAGS -m64";;
+                           *)
+                               CFLAGS="$CFLAGS -xarch=amd64"
+                               LDFLAGS="$LDFLAGS -xarch=amd64";;
+                       esac
+
+fi
+
+
+else
+  { $as_echo "$as_me:$LINENO: WARNING: 64bit mode not supported for $arch" >&5
+$as_echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;}
+fi
+
+fi
+
+
+fi
+
+
+           # Note: need the LIBS below, otherwise Tk won't find Tcl's
+           # symbols when dynamically loaded into tclsh.
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           if test "$GCC" = yes; then
+
+               SHLIB_LD='${CC} -shared'
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+               if test "$do64bit_ok" = yes; then
+
+                   if test "$arch" = "sparcv9 sparc"; then
+
+                       # We need to specify -static-libgcc or we need to
+                       # add the path to the sparv9 libgcc.
+                       # JH: static-libgcc is necessary for core Tcl, but may
+                       # not be necessary for extensions.
+                       SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc"
+                       # for finding sparcv9 libgcc, get the regular libgcc
+                       # path, remove so name and append 'sparcv9'
+                       #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
+                       #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir"
+
+else
+  if test "$arch" = "amd64 i386"; then
+
+                       # JH: static-libgcc is necessary for core Tcl, but may
+                       # not be necessary for extensions.
+                       SHLIB_LD="$SHLIB_LD -m64 -static-libgcc"
+
+fi
+
+fi
+
+
+fi
+
+
+else
+
+               case $system in
+                   SunOS-5.[1-9][0-9]*)
+                       # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
+                       SHLIB_LD='${CC} -G -z text ${LDFLAGS_DEFAULT}';;
+                   *)
+                       SHLIB_LD='/usr/ccs/bin/ld -G -z text';;
+               esac
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+
+fi
+
+           ;;
+       UNIX_SV* | UnixWare-5*)
+           SHLIB_CFLAGS="-KPIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
+           # that don't grok the -Bexport option.  Test that it does.
+           { $as_echo "$as_me:$LINENO: checking for ld accepts -Bexport flag" >&5
+$as_echo_n "checking for ld accepts -Bexport flag... " >&6; }
+if test "${tcl_cv_ld_Bexport+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+int i;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  tcl_cv_ld_Bexport=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_ld_Bexport=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+               LDFLAGS=$hold_ldflags
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_ld_Bexport" >&5
+$as_echo "$tcl_cv_ld_Bexport" >&6; }
+           if test $tcl_cv_ld_Bexport = yes; then
+
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
+
+fi
+
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+    esac
+
+    if test "$do64bit" = yes -a "$do64bit_ok" = no; then
+
+       { $as_echo "$as_me:$LINENO: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5
+$as_echo "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;}
+
+fi
+
+
+
+
+    # Step 4: disable dynamic loading if requested via a command-line switch.
+
+    # Check whether --enable-load was given.
+if test "${enable_load+set}" = set; then
+  enableval=$enable_load; tcl_ok=$enableval
+else
+  tcl_ok=yes
+fi
+
+    if test "$tcl_ok" = no; then
+  DL_OBJS=""
+fi
+
+
+    if test "x$DL_OBJS" != x; then
+  BUILD_DLTEST="\$(DLTEST_TARGETS)"
+else
+
+       { $as_echo "$as_me:$LINENO: WARNING: Can't figure out how to do dynamic loading or shared libraries on this system." >&5
+$as_echo "$as_me: WARNING: Can't figure out how to do dynamic loading or shared libraries on this system." >&2;}
+       SHLIB_CFLAGS=""
+       SHLIB_LD=""
+       SHLIB_SUFFIX=""
+       DL_OBJS="tclLoadNone.o"
+       DL_LIBS=""
+       LDFLAGS="$LDFLAGS_ORIG"
+       CC_SEARCH_FLAGS=""
+       LD_SEARCH_FLAGS=""
+       BUILD_DLTEST=""
+
+fi
+
+    LDFLAGS="$LDFLAGS $LDFLAGS_ARCH"
+
+    # If we're running gcc, then change the C flags for compiling shared
+    # libraries to the right flags for gcc, instead of those for the
+    # standard manufacturer compiler.
+
+    if test "$DL_OBJS" != "tclLoadNone.o" -a "$GCC" = yes; then
+
+       case $system in
+           AIX-*) ;;
+           BSD/OS*) ;;
+           IRIX*) ;;
+           NetBSD-*|FreeBSD-*) ;;
+           Darwin-*) ;;
+           SCO_SV-3.2*) ;;
+           windows) ;;
+           *) SHLIB_CFLAGS="-fPIC" ;;
+       esac
+fi
+
+
+    if test "$SHARED_LIB_SUFFIX" = ""; then
+
+       # TEA specific: use PACKAGE_VERSION instead of VERSION
+       SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}'
+fi
+
+    if test "$UNSHARED_LIB_SUFFIX" = ""; then
+
+       # TEA specific: use PACKAGE_VERSION instead of VERSION
+       UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    # These must be called after we do the basic CFLAGS checks and
+    # verify any possible 64-bit or similar switches are necessary
+
+    { $as_echo "$as_me:$LINENO: checking for required early compiler flags" >&5
+$as_echo_n "checking for required early compiler flags... " >&6; }
+    tcl_flags=""
+
+    if test "${tcl_cv_flag__isoc99_source+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+int
+main ()
+{
+char *p = (char *)strtoll; char *q = (char *)strtoull;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__isoc99_source=no
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _ISOC99_SOURCE 1
+#include <stdlib.h>
+int
+main ()
+{
+char *p = (char *)strtoll; char *q = (char *)strtoull;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__isoc99_source=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_flag__isoc99_source=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    if test "x${tcl_cv_flag__isoc99_source}" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define _ISOC99_SOURCE 1
+_ACEOF
+
+       tcl_flags="$tcl_flags _ISOC99_SOURCE"
+    fi
+
+
+    if test "${tcl_cv_flag__largefile64_source+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/stat.h>
+int
+main ()
+{
+struct stat64 buf; int i = stat64("/", &buf);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__largefile64_source=no
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGEFILE64_SOURCE 1
+#include <sys/stat.h>
+int
+main ()
+{
+struct stat64 buf; int i = stat64("/", &buf);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__largefile64_source=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_flag__largefile64_source=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    if test "x${tcl_cv_flag__largefile64_source}" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define _LARGEFILE64_SOURCE 1
+_ACEOF
+
+       tcl_flags="$tcl_flags _LARGEFILE64_SOURCE"
+    fi
+
+
+    if test "${tcl_cv_flag__largefile_source64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/stat.h>
+int
+main ()
+{
+char *p = (char *)open64;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__largefile_source64=no
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGEFILE_SOURCE64 1
+#include <sys/stat.h>
+int
+main ()
+{
+char *p = (char *)open64;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_flag__largefile_source64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_flag__largefile_source64=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    if test "x${tcl_cv_flag__largefile_source64}" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define _LARGEFILE_SOURCE64 1
+_ACEOF
+
+       tcl_flags="$tcl_flags _LARGEFILE_SOURCE64"
+    fi
+
+    if test "x${tcl_flags}" = "x" ; then
+       { $as_echo "$as_me:$LINENO: result: none" >&5
+$as_echo "none" >&6; }
+    else
+       { $as_echo "$as_me:$LINENO: result: ${tcl_flags}" >&5
+$as_echo "${tcl_flags}" >&6; }
+    fi
+
+
+    { $as_echo "$as_me:$LINENO: checking for 64-bit integer type" >&5
+$as_echo_n "checking for 64-bit integer type... " >&6; }
+    if test "${tcl_cv_type_64bit+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+       tcl_cv_type_64bit=none
+       # See if the compiler knows natively about __int64
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+__int64 value = (__int64) 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_type_64bit=__int64
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_type_64bit="long long"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       # See if we should use long anyway  Note that we substitute in the
+       # type that is our current guess for a 64-bit type inside this check
+       # program, so it should be modified only carefully...
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+switch (0) {
+            case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ;
+        }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_type_64bit=${tcl_type_64bit}
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    if test "${tcl_cv_type_64bit}" = none ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define TCL_WIDE_INT_IS_LONG 1
+_ACEOF
+
+       { $as_echo "$as_me:$LINENO: result: using long" >&5
+$as_echo "using long" >&6; }
+    elif test "${tcl_cv_type_64bit}" = "__int64" \
+               -a "${TEA_PLATFORM}" = "windows" ; then
+       # TEA specific: We actually want to use the default tcl.h checks in
+       # this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER*
+       { $as_echo "$as_me:$LINENO: result: using Tcl header defaults" >&5
+$as_echo "using Tcl header defaults" >&6; }
+    else
+
+cat >>confdefs.h <<_ACEOF
+#define TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit}
+_ACEOF
+
+       { $as_echo "$as_me:$LINENO: result: ${tcl_cv_type_64bit}" >&5
+$as_echo "${tcl_cv_type_64bit}" >&6; }
+
+       # Now check for auxiliary declarations
+       { $as_echo "$as_me:$LINENO: checking for struct dirent64" >&5
+$as_echo_n "checking for struct dirent64... " >&6; }
+if test "${tcl_cv_struct_dirent64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/dirent.h>
+int
+main ()
+{
+struct dirent64 p;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_struct_dirent64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_struct_dirent64=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_struct_dirent64" >&5
+$as_echo "$tcl_cv_struct_dirent64" >&6; }
+       if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STRUCT_DIRENT64 1
+_ACEOF
+
+       fi
+
+       { $as_echo "$as_me:$LINENO: checking for struct stat64" >&5
+$as_echo_n "checking for struct stat64... " >&6; }
+if test "${tcl_cv_struct_stat64+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/stat.h>
+int
+main ()
+{
+struct stat64 p;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_struct_stat64=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_struct_stat64=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $tcl_cv_struct_stat64" >&5
+$as_echo "$tcl_cv_struct_stat64" >&6; }
+       if test "x${tcl_cv_struct_stat64}" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STRUCT_STAT64 1
+_ACEOF
+
+       fi
+
+
+
+for ac_func in open64 lseek64
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  eval "$as_ac_var=yes"
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       eval "$as_ac_var=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+       { $as_echo "$as_me:$LINENO: checking for off64_t" >&5
+$as_echo_n "checking for off64_t... " >&6; }
+       if test "${tcl_cv_type_off64_t+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+           cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+int
+main ()
+{
+off64_t offset;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  tcl_cv_type_off64_t=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       tcl_cv_type_off64_t=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+                       if test "x${tcl_cv_type_off64_t}" = "xyes" && \
+               test "x${ac_cv_func_lseek64}" = "xyes" && \
+               test "x${ac_cv_func_open64}" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_TYPE_OFF64_T 1
+_ACEOF
+
+           { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+       else
+           { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+       fi
+    fi
+
+
+
+#--------------------------------------------------------------------
+# Set the default compiler switches based on the --enable-symbols option.
+#--------------------------------------------------------------------
+
+
+
+    { $as_echo "$as_me:$LINENO: checking for build with symbols" >&5
+$as_echo_n "checking for build with symbols... " >&6; }
+    # Check whether --enable-symbols was given.
+if test "${enable_symbols+set}" = set; then
+  enableval=$enable_symbols; tcl_ok=$enableval
+else
+  tcl_ok=no
+fi
+
+    DBGX=""
+    if test "$tcl_ok" = "no"; then
+       CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
+       LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
+       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+    else
+       CFLAGS_DEFAULT="${CFLAGS_DEBUG}"
+       LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}"
+       if test "$tcl_ok" = "yes"; then
+           { $as_echo "$as_me:$LINENO: result: yes (standard debugging)" >&5
+$as_echo "yes (standard debugging)" >&6; }
+       fi
+    fi
+    # TEA specific:
+    if test "${TEA_PLATFORM}" != "windows" ; then
+       LDFLAGS_DEFAULT="${LDFLAGS}"
+    fi
+
+
+
+
+    if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define TCL_MEM_DEBUG 1
+_ACEOF
+
+    fi
+
+    if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then
+       if test "$tcl_ok" = "all"; then
+           { $as_echo "$as_me:$LINENO: result: enabled symbols mem debugging" >&5
+$as_echo "enabled symbols mem debugging" >&6; }
+       else
+           { $as_echo "$as_me:$LINENO: result: enabled $tcl_ok debugging" >&5
+$as_echo "enabled $tcl_ok debugging" >&6; }
+       fi
+    fi
+
+
+#--------------------------------------------------------------------
+# Everyone should be linking against the Tcl stub library.  If you
+# can't for some reason, remove this definition.  If you aren't using
+# stubs, you also need to modify the SHLIB_LD_LIBS setting below to
+# link against the non-stubbed Tcl library.  Add Tk too if necessary.
+#--------------------------------------------------------------------
+
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_TCL_STUBS 1
+_ACEOF
+
+#AC_DEFINE(USE_TK_STUBS, 1, [Use Tk stubs])
+
+#--------------------------------------------------------------------
+# This macro generates a line to use when building a library.  It
+# depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS,
+# and TEA_LOAD_TCLCONFIG macros above.
+#--------------------------------------------------------------------
+
+
+    if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then
+       MAKE_STATIC_LIB="\${STLIB_LD} -out:\$@ \$(PKG_OBJECTS)"
+       MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\$@ \$(PKG_OBJECTS)"
+       MAKE_STUB_LIB="\${STLIB_LD} -out:\$@ \$(PKG_STUB_OBJECTS)"
+    else
+       MAKE_STATIC_LIB="\${STLIB_LD} \$@ \$(PKG_OBJECTS)"
+       MAKE_SHARED_LIB="\${SHLIB_LD} -o \$@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}"
+       MAKE_STUB_LIB="\${STLIB_LD} \$@ \$(PKG_STUB_OBJECTS)"
+    fi
+
+    if test "${SHARED_BUILD}" = "1" ; then
+       MAKE_LIB="${MAKE_SHARED_LIB} "
+    else
+       MAKE_LIB="${MAKE_STATIC_LIB} "
+    fi
+
+    #--------------------------------------------------------------------
+    # Shared libraries and static libraries have different names.
+    # Use the double eval to make sure any variables in the suffix is
+    # substituted. (@@@ Might not be necessary anymore)
+    #--------------------------------------------------------------------
+
+    if test "${TEA_PLATFORM}" = "windows" ; then
+       if test "${SHARED_BUILD}" = "1" ; then
+           # We force the unresolved linking of symbols that are really in
+           # the private libraries of Tcl and Tk.
+           SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\""
+           if test x"${TK_BIN_DIR}" != x ; then
+               SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\""
+           fi
+           eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+       else
+           eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+       fi
+       # Some packages build their own stubs libraries
+       eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+       if test "$GCC" = "yes"; then
+           PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE}
+       fi
+       # These aren't needed on Windows (either MSVC or gcc)
+       RANLIB=:
+       RANLIB_STUB=:
+    else
+       RANLIB_STUB="${RANLIB}"
+       if test "${SHARED_BUILD}" = "1" ; then
+           SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}"
+           if test x"${TK_BIN_DIR}" != x ; then
+               SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}"
+           fi
+           eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+           RANLIB=:
+       else
+           eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+       fi
+       # Some packages build their own stubs libraries
+       eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+    fi
+
+    # These are escaped so that only CFLAGS is picked up at configure time.
+    # The other values will be substituted at make time.
+    CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}"
+    if test "${SHARED_BUILD}" = "1" ; then
+       CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}"
+    fi
+
+
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# Determine the name of the tclsh and/or wish executables in the
+# Tcl and Tk build directories or the location they were installed
+# into. These paths are used to support running test cases only,
+# the Makefile should not be making use of these paths to generate
+# a pkgIndex.tcl file or anything else at extension build time.
+#--------------------------------------------------------------------
+
+
+    { $as_echo "$as_me:$LINENO: checking for tclsh" >&5
+$as_echo_n "checking for tclsh... " >&6; }
+    if test -f "${TCL_BIN_DIR}/Makefile" ; then
+        # tclConfig.sh is in Tcl build directory
+        if test "${TEA_PLATFORM}" = "windows"; then
+            TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
+        else
+            TCLSH_PROG="${TCL_BIN_DIR}/tclsh"
+        fi
+    else
+        # tclConfig.sh is in install location
+        if test "${TEA_PLATFORM}" = "windows"; then
+            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
+        else
+            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}"
+        fi
+        list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \
+              `ls -d ${TCL_BIN_DIR}/..     2>/dev/null` \
+              `ls -d ${TCL_PREFIX}/bin     2>/dev/null`"
+        for i in $list ; do
+            if test -f "$i/${TCLSH_PROG}" ; then
+                REAL_TCL_BIN_DIR="`cd "$i"; pwd`/"
+                break
+            fi
+        done
+        TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}"
+    fi
+    { $as_echo "$as_me:$LINENO: result: ${TCLSH_PROG}" >&5
+$as_echo "${TCLSH_PROG}" >&6; }
+
+
+#TEA_PROG_WISH
+
+#--------------------------------------------------------------------
+# Finally, substitute all of the various values into the Makefile.
+# You may alternatively have a special pkgIndex.tcl.in or other files
+# which require substituting th AC variables in.  Include these here.
+#--------------------------------------------------------------------
+
+ac_config_files="$ac_config_files Makefile pkgIndex.tcl"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+       "s/'/'\\\\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    test "x$cache_file" != "x/dev/null" &&
+      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+    cat confcache >$cache_file
+  else
+    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section.  Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[    ]*#[    ]*define[       ][      ]*\([^  (][^    (]*([^)]*)\)[   ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[    ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[     `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+       g
+       s/^\n//
+       s/\n/ /g
+       p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS=""
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in
+      *"$as_nl"*)
+       expr "X$arg" : "X\\(.*\\)$as_nl";
+       arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""       $as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+       test -d "$1/.";
+      else
+       case $1 in
+       -*)set "./$1";;
+       esac;
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+       ???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+
+# Save the log message, to keep $[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by TclCurl $as_me 7.19.6, which was
+generated by GNU Autoconf 2.63.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="`echo $ac_config_files`"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTION]... [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Report bugs to <bug-autoconf@gnu.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_version="\\
+TclCurl config.status 7.19.6
+configured by $0, generated by GNU Autoconf 2.63,
+  with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h |  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { $as_echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "pkgIndex.tcl") CONFIG_FILES="$CONFIG_FILES pkgIndex.tcl" ;;
+
+  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp=
+  trap 'exit_status=$?
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} ||
+{
+   $as_echo "$as_me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr='\r'
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\).*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\).*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = "\a"
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
+$as_echo "$as_me: error: could not setup config files machinery" >&2;}
+   { (exit 1); exit 1; }; }
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[         ]*VPATH[        ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[    ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[      ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X "  :F $CONFIG_FILES      "
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
+   { (exit 1); exit 1; }; };;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+        # (if the path is not absolute).  The absolute path cannot be DOS-style,
+        # because $ac_f cannot contain `:'.
+        test -f "$ac_f" ||
+          case $ac_f in
+          [\\/$]*) false;;
+          *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+          esac ||
+          { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+   { (exit 1); exit 1; }; };;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      ac_file_inputs="$ac_file_inputs '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+         $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+       `' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$tmp/stdin" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; } ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$ac_file" : 'X\(//\)[^/]' \| \
+        X"$ac_file" : 'X\(//\)$' \| \
+        X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+  { as_dir="$ac_dir"
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
+   { (exit 1); exit 1; }; }; }
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p
+'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+    s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&2;}
+
+  rm -f "$tmp/stdin"
+  case $ac_file in
+  -) cat "$tmp/out" && rm -f "$tmp/out";;
+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  esac \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
+ ;;
+
+
+
+  esac
+
+done # for ac_tag
+
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/configure.in b/configure.in
new file mode 100755 (executable)
index 0000000..6a974ae
--- /dev/null
@@ -0,0 +1,248 @@
+#!/bin/bash -norc
+dnl    This file is an input file used by the GNU "autoconf" program to
+dnl    generate the file "configure", which is run during Tcl installation
+dnl    to configure the system for the local environment.
+#
+# RCS: @(#) $Id: configure.in,v 1.48 2008/11/05 00:13:00 hobbs Exp $
+
+#-----------------------------------------------------------------------
+# Sample configure.in for Tcl Extensions.  The only places you should
+# need to modify this file are marked by the string __CHANGE__
+#-----------------------------------------------------------------------
+
+#-----------------------------------------------------------------------
+# __CHANGE__
+# Set your package name and version numbers here.
+#
+# This initializes the environment with PACKAGE_NAME and PACKAGE_VERSION
+# set as provided.  These will also be added as -D defs in your Makefile
+# so you can encode the package version directly into the source files.
+#-----------------------------------------------------------------------
+
+AC_INIT([TclCurl], [7.19.6])
+
+#--------------------------------------------------------------------
+# Call TEA_INIT as the first TEA_ macro to set up initial vars.
+# This will define a ${TEA_PLATFORM} variable == "unix" or "windows"
+# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE.
+#--------------------------------------------------------------------
+
+TEA_INIT([3.7])
+
+AC_CONFIG_AUX_DIR(tclconfig)
+
+#--------------------------------------------------------------------
+# Load the tclConfig.sh file
+#--------------------------------------------------------------------
+
+TEA_PATH_TCLCONFIG
+TEA_LOAD_TCLCONFIG
+
+#--------------------------------------------------------------------
+# Load the tkConfig.sh file if necessary (Tk extension)
+#--------------------------------------------------------------------
+
+#TEA_PATH_TKCONFIG
+#TEA_LOAD_TKCONFIG
+
+#-----------------------------------------------------------------------
+# Handle the --prefix=... option by defaulting to what Tcl gave.
+# Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER.
+#-----------------------------------------------------------------------
+
+TEA_PREFIX
+
+#-----------------------------------------------------------------------
+# Standard compiler checks.
+# This sets up CC by using the CC env var, or looks for gcc otherwise.
+# This also calls AC_PROG_CC, AC_PROG_INSTALL and a few others to create
+# the basic setup necessary to compile executables.
+#-----------------------------------------------------------------------
+
+TEA_SETUP_COMPILER
+
+#-----------------------------------------------------------------------
+# __CHANGE__
+# Specify the C source files to compile in TEA_ADD_SOURCES,
+# public headers that need to be installed in TEA_ADD_HEADERS,
+# stub library C source files to compile in TEA_ADD_STUB_SOURCES,
+# and runtime Tcl library files in TEA_ADD_TCL_SOURCES.
+# This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS
+# and PKG_TCL_SOURCES.
+#-----------------------------------------------------------------------
+
+TEA_ADD_SOURCES([tclcurl.c multi.c])
+TCLCURL_SCRIPTS=tclcurl.tcl
+AC_SUBST(TCLCURL_SCRIPTS)
+
+#--------------------------------------------------------------------
+# Find libcurl, if it's not present, it makes no sense to compile
+# this.
+#--------------------------------------------------------------------
+
+AC_ARG_WITH(curlprefix,
+ [  --with-curlprefix       base directory for the cURL install '/usr', '/usr/local',...],
+ [
+    curlprefix=$withval
+    curlpath=$curlprefix/bin
+    AC_CHECK_PROG(curl,curl,yes,no,$curlpath)
+    if test "x$curl" = xno ; then
+       AC_MSG_ERROR([can not find cURL in $curlpath])
+    fi
+ ],[
+    AC_CHECK_PROG(curl,curl-config,yes,no)
+    if test "x$curl" = xno ; then
+        AC_MSG_ERROR([can not find cURL or libcurl... go to http://curl.haxx.se/ to download and then install it first])
+    else
+        curlprefix=`curl-config --prefix`
+        curlpath=$curlprefix/bin
+    fi
+])
+
+AC_ARG_WITH(curlinclude,
+ [  --with-curlinclude      directory containing the public libcurl header files],[
+    TEA_ADD_INCLUDES([-I$withval])
+    curlinclude=$withval
+ ],
+ [
+    TEA_ADD_INCLUDES([-I$curlprefix/include])
+     curlinclude=$curlprefix/include
+ ])
+
+AC_CHECK_HEADER(curl/curl.h,headercurl=yes, headercurl=no)
+if test "x$headercurl" = xno ; then
+    AC_MSG_CHECKING([checking for headers at $curlinclude])
+    if test [ ! -r $curlinclude/curl/curl.h ] ; then
+        AC_MSG_ERROR([cURL headers not found, you may need to install a curl-devel package])
+    fi
+    AC_MSG_RESULT([found])
+fi
+
+AC_ARG_WITH(libcurl,
+ [  --with-libcurl          directory containing libcurl],[
+    TEA_ADD_LIBS([-L$withval])
+ ],
+ [ 
+    TEA_ADD_LIBS([-L$curlprefix/lib])
+ ])
+
+AC_MSG_CHECKING([if libcurl version is recent enough])
+CURL_VERSION=`$curlpath/curl-config --checkfor 7.19.6`
+if test "${CURL_VERSION}" != "" ; then
+    echo ${CURL_VERSION}
+    AC_MSG_ERROR([libcurl version too old, please upgrade])
+fi
+AC_MSG_RESULT(yes)
+
+TEA_ADD_LIBS([`$curlpath/curl-config --libs`])
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# A few miscellaneous platform-specific items:
+#
+# Define a special symbol for Windows (BUILD_sample in this case) so
+# that we create the export library with the dll.
+#
+# Windows creates a few extra files that need to be cleaned up.
+# You can add more files to clean if your extension creates any extra
+# files.
+#
+# TEA_ADD_* any platform specific compiler/build info here.
+#--------------------------------------------------------------------
+
+# Add pkgIndex.tcl if it is generated in the Makefile instead of ./configure
+# and change Makefile.in to move it from CONFIG_CLEAN_FILES to BINARIES var.
+#CLEANFILES="pkgIndex.tcl"
+if test "${TEA_PLATFORM}" = "windows" ; then
+    AC_DEFINE(BUILD_sample, 1, [Build windows export dll])
+    CLEANFILES="$CLEANFILES *.lib *.dll *.exp *.ilk *.pdb vc*.pch"
+    #TEA_ADD_SOURCES([win/winFile.c])
+    #TEA_ADD_INCLUDES([-I\"$(${CYGPATH} ${srcdir}/win)\"])
+else
+    # Ensure no empty else clauses
+    :
+    #TEA_ADD_SOURCES([unix/unixFile.c])
+    #TEA_ADD_LIBS([-lsuperfly])
+fi
+AC_SUBST(CLEANFILES)
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Choose which headers you need.  Extension authors should try very
+# hard to only rely on the Tcl public header files.  Internal headers
+# contain private data structures and are subject to change without
+# notice.
+# This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG
+#--------------------------------------------------------------------
+
+TEA_PUBLIC_TCL_HEADERS
+#TEA_PRIVATE_TCL_HEADERS
+
+#TEA_PUBLIC_TK_HEADERS
+#TEA_PRIVATE_TK_HEADERS
+#TEA_PATH_X
+
+#--------------------------------------------------------------------
+# Check whether --enable-threads or --disable-threads was given.
+# This auto-enables if Tcl was compiled threaded.
+#--------------------------------------------------------------------
+
+TEA_ENABLE_THREADS
+
+#--------------------------------------------------------------------
+# The statement below defines a collection of symbols related to
+# building as a shared library instead of a static library.
+#--------------------------------------------------------------------
+
+TEA_ENABLE_SHARED
+
+#--------------------------------------------------------------------
+# This macro figures out what flags to use with the compiler/linker
+# when building shared/static debug/optimized objects.  This information
+# can be taken from the tclConfig.sh file, but this figures it all out.
+#--------------------------------------------------------------------
+
+TEA_CONFIG_CFLAGS
+
+#--------------------------------------------------------------------
+# Set the default compiler switches based on the --enable-symbols option.
+#--------------------------------------------------------------------
+
+TEA_ENABLE_SYMBOLS
+
+#--------------------------------------------------------------------
+# Everyone should be linking against the Tcl stub library.  If you
+# can't for some reason, remove this definition.  If you aren't using
+# stubs, you also need to modify the SHLIB_LD_LIBS setting below to
+# link against the non-stubbed Tcl library.  Add Tk too if necessary.
+#--------------------------------------------------------------------
+
+AC_DEFINE(USE_TCL_STUBS, 1, [Use Tcl stubs])
+#AC_DEFINE(USE_TK_STUBS, 1, [Use Tk stubs])
+
+#--------------------------------------------------------------------
+# This macro generates a line to use when building a library.  It
+# depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS,
+# and TEA_LOAD_TCLCONFIG macros above.
+#--------------------------------------------------------------------
+
+TEA_MAKE_LIB
+
+#--------------------------------------------------------------------
+# Determine the name of the tclsh and/or wish executables in the
+# Tcl and Tk build directories or the location they were installed
+# into. These paths are used to support running test cases only,
+# the Makefile should not be making use of these paths to generate
+# a pkgIndex.tcl file or anything else at extension build time.
+#--------------------------------------------------------------------
+
+TEA_PROG_TCLSH
+#TEA_PROG_WISH
+
+#--------------------------------------------------------------------
+# Finally, substitute all of the various values into the Makefile.
+# You may alternatively have a special pkgIndex.tcl.in or other files
+# which require substituting th AC variables in.  Include these here.
+#--------------------------------------------------------------------
+
+AC_OUTPUT([Makefile pkgIndex.tcl])
diff --git a/doc/OpenSSL-LICENSE.txt b/doc/OpenSSL-LICENSE.txt
new file mode 100755 (executable)
index 0000000..3fd259a
--- /dev/null
@@ -0,0 +1,127 @@
+
+  LICENSE ISSUES
+  ==============
+
+  The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
+  the OpenSSL License and the original SSLeay license apply to the toolkit.
+  See below for the actual license texts. Actually both licenses are BSD-style
+  Open Source licenses. In case of any license issues related to OpenSSL
+  please contact openssl-core@openssl.org.
+
+  OpenSSL License
+  ---------------
+
+/* ====================================================================
+ * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com).  This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+ Original SSLeay License
+ -----------------------
+
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
diff --git a/doc/SinComprimir/tclcurl.n b/doc/SinComprimir/tclcurl.n
new file mode 100644 (file)
index 0000000..cb51d82
--- /dev/null
@@ -0,0 +1,2078 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" Adapted from libcurl docs by fandom@telefonica.net
+.TH TclCurl n "8 September 2008" "TclCurl 7.19.0 "TclCurl Easy Interface"
+.SH NAME
+TclCurl: - get  a  URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE or LDAP syntax.
+.SH SYNOPSIS
+.BI "curl::init"
+.sp
+.IB curlHandle " configure " "?options?"
+.sp
+.IB curlHandle " perform"
+.sp
+.IB curlHandle " getinfo " curlinfo_option
+.sp
+.IB curlhandle " cleanup"
+.sp
+.IB curlhandle " reset"
+.sp
+.IB curlHandle " duhandle"
+.sp
+.IB curlHandle " pause"
+.sp
+.IB curlHandle " resume"
+.sp
+.BI curl::transfer " ?options?"
+.sp
+.BI curl::version
+.sp
+.BI "curl::escape " url
+.sp
+.BI "curl::unescape " url
+.sp
+.BI "curl::curlConfig " option
+.sp
+.BI "curl::versioninfo " option
+.sp
+.BI "curl::easystrerror " errorCode
+
+.SH DESCRIPTION
+The TclCurl extension gives Tcl programmers access to the libcurl
+library written by \fBDaniel Stenberg\fP, with it you can download urls,
+upload them and many other neat tricks, for more information check
+.I http://curl.haxx.se
+.SH curl::init
+This procedure must be the first one to call, it returns a
+.I curlHandle
+that you need to use to invoke TclCurl procedures. The init calls intializes
+curl and this call MUST have a corresponding call to
+.I cleanup
+when the operation is completed.
+You should perform all your sequential file transfers using the same
+curlHandle. This enables TclCurl to use persistant connections when
+possible.
+.sp
+.B RETURN VALUE
+.sp
+.I curlHandle
+to use.
+.SH curlHandle configure ?options?
+.sp
+.B configure
+is called to set the options for the transfer. Most operations in TclCurl
+have default actions, and by using the appropriate options you can
+make them behave differently (as documented). All options are set with
+the \fIoption\fP followed by a parameter.
+.sp
+.B Notes:
+the options set with this procedure are valid for the
+forthcoming data transfers that are performed when you invoke
+.I perform
+.sp
+The options are not reset between transfers (except where noted), so if
+you want subsequent transfers with different options, you must change them
+between the transfers. You can optionally reset all options back to the internal
+default with \fBcurlHandle reset\fP.
+.sp
+.I "curlHandle"
+is the return code from the
+.I "curl::init"
+call.
+.sp
+
+.B OPTIONS
+.sp
+.SH Behaviour options
+
+.TP
+.B -verbose
+Set the parameter to 1 to get the library to display a lot of verbose
+information about its operations. Very useful for libcurl and/or protocol
+debugging and understanding.
+
+You hardly ever want this set in production use, you will almost always want
+this when you debug/report problems. Another neat option for debugging is
+.B -debugproc
+
+.TP
+.B -header
+A 1 tells the extension to include the headers in the body output. This is
+only relevant for protocols that actually have headers preceding the data (like HTTP).
+
+.TP
+.B -noprogress
+A 1 tells the extension to turn on the built-in progress meter.
+Nowadays it is turn off by default.
+
+.TP
+.B -nosignal
+A 1 tells TclCurl not use any functions that install signal
+handlers or any functions that cause signals to be sent to the process. This
+option is mainly here to allow multi-threaded unix applications to still
+set/use all timeout options etc, without risking getting signals.
+
+
+.SH Callback options
+
+.TP
+.B -writeproc
+Use it to set a Tcl procedure that will be invoked by TclCurl as soon as
+there is received data that needs to be saved. The procedure will receive
+a single parameter with the data to be saved.
+
+NOTE: you will be passed as much data as possible in all invokes, but you
+cannot possibly make any assumptions. It may be nothing if the file is
+empty or it may be thousands of bytes.
+
+.TP
+.B -file
+File in which the transfered data will be saved.
+
+.TP
+.B -readproc
+Sets a Tcl procedure to be called by TclCurl as soon as it needs to read
+data in order to send it to the peer. The procedure has to take one
+parameter, which will contain the maximun numbers of bytes to read. It
+should return the actual number of bytes read, or '0' if you want to
+stop the transfer.
+
+.TP
+.B -infile
+File from which the data will be transfered.
+
+.TP
+.B -progressproc
+Name of the Tcl procedure that will invoked by TclCurl  with a frequent
+interval during operation (roughly once per second), no matter if data
+is being transfered or not.  Unknown/unused
+argument values passed to the callback will be set to zero (like if you
+only download data, the upload size will remain 0), the prototype of the
+procedure must be:
+.sp
+.B proc ProgressCallback {dltotal dlnow ultotal ulnow}
+.sp
+In order to this option to work you have to set the \fBnoprogress\fP
+option to '0'. Setting this option to the empty string will restore the
+original progress function.
+
+If you transfer data with the multi interface, this procedure will not be
+called during periods of idleness unless you call the appropriate procedure
+that performs transfers.
+
+You can pause and resume a transfer from within this procedure using the
+\fBpause\fP and \fBresume\fP commands.
+
+.TP
+.B -writeheader
+Pass a the file name to be used to write the header part of the received data to.
+The headers are guaranteed to be written one-by-one to this file and
+only complete lines are written. Parsing headers should be easy enough using
+this.
+
+.TP
+.B -debugproc
+Name of the procedure that will receive the debug data produced by the
+.B -verbose
+option, it should match the following prototype:
+.sp
+.B debugProc {infoType data}
+.sp
+where \fBinfoType\fP specifies what kind of information it is (0 text,
+1 incoming header, 2 outgoing header, 3 incoming data, 4 outgoing data,
+5 incoming SSL data, 6 outgoing SSL data).
+
+.SH Error Options
+
+.TP
+.B -errorbuffer
+Pass a variable name where TclCurl may store human readable error
+messages in. This may be more helpful than just the return code from the
+command.
+
+.TP
+.B -stderr
+Pass a file name as parameter. This is the stream to use internally instead
+of stderr when reporting errors.
+.TP
+.B -failonerror
+A 1 parameter tells the extension to fail silently if the HTTP code
+returned is equal or larger than 400. The default action would be to return
+the page normally, ignoring that code.
+
+This method is not fail-safe and there are occasions where non-successful response
+codes will slip through, especially when authentication is involved
+(response codes 401 and 407). 
+
+You might get some amounts of headers transferred before this situation is detected,
+like for when a "100-continue" is received as a response to a POST/PUT and a 401
+or 407 is received immediately afterwards.
+
+.SH Network options
+
+.TP
+.B -url
+The actual URL to deal with.
+
+If the given URL lacks the protocol part ("http://" or "ftp://" etc), it will
+attempt to guess which protocol to use based on the given host name. If the
+given protocol of the set URL is not supported, TclCurl will return the
+\fBunsupported protocol\fP error when you call \fBperform\fP. Use
+\fBcurl::versioninfo\fP for detailed info on which protocols that are supported.
+
+\fBNOTE\fP: this the one option required to be set
+before
+.B perform
+is called.
+
+.TP
+.B -proxy
+If you need to use a http proxy to access the outside world, set the
+proxy string with this option. To specify port number in this string,
+append :[port] to the end of the host name. The proxy string may be
+prefixed with [protocol]:// since any such prefix will be ignored.
+
+When you tell the extension to use a HTTP proxy, TclCurl will
+transparently convert operations to HTTP even if you specify a FTP
+URL etc. This may have an impact on what other features of the library
+you can use, such as
+.B quote
+and similar FTP specifics that will not work unless you tunnel through
+the HTTP proxy. Such tunneling  is activated with
+.B proxytunnel
+
+TclCurl respects the environment variables http_proxy, ftp_proxy,
+all_proxy etc, if any of those are set. The use of this option does
+however override any possibly set environment variables.
+
+Setting the proxy string to "" (an empty string) will explicitly disable
+the use of a proxy, even if there is an environment variable set for it.
+
+The proxy host string can be specified the exact same way as the proxy
+environment variables, include protocol prefix (http://) and embedded
+user + password.
+
+.TP
+.B -proxyport
+Use this option to set the proxy port to use unless it is specified in
+the proxy string by \fB-proxy\fP.
+
+.TP
+.B -proxytype
+Pass the type of  the  proxy. Available options are 'http', 'socks4', 'socks4a'
+and 'socks5', with the HTTP one being default.
+
+.TP
+.B -httpproxytunnel
+Set the parameter to 1 to get the extension to tunnel all non-HTTP
+operations through the given HTTP proxy. Do note that there is a big
+difference between using a proxy and tunneling through it. If you don't know what
+this means, you probably don't want this tunnel option.
+
+.TP
+.B -interface
+Pass the interface name to use as outgoing
+network interface. The name can be an interface name, an IP address or a host
+name.
+
+.TP
+.B -localport
+This sets the local port number of the socket used for connection. This can
+be used in combination with \fB-interface\fP and you are recommended to use
+\fBlocalportrange\fP as well when this is set. Note the only valid port numbers
+are 1 - 65535.
+
+.TP
+.B -localportrange
+This is the number of attempts TclCurl should do to find a working local port
+number. It starts with the given \fB-localport\fP and adds
+one to the number for each retry. Setting this value to 1 or below will make
+TclCurl do only one try for exact port number. Note that port numbers by nature
+are a scarce resource that will be busy at times so setting this value to something
+too low might cause unnecessary connection setup failures.
+
+.TP
+.B -dnscachetimeout
+Pass the timeout in seconds. Name resolves will be kept in memory for this number
+of seconds. Set to '0' to completely disable caching, or '-1' to make the
+cached entries remain forever. By default, TclCurl caches this info for 60 seconds.
+
+.TP
+.B -dnsuseglobalcache
+If the value passed is 1, it tells TclCurl to use a global DNS cache that
+will survive between curl handles creations and deletions. This is not thread-safe
+as it uses a global varible.
+
+\fBWARNING:\fP this option is considered obsolete. Stop using it. Switch over
+to using the share interface instead! See \fItclcurl_share\fP.
+
+.TP
+.B -buffersize
+Pass your prefered size for the receive buffer in TclCurl. The main point of this
+would be that the write callback gets called more often and with smaller chunks.
+This is just treated as a request, not an order. You cannot be guaranteed to
+actually get the given size.
+
+.TP
+.B -port
+
+Pass the number specifying what remote port to connect to, instead of the one specified
+in the URL or the default port for the used protocol.
+
+.TP
+.B -tcpnodelay
+
+Pass a number to specify whether the TCP_NODELAY option should be set or cleared (1 = set, 0 = clear).
+The option is cleared by default. This will have no effect after the connection has been established.
+
+Setting this option will disable TCP's Nagle algorithm. The purpose of this algorithm is to try to
+minimize the number of small packets on the network (where "small packets" means TCP segments less
+than the Maximum Segment Size (MSS) for the network).
+
+Maximizing the amount of data sent per TCP segment is good because it amortizes the overhead of the
+send. However, in some cases (most notably telnet or rlogin) small segments may need to be sent without
+delay. This is less efficient than sending larger amounts of data at a time, and can contribute to
+congestion on the network if overdone.
+
+.TP
+.B -addressscope
+Pass a number specifying the scope_id value to use when connecting to IPv6 link-local or site-local
+addresses.
+
+.SH Names and Passwords options
+
+.TP
+.B -netrc
+A 1 parameter tells the extension to scan your
+.B ~/.netrc
+file to find user name and password for the remote site you are about to
+access. Do note that TclCurl does not verify that the file has the correct
+properties set (as the standard unix ftp client does), and that only machine
+name, user name and password is taken into account (init macros and similar
+things are not supported).
+
+You can set it to the following values:
+.RS
+.TP 5
+.B optional
+The use of your ~/.netrc file is optional, and information in the URL is to
+be preferred. The file will be scanned with the host and user name (to find
+the password only) or with the host only, to find the first user name and
+password after that machine, which ever information is not specified in
+the URL.
+
+Undefined  values  of  the  option  will  have this effect.
+.TP
+.B ignored
+The extension will ignore the file and use only the information in the URL.
+This is the default.
+.TP
+.B required
+This value tells the library that use of the file is required, to ignore
+the information in the URL, and to search the file with the host only.
+.RE
+
+.TP
+.B -netrcfile
+Pass a string containing the full path name to the file you want to use as .netrc
+file. For the option to work, you have to set the \fBnetrc\fP option to
+\fBrequired\fP. If this option is omitted, and \fBnetrc\fP is set, TclCurl
+will attempt to find the a .netrc file in the current user's home directory.
+
+.TP
+.B -userpwd
+Pass a string as parameter, which should be [username]:[password] to use for
+the connection. Use \fBhttpauth\fP to decide authentication method.
+
+When using NTLM, you can set domain by prepending it to the user name and
+separating the domain and name with a forward (/) or backward slash (\\). Like
+this: "domain/user:password" or "domain\\user:password". Some HTTP servers (on
+Windows) support this style even for Basic authentication.
+
+When using HTTP and \fB-followlocation\fP, TclCurl might perform several
+requests to possibly different hosts. TclCurl will only send this user and
+password information to hosts using the initial host name (unless
+\fB-unrestrictedauth\fP is set), so if TclCurl follows locations to other
+hosts it will not send the user and password to those. This is enforced to
+prevent accidental information leakage.
+
+.TP
+.B -proxyuserpwd
+Pass a string as parameter, which should be [username]:[password] to use for
+the connection to the HTTP proxy.
+
+.TP
+.B -httpauth
+Set to the authentication method you want, the available ones are:
+.RS
+.TP 5
+.B basic
+HTTP Basic authentication. This is the default choice, and the only
+method that is in widespread use and supported virtually everywhere.
+It sends the user name and password over the network in plain text,
+easily captured by others.
+
+.TP
+.B digest
+HTTP Digest authentication. Digest authentication is a more secure
+way to do authentication over public networks than the regular
+old-fashioned Basic method.
+
+.TP
+.B gssnegotiate
+HTTP GSS-Negotiate authentication. The GSS-Negotiate method, also known as
+plain "Negotiate",was designed by Microsoft and is used in their web
+applications. It is primarily meant as a support for Kerberos5 authentication
+but may be also used along with another authentication methods.
+
+.TP
+.B ntlm
+HTTP NTLM authentication. A proprietary protocol invented and used by Microsoft.
+It uses a challenge-response and hash concept similar to Digest, to prevent the
+password from being eavesdropped.
+
+.TP
+.B any
+TclCurl will automatically select the one it finds most secure.
+
+.TP
+.B anysafe
+It may use anything but basic, TclCurl will automaticly select the
+one it finds most secure.
+.RE
+
+.TP
+.B -proxyauth
+Use it to tell TclCurl which authentication method(s) you want it to use for
+your proxy authentication. Note that for some methods, this will induce an
+extra network round-trip. Set the actual name and password with the 
+\fBproxyuserpwd\fP option.
+
+The methods are those listed above for the \fBhttpauth\fP option. As of this
+writing, only Basic and NTLM work.
+
+.SH HTTP options
+
+.TP
+.B -autoreferer
+Pass an 1 parameter to enable this. When enabled, TclCurl will
+automatically set the Referer: field in requests where it follows a Location:
+redirect.
+
+.TP
+.B -encoding
+Sets the contents of the Accept-Encoding: header sent in an HTTP
+request, and enables decoding of a response when a Content-Encoding:
+header is received.  Three encodings are supported: \fIidentity\fP,
+which does nothing, \fIdeflate\fP which requests the server to
+compress its response using the zlib algorithm, and \fIgzip\fP which
+requests the gzip algorithm.  Use \fIall\fP to send an
+Accept-Encoding: header containing all supported encodings.
+
+This is a request, not an order; the server may or may not do it.  This
+option must be set or else any unsolicited
+encoding done by the server is ignored. See the special file
+lib/README.encoding in libcurl docs for details.
+
+.TP
+.B -followlocation
+An 1 tells the library to follow any
+.B Location: header
+that the server sends as part of a HTTP header.
+
+\fBNOTE\fP: this means that the extension will re-send the  same
+request on the new location and follow new \fBLocation: headers\fP
+all the way until no more such headers are returned.
+\fB-maxredirs\fP can be used to limit the number of redirects
+TclCurl will follow.
+
+.TP
+.B -unrestrictedauth
+An 1 parameter tells the extension it can continue
+to  send authentication (user+password) when following
+locations, even when hostname changed. Note that  this
+is  meaningful  only  when setting \fB-followlocation\fP.
+
+.TP
+.B -maxredirs
+Sets the redirection limit. If that many redirections have been followed,
+the next redirect will cause an error. This option only makes sense if the
+\fB-followlocation\fP option is used at the same time. Setting the limit
+to 0 will make libcurl refuse any redirect. Set it to -1 for an infinite
+number of redirects (which is the default)
+
+.TP
+.B -post301
+An 1 tells TclCurl to respect RFC 2616/10.3.2 and not
+convert POST requests into GET requests when following a 301 redirection. The
+non-RFC behaviour is ubiquitous in web browsers, so the conversion is done
+by default to maintain consistency. However, a server may require
+a POST to remain a POST after such a redirection. This option is meaningful
+only when setting \fB-followlocation\fP.
+
+.TP
+.B -put
+An 1 parameter tells the extension to use HTTP PUT a file. The file to put
+must be set with \fB-infile\fP and \fB-infilesize\fP.
+
+This option is deprecated starting with version 0.12.1, you should use \fB-upload\fP.
+
+.TP
+.B -post
+An 1 parameter tells the library to do a regular HTTP post. This is a
+normal application/x-www-form-urlencoded kind, which is the most commonly used
+one by HTML forms. See the \fB-postfields\fP option for how to specify the
+data to post and \fB-postfieldsize\fP about how to set the data size.
+
+Use the \fB-postfields\fP option to specify what data to post and \fB-postfieldsize\fP
+to set the data size. Optionally, you can provide data to POST using the \fB-readproc\fP
+options.
+
+You can override the default POST Content-Type: header by setting your own with
+\fB-httpheader\fP.
+
+Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header.
+You can disable this header with \fB-httpheader\fP as usual.
+
+If you use POST to a HTTP 1.1 server, you can send data without knowing the
+size before starting the POST if you use chunked encoding. You enable this
+by adding a header like "Transfer-Encoding: chunked" with \fB-httpheader\fP.
+With HTTP 1.0 or without chunked transfer, you must specify the size in the
+request.
+
+When setting \fBpost\fP to an 1 value, it will automatically set
+\fBnobody\fP to 0.
+
+NOTE: if you have issued a POST request and want to make a HEAD or GET instead, you must
+explicitly pick the new request type using \fB-nobody\fP or \fB-httpget\fP or similar.
+
+.TP
+.B -postfields
+Pass a string as parameter, which should be the full data to post in a HTTP
+POST operation. You must make sure that the data is formatted the way you
+want the server to receive it. TclCurl will not convert or encode it for you.
+Most web servers will assume this data to be url-encoded.
+
+This is a normal application/x-www-form-urlencoded  kind,
+which is the most commonly used one by HTML forms.
+
+If you want to do a zero-byte POST, you need to set
+\fB-postfieldsize\fP explicitly to zero, as simply setting
+\fB-postfields\fP to NULL or "" just effectively disables the sending
+of the specified string. TclCurl will instead assume that the POST
+data will be send using the read callback!
+
+Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header.
+You can disable this header with \fB-httpheader\fP as usual.
+
+\fBNote\fP: to make multipart/formdata posts (aka rfc1867-posts), check out
+\fB-httppost\fP option.
+
+.TP
+.B -postfieldsize
+If you want to post data to the server without letting TclCurl do a strlen()
+to measure the data size, this option must be used. Also, when this option is
+used, you can post fully binary data which otherwise is likely to fail. If
+this size is set to zero, the library will use strlen() to get the data
+size.
+
+.TP
+.B -httppost
+Tells TclCurl you want a multipart/formdata HTTP POST to be made and you
+instruct what data to pass on to the server through a
+.B Tcl list.
+
+\fBThis is the only case where the data is reset after a transfer.\fP
+
+First, there are some basics you need to understand about multipart/formdata
+posts. Each part consists of at least a \fBNAME\fP and a \fBCONTENTS\fP part. If the part
+is made for file upload, there are also a stored \fBCONTENT-TYPE\fP and a
+\fBFILENAME\fP. Below, we'll discuss on what options you use to set these
+properties in the parts you want to add to your post.
+
+The list must contain a \fB'name'\fP tag with the name of the section followed
+by a string with the name, there are three tags to indicate the value of
+the section: \fB'value'\fP followed by a string with the data to post, \fB'file'\fP
+followed by the name of the file to post and \fB'contenttype'\fP with the
+type of the data (text/plain, image/jpg, ...), you can also indicate a \fIfalse\fP
+file name with \fB'filename'\fP, this is useful in case the server checks if the given
+file name is valid, for example, by testing if it starts with 'c:\\' as any real file
+name does or if you want to include the full path of the file to post. You can also post
+the content of a variable as if it were a file with the options \fB'bufferName'\fP and
+\fB'buffer'\fP or use \fB'filecontent'\fP followed by a file name to read that file and
+use the contents as data.
+
+Should you need to specify extra headers for the form POST section, use
+\fB'contentheader\fP' followed by a list with the headers to post.
+
+Please see 'httpPost.tcl' and 'httpBufferPost.tcl' for examples.
+
+If TclCurl can't set the data to post an error will be returned:
+.RS
+.TP 5
+.B 1
+If the memory allocation fails.
+.TP
+.B 2
+If one option is given twice for one form.
+.TP
+.B 3
+If an empty string was given.
+.TP
+.B 4
+If an unknown option was used.
+.TP
+.B 5
+If the some form info is not complete (or error)
+.TP
+.B 6
+If an illegal option is used in an array.
+.TP
+.B 7
+TclCurl has no http support.
+.RE
+
+.TP
+.B -referer
+Pass a string as parameter. It will be used to set the
+.B referer
+header in the http request sent to the remote server. This can be used to
+fool servers or scripts. You can also set any custom header with
+.B -httpheader.
+
+.TP
+.B -useragent
+Pass a string as parameter. It will be used to set the
+.B user-agent:
+header in the http request sent to the remote server. This can be used to fool
+servers or scripts. You can also set any custom header with
+.B -httpheader.
+
+.TP
+.B -httpheader
+Pass a
+.B list
+with the HTTP headers to pass to the server in your request.
+If you add a header that is otherwise generated
+and used by TclCurl internally, your added one will be used instead. If you
+add a header with no contents as in 'Accept:', the internally used header will
+just get disabled. Thus, using this option you can add new headers, replace
+and remove internal headers.
+
+The headers included in the linked list must not be CRLF-terminated, because
+TclCurl adds CRLF after each header item. Failure to comply with this will
+result in strange bugs because the server will most likely ignore part of the
+headers you specified.
+
+The first line in a request (containing the method, usually a GET or POST) is
+not a header and cannot be replaced using this option. Only the lines
+following the request-line are headers. Adding this method line in this list
+of headers will only cause your request to send an invalid header.
+
+\fBNOTE\fP:The most commonly replaced headers have "shortcuts" in the  options:
+.B cookie, useragent,
+and
+.B referer.
+
+.TP
+.B -http200aliases
+Pass a list of aliases to be treated as valid HTTP 200 responses. Some servers
+respond with a custom header response line. For example, IceCast servers respond
+with "ICY 200 OK". By including this string in your list of aliases, the
+response will be treated as a valid HTTP header line such as "HTTP/1.0 200 OK".
+
+\fBNOTE\fP:The alias itself is not parsed for any version strings. Before version
+7.16.3, TclCurl used the value set by option \fBhttpversion\fP, but starting with
+7.16.3 the protocol is assumed to match HTTP 1.0 when an alias matched.
+
+.TP
+.B -cookie
+Pass a string as parameter. It will be used to
+set a cookie in the http request. The format of the string should be
+'[NAME]=[CONTENTS];'. Where NAME is the cookie name and  CONTENTS is
+what the cookie should contain.
+
+If  you  need  to  set mulitple cookies, you need to set them all using
+a single option and thus you need to concatenate them all in one single string.
+Set multiple cookies in one string like this: "name1=content1; name2=content2;"
+etc.
+
+Note that this option sets the cookie header explictly in the outgoing request(s).
+If multiple requests are done due to authentication, followed redirections or similar,
+they will all get this cookie passed on.
+
+Using this option multiple times will only make the latest string override
+the previous ones.
+
+.TP
+.B -cookiefile
+Pass a string as parameter. It should contain the name of your file holding
+cookie data. The cookie data may be in netscape cookie data format or just
+regular HTTP-style headers dumped to a file.
+
+Given an empty or non-existing file, this option will enable cookies for this
+curl handle, making it understand and parse received cookies and then use
+matching cookies in future requests.
+
+If you use this option multiple times, you add more files to read.
+
+.TP
+.B -cookiejar
+Pass a file name in which TclCurl will dump all internally known cookies
+when
+.B curlHandle cleanup
+is called. If no cookies are known, no file will be created.
+Specify "-" to have the cookies written to stdout.
+
+Using this option also enables cookies for this session, so if you, for
+example, follow a location it will make matching cookies get sent accordingly.
+
+TclCurl will not and cannot report an error for  this. Using  '\fBverbose\fP'
+will get a warning to display, but that is the only visible feedback you get
+about this possibly lethal situation.
+
+.TP
+.B -cookiesession
+Pass an 1 to mark this as a new cookie "session". It will
+force TclCurl to ignore all cookies it is about to load that are "session
+cookies" from the previous session. By default, TclCurl always stores and
+loads all cookies, independent of whether they are session cookies are not.
+Session cookies are cookies without expiry date and they are meant to be
+alive and existing for this "session" only.
+
+.TP
+.B -cookielist
+Pass a string with a cookie. The cookie can be either in Netscape / Mozilla
+format or just regular HTTP-style header (Set-Cookie: ...) format. If the
+cookie engine was not enabled it will be enabled.  Passing a
+magic string "ALL" will erase all known cookies while "FLUSH" will write
+all cookies known by TclCurl to the file specified by \fB-cookiejar\fP.
+
+.TP
+.B -httpget
+If set to 1 forces the HTTP request to get back to GET, usable if
+POST, PUT or a custom request have been used previously with the
+same handle.
+
+When setting \fBhttpget\fP to 1, \fBnobody\fP will automatically be set to 0.
+
+.TP
+.B -httpversion
+Set to one of the values decribed below, they force TclCurl to use the
+specific http versions. It should only be used if you really MUST do
+that because of a silly remote server.
+.RS
+.TP 5
+.B none
+We do not care about what version the library uses. TclCurl will use whatever
+it thinks fit.
+.TP
+.B 1.0
+Enforce HTTP 1.0 requests.
+.TP
+.B 1.1
+Enforce HTTP 1.1 requests.
+.RE
+
+.TP
+.B -ignorecontentlength
+Ignore the Content-Length header. This is useful for Apache 1.x (and similar
+servers) which will report incorrect content length for files over 2
+gigabytes. If this option is used, TclCurl will not be able to accurately
+report progress, and will simply stop the download when the server ends the
+connection.
+
+.TP
+.B -httpcontentdecoding
+Set to zero to disable content decoding. If set to 1 it is enabled. Note however
+that TclCurl has no default content decoding but requires you to use \fBencoding\fP for that.
+
+.TP
+.B -httptransferencoding
+Set to zero to disable transfer decoding, if set to 1 it is enabled (default). TclCurl does
+chunked transfer decoding by default unless this option is set to zero.
+
+.SH FTP options
+
+.TP
+.B -ftpport
+Pass a string as parameter. It will be used to
+get the IP address to use for the ftp PORT instruction. The PORT instruction
+tells the remote server to connect to our specified IP address. The string may
+be a plain IP address, a host name, a network interface name (under unix) or
+just a '-' to let the library use your systems default IP address. Default FTP
+operations are passive, and thus will not use PORT.
+
+.TP
+.B -quote
+Pass a \fBlist\fP list with the FTP or SFTP commands to pass to the server prior to your
+ftp request. This will be done before any other FTP commands are issued (even
+before the CWD command).If you do not want to transfer any files, set
+\fBnobody\fP to '1' and \fBheader\fP to '0'.
+
+Keep in mind the commands to send must be 'raw' ftp commands, for example, to
+create a directory you need to send \fBmkd Test\fP, not \fBmkdir Test\fP.
+
+Valid SFTP commands are: chgrp, chmod, chown, ln, mkdir, pwd, rename, rm,
+rmdir and symlink. 
+
+.TP
+.B -postquote
+Pass a \fBlist\fP with the FTP commands to pass to the server after your
+ftp transfer request. If you do not want to transfer any files, set
+\fBnobody\fP to '1' and \fBheader\fP to '0'.
+
+.TP
+.B -prequote
+Pass a \fBlist\fP of FTP or SFTP commands to pass to the server after the
+transfer type is set.
+
+.TP
+.B -dirlistonly
+A 1 tells the library to just list the names of files in a
+directory, instead of doing a full directory listing that would include file
+sizes, dates etc. It works with both FTP and SFTP urls.
+
+This causes an FTP NLST command to be sent. Beware that some FTP servers list
+only files in their response to NLST, they might not include subdirectories
+and symbolic links.
+
+.TP
+.B -append
+A 1 parameter tells the extension to append to the remote file instead of
+overwriting it. This is only useful when uploading to a ftp site.
+
+.TP
+.B -ftpuseeprt
+Set to 1 to tell TclCurl to use the EPRT (and LPRT) command when doing
+active FTP downloads (which is enabled by '\fBftpport\fP'). Using EPRT means
+that it will first attempt to use EPRT and then LPRT before using PORT, if
+you pass zero to this option, it will not try using EPRT or LPRT, only plain PORT.
+
+.TP
+.B -ftpuseepvs
+Set to one to tell TclCurl to use the EPSV command when doing passive FTP
+downloads (which it always does by default). Using EPSV means that it will
+first attempt to use EPSV before using PASV, but if you pass a zero to this
+option, it will not try using EPSV, only plain PASV.
+
+.TP
+.B -ftpcreatemissingdirs
+If set to 1, TclCurl will attempt to create any remote directory that it
+fails to CWD into. CWD is the command that changes working directory.
+
+This setting also applies to SFTP-connections. TclCurl will attempt to create
+the remote directory if it can't obtain a handle to the target-location. The
+creation will fail if a file of the same name as the directory to create
+already exists or lack of permissions prevents creation.
+
+.TP
+.B -ftpresponsetimeout
+Causes TclCurl to set a timeout period (in seconds) on the amount of time that
+the server is allowed to take in order to generate a response message for a
+command before the session is considered hung. Note that while TclCurl is waiting
+for a response, this value overrides \fBtimeout\fP. It is recommended that if used
+in conjunction with \fBtimeout\fP, you set it to a value smaller than \fBtimeout\fP.
+
+.TP
+.B -ftpalternativetouser 
+Pass a string which will be used to authenticate if the usual FTP "USER user" and
+"PASS password" negotiation fails. This is currently only known to be required when
+connecting to Tumbleweed's Secure Transport FTPS server using client certificates for
+authentication.
+
+.TP
+.B -ftpskippasvip
+If set to 1, it instructs TclCurl not to use the IP address the
+server suggests in its 227-response to TclCurl's PASV command when TclCurl
+connects the data connection. Instead TclCurl will re-use the same IP address
+it already uses for the control connection. But it will use the port number
+from the 227-response.
+
+This option has no effect if PORT, EPRT or EPSV is used instead of PASV.
+
+.TP
+.B -usessl
+You can use ftps:// URLs to explicitly switch on SSL/TSL for the control
+connection and the data connection.
+
+Alternatively, and what seems to be the recommended way, you can set the
+option to one of these values:
+
+.RS
+.TP 5
+.B nope
+Do not attempt to use SSL
+.TP
+.B try
+Try using SSL, proceed anyway otherwise.
+.TP
+.B control
+Use SSL for the control conecction or fail with "use ssl failed" (64).
+.TP
+.B all
+Use SSL for all communication or fail with "use ssl failed" (64).
+.RE
+
+.TP
+.B -ftpsslauth
+
+Pass TclCurl one of the values from below, to alter how TclCurl issues
+"AUTH TLS" or "AUTH SSL" when FTP over SSL is activated (see \fB-ftpssl\fP).
+
+You may need this option because of servers like BSDFTPD-SSL from
+http://bsdftpd-ssl.sc.ru/ "which won't work properly  when "AUTH SSL" is issued
+(although the server responds fine and everything) but requires "AUTH TLS"
+instead".
+
+.RS
+.TP 5
+.B default
+Allows TclCurl to decide.
+.TP
+.B ssl
+Try "AUTH SSL" first, and only if that fails try "AUTH TLS".
+.TP
+.B tls
+Try "AUTH TLS" first, and only if that fails try "AUTH SSL".
+.RE
+
+.TP
+.B -ftpsslccc 
+Set it to make TclCurl use CCC (Clear Command Channel). It shuts down the
+SSL/TLS layer after authenticating. The rest of the control channel
+communication will be unencrypted. This allows NAT routers to follow the
+FTP transaction. Possible values are:
+
+.RS
+.TP 5
+.B none
+Do not attempt to use CCC.
+.TP
+.B passive
+Do not initiate the shutdown, wait for the server to do it. Do not send a reply. 
+.TP
+.B active
+Initiate the shutdown and wait for a reply. 
+.RE
+
+.TP
+.B -ftpaccount
+Pass string (or "" to disable). When an FTP server asks for "account data" after
+user name and password has been provided, this data is sent off using the ACCT
+command.
+
+.TP
+.B -ftpfilemethod
+It allows three values:
+.RS
+.TP 5
+.B multicwd
+The default, TclCurl will do a single CWD operation for each path part in the given
+URL. For deep hierarchies this means very many commands. This is how RFC1738 says it
+should be done.
+.TP
+.B nocwd
+No CWD at all is done, TclCurl will do SIZE, RETR, STOR, etc and give a full path to
+the server.
+.TP
+.B singlecwd
+Make one CWD with the full target directory and then operate on the file "normally".
+This is somewhat more standards compliant than 'nocwd' but without the full penalty of 'multicwd'.
+.RE
+
+.SH Protocol options
+
+.TP
+.B -transfertext
+A 1 tells the extension to use ASCII mode for ftp transfers,
+instead of the default binary transfer. For win32 systems it does not set the
+stdout to binary mode. This option can be usable when transferring text data
+between systems with different views on certain characters, such as newlines
+or similar.
+
+\fBNOTE:\fP TclCurl does not do a complete ASCII conversion when doing ASCII
+transfers over FTP. This is a known limitation/flaw that nobody has
+rectified. TclCurl simply sets the mode to ascii and performs a standard
+transfer.
+
+.TP
+.B -proxytransfermode
+If set to 1, TclCurl sets the transfer mode (binary or ASCII) for FTP transfers
+done via an HTTP proxy, by appending ;type=a or ;type=i to the URL.
+Without this setting, or it being set to 0, the default, \fB-transfertext\fP has
+no effect when doing FTP via a proxy. Beware that not all proxies support this feature.
+
+.TP
+.B -crlf
+Convert unix newlines to CRLF newlines on FTP transfers.
+
+.TP
+.B -range
+Pass a string as parameter, which should contain the specified range you
+want. It should be in the format
+.I "X-Y"
+, where X or Y may be left out. HTTP
+transfers also support several intervals, separated with commas as in
+.I "X-Y,N-M"
+Using this kind of multiple intervals will cause the HTTP server to send the
+response document in pieces (using standard MIME separation techniques).
+
+Ranges only work on HTTP, FTP and FILE transfers.
+
+.TP
+.B -resumefrom
+Pass the offset in number of bytes that you want the transfer to start from.
+Set this option to 0 to make the transfer start from the beginning
+(effectively disabling resume).
+
+For FTP, set this option to -1 to make the transfer start from the end of the
+target file (useful to continue an interrupted upload). 
+
+.TP
+.B -customrequest
+Pass a string as parameter. It will be used instead of GET or HEAD when doing
+the HTTP request. This is useful for doing DELETE or other more obscure HTTP
+requests. Do not do this at will, make sure your server supports the command first.
+
+Note that TclCurl will still act and assume the keyword it would use if you
+do not set your custom and it will act according to that. Thus, changing this
+to a HEAD when TclCurl otherwise would do a GET might cause TclCurl to act funny,
+and similar. To switch to a proper HEAD, use \fB-nobody\fP, to switch to a proper
+POST, use \fB-post\fP or \fB-postfields\fP and so on.
+
+.TP
+.B -filetime
+If you pass a 1, TclCurl will attempt to get the
+modification date of the remote document in this operation. This requires that
+the remote server sends the time or replies to a time querying command. The
+getinfo procedure with the
+.I filetime
+argument can be used after a transfer to extract the received time (if any).
+
+.TP
+.B -nobody
+A 1 tells the library not to include the body-part in the
+output. This is only relevant for protocols that have a separate header and
+body part. On HTTP(S) servers, this will make TclCurl do a HEAD request.
+
+To change request to GET, you should use \fBhttpget\fP. Change request
+to POST with \fBpost\fP etc.
+
+.TP
+.B -infilesize
+When uploading a file to a remote site, this option should be used to tell
+TclCurl what the expected size of the infile is.
+
+This option is mandatory for uploading using SCP.
+
+.TP
+.B -upload
+A 1 tells the library to prepare for an upload. The
+\fB-infile\fP and \fB-infilesize\fP options are also interesting for uploads.
+If the protocol is HTTP, uploading means using the PUT request unless you tell
+TclCurl otherwise.
+
+Using PUT with HTTP 1.1 implies the use of a "Expect: 100-continue" header.
+You can disable this header with \fB-httpheader\fP as usual.
+
+If you use PUT to a HTTP 1.1 server, you can upload data without knowing the
+size before starting the transfer if you use chunked encoding. You enable this
+by adding a header like "Transfer-Encoding: chunked" with \fB-httpheader\fP.
+With HTTP 1.0 or without chunked transfer, you must specify the size.
+
+.TP
+.B -maxfilesize
+This allows you to specify the maximum size (in bytes) of a file to download.
+If the file requested is larger than this value, the transfer will not start
+and error 'filesize exceeded' (63) will be returned.
+
+NOTE: The file size is not always known prior to download, and for such files
+this option has no effect even if the file transfer ends up being larger than
+this given limit. This concerns both FTP and HTTP transfers.
+
+.TP
+.B -timecondition
+This defines how the \fBtimevalue\fP value is treated. You can set this
+parameter to \fBifmodsince\fP or \fBifunmodsince\fP.  This feature applies to
+HTTP and FTP.
+
+.TP
+.B -timevalue
+This should be the time in seconds since 1 jan 1970, and the time will be
+used in a condition as specified with \fBtimecondition\fP.
+
+
+.SH Connection options
+
+.TP
+.B -timeout
+Pass the maximum time in seconds that you allow
+the TclCurl transfer operation to take. Do note that normally, name lookups
+may take a considerable time and that limiting the operation to less than a
+few minutes risks aborting perfectly normal operations. This option will
+cause libcurl to use the SIGALRM to enable time-outing system calls.
+
+In unix-like systems, this might cause signals to be used unless
+\fB-nosignal\fP is used.
+
+.TP
+.B -timeoutms
+Like \fBtimeout\fP but takes a number of milliseconds instead. If libcurl is
+built to use the standard system name resolver, that part will still use
+full-second resolution for timeouts.
+
+.TP
+.B -lowspeedlimit
+Pass the speed in bytes per second that the transfer should be below during
+.B lowspeedtime
+seconds for the extension to consider it too slow and abort.
+
+.TP
+.B -lowspeedtime
+Pass the time in seconds that the transfer should be below the
+.B lowspeedlimit
+for the extension to consider it too slow and abort.
+
+.TP
+.B -maxsendspeed
+Pass a speed in bytes per seconds. If an upload exceeds this speed on cumulative
+average during the transfer, the transfer will pause to keep the average rate less
+than or equal to the parameter value.  Defaults to unlimited speed.
+
+.TP
+.B -maxrecvspeed
+Pass a speed in bytes per second. If a download exceeds this speed on cumulative
+average during the transfer, the transfer will pause to keep the average rate less
+than or equal to the parameter value. Defaults to unlimited speed.
+
+.TP
+.B -maxconnects
+Sets the persistant connection cache size in all the protocols that support 
+persistent conecctions. The set amount will be the maximum amount of simultaneous
+connections that TclCurl may cache in this easy handle. Default is 5, and there
+isn't much point in changing this value unless you are perfectly aware of how this
+work and changes TclCurl's behaviour.
+
+When reaching the maximum limit, TclCurl closes the oldest connection in the cache
+to prevent the number of open connections to increase. 
+
+\fBNote\fP: if you have already performed transfers with this curl handle,
+setting a smaller
+.B maxconnects
+than before may cause open connections to unnecessarily get closed.
+
+\fBNote\fP that if you add this easy handle to a multi handle, this setting is not
+being acknowledged, instead you must configure the multi handle its own
+\fBmaxconnects\fP option.
+
+.TP
+.B -connecttimeout
+Maximum time in seconds that you allow the
+connection to the server to take.  This only limits the connection phase, once
+it has connected, this option is of no more use. Set to zero to disable
+connection timeout (it will then only timeout on the internal timeouts).
+
+In unix-like systems, this might cause signals to be used unless
+\fB-nosignal\fP is set.
+
+.TP
+.B -connecttimeoutms
+Like \fBconnecttimeout\fP but takes a number of milliseconds instead. If libcurl
+is built to use the standard system name resolver, that part will still use
+full-second resolution for timeouts.
+
+.TP
+.B -ipresolve
+Allows an application to select what kind of IP addresses to use when
+resolving host names. This is only interesting when using host names
+that resolve addresses using more than one version of IP. The allowed
+values are:
+.RS
+.TP 5
+.B whatever
+Default, resolves addresses to all IP versions that your system allows.
+.TP
+.B v4
+Resolve to ipv4 addresses.
+.TP
+.B v6
+Resolve to ipv6 addresses.
+.RE
+
+.SH SSL and security options
+
+.TP
+.B -sslcert
+Pass a string as parameter. The string should be the file name of your certificate.
+The default format is "PEM" and can be changed with \fB-sslcerttype\fP.
+
+With NSS this is the nickname of the certificate you wish to authenticate with.
+
+.TP
+.B -sslcerttype
+Pass a string as parameter. The string should be the format of your certificate.
+Supported formats are "PEM" and "DER".
+
+.TP
+.B -sslkey
+Pass a pointer to a zero terminated string as parameter. The string should be
+the file name of your private key. The default format is "PEM" and can be
+changed with \fB-sslkeytype\fP.
+
+.TP
+.B -sslkeytype
+Pass a pointer to a zero terminated string as parameter. The string should be
+the format of your private key. Supported formats are "PEM", "DER" and "ENG"
+
+\fBNOTE:\fPThe format "ENG" enables you to load the private key from a crypto
+engine. in this case \fB-sslkey\fP is used as an identifier passed to
+the engine. You have to set the crypto engine with \fB-sslengine\fP. The "DER"
+format key file currently does not work because of a bug in OpenSSL.
+
+.TP
+.B -keypasswd
+Pass a string as parameter. It will be used as the password required to use the
+\fB-sslkey\fP or \fB-sshprivatekeyfile\fP private key.
+
+You never need a pass phrase to load a certificate but you need one to load you
+private key. 
+
+This option used to be known as \fB-sslkeypasswd\fP and \fB-sslcertpasswd\fP.
+
+.TP
+.B -sslengine
+Pass a string as parameter. It will be used as the identifier for the crypto
+engine you want to use for your private key.
+
+\fBNOTE:\fPIf the crypto device cannot be loaded, an error will be returned.
+
+.TP
+.B -sslenginedefault
+Pass a 1 to set the actual crypto engine as the default for (asymmetric) crypto operations.
+
+\fBNOTE:\fPIf the crypto device cannot be set, an error will be returned.
+
+.TP
+.B -sslversion
+Use it to set what version of SSL/TLS to use. The available options are: 
+.RS
+.TP 5
+.B default
+The default action. This will attempt to figure out the remote SSL protocol version,
+i.e. either SSLv3 or TLSv1 (but not SSLv2, which became disabled by default with 7.18.1). 
+.TP
+.B tlsv1
+Force TLSv1
+.TP
+.B sslv2
+Force SSLv2
+.TP
+.B sslv3
+Force SSLv3
+.RE
+
+.TP
+.B -sslverifypeer
+This option determines whether TclCurl verifies the authenticity of the peer's certificate.
+A 1 means it verifies; zero means it doesn't. The default is 1. 
+
+When negotiating an SSL connection, the server sends a certificate indicating its identity.
+TclCurl verifies whether the certificate is authentic, i.e. that you can trust that the
+server is who the certificate says it is. This trust is based on a chain of digital signatures,
+rooted in certification authority (CA) certificates you supply.
+
+TclCurl uses a default bundle of CA certificates that comes with libcurl but you can specify
+alternate certificates with the \fB-cainfo\fP or the \fB-capath\fP options.
+
+When \fB-sslverifypeer\fP is nonzero, and the verification fails to prove that the certificate
+is authentic, the connection fails. When the option is zero, the connection succeeds regardless. 
+
+Authenticating the certificate is not by itself very useful. You typically want to ensure
+that the server, as authentically identified by its certificate, is the server you mean to
+be talking to, use \fB-sslverifyhost\fP to control that.
+
+.TP
+.B -cainfo
+Pass a file naming holding the certificate to verify the peer with. This only
+makes sense when used in combination with the \fB-sslverifypeer\fP option, if
+it is set to zero \fB-cainfo\fP need not even indicate an accessible file.
+
+When built against NSS this is the directory that the NSS certificate database
+resides in.
+
+.TP
+.B -issuercert
+Pass a string naming a file holding a CA certificate in PEM format. If the option
+is set, an additional check against the peer certificate is performed to verify
+the issuer is indeed the one associated with the certificate provided by the option.
+This additional check is useful in multi-level PKI where one need to enforce the peer
+certificate is from a specific branch of the tree.
+This option makes sense only when used in combination with the \fB-sslverifypeer\fP
+option. Otherwise, the result of the check is not considered as failure.
+
+.TP
+.B -capath
+Pass the directory holding multiple CA certificates to verify the peer with.
+The certificate directory must be prepared using the openssl c_rehash utility.
+This only makes sense when used in combination with the  \fB-sslverifypeer\fP
+option, if it is set to zero, \fB-capath\fP need not even indicate an accessible
+path.
+
+This option apparently does not work in Windows due to some limitation in openssl.
+
+This option is OpenSSL-specific and does nothing if libcurl is built to use GnuTLS.
+
+.TP
+.B -crlfile
+Pass a string naming a file with the concatenation of CRL (in PEM format) to use in
+the certificate validation that occurs during the SSL exchange.
+When libcurl is built to use NSS or GnuTLS, there is no way to influence the use of
+CRL passed to help in the verification process. When built with OpenSSL support,
+X509_V_FLAG_CRL_CHECK and X509_V_FLAG_CRL_CHECK_ALL are both set, requiring CRL
+check against all the elements of the certificate chain if a CRL file is passed.
+This option makes sense only when used in combination with the \fB-sslverifypeer\fP
+option. 
+
+.TP
+.B -randomfile
+Pass a file name. The file will be used to read from to seed the random engine
+for SSL. The more random the specified file is, the more secure will the SSL
+connection become.
+
+.TP
+.B -egdsocket
+Pass a path name to the Entropy Gathering Daemon socket. It will be used to seed
+the random engine for SSL.
+
+.TP
+.B -sslverifyhost
+This option determines whether TclCurl verifies that the server claims to be
+who you want it to be.
+
+When negotiating an SSL connection, the server sends a certificate
+indicating its identity.
+
+When \fB-sslverifyhost\fP is set to 2, that certificate must indicate
+that the server is the server to which you meant to connect, or the
+connection fails.
+
+TclCurl considers the server the intended one when the Common Name field
+or a Subject Alternate Name field in the certificate matches the host
+name in the URL to which you told Curl to connect.
+
+When set to 1, the certificate must contain a Common Name field,
+but it does not matter what name it says. (This is not ordinarily a
+useful setting).
+
+When the value is 0, the connection succeeds regardless of the names in
+the certificate.
+
+The default is 2.
+
+This option controls the identity that the server \fIclaims\fP. The server
+could be lying. To control lying, see \fBsslverifypeer\fP.
+
+.TP
+.B -sslcypherlist
+Pass a string holding the ciphers to use for the SSL connection. The list must
+consists of one or more cipher strings separated by colons. Commas or spaces
+are also acceptable separators but colons are normally used, , - and + can be
+used as operators. 
+
+For OpenSSL and GnuTLS valid examples of cipher lists include 'RC4-SHA', 'SHA1+DES',
+'TLSv1' and 'DEFAULT'. The default list is normally set when you compile OpenSSL.
+
+You will find more details about cipher lists on this URL:
+    http://www.openssl.org/docs/apps/ciphers.html
+
+For NSS valid examples of cipher lists include 'rsa_rc4_128_md5', 'rsa_aes_128_sha',
+etc. With NSS you don't add/remove ciphers. If you use this option then all known
+ciphers are disabled and only those passed in are enabled.
+You'll find more details about the NSS cipher lists on this URL:
+    http://directory.fedora.redhat.com/docs/mod_nss.html
+
+.TP
+.B -sslsessionidcache
+Pass a 0 to disable TclCurl's use of SSL session-ID caching or a 1 to enable it.
+By default all transfers are done using the cache. Note that while nothing ever
+should get hurt by attempting to reuse SSL session-IDs, there seem to be broken SSL
+implementations in the wild that may require you to disable this in order for you to
+succeed.
+
+.TP
+.B -krblevel
+Set the kerberos security level for FTP, this also enables kerberos awareness.
+This is a string, 'clear', 'safe', 'confidential' or 'private'. If the string
+is set but does not match one of these, 'private' will be used. Set the string
+to NULL to disable kerberos4. Set the string to "" to disable kerberos
+support for FTP.
+
+.SH SSH options
+
+.TP
+.B -sshauthtypes
+The allowed types are:
+
+.RS
+.TP 5
+.B publickey
+.TP
+.B password
+.TP
+.B host
+.TP
+.B keyboard
+.TP
+.B any
+To let TclCurl pick one
+.RE
+
+.TP
+.B -sshhostpublickeymd5
+Pass a string containing 32 hexadecimal digits. The string should be the 128
+bit MD5 cheksum of the remote host public key, and TclCurl will reject the
+connection to the host unless the md5sums match. This option is only for SCP
+and SFTP transfers.
+
+.TP
+.B -publickeyfile
+Pass the file name for your public key. If not used, TclCurl defaults to using \fB~/.ssh/id_dsa.pub\fP.
+
+.TP
+.B -privatekeyfile
+Pass the file name for your private key. If not used, TclCurl defaults to using \fB~/.ssh/id_dsa\fP.
+If the file is password-protected, set the password with \fB-keypasswd\fP.
+
+.SH Other options
+
+.TP
+.B -headervar
+Name of the Tcl array variable where TclCurl will store the headers returned
+by the server.
+
+When a server sends a chunked encoded transfer, it may contain a
+trailer. That trailer is identical to a HTTP header and if such a trailer is
+received it is passed to the application using this callback as well. There
+are several ways to detect it being a trailer and not an ordinary header: 1)
+it comes after the response-body. 2) it comes after the final header line (CR
+LF) 3) a Trailer: header among the response-headers mention what header to
+expect in the trailer.
+
+.TP
+.B -bodyvar
+Name of the Tcl variable where TclCurl will store the file requested, the file
+may contain text or binary data.
+
+.TP
+.B -canceltransvar
+Name of a Tcl variable, in case you have defined a procedure to call with
+\fB-progressproc\fP setting this variable to '1' will cancel the transfer.
+
+.TP
+.B -command
+Executes the given command after the transfer is done, since it only works
+with blocking transfers, it is pretty much useless.
+
+.TP
+.B -share
+Pass a share handle as a parameter. The share handle must have been created by
+a previous call to \fBcurl::shareinit\fP. Setting this option, will make this
+handle use the data from the shared handle instead of keeping the data to itself.
+See \fItclcurl_share\fP for details.
+
+.TP
+.B -newfileperms
+Pass a number as a parameter, containing the value of the permissions that will
+be assigned to newly created files on the remote server. The default value is 0644,
+but any valid value can be used. The only protocols that can use this are sftp://,
+scp:// and file://.
+
+.TP
+.B -newdirectoryperms
+Pass a number as a parameter, containing the value of the permissions that will be
+assigned to newly created directories on the remote server. The default value is 0755,
+but any valid value can be used. The only protocols that can use this are sftp://, scp://
+and file://.
+
+.SH NOT SUPPORTED
+Some of the options libcurl offers are not supported, I don't think them
+worth supporting in TclCurl but if you need one of them don't forget to
+complain:
+.sp
+.B CURLOPT_FRESH_CONNECT, CURLOPT_FORBID_REUSE, CURLOPT_PRIVATE,
+.B CURLOPT_SSL_CTX_FUNCTION, CURLOPT_SSL_CTX_DATA, CURLOPT_SSL_CTX_FUNCTION and
+.B CURLOPT_CONNECT_ONLY, CURLOPT_OPENSOCKETFUNCTION, CURLOPT_OPENSOCKETDATA.
+
+.SH curlHandle perform
+This procedure is called after the
+.B init
+and all the
+.B configure
+calls are made, and will perform the transfer as described in the options.
+.sp
+It must be called with the same
+\fIcurlHandle\fP \fBcurl::init\fP call returned.
+You can do any amount of calls to perform while using the same handle. If you
+intend to transfer more than one file, you are even encouraged to do
+so. TclCurl will then attempt to re-use the same connection for the following
+transfers, thus making the operations faster, less CPU intense and using less
+network resources. Just note that you will have to use
+.I configure
+between the invokes to set options for the following perform.
+.sp
+You must never call this procedure simultaneously from two places using the
+same handle. Let it return first before invoking it another time. If
+you want parallel transfers, you must use several curl handles.
+.TP
+.B RETURN VALUE
+'0' if all went well, non-zero if it didn't. In case of error, if the
+.I errorbuffer
+was set with
+.I configure
+there will be a readable error message.
+The error codes are:
+.IP 1
+Unsupported protocol. This build of TclCurl has no support for this protocol.
+.IP 2
+Very early initialization code failed. This is likely to be and internal error
+or problem.
+.IP 3
+URL malformat. The syntax was not correct.
+.IP 5
+Couldn't resolve proxy. The given proxy host could not be resolved.
+.IP 6
+Couldn't resolve host. The given remote host was not resolved.
+.IP 7
+Failed to connect to host or proxy.
+.IP 8
+FTP weird server reply. The server sent data TclCurl couldn't parse.
+The given remote server is probably not an OK FTP server.
+.IP 9
+We were denied access to the resource given in the URL. For FTP, this occurs
+while trying to change to the remote directory.
+.IP 11
+FTP weird PASS reply. TclCurl couldn't parse the reply sent to the PASS request.
+.IP 13
+FTP weird PASV reply, TclCurl couldn't parse the reply sent to the PASV or EPSV
+request.
+.IP 14
+FTP weird 227 format. TclCurl couldn't parse the 227-line the server sent.
+.IP 15
+FTP can't get host. Couldn't resolve the host IP we got in the 227-line.
+.IP 17
+FTP couldn't set type. Couldn't change transfer method to either binary or
+ascii.
+.IP 18
+Partial file. Only a part of the file was transfered, this happens when
+the server first reports an expected transfer size and then delivers data
+that doesn't match the given size.
+.IP 19
+FTP couldn't RETR file, we either got a weird reply to a 'RETR' command or
+a zero byte transfer.
+.IP 21
+Quote error. A custom 'QUOTE' returned error code 400 or higher (for FTP) or
+otherwise indicated unsuccessful completion of the command.
+.IP 22
+HTTP returned error. This return code only appears if \fB-failonerror\fP is
+used and the HTTP server returns an error code that is 400 or higher.
+.IP 23
+Write error. TclCurl couldn't write data to a local filesystem or an error
+was returned from a write callback.
+.IP 25
+Failed upload failed. For FTP, the server typcially denied the STOR
+command. The error buffer usually contains the server's explanation to this.
+.IP 26
+Read error. There was a problem reading from a local file or an error was returned
+from the read callback.
+.IP 27
+Out of memory. A memory allocation request failed. This should never happen unless
+something weird is going on in your computer.
+.IP 28
+Operation timeout. The specified time-out period was reached according to the
+conditions.
+.IP 30
+The FTP PORT command failed, not all FTP servers support the PORT command,
+try  doing a transfer using PASV instead!.
+.IP 31
+FTP couldn't use REST. This command is used for resumed FTP transfers.
+.IP 33
+Range error. The server doesn't support or accept range requests.
+.IP 34
+HTTP post error. Internal post-request generation error.
+.IP 35
+SSL connect error. The SSL handshaking failed, the error buffer may have
+a clue to the reason, could be certificates, passwords, ...
+.IP 36
+FTP bad download resume. Couldn't continue an earlier aborted download, probably
+because you are trying to resume beyond the file size.
+.IP 37
+A file given with FILE:// couldn't be read. Did you checked the permissions?
+.IP 38
+LDAP cannot bind. LDAP bind operation failed.
+.IP 39
+LDAP search failed.
+.IP 41
+A required zlib function was not found.
+.IP 42
+Aborted by callback. An application told TclCurl to abort the operation.
+.IP 43
+Internal error. A function was called with a bad parameter.
+.IP 45
+Interface error. A specified outgoing interface could not be used.
+.IP 47
+Too many redirects. When following redirects, TclCurl hit the maximum amount, set
+your limit with --maxredirs
+.IP 48
+Unknown TELNET option specified.
+.IP 49
+A telnet option string was illegally formatted.
+.IP 51
+The remote peer's SSL certificate or SSH md5 fingerprint wasn't ok
+.IP 52
+The server didn't reply anything, which here is considered an error.
+.IP 53
+The specified crypto engine wasn't found.
+.IP 54
+Failed setting the selected SSL crypto engine as default!
+.IP 55
+Failed sending network data.
+.IP 56
+Failure with receiving network data.
+.IP 58
+Problem with the local client certificate.
+.IP 59
+Couldn't use specified SSL cipher.
+.IP 60
+Peer certificate cannot be authenticated with known CA certificates.
+.IP 61
+Unrecognized transfer encoding.
+.IP 62
+Invalid LDAP URL.
+.IP 63
+Maximum file size exceeded.
+.IP 64
+SSL use failed.
+.IP 65
+Sending the data requires a rewind that failed, since TclCurl should
+take care of it for you, it means you found a bug.
+.IP 66
+Failed to initialise ssl engine.
+.IP 67
+Failed to login, user password or similar was not accepted.
+.IP 68
+File not found on TFTP server.
+.IP 69
+There is a permission problem with the TFTP request.
+.IP 70
+The remote server has run out of space.
+.IP 71
+Illegal TFTP operation.
+.IP 72
+Unknown transfer ID.
+.IP 73
+TFTP file already exists and will not be overwritten.
+.IP 74
+No such user in the TFTP server and good behaving TFTP server
+should never return this.
+.IP 75
+Character conversion failed.
+.IP 77
+Problem with reading the SSL CA cert (path? access rights?).
+.IP 78
+Remote file not found
+.IP 79
+Error from the SSH layer
+.IP 80
+Failed to shut down the SSL connection
+.IP 82
+Failed to load CRL file
+.IP 83
+Issuer check failed
+
+.SH curlHandle getinfo option
+Request internal information from the curl session with this procedure.
+This procedure is intended to get used *AFTER* a performed transfer,
+and can be relied upon only if the \fBperform\fP returns 0.  Use
+this function AFTER a performed transfer if you want to get
+transfer-oriented data.
+
+The following information can be extracted:
+
+.TP
+.B effectiveurl
+Returns the last used effective URL.
+
+.TP
+.B responsecode
+Returns the last received HTTP or FTP code. This will be zero if no server
+response code has been received. Note that a proxy's CONNECT response should
+be read with \fBhttpconnectcode\fP and not this.
+
+.TP
+.B httpconnectcode
+Returns the last received proxy response code to a CONNECT request.
+
+.TP
+.B filetime
+Returns the remote time of the retrieved document (in number of seconds
+since 1 jan 1970 in the GMT/UTC time zone). If you get -1,
+it can be because of many reasons (unknown, the server hides it or the
+server doesn't support the command that tells document time etc) and the time
+of the document is unknown.
+.sp
+In order for this to work you have to set the \fB-filetime\fP option before
+the transfer.
+
+.TP
+.B namelookuptime
+Returns the time, in seconds, it took from the start until the name resolving
+was completed.
+
+.TP
+.B connecttime
+Returns the time, in seconds, it took from the start until the connect to the
+remote host (or proxy) was completed.
+
+.TP
+.B appconnecttime
+Returns the time, in seconds, it took from the start until the SSL/SSH
+connect/handshake to the remote host was completed. This time is most often very
+near to the PRETRANSFER time, except for cases such as HTTP pippelining where the
+pretransfer time can be delayed due to waits in line for the pipeline and more.
+
+.TP
+.B pretransfertime
+Returns the time, in seconds, it took from the start until the file transfer
+is just about to begin. This includes all pre-transfer commands and
+negotiations that are specific to the particular protocol(s) involved.
+
+.TP
+.B starttransfertime
+Returns the time, in seconds, it took from the start until the first byte
+is just about to be transfered. This includes the \fBpretransfertime\fP,
+and also the time the server needs to calculate the result.
+
+.TP
+.B totaltime
+Returns the total transaction time, in seconds, for the previous transfer,
+including name resolving, TCP connect etc.
+
+.TP
+.B redirecturl
+Returns the URL a redirect would take you to if you enable \fBfollowlocation\fP.
+This can come very handy if you think using the built-in libcurl redirect logic
+isn't good enough for you but you would still prefer to avoid implementing all
+the magic of figuring out the new URL.
+
+.TP
+.B redirecttime
+Returns the total time, in seconds, it took for all redirection steps
+including name lookup, connect, pretransfer and transfer before
+the final transaction was started, it returns the complete execution
+time for multiple redirections, so it returns zero if no redirections
+were needed.
+
+.TP
+.B redirectcount
+Returns the total number of redirections that were actually followed.
+
+.TP
+.B numconnects
+Returns how many new connections TclCurl had to create to achieve the
+previous transfer (only the successful connects are counted). Combined
+with \fBredirectcount\fP you are able to know how many times TclCurl
+successfully reused existing connection(s) or not. See the Connection
+Options of \fBsetopt\fP to see how TclCurl tries to make persistent
+connections to save time.
+
+.TP
+.B primaryip
+Returns the IP address of the most recent connection done with this handle.
+This string may be IPv6 if that's enabled.
+
+.TP
+.B sizeupload
+Returns the total amount of bytes that were uploaded.
+
+.TP
+.B sizedownload
+Returns the total amount of bytes that were downloaded. The amount is only
+for the latest transfer and will be reset again for each new transfer.
+
+.TP
+.B speeddownload
+Returns the average download speed, measured in bytes/second, for the complete download.
+
+.TP
+.B speedupload
+Returns the average upload speed, measured in bytes/second, for the complete upload.
+
+.TP
+.B headersize
+Returns the total size in bytes of all the headers received.
+
+.TP
+.B requestsize
+Returns the total size of the issued requests. This is so far only for HTTP
+requests. Note that this may be more than one request if followLocation is true.
+
+.TP
+.B sslverifyresult
+Returns the result of the certification verification that was requested
+(using the -sslverifypeer option to configure).
+
+.TP
+.B sslengines
+Returns a \fBlist\fP of the OpenSSL crypto-engines supported. Note that engines are
+normally implemented in separate dynamic libraries. Hence not all the returned
+engines may be available at run-time.
+
+.TP
+.B contentlengthdownload
+Returns the content-length of the download. This is the value read from the
+.B Content-Length:
+field.
+
+.TP
+.B contentlengthupload
+Returns the specified size of the upload.
+
+.TP
+.B contenttype
+Returns the content-type of the downloaded object. This is the value
+read from the Content-Type: field. If you get an empty string, it  means
+the server didn't send a valid Content-Type header or that the protocol
+used doesn't support this.
+
+.TP
+.B httpauthavail
+Returns a list with the authentication method(s) available.
+
+.TP
+.B proxyauthavail
+Returns a list with the authentication method(s) available for your
+proxy athentication.
+
+.TP
+.B oserrno
+Returns the errno value from a connect failure.
+
+.TP
+.B cookielist
+Returns a list of all cookies TclCurl knows (expired ones, too). If there
+are no cookies (cookies for the handle have not been enabled or simply
+none have been received) the list will be empty.
+
+.TP
+.B ftpentrypath 
+Returns a string holding the path of the entry path. That is the initial path
+TclCurl ended up in when logging on to the remote FTP server. Returns an empty
+string if something is wrong.
+
+.SH curlHandle cleanup
+This procedure must be the last one to call for a curl session. It is the
+opposite of the
+.I curl::init
+procedure and must be called with the same
+.I curlhandle
+as input as the curl::init call returned.
+This will effectively close all connections TclCurl has used and possibly
+has kept open until now. Don't call this procedure if you intend to transfer
+more files.
+
+.SH curlHandle reset
+
+Re-initializes all options previously set on a specified handle to the
+default values.
+
+This puts back the handle to the same state as it was in when it was just
+created with curl::init.
+
+It does not change the following information kept in the handle: live
+connections, the Session ID cache, the DNS cache, the cookies and shares.
+
+.SH curlHandle duphandle
+This procedure will return a new curl handle, a duplicate,
+using all the options previously set in the input curl handle.
+Both handles can subsequently be used independently and
+they must both be freed with
+.B cleanup.
+The new handle will not inherit any state information,
+connections, SSL sessions or cookies.
+.TP
+.B RETURN VALUE
+A new curl handle or an error message if the copy fails.
+
+.SH curlHandle pause
+You can use this command from within a progress callback procedure
+to pause the transfer.
+
+.SH curlHandle resume
+Resumes a transfer paused with \fBcurlhandle pause\fP
+
+.SH curl::transfer
+In case you do not want to use persistant connections you can use this
+command, it takes the same arguments as the \fIcurlHandle\fP \fBconfigure\fP
+and will init, configure, perform and cleanup a connection for you.
+
+You can also get the \fIgetinfo\fP information by using \fI-infooption variable\fP
+pairs, after the transfer \fIvariable\fP will contain the value that would have
+been returned by \fI$curlHandle getinfo option\fP.
+.TP
+.B RETURN VALUE
+The same error code \fBperform\fP would return.
+
+.SH curl::version
+Returns a string with the version number of tclcurl, libcurl and some of
+its important components (like OpenSSL version).
+.TP
+.B RETURN VALUE
+The string with the version info.
+
+.SH curl::escape url
+This procedure will convert the given input string to an URL encoded string and
+return that. All input characters that are not a-z,
+A-Z or 0-9 will be converted to their "URL escaped" version (%NN where NN is a
+two-digit hexadecimal number)
+.TP
+.B RETURN VALUE
+The converted string.
+.SH curl::unescape url
+This procedure will convert the given URL encoded input string to a "plain
+string" and return that. All input characters that
+are URL encoded (%XX where XX is a two-digit hexadecimal number) will be
+converted to their plain text versions.
+.TP
+.B RETURN VALUE
+The string unencoded.
+
+.SH curl::curlConfig option
+Returns some information about how you have
+.B cURL
+installed.
+
+.TP
+.B -prefix
+Returns the directory root where you installed
+.B cURL
+.TP
+.B -feature
+Returns a list containing particular main features the installed
+.B libcurl
+was built with. The list may include SSL, KRB4 or IPv6, do not
+assume any particular order.
+.TP
+.B -vernum
+Outputs  version  information  about  the installed libcurl, in
+numerical mode.  This outputs the  version  number,  in hexadecimal,
+with 8 bits for each part; major, minor, patch. So  that  libcurl
+7.7.4 would appear as 070704 and libcurl 12.13.14 would appear as
+0c0d0e...
+
+.SH curl::versioninfo option
+Returns information about various run-time features in TclCurl.
+
+Applications should use this information to judge if things are possible to do
+or not, instead of using compile-time checks, as dynamic/DLL libraries can be
+changed independent of applications.
+
+.TP
+.B -version
+Returns the version of libcurl we are using.
+
+.TP
+.B -versionnum
+Retuns the version of libcurl we are using in hexadecimal with 8 bits for each
+part; major, minor, patch. So  that  libcurl 7.7.4 would appear as 070704 and
+libcurl 12.13.14 would appear as 0c0d0e... Note that the initial zero might be
+omitted.
+
+.TP
+.B -host
+Returns a string with the host information as discovered by a configure
+script or set by the build environment.
+
+.TP
+.B -features
+Returns a list with the features compiled into libcurl, the possible elements are:
+.RS
+.TP 5
+.B ASYNCHDNS
+Libcurl was built with support for asynchronous name lookups, which allows
+more exact timeouts (even on Windows) and less blocking when using the multi
+interface.
+.TP
+.B CONV
+Libcurl was built with support for character conversions.
+.TP
+.B DEBUG
+Libcurl was built with extra debug capabilities built-in. This is mainly of
+interest for libcurl hackers. 
+.TP
+.B GSSNEGOTIATE
+Supports HTTP GSS-Negotiate.
+.TP
+.B IDN
+Supports IDNA, domain names with international letters.
+.TP
+.B IPV6
+Supports IPv6.
+.TP
+.B KERBEROS4
+Supports kerberos4 (when using FTP).
+.TP
+.B LARGEFILE
+Libcurl was built with support for large files.
+.TP
+.B LIBZ
+Supports HTTP deflate using libz.
+.TP
+.B NTML
+Supports HTTP NTLM
+.TP
+.B SPNEGO
+Libcurl was built with support for SPNEGO authentication (Simple and Protected
+GSS-API Negotiation Mechanism, defined in RFC 2478)
+.TP
+.B SSL
+Supports SSL (HTTPS/FTPS)
+.TP
+.B SSPI
+Libcurl was built with support for SSPI. This is only available on Windows and
+makes libcurl use Windows-provided functions for NTLM authentication. It also
+allows libcurl to use the current user and the current user's password without
+the app having to pass them on.
+.RE
+Do not assume any particular order.
+
+.TP
+.B -sslversion
+Returns a string with the OpenSSL version used, like OpenSSL/0.9.6b.
+
+.TP
+.B -sslversionnum
+Returns the numerical OpenSSL version value as defined by the OpenSSL project.
+If libcurl has no SSL support, this is 0.
+
+.TP
+.B -libzversion
+Returns a string, there is no numerical  version, for example: 1.1.3.
+
+.TP
+.B -protocols
+Lists what particular protocols the installed TclCurl was built to support.
+At the time of writing, this list may include HTTP, HTTPS, FTP, FTPS,
+FILE, TELNET, LDAP, DICT. Do not assume any particular order. The protocols
+will be listed using uppercase. There may be none, one or several protocols
+in the list.
+
+.SH curl::easystrerror errorCode
+This procedure returns a string describing the error code passed in the argument.
+
+.SH "SEE ALSO"
+.I curl, The art of HTTP scripting (at http://curl.haxx.se), RFC 2396,
diff --git a/doc/SinComprimir/tclcurl_multi.n b/doc/SinComprimir/tclcurl_multi.n
new file mode 100644 (file)
index 0000000..933d00d
--- /dev/null
@@ -0,0 +1,226 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" Adapted from libcurl docs by fandom@telefonica.net
+.TH TclCurl n "8 September 2008" "TclCurl 7.19.0" "TclCurl Multi Interface"
+.SH NAME
+TclCurl: - get  a  URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE or LDAP syntax.
+.SH SYNOPSIS
+.BI "curl::multiinit"
+.sp
+.IB multiHandle " addhandle"
+.sp
+.IB multiHandle " removehandle"
+.sp
+.IB multiHandle " configure"
+.sp
+.IB multiHandle " perform"
+.sp
+.IB multiHandle " active"
+.sp
+.IB multiHandle " getinfo "
+.sp
+.IB multihandle " cleanup"
+.sp
+.IB multihandle " auto"
+.sp
+.BI "curl::multistrerror " errorCode
+.sp
+.SH DESCRIPTION
+TclCurl's multi interface introduces several new abilities that the easy
+interface refuses to offer. They are mainly:
+.TP
+Enable a "pull" interface. The application that uses TclCurl decides where and when to get/send data.
+.TP
+Enable multiple simultaneous transfers in the same thread without making it complicated for the application.
+.TP
+Keep Tk GUIs 'alive' while transfers are taking place.
+
+.SH Blocking
+A few areas in the code are still using blocking code, even when used from the
+multi interface. While we certainly want and intend for these to get fixed in
+the future, you should be aware of the following current restrictions:
+.RS
+.TP 5
+.B Name resolves on non-windows unless c-ares is used.
+.TP
+.B GnuTLS SSL connections.
+.TP
+.B Active FTP connections.
+.TP
+.B HTTP proxy CONNECT operations.
+.TP
+.B TFTP transfers
+.TP
+.B file:// transfers.
+.RE
+
+.SH curl::multiinit
+This procedure must be the first one to call, it returns a \fImultiHandle\fP
+that you need to use to invoke TclCurl procedures. The init MUST have a
+corresponding call to \fIcleanup\fP when the operation is completed.
+.sp
+.B RETURN VALUE
+.sp
+.I multiHandle
+to use.
+.sp
+.SH multiHandle addhandle ?easyHandle?
+.sp
+Each single transfer is built up with an 'easy' handle, the kind we have been
+using so far with TclCurl, you must create them and setup the appropriate
+options for each of them. Then we add them to the 'multi stack' using the
+\fIaddhandle\fP command.
+
+If the easy handle is not set to use a shared or global DNS cache, it will be made
+to use the DNS cache that is shared between all easy handles within the multi handle.
+
+When an easy handle has been added to a multi stack, you can not and you must not use
+\fIperform\fP on that handle!
+
+.sp
+.I "multiHandle"
+is the return code from the \fIcurl::multiinit\fP call.
+.sp
+.B RETURN VALUE
+The possible return values are:
+.IP -1
+Handle added to the multi stack, please call
+.I perform
+soon
+.IP 0
+Handle added ok.
+.IP 1
+Invalid multi handle.
+.IP 2
+Invalid 'easy' handle. It could mean that it isn't an easy handle at all, or possibly that
+the handle already is in used by this or another multi handle. 
+.IP 3
+Out of memory, you should never get this.
+.IP 4
+You found a bug in TclCurl.
+.sp
+.SH multiHandle removehandle ?easyHandle?
+.sp
+When a transfer is done or if we want to stop a transfer before it is completed,
+we can use the \fIremovehandle\fP command. Once removed from the multi handle,
+we can again use other easy interface functions on it.
+
+Please note that when a single transfer is completed, the easy handle is still
+left added to the multi stack. You need to remove it and then close or, possibly,
+set new options to it and add it again to the multi handle to start another transfer.
+
+.sp
+.B RETURN VALUE
+The possible return values are:
+.IP 0
+Handle removed ok.
+.IP 1
+Invalid multi handle.
+.IP 2
+Invalid 'easy' handle.
+.IP 3
+Out of memory, you should never get this.
+.IP 4
+You found a bug in TclCurl.
+.sp
+.SH multiHandle configure
+So far the only option is:
+.TP
+.B -pipelining
+Pass a 1 to enable or 0 to disable. Enabling pipelining on a multi handle will
+make it attempt to perform HTTP Pipelining as far as possible for transfers using
+this handle. This means that if you add a second request that can use an already
+existing connection, the second request will be "piped" on the same connection
+rather than being executed in parallel.
+.TP
+.B -maxconnects
+Pass a number which will be used as the maximum amount of simultaneously open
+connections that TclCurl may cache. Default is 10, and TclCurl will enlarge
+the size for each added easy handle to make it fit 4 times the number of added
+easy handles.
+
+By setting this option, you can prevent the cache size to grow beyond the limit
+set by you. When the cache is full, curl closes the oldest one in the cache to
+prevent the number of open connections to increase.
+
+This option is for the multi handle's use only, when using the easy interface you should instead use it's own \fBmaxconnects\fP option.
+.sp
+.SH multiHandle perform
+Adding the easy handles to the multi stack does not start any transfer.
+Remember that one of the main ideas with this interface is to let your
+application drive. You drive the transfers by invoking
+.I perform.
+TclCurl will then transfer data if there is anything available to transfer.
+It'll use the callbacks and everything else we have setup in the individual
+easy handles. It'll transfer data on all current transfers in the multi stack
+that are ready to transfer anything. It may be all, it may be none.
+
+When you call \fBperform\fP and the amount of Irunning handles is
+changed from the previous call (or is less than the amount of easy handles
+you added to the multi handle), you know that there is one or more
+transfers less "running". You can then call \fIgetinfo\fP to
+get information about each individual completed transfer.
+.sp
+.B RETURN VALUE
+If everything goes well, it returns the number of running handles, '0' if all
+are done. In case of error, it will return the error code.
+.sp
+.SH multiHandle active
+In order to know if any of the easy handles are ready to transfer data before
+invoking
+.I perform
+you can use the
+.I active
+command, it will return the number of transfers currently active.
+.sp
+.B RETURN VALUE
+The number of active transfers or '-1' in case of error.
+
+.SH multiHandle getinfo
+This procedure returns very simple information about the transfers, you
+can get more detail information using the \fIgetinfo\fP
+command on each of the easy handles.
+
+.sp
+.B RETURN VALUE
+A list with the following elements:
+.TP
+easyHandle about which the info is about.
+.TP
+state of the transfer, '1' if it is done.
+.TP
+exit code of the transfer, '0' if there was no error,...
+.TP
+Number of messages still in the info queue.
+.TP
+In case there are no messages in the queue it will return {"" 0 0 0}.
+
+.SH multiHandle cleanup
+This procedure must be the last one to call for a multi stack, it is the opposite of the
+.I curl::multiinit
+procedure and must be called with the same
+.I multiHandle
+as input as the
+.B curl::multiinit
+call returned.
+
+.SH multiHandle auto ?-command \fIcommand\fP?
+Using this command Tcl's event loop will take care of periodically invoking \fBperform\fP
+for you, before using it, you must have already added at least one easy handle to
+the multi handle.
+
+The \fBcommand\fP option allows you to specify a command to invoke after all the easy
+handles have finished their transfers, even though I say it is an option, the truth is
+you must use this command to cleanup all the handles, otherwise the transfered files
+may not be complete.
+
+This support is still in a very experimental state, it may still change without warning.
+Any and all comments are welcome.
+
+You can find a couple of examples at \fBtests/multi\fP.
+
+.SH curl::multistrerror errorCode
+This procedure returns a string describing the error code passed in the argument.
+
+.SH "SEE ALSO"
+.I tclcurl, curl.
diff --git a/doc/SinComprimir/tclcurl_share.n b/doc/SinComprimir/tclcurl_share.n
new file mode 100644 (file)
index 0000000..5bedf8b
--- /dev/null
@@ -0,0 +1,64 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" Adapted from libcurl docs by fandom@telefonica.net
+.TH TclCurl n "8 September 2008" "TclCurl 7.19.0" "TclCurl share data api"
+.SH NAME
+TclCurl: - get  a  URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE or LDAP syntax.
+.SH SYNOPSIS
+.BI "curl::shareinit"
+.sp
+.IB shareHandle " share " "?data?"
+.sp
+.IB shareHandle " unshare " "?data?"
+.sp
+.IB shareHandle " cleanup"
+.sp
+.BI "curl::sharestrerror " errorCode
+
+
+.SH DESCRIPTION
+
+With the share API, you can have two or more 'easy' handles sharing data
+among them, so far they can only share cookies and DNS data.
+
+.SH curl::shareinit
+This procedure must be the first one to call, it returns a \fBshareHandle\fP
+that you need to use to share data among handles using the \fB-share\fP option
+to the \fBconfigure\fP command. The init MUST have a corresponding call to
+\fBcleanup\fP when the operation is completed.
+
+.B RETURN VALUE
+.sp
+\fBshareHandle\fP to use.
+
+.SH shareHandle share ?data?
+
+The parameter specifies a type of data that should be shared. This may be set
+to one of the values described below:
+
+.RS
+.TP 5
+.B cookies
+Cookie data will be shared across the easy handles using this shared object.
+
+.TP
+.B dns
+Cached DNS hosts will be shared across the easy handles using this shared object.
+Note that when you use the multi interface, all easy handles added to the same multi
+handle will share DNS cache by default without this having to be used!
+.RE
+
+.SH shareHandle unshare ?data?
+This command does the opposite of \fBshare\fP. The specified parameter will no
+longer be shared. Valid values are the same as those for \fBshare\fP.
+
+.SH sharehandle cleanup
+
+Deletes a shared object. The share handle cannot be used anymore after this
+function has been called.
+
+.SH curl::sharestrerror errorCode
+Returns a string describing the error code passed in the argument.
+
+.SH "SEE ALSO"
+.I curl, TclCurl
diff --git a/doc/aolserver.txt b/doc/aolserver.txt
new file mode 100755 (executable)
index 0000000..bc62df9
--- /dev/null
@@ -0,0 +1,64 @@
+There are a number of issues with namespaces in AOLserver 3.x, which I believe
+are fixed in 4.0, which should be released within a few months. But in the
+meantime this is what we've had to do for AOLserver 3.2 on Windows 2000.
+
+Alex Khassin
+
+
+1.  Under [ns_library shared] directory, create a directory called
+    packages.
+
+2.  Register this directory as a Tcl module in nsd.tcl:
+        ns_section "ns/server/${servername}/modules"
+        ns_param   packages Tcl
+
+3.  Place each package into a subdirectory of the same name as the
+    package name (i.e. [ns_library shared]/packages/TclCurl)
+
+4.  Copy S:\NaviSoft\Server\modules\tcl\am\packages.init.tcl to the
+    [ns_library shared]/packages directory and rename to just init.tcl
+
+5.  Under AOLserver 4.x (and hopefully in 3.5.x) add to the bottom
+    of this file appropriate commands to register each package:
+        _am_pregister shared <packageName>
+
+6.  In your code, when you need to use a particular package, instead
+    of 'package require <packageName>', execute 'am_pinit <packageName>'
+
+7.  This will use the existing package registration under AOLserver
+    4.x and, under AOLserver 3.2, it will first register the package
+    in this interpreter and then use it.
+
+8.  This is necessary because in AOLserver 3.2, namespaces aren't
+    properly imported into child interpreters.
+
+    Currently dnscrub.com is set up like this for TclCurl and it works.
+
+    Example usage:
+
+        am_pinit TclCurl
+        curl::transfer -url http://am.net/index.htm -file d:/test.htm
+
+FYI, the code for am_pinit and _am_pregister procs:
+
+        proc am_pinit {package} {
+        # AOLserver 3.2 package/namespace-handling is broken
+        # (namespace/packages don't get imported into child interpreters)
+        # so use this workaround proc instead of 'package require' to
+        # load the package into the current interpreter
+        # (this is obviously slower than copying from master interpeter)
+        # Package names are case-sensitive!
+        # Returns the version of the loaded package
+            set library shared
+            if {[lsearch -exact [package names] $package] == -1} {
+                ns_log Notice "packages: registering $library/$package"
+                _am_pregister $library $package
+            }
+            package require $package
+        }
+         
+        proc _am_pregister {library package} {
+        # Registers the package. library is 'shared' or 'private'
+            set dir [ns_library $library]/packages/$package
+            source $dir/pkgIndex.tcl
+        }
diff --git a/doc/tclcurl.html b/doc/tclcurl.html
new file mode 100644 (file)
index 0000000..3ce19f2
--- /dev/null
@@ -0,0 +1,2569 @@
+<HTML><HEAD><TITLE>Manpage of TclCurl</TITLE>
+</HEAD><BODY>
+<H1>TclCurl</H1>
+Section: Easy inteface (n)<BR>Updated: 8 September 2008<BR>
+<A NAME="lbAB">&nbsp;</A>
+<hr>
+<H2>NAME</H2>
+
+TclCurl: - get  a  URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE or LDAP syntax.
+<A NAME="lbAC">&nbsp;</A>
+<H2>SYNOPSIS</H2>
+
+<B>curl::init</B>
+
+<P>
+<I>curlHandle</I><B> configure </B><I>?options?</I>
+
+<P>
+<I>curlHandle</I><B> perform</B>
+
+<P>
+<I>curlHandle</I><B> getinfo </B><I>curlinfo_option</I>
+
+<P>
+<I>curlhandle</I><B> cleanup</B>
+
+<P>
+<I>curlhandle</I><B> reset</B>
+
+<P>
+<I>curlHandle</I><B> duhandle</B>
+
+<P>
+<I>curlHandle</I><B> pause</B>
+
+<P>
+<I>curlHandle</I><B> resume</B>
+
+<P>
+<B>curl::transfer</B><I> ?options?</I>
+
+<P>
+<B>curl::version</B>
+
+<P>
+<B>curl::escape </B><I>url</I>
+
+<P>
+<B>curl::unescape </B><I>url</I>
+
+<P>
+<B>curl::curlConfig </B><I>option</I>
+
+<P>
+<B>curl::versioninfo </B><I>option</I>
+
+<P>
+<B>curl::easystrerror </B><I>errorCode</I>
+
+<P>
+<A NAME="lbAD">&nbsp;</A>
+<H2>DESCRIPTION</H2>
+
+The TclCurl extension gives Tcl programmers access to the libcurl
+library written by <a href="http://daniel.haxx.se">Daniel Stenberg</a>, with it you can download urls,
+upload them and many other neat tricks, for more information check
+<A HREF="http://curl.haxx.se">cURL's web page</A>
+
+<A NAME="lbAE">&nbsp;</A>
+<H2>curl::init</H2>
+
+This procedure must be the first one to call, it returns a
+<I>curlHandle</I>
+
+that you need to use to invoke TclCurl procedures. The init calls intializes
+curl and this call MUST have a corresponding call to
+<I>cleanup</I>
+
+when the operation is completed.
+You should perform all your sequential file transfers using the same
+curlHandle. This enables TclCurl to use persistant connections when
+possible.
+<P>
+<B>RETURN VALUE</B>
+
+<P>
+<I>curlHandle</I>
+
+to use.
+<A NAME="lbAF">&nbsp;</A>
+<H2>curlHandle configure ?options?</H2>
+
+<P>
+<B>configure</B>
+
+is called to set the options for the transfer. Most operations in TclCurl
+have default actions, and by using the appropriate options you can
+make them behave differently (as documented). All options are set with
+the <I>option</I> followed by a parameter.
+<P>
+<B>Notes:</B>
+
+the options set with this procedure are valid for the
+forthcoming data transfers that are performed when you invoke
+<I>perform</I>
+
+<P>
+The options are not reset between transfers (except where noted), so if
+you want subsequent transfers with different options, you must change them
+between the transfers. You can optionally reset all options back to the internal
+default with <B>curlHandle reset</B>.
+<P>
+<I>curlHandle</I>
+
+is the return code from the
+<I>curl::init</I>
+
+call.
+<P>
+<P>
+<B>OPTIONS</B>
+
+<P>
+<A NAME="lbAG">&nbsp;</A>
+<H2>Behaviour options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-verbose</B>
+
+<DD>
+Set the parameter to 1 to get the library to display a lot of verbose
+information about its operations. Very useful for libcurl and/or protocol
+debugging and understanding.
+<P>
+You hardly ever want this set in production use, you will almost always want
+this when you debug/report problems. Another neat option for debugging is
+<B>-debugproc</B>
+
+<P>
+<DT><B>-header</B>
+
+<DD>
+A 1 tells the extension to include the headers in the body output. This is
+only relevant for protocols that actually have headers preceding the data (like HTTP).
+<P>
+<DT><B>-noprogress</B>
+
+<DD>
+A 1 tells the extension to turn on the built-in progress meter.
+Nowadays it is turn off by default.
+<P>
+<DT><B>-nosignal</B>
+
+<DD>
+A 1 tells TclCurl not use any functions that install signal
+handlers or any functions that cause signals to be sent to the process. This
+option is mainly here to allow multi-threaded unix applications to still
+set/use all timeout options etc, without risking getting signals.
+<P>
+<P>
+</DL>
+<A NAME="lbAH">&nbsp;</A>
+<H2>Callback options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-writeproc</B>
+
+<DD>
+Use it to set a Tcl procedure that will be invoked by TclCurl as soon as
+there is received data that needs to be saved. The procedure will receive
+a single parameter with the data to be saved.
+<P>
+NOTE: you will be passed as much data as possible in all invokes, but you
+cannot possibly make any assumptions. It may be nothing if the file is
+empty or it may be thousands of bytes.
+<P>
+<DT><B>-file</B>
+
+<DD>
+File in which the transfered data will be saved.
+<P>
+<DT><B>-readproc</B>
+
+<DD>
+Sets a Tcl procedure to be called by TclCurl as soon as it needs to read
+data in order to send it to the peer. The procedure has to take one
+parameter, which will contain the maximun numbers of bytes to read. It
+should return the actual number of bytes read, or '0' if you want to
+stop the transfer.
+<P>
+<DT><B>-infile</B>
+
+<DD>
+File from which the data will be transfered.
+<P>
+<DT><B>-progressproc</B>
+
+<DD>
+Name of the Tcl procedure that will invoked by TclCurl  with a frequent
+interval during operation (roughly once per second), no matter if data
+is being transfered or not.  Unknown/unused
+argument values passed to the callback will be set to zero (like if you
+only download data, the upload size will remain 0), the prototype of the
+procedure must be:
+<P>
+<B>proc ProgressCallback {dltotal dlnow ultotal ulnow}</B>
+
+<P>
+In order to this option to work you have to set the <B>noprogress</B>
+option to '0'. Setting this option to the empty string will restore the
+original progress function.
+<P>
+If you transfer data with the multi interface, this procedure will not be
+called during periods of idleness unless you call the appropriate procedure
+that performs transfers.
+<P>
+You can pause and resume a transfer from within this procedure using the
+<B>pause</B> and <B>resume</B> commands.
+<P>
+<DT><B>-writeheader</B>
+
+<DD>
+Pass a the file name to be used to write the header part of the received data to.
+The headers are guaranteed to be written one-by-one to this file and
+only complete lines are written. Parsing headers should be easy enough using
+this.
+<P>
+<DT><B>-debugproc</B>
+
+<DD>
+Name of the procedure that will receive the debug data produced by the
+<B>-verbose</B>
+
+option, it should match the following prototype:
+<P>
+<B>debugProc {infoType data}</B>
+
+<P>
+where <B>infoType</B> specifies what kind of information it is (0 text,
+1 incoming header, 2 outgoing header, 3 incoming data, 4 outgoing data,
+5 incoming SSL data, 6 outgoing SSL data).
+<P>
+</DL>
+<A NAME="lbAI">&nbsp;</A>
+<H2>Error Options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-errorbuffer</B>
+
+<DD>
+Pass a variable name where TclCurl may store human readable error
+messages in. This may be more helpful than just the return code from the
+command.
+<P>
+<DT><B>-stderr</B>
+
+<DD>
+Pass a file name as parameter. This is the stream to use internally instead
+of stderr when reporting errors.
+<DT><B>-failonerror</B>
+
+<DD>
+A 1 parameter tells the extension to fail silently if the HTTP code
+returned is equal or larger than 400. The default action would be to return
+the page normally, ignoring that code.
+<P>
+This method is not fail-safe and there are occasions where non-successful response
+codes will slip through, especially when authentication is involved
+(response codes 401 and 407). 
+<P>
+You might get some amounts of headers transferred before this situation is detected,
+like for when a &quot;100-continue&quot; is received as a response to a POST/PUT and a 401
+or 407 is received immediately afterwards.
+<P>
+</DL>
+<A NAME="lbAJ">&nbsp;</A>
+<H2>Network options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-url</B>
+
+<DD>
+The actual URL to deal with.
+<P>
+If the given URL lacks the protocol part (&quot;http://&quot; or &quot;ftp://&quot; etc), it will
+attempt to guess which protocol to use based on the given host name. If the
+given protocol of the set URL is not supported, TclCurl will return the
+<B>unsupported protocol</B> error when you call <B>perform</B>. Use
+<B>curl::versioninfo</B> for detailed info on which protocols that are supported.
+<P>
+<B>NOTE</B>: this the one option required to be set
+before
+<B>perform</B>
+
+is called.
+<P>
+<DT><B>-proxy</B>
+
+<DD>
+If you need to use a http proxy to access the outside world, set the
+proxy string with this option. To specify port number in this string,
+append :[port] to the end of the host name. The proxy string may be
+prefixed with [protocol]:// since any such prefix will be ignored.
+<P>
+When you tell the extension to use a HTTP proxy, TclCurl will
+transparently convert operations to HTTP even if you specify a FTP
+URL etc. This may have an impact on what other features of the library
+you can use, such as
+<B>quote</B>
+
+and similar FTP specifics that will not work unless you tunnel through
+the HTTP proxy. Such tunneling  is activated with
+<B>proxytunnel</B>
+
+<P>
+TclCurl respects the environment variables http_proxy, ftp_proxy,
+all_proxy etc, if any of those are set. The use of this option does
+however override any possibly set environment variables.
+<P>
+Setting the proxy string to &quot;&quot; (an empty string) will explicitly disable
+the use of a proxy, even if there is an environment variable set for it.
+<P>
+The proxy host string can be specified the exact same way as the proxy
+environment variables, include protocol prefix (<A HREF="http://)">http://)</A> and embedded
+user + password.
+<P>
+<DT><B>-proxyport</B>
+
+<DD>
+Use this option to set the proxy port to use unless it is specified in
+the proxy string by <B>-proxy</B>.
+<P>
+<DT><B>-proxytype</B>
+
+<DD>
+Pass the type of  the  proxy. Available options are 'http', 'socks4', 'socks4a'
+and 'socks5', with the HTTP one being default.
+<P>
+<DT><B>-httpproxytunnel</B>
+
+<DD>
+Set the parameter to 1 to get the extension to tunnel all non-HTTP
+operations through the given HTTP proxy. Do note that there is a big
+difference between using a proxy and tunneling through it. If you don't know what
+this means, you probably don't want this tunnel option.
+
+<P>
+<DT><B>-interface</B>
+
+<DD>
+Pass the interface name to use as outgoing
+network interface. The name can be an interface name, an IP address or a host
+name.
+<P>
+<DT><B>-localport</B>
+
+<DD>
+This sets the local port number of the socket used for connection. This can
+be used in combination with <B>-interface</B> and you are recommended to use
+<B>localportrange</B> as well when this is set. Note the only valid port numbers
+are 1 - 65535.
+<P>
+<DT><B>-localportrange</B>
+
+<DD>
+This is the number of attempts TclCurl should do to find a working local port
+number. It starts with the given <B>-localport</B> and adds
+one to the number for each retry. Setting this value to 1 or below will make
+TclCurl do only one try for exact port number. Note that port numbers by nature
+are a scarce resource that will be busy at times so setting this value to something
+too low might cause unnecessary connection setup failures.
+<P>
+<DT><B>-dnscachetimeout</B>
+
+<DD>
+Pass the timeout in seconds. Name resolves will be kept in memory for this number
+of seconds. Set to '0' to completely disable caching, or '-1' to make the
+cached entries remain forever. By default, TclCurl caches this info for 60 seconds.
+<P>
+<DT><B>-dnsuseglobalcache</B>
+
+<DD>
+If the value passed is 1, it tells TclCurl to use a global DNS cache that
+will survive between curl handles creations and deletions. This is not thread-safe
+as it uses a global varible.
+<P>
+<B>WARNING:</B> this option is considered obsolete. Stop using it. Switch over
+to using the share interface instead! See <I>tclcurl_share</I>.
+<P>
+<DT><B>-buffersize</B>
+
+<DD>
+Pass your prefered size for the receive buffer in TclCurl. The main point of this
+would be that the write callback gets called more often and with smaller chunks.
+This is just treated as a request, not an order. You cannot be guaranteed to
+actually get the given size.
+<P>
+<DT><B>-port</B>
+
+<DD>
+<P>
+Pass the number specifying what remote port to connect to, instead of the one specified
+in the URL or the default port for the used protocol.
+<P>
+<DT><B>-tcpnodelay</B>
+
+<DD>
+<P>
+Pass a number to specify whether the TCP_NODELAY option should be set or cleared (1 = set, 0 = clear).
+The option is cleared by default. This will have no effect after the connection has been established.
+<P>
+Setting this option will disable TCP's Nagle algorithm. The purpose of this algorithm is to try to
+minimize the number of small packets on the network (where &quot;small packets&quot; means TCP segments less
+than the Maximum Segment Size (MSS) for the network).
+<P>
+Maximizing the amount of data sent per TCP segment is good because it amortizes the overhead of the
+send. However, in some cases (most notably telnet or rlogin) small segments may need to be sent without
+delay. This is less efficient than sending larger amounts of data at a time, and can contribute to
+congestion on the network if overdone.
+<P>
+<DT><B>-addressscope</B>
+
+<DD>
+Pass a number specifying the scope_id value to use when connecting to IPv6 link-local or site-local
+addresses.
+<P>
+</DL>
+<A NAME="lbAK">&nbsp;</A>
+<H2>Names and Passwords options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-netrc</B>
+
+<DD>
+A 1 parameter tells the extension to scan your
+<B>~/.netrc</B>
+
+file to find user name and password for the remote site you are about to
+access. Do note that TclCurl does not verify that the file has the correct
+properties set (as the standard unix ftp client does), and that only machine
+name, user name and password is taken into account (init macros and similar
+things are not supported).
+<P>
+You can set it to the following values:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>optional</B>
+
+<DD>
+The use of your ~/.netrc file is optional, and information in the URL is to
+be preferred. The file will be scanned with the host and user name (to find
+the password only) or with the host only, to find the first user name and
+password after that machine, which ever information is not specified in
+the URL.
+<P>
+Undefined  values  of  the  option  will  have this effect.
+<DT><B>ignored</B>
+
+<DD>
+The extension will ignore the file and use only the information in the URL.
+This is the default.
+<DT><B>required</B>
+
+<DD>
+This value tells the library that use of the file is required, to ignore
+the information in the URL, and to search the file with the host only.
+</DL>
+</DL>
+
+<P>
+<DT><B>-netrcfile</B>
+
+<DD>
+Pass a string containing the full path name to the file you want to use as .netrc
+file. For the option to work, you have to set the <B>netrc</B> option to
+<B>required</B>. If this option is omitted, and <B>netrc</B> is set, TclCurl
+will attempt to find the a .netrc file in the current user's home directory.
+<P>
+<DT><B>-userpwd</B>
+
+<DD>
+Pass a string as parameter, which should be [username]:[password] to use for
+the connection. Use <B>httpauth</B> to decide authentication method.
+<P>
+When using NTLM, you can set domain by prepending it to the user name and
+separating the domain and name with a forward (/) or backward slash (\). Like
+this: &quot;domain/user:password&quot; or &quot;domain\user:password&quot;. Some HTTP servers (on
+Windows) support this style even for Basic authentication.
+<P>
+When using HTTP and <B>-followlocation</B>, TclCurl might perform several
+requests to possibly different hosts. TclCurl will only send this user and
+password information to hosts using the initial host name (unless
+<B>-unrestrictedauth</B> is set), so if TclCurl follows locations to other
+hosts it will not send the user and password to those. This is enforced to
+prevent accidental information leakage.
+<P>
+<DT><B>-proxyuserpwd</B>
+
+<DD>
+Pass a string as parameter, which should be [username]:[password] to use for
+the connection to the HTTP proxy.
+<P>
+<DT><B>-httpauth</B>
+
+<DD>
+Set to the authentication method you want, the available ones are:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>basic</B>
+
+<DD>
+HTTP Basic authentication. This is the default choice, and the only
+method that is in widespread use and supported virtually everywhere.
+It sends the user name and password over the network in plain text,
+easily captured by others.
+<P>
+<DT><B>digest</B>
+
+<DD>
+HTTP Digest authentication. Digest authentication is a more secure
+way to do authentication over public networks than the regular
+old-fashioned Basic method.
+<P>
+<DT><B>gssnegotiate</B>
+
+<DD>
+HTTP GSS-Negotiate authentication. The GSS-Negotiate method, also known as
+plain &quot;Negotiate&quot;,was designed by Microsoft and is used in their web
+applications. It is primarily meant as a support for Kerberos5 authentication
+but may be also used along with another authentication methods.
+<P>
+<DT><B>ntlm</B>
+
+<DD>
+HTTP NTLM authentication. A proprietary protocol invented and used by Microsoft.
+It uses a challenge-response and hash concept similar to Digest, to prevent the
+password from being eavesdropped.
+<P>
+<DT><B>any</B>
+
+<DD>
+TclCurl will automatically select the one it finds most secure.
+<P>
+<DT><B>anysafe</B>
+
+<DD>
+It may use anything but basic, TclCurl will automaticly select the
+one it finds most secure.
+</DL>
+</DL>
+
+<P>
+<DT><B>-proxyauth</B>
+
+<DD>
+Use it to tell TclCurl which authentication method(s) you want it to use for
+your proxy authentication. Note that for some methods, this will induce an
+extra network round-trip. Set the actual name and password with the 
+<B>proxyuserpwd</B> option.
+<P>
+The methods are those listed above for the <B>httpauth</B> option. As of this
+writing, only Basic and NTLM work.
+<P>
+</DL>
+<A NAME="lbAL">&nbsp;</A>
+<H2>HTTP options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-autoreferer</B>
+
+<DD>
+Pass an 1 parameter to enable this. When enabled, TclCurl will
+automatically set the Referer: field in requests where it follows a Location:
+redirect.
+<P>
+<DT><B>-encoding</B>
+
+<DD>
+Sets the contents of the Accept-Encoding: header sent in an HTTP
+request, and enables decoding of a response when a Content-Encoding:
+header is received.  Three encodings are supported: <I>identity</I>,
+which does nothing, <I>deflate</I> which requests the server to
+compress its response using the zlib algorithm, and <I>gzip</I> which
+requests the gzip algorithm.  Use <I>all</I> to send an
+Accept-Encoding: header containing all supported encodings.
+<P>
+This is a request, not an order; the server may or may not do it.  This
+option must be set or else any unsolicited
+encoding done by the server is ignored. See the special file
+lib/README.encoding in libcurl docs for details.
+<P>
+<DT><B>-followlocation</B>
+
+<DD>
+An 1 tells the library to follow any
+<B>Location: header</B>
+
+that the server sends as part of a HTTP header.
+<P>
+<B>NOTE</B>: this means that the extension will re-send the  same
+request on the new location and follow new <B>Location: headers</B>
+all the way until no more such headers are returned.
+<B>-maxredirs</B> can be used to limit the number of redirects
+TclCurl will follow.
+<P>
+<DT><B>-unrestrictedauth</B>
+
+<DD>
+An 1 parameter tells the extension it can continue
+to  send authentication (user+password) when following
+locations, even when hostname changed. Note that  this
+is  meaningful  only  when setting <B>-followlocation</B>.
+<P>
+<DT><B>-maxredirs</B>
+
+<DD>
+Sets the redirection limit. If that many redirections have been followed,
+the next redirect will cause an error. This option only makes sense if the
+<B>-followlocation</B> option is used at the same time. Setting the limit
+to 0 will make libcurl refuse any redirect. Set it to -1 for an infinite
+number of redirects (which is the default)
+<P>
+<DT><B>-post301</B>
+
+<DD>
+An 1 tells TclCurl to respect RFC 2616/10.3.2 and not
+convert POST requests into GET requests when following a 301 redirection. The
+non-RFC behaviour is ubiquitous in web browsers, so the conversion is done
+by default to maintain consistency. However, a server may require
+a POST to remain a POST after such a redirection. This option is meaningful
+only when setting <B>-followlocation</B>.
+<P>
+<DT><B>-put</B>
+
+<DD>
+An 1 parameter tells the extension to use HTTP PUT a file. The file to put
+must be set with <B>-infile</B> and <B>-infilesize</B>.
+<P>
+This option is deprecated starting with version 0.12.1, you should use <B>-upload</B>.
+<P>
+<DT><B>-post</B>
+
+<DD>
+An 1 parameter tells the library to do a regular HTTP post. This is a
+normal application/x-www-form-urlencoded kind, which is the most commonly used
+one by HTML forms. See the <B>-postfields</B> option for how to specify the
+data to post and <B>-postfieldsize</B> about how to set the data size.
+<P>
+Use the <B>-postfields</B> option to specify what data to post and <B>-postfieldsize</B>
+to set the data size. Optionally, you can provide data to POST using the <B>-readproc</B>
+options.
+<P>
+You can override the default POST Content-Type: header by setting your own with
+<B>-httpheader</B>.
+<P>
+Using POST with HTTP 1.1 implies the use of a &quot;Expect: 100-continue&quot; header.
+You can disable this header with <B>-httpheader</B> as usual.
+<P>
+If you use POST to a HTTP 1.1 server, you can send data without knowing the
+size before starting the POST if you use chunked encoding. You enable this
+by adding a header like &quot;Transfer-Encoding: chunked&quot; with <B>-httpheader</B>.
+With HTTP 1.0 or without chunked transfer, you must specify the size in the
+request.
+<P>
+When setting <B>post</B> to an 1 value, it will automatically set
+<B>nobody</B> to 0.
+<P>
+NOTE: if you have issued a POST request and want to make a HEAD or GET instead, you must
+explicitly pick the new request type using <B>-nobody</B> or <B>-httpget</B> or similar.
+<P>
+<DT><B>-postfields</B>
+
+<DD>
+Pass a string as parameter, which should be the full data to post in a HTTP
+POST operation. You must make sure that the data is formatted the way you
+want the server to receive it. TclCurl will not convert or encode it for you.
+Most web servers will assume this data to be url-encoded.
+<P>
+This is a normal application/x-www-form-urlencoded  kind,
+which is the most commonly used one by HTML forms.
+<P>
+If you want to do a zero-byte POST, you need to set
+<B>-postfieldsize</B> explicitly to zero, as simply setting
+<B>-postfields</B> to NULL or &quot;&quot; just effectively disables the sending
+of the specified string. TclCurl will instead assume that the POST
+data will be send using the read callback!
+<P>
+Using POST with HTTP 1.1 implies the use of a &quot;Expect: 100-continue&quot; header.
+You can disable this header with <B>-httpheader</B> as usual.
+<P>
+<B>Note</B>: to make multipart/formdata posts (aka rfc1867-posts), check out
+<B>-httppost</B> option.
+<P>
+<DT><B>-postfieldsize</B>
+
+<DD>
+If you want to post data to the server without letting TclCurl do a strlen()
+to measure the data size, this option must be used. Also, when this option is
+used, you can post fully binary data which otherwise is likely to fail. If
+this size is set to zero, the library will use strlen() to get the data
+size.
+<P>
+<DT><B>-httppost</B>
+
+<DD>
+Tells TclCurl you want a multipart/formdata HTTP POST to be made and you
+instruct what data to pass on to the server through a
+<B>Tcl list.</B>
+
+<P>
+<B>This is the only case where the data is reset after a transfer.</B>
+<P>
+First, there are some basics you need to understand about multipart/formdata
+posts. Each part consists of at least a <B>NAME</B> and a <B>CONTENTS</B> part. If the part
+is made for file upload, there are also a stored <B>CONTENT-TYPE</B> and a
+<B>FILENAME</B>. Below, we'll discuss on what options you use to set these
+properties in the parts you want to add to your post.
+<P>
+The list must contain a <B>'name'</B> tag with the name of the section followed
+by a string with the name, there are three tags to indicate the value of
+the section: <B>'value'</B> followed by a string with the data to post, <B>'file'</B>
+followed by the name of the file to post and <B>'contenttype'</B> with the
+type of the data (text/plain, image/jpg, ...), you can also indicate a <I>false</I>
+file name with <B>'filename'</B>, this is useful in case the server checks if the given
+file name is valid, for example, by testing if it starts with 'c:\' as any real file
+name does or if you want to include the full path of the file to post. You can also post
+the content of a variable as if it were a file with the options <B>'bufferName'</B> and
+<B>'buffer'</B> or use <B>'filecontent'</B> followed by a file name to read that file and
+use the contents as data.
+<P>
+Should you need to specify extra headers for the form POST section, use
+<B>'contentheader</B>' followed by a list with the headers to post.
+<P>
+Please see 'httpPost.tcl' and 'httpBufferPost.tcl' for examples.
+<P>
+If TclCurl can't set the data to post an error will be returned:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>1</B>
+
+<DD>
+If the memory allocation fails.
+<DT><B>2</B>
+
+<DD>
+If one option is given twice for one form.
+<DT><B>3</B>
+
+<DD>
+If an empty string was given.
+<DT><B>4</B>
+
+<DD>
+If an unknown option was used.
+<DT><B>5</B>
+
+<DD>
+If the some form info is not complete (or error)
+<DT><B>6</B>
+
+<DD>
+If an illegal option is used in an array.
+<DT><B>7</B>
+
+<DD>
+TclCurl has no http support.
+</DL>
+</DL>
+
+<P>
+<DT><B>-referer</B>
+
+<DD>
+Pass a string as parameter. It will be used to set the
+<B>referer</B>
+
+header in the http request sent to the remote server. This can be used to
+fool servers or scripts. You can also set any custom header with
+<B>-httpheader.</B>
+
+<P>
+<DT><B>-useragent</B>
+
+<DD>
+Pass a string as parameter. It will be used to set the
+<B>user-agent:</B>
+
+header in the http request sent to the remote server. This can be used to fool
+servers or scripts. You can also set any custom header with
+<B>-httpheader.</B>
+
+<P>
+<DT><B>-httpheader</B>
+
+<DD>
+Pass a
+<B>list</B>
+
+with the HTTP headers to pass to the server in your request.
+If you add a header that is otherwise generated
+and used by TclCurl internally, your added one will be used instead. If you
+add a header with no contents as in 'Accept:', the internally used header will
+just get disabled. Thus, using this option you can add new headers, replace
+and remove internal headers.
+<P>
+The headers included in the linked list must not be CRLF-terminated, because
+TclCurl adds CRLF after each header item. Failure to comply with this will
+result in strange bugs because the server will most likely ignore part of the
+headers you specified.
+<P>
+The first line in a request (containing the method, usually a GET or POST) is
+not a header and cannot be replaced using this option. Only the lines
+following the request-line are headers. Adding this method line in this list
+of headers will only cause your request to send an invalid header.
+<P>
+<B>NOTE</B>:The most commonly replaced headers have &quot;shortcuts&quot; in the  options:
+<B>cookie, useragent,</B>
+
+and
+<B>referer.</B>
+
+<P>
+<DT><B>-http200aliases</B>
+
+<DD>
+Pass a list of aliases to be treated as valid HTTP 200 responses. Some servers
+respond with a custom header response line. For example, IceCast servers respond
+with &quot;ICY 200 OK&quot;. By including this string in your list of aliases, the
+response will be treated as a valid HTTP header line such as &quot;HTTP/1.0 200 OK&quot;.
+<P>
+<B>NOTE</B>:The alias itself is not parsed for any version strings. Before version
+7.16.3, TclCurl used the value set by option <B>httpversion</B>, but starting with
+7.16.3 the protocol is assumed to match HTTP 1.0 when an alias matched.
+<P>
+<DT><B>-cookie</B>
+
+<DD>
+Pass a string as parameter. It will be used to
+set a cookie in the http request. The format of the string should be
+
+what the cookie should contain.
+<P>
+If  you  need  to  set mulitple cookies, you need to set them all using
+a single option and thus you need to concatenate them all in one single string.
+Set multiple cookies in one string like this: &quot;name1=content1; name2=content2;&quot;
+etc.
+<P>
+Note that this option sets the cookie header explictly in the outgoing request(s).
+If multiple requests are done due to authentication, followed redirections or similar,
+they will all get this cookie passed on.
+<P>
+Using this option multiple times will only make the latest string override
+the previous ones.
+<P>
+<DT><B>-cookiefile</B>
+
+<DD>
+Pass a string as parameter. It should contain the name of your file holding
+cookie data. The cookie data may be in netscape cookie data format or just
+regular HTTP-style headers dumped to a file.
+<P>
+Given an empty or non-existing file, this option will enable cookies for this
+curl handle, making it understand and parse received cookies and then use
+matching cookies in future requests.
+<P>
+If you use this option multiple times, you add more files to read.
+<P>
+<DT><B>-cookiejar</B>
+
+<DD>
+Pass a file name in which TclCurl will dump all internally known cookies
+when
+<B>curlHandle cleanup</B>
+
+is called. If no cookies are known, no file will be created.
+Specify &quot;-&quot; to have the cookies written to stdout.
+<P>
+Using this option also enables cookies for this session, so if you, for
+example, follow a location it will make matching cookies get sent accordingly.
+<P>
+TclCurl will not and cannot report an error for  this. Using  '<B>verbose</B>'
+will get a warning to display, but that is the only visible feedback you get
+about this possibly lethal situation.
+<P>
+<DT><B>-cookiesession</B>
+
+<DD>
+Pass an 1 to mark this as a new cookie &quot;session&quot;. It will
+force TclCurl to ignore all cookies it is about to load that are &quot;session
+cookies&quot; from the previous session. By default, TclCurl always stores and
+loads all cookies, independent of whether they are session cookies are not.
+Session cookies are cookies without expiry date and they are meant to be
+alive and existing for this &quot;session&quot; only.
+<P>
+<DT><B>-cookielist</B>
+
+<DD>
+Pass a string with a cookie. The cookie can be either in Netscape / Mozilla
+format or just regular HTTP-style header (Set-Cookie: ...) format. If the
+cookie engine was not enabled it will be enabled.  Passing a
+magic string &quot;ALL&quot; will erase all known cookies while &quot;FLUSH&quot; will write
+all cookies known by TclCurl to the file specified by <B>-cookiejar</B>.
+<P>
+<DT><B>-httpget</B>
+
+<DD>
+If set to 1 forces the HTTP request to get back to GET, usable if
+POST, PUT or a custom request have been used previously with the
+same handle.
+<P>
+When setting <B>httpget</B> to 1, <B>nobody</B> will automatically be set to 0.
+<P>
+<DT><B>-httpversion</B>
+
+<DD>
+Set to one of the values decribed below, they force TclCurl to use the
+specific http versions. It should only be used if you really MUST do
+that because of a silly remote server.
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>none</B>
+
+<DD>
+We do not care about what version the library uses. TclCurl will use whatever
+it thinks fit.
+<DT><B>1.0</B>
+
+<DD>
+Enforce HTTP 1.0 requests.
+<DT><B>1.1</B>
+
+<DD>
+Enforce HTTP 1.1 requests.
+</DL>
+</DL>
+
+<P>
+<DT><B>-ignorecontentlength</B>
+
+<DD>
+Ignore the Content-Length header. This is useful for Apache 1.x (and similar
+servers) which will report incorrect content length for files over 2
+gigabytes. If this option is used, TclCurl will not be able to accurately
+report progress, and will simply stop the download when the server ends the
+connection.
+<P>
+<DT><B>-httpcontentdecoding</B>
+
+<DD>
+Set to zero to disable content decoding. If set to 1 it is enabled. Note however
+that TclCurl has no default content decoding but requires you to use <B>encoding</B> for that.
+<P>
+<DT><B>-httptransferencoding</B>
+
+<DD>
+Set to zero to disable transfer decoding, if set to 1 it is enabled (default). TclCurl does
+chunked transfer decoding by default unless this option is set to zero.
+<P>
+</DL>
+<A NAME="lbAM">&nbsp;</A>
+<H2>FTP options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-ftpport</B>
+
+<DD>
+Pass a string as parameter. It will be used to
+get the IP address to use for the ftp PORT instruction. The PORT instruction
+tells the remote server to connect to our specified IP address. The string may
+be a plain IP address, a host name, a network interface name (under unix) or
+just a '-' to let the library use your systems default IP address. Default FTP
+operations are passive, and thus will not use PORT.
+<P>
+<DT><B>-quote</B>
+
+<DD>
+Pass a <B>list</B> list with the FTP or SFTP commands to pass to the server prior to your
+ftp request. This will be done before any other FTP commands are issued (even
+before the CWD command).If you do not want to transfer any files, set
+<B>nobody</B> to '1' and <B>header</B> to '0'.
+<P>
+Keep in mind the commands to send must be 'raw' ftp commands, for example, to
+create a directory you need to send <B>mkd Test</B>, not <B>mkdir Test</B>.
+<P>
+Valid SFTP commands are: chgrp, chmod, chown, ln, mkdir, pwd, rename, rm,
+rmdir and symlink. 
+<P>
+<DT><B>-postquote</B>
+
+<DD>
+Pass a <B>list</B> with the FTP commands to pass to the server after your
+ftp transfer request. If you do not want to transfer any files, set
+<B>nobody</B> to '1' and <B>header</B> to '0'.
+<P>
+<DT><B>-prequote</B>
+
+<DD>
+Pass a <B>list</B> of FTP or SFTP commands to pass to the server after the
+transfer type is set.
+<P>
+<DT><B>-dirlistonly</B>
+
+<DD>
+A 1 tells the library to just list the names of files in a
+directory, instead of doing a full directory listing that would include file
+sizes, dates etc. It works with both FTP and SFTP urls.
+<P>
+This causes an FTP NLST command to be sent. Beware that some FTP servers list
+only files in their response to NLST, they might not include subdirectories
+and symbolic links.
+<P>
+<DT><B>-append</B>
+
+<DD>
+A 1 parameter tells the extension to append to the remote file instead of
+overwriting it. This is only useful when uploading to a ftp site.
+<P>
+<DT><B>-ftpuseeprt</B>
+
+<DD>
+Set to 1 to tell TclCurl to use the EPRT (and LPRT) command when doing
+active FTP downloads (which is enabled by '<B>ftpport</B>'). Using EPRT means
+that it will first attempt to use EPRT and then LPRT before using PORT, if
+you pass zero to this option, it will not try using EPRT or LPRT, only plain PORT.
+<P>
+<DT><B>-ftpuseepvs</B>
+
+<DD>
+Set to one to tell TclCurl to use the EPSV command when doing passive FTP
+downloads (which it always does by default). Using EPSV means that it will
+first attempt to use EPSV before using PASV, but if you pass a zero to this
+option, it will not try using EPSV, only plain PASV.
+<P>
+<DT><B>-ftpcreatemissingdirs</B>
+
+<DD>
+If set to 1, TclCurl will attempt to create any remote directory that it
+fails to CWD into. CWD is the command that changes working directory.
+<P>
+This setting also applies to SFTP-connections. TclCurl will attempt to create
+the remote directory if it can't obtain a handle to the target-location. The
+creation will fail if a file of the same name as the directory to create
+already exists or lack of permissions prevents creation.
+<P>
+<DT><B>-ftpresponsetimeout</B>
+
+<DD>
+Causes TclCurl to set a timeout period (in seconds) on the amount of time that
+the server is allowed to take in order to generate a response message for a
+command before the session is considered hung. Note that while TclCurl is waiting
+for a response, this value overrides <B>timeout</B>. It is recommended that if used
+in conjunction with <B>timeout</B>, you set it to a value smaller than <B>timeout</B>.
+<P>
+<DT><B>-ftpalternativetouser </B>
+
+<DD>
+Pass a string which will be used to authenticate if the usual FTP &quot;USER user&quot; and
+&quot;PASS password&quot; negotiation fails. This is currently only known to be required when
+connecting to Tumbleweed's Secure Transport FTPS server using client certificates for
+authentication.
+<P>
+<DT><B>-ftpskippasvip</B>
+
+<DD>
+If set to 1, it instructs TclCurl not to use the IP address the
+server suggests in its 227-response to TclCurl's PASV command when TclCurl
+connects the data connection. Instead TclCurl will re-use the same IP address
+it already uses for the control connection. But it will use the port number
+from the 227-response.
+<P>
+This option has no effect if PORT, EPRT or EPSV is used instead of PASV.
+<P>
+<DT><B>-usessl</B>
+
+<DD>
+You can use ftps:// URLs to explicitly switch on SSL/TSL for the control
+connection and the data connection.
+<P>
+Alternatively, and what seems to be the recommended way, you can set the
+option to one of these values:
+<P>
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>nope</B>
+
+<DD>
+Do not attempt to use SSL
+<DT><B>try</B>
+
+<DD>
+Try using SSL, proceed anyway otherwise.
+<DT><B>control</B>
+
+<DD>
+Use SSL for the control conecction or fail with &quot;use ssl failed&quot; (64).
+<DT><B>all</B>
+
+<DD>
+Use SSL for all communication or fail with &quot;use ssl failed&quot; (64).
+</DL>
+</DL>
+
+<P>
+<DT><B>-ftpsslauth</B>
+
+<DD>
+<P>
+Pass TclCurl one of the values from below, to alter how TclCurl issues
+&quot;AUTH TLS&quot; or &quot;AUTH SSL&quot; when FTP over SSL is activated (see <B>-ftpssl</B>).
+<P>
+You may need this option because of servers like BSDFTPD-SSL from
+<A HREF="http://bsdftpd-ssl.sc.ru/">http://bsdftpd-ssl.sc.ru/</A> &quot;which won't work properly  when &quot;AUTH SSL&quot; is issued
+(although the server responds fine and everything) but requires &quot;AUTH TLS&quot;
+instead&quot;.
+<P>
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>default</B>
+
+<DD>
+Allows TclCurl to decide.
+<DT><B>ssl</B>
+
+<DD>
+Try &quot;AUTH SSL&quot; first, and only if that fails try &quot;AUTH TLS&quot;.
+<DT><B>tls</B>
+
+<DD>
+Try &quot;AUTH TLS&quot; first, and only if that fails try &quot;AUTH SSL&quot;.
+</DL>
+</DL>
+
+<P>
+<DT><B>-ftpsslccc </B>
+
+<DD>
+Set it to make TclCurl use CCC (Clear Command Channel). It shuts down the
+SSL/TLS layer after authenticating. The rest of the control channel
+communication will be unencrypted. This allows NAT routers to follow the
+FTP transaction. Possible values are:
+<P>
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>none</B>
+
+<DD>
+Do not attempt to use CCC.
+<DT><B>passive</B>
+
+<DD>
+Do not initiate the shutdown, wait for the server to do it. Do not send a reply. 
+<DT><B>active</B>
+
+<DD>
+Initiate the shutdown and wait for a reply. 
+</DL>
+</DL>
+
+<P>
+<DT><B>-ftpaccount</B>
+
+<DD>
+Pass string (or &quot;&quot; to disable). When an FTP server asks for &quot;account data&quot; after
+user name and password has been provided, this data is sent off using the ACCT
+command.
+<P>
+<DT><B>-ftpfilemethod</B>
+
+<DD>
+It allows three values:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>multicwd</B>
+
+<DD>
+The default, TclCurl will do a single CWD operation for each path part in the given
+URL. For deep hierarchies this means very many commands. This is how RFC1738 says it
+should be done.
+<DT><B>nocwd</B>
+
+<DD>
+No CWD at all is done, TclCurl will do SIZE, RETR, STOR, etc and give a full path to
+the server.
+<DT><B>singlecwd</B>
+
+<DD>
+Make one CWD with the full target directory and then operate on the file &quot;normally&quot;.
+This is somewhat more standards compliant than 'nocwd' but without the full penalty of 'multicwd'.
+</DL>
+</DL>
+
+<P>
+</DL>
+<A NAME="lbAN">&nbsp;</A>
+<H2>Protocol options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-transfertext</B>
+
+<DD>
+A 1 tells the extension to use ASCII mode for ftp transfers,
+instead of the default binary transfer. For win32 systems it does not set the
+stdout to binary mode. This option can be usable when transferring text data
+between systems with different views on certain characters, such as newlines
+or similar.
+<P>
+<B>NOTE:</B> TclCurl does not do a complete ASCII conversion when doing ASCII
+transfers over FTP. This is a known limitation/flaw that nobody has
+rectified. TclCurl simply sets the mode to ascii and performs a standard
+transfer.
+<P>
+<DT><B>-proxytransfermode</B>
+
+<DD>
+If set to 1, TclCurl sets the transfer mode (binary or ASCII) for FTP transfers
+done via an HTTP proxy, by appending ;type=a or ;type=i to the URL.
+Without this setting, or it being set to 0, the default, <B>-transfertext</B> has
+no effect when doing FTP via a proxy. Beware that not all proxies support this feature.
+<P>
+<DT><B>-crlf</B>
+
+<DD>
+Convert unix newlines to CRLF newlines on FTP transfers.
+<P>
+<DT><B>-range</B>
+
+<DD>
+Pass a string as parameter, which should contain the specified range you
+want. It should be in the format
+<I>X-Y</I>
+
+, where X or Y may be left out. HTTP
+transfers also support several intervals, separated with commas as in
+<I>X-Y,N-M</I>
+
+Using this kind of multiple intervals will cause the HTTP server to send the
+response document in pieces (using standard MIME separation techniques).
+<P>
+Ranges only work on HTTP, FTP and FILE transfers.
+<P>
+<DT><B>-resumefrom</B>
+
+<DD>
+Pass the offset in number of bytes that you want the transfer to start from.
+Set this option to 0 to make the transfer start from the beginning
+(effectively disabling resume).
+<P>
+For FTP, set this option to -1 to make the transfer start from the end of the
+target file (useful to continue an interrupted upload). 
+<P>
+<DT><B>-customrequest</B>
+
+<DD>
+Pass a string as parameter. It will be used instead of GET or HEAD when doing
+the HTTP request. This is useful for doing DELETE or other more obscure HTTP
+requests. Do not do this at will, make sure your server supports the command first.
+<P>
+Note that TclCurl will still act and assume the keyword it would use if you
+do not set your custom and it will act according to that. Thus, changing this
+to a HEAD when TclCurl otherwise would do a GET might cause TclCurl to act funny,
+and similar. To switch to a proper HEAD, use <B>-nobody</B>, to switch to a proper
+POST, use <B>-post</B> or <B>-postfields</B> and so on.
+<P>
+<DT><B>-filetime</B>
+
+<DD>
+If you pass a 1, TclCurl will attempt to get the
+modification date of the remote document in this operation. This requires that
+the remote server sends the time or replies to a time querying command. The
+getinfo procedure with the
+<I>filetime</I>
+
+argument can be used after a transfer to extract the received time (if any).
+<P>
+<DT><B>-nobody</B>
+
+<DD>
+A 1 tells the library not to include the body-part in the
+output. This is only relevant for protocols that have a separate header and
+body part. On HTTP(S) servers, this will make TclCurl do a HEAD request.
+<P>
+To change request to GET, you should use <B>httpget</B>. Change request
+to POST with <B>post</B> etc.
+<P>
+<DT><B>-infilesize</B>
+
+<DD>
+When uploading a file to a remote site, this option should be used to tell
+TclCurl what the expected size of the infile is.
+<P>
+This option is mandatory for uploading using SCP.
+<P>
+<DT><B>-upload</B>
+
+<DD>
+A 1 tells the library to prepare for an upload. The
+<B>-infile</B> and <B>-infilesize</B> options are also interesting for uploads.
+If the protocol is HTTP, uploading means using the PUT request unless you tell
+TclCurl otherwise.
+<P>
+Using PUT with HTTP 1.1 implies the use of a &quot;Expect: 100-continue&quot; header.
+You can disable this header with <B>-httpheader</B> as usual.
+<P>
+If you use PUT to a HTTP 1.1 server, you can upload data without knowing the
+size before starting the transfer if you use chunked encoding. You enable this
+by adding a header like &quot;Transfer-Encoding: chunked&quot; with <B>-httpheader</B>.
+With HTTP 1.0 or without chunked transfer, you must specify the size.
+<P>
+<DT><B>-maxfilesize</B>
+
+<DD>
+This allows you to specify the maximum size (in bytes) of a file to download.
+If the file requested is larger than this value, the transfer will not start
+and error 'filesize exceeded' (63) will be returned.
+<P>
+NOTE: The file size is not always known prior to download, and for such files
+this option has no effect even if the file transfer ends up being larger than
+this given limit. This concerns both FTP and HTTP transfers.
+<P>
+<DT><B>-timecondition</B>
+
+<DD>
+This defines how the <B>timevalue</B> value is treated. You can set this
+parameter to <B>ifmodsince</B> or <B>ifunmodsince</B>.  This feature applies to
+HTTP and FTP.
+<P>
+<DT><B>-timevalue</B>
+
+<DD>
+This should be the time in seconds since 1 jan 1970, and the time will be
+used in a condition as specified with <B>timecondition</B>.
+<P>
+<P>
+</DL>
+<A NAME="lbAO">&nbsp;</A>
+<H2>Connection options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-timeout</B>
+
+<DD>
+Pass the maximum time in seconds that you allow
+the TclCurl transfer operation to take. Do note that normally, name lookups
+may take a considerable time and that limiting the operation to less than a
+few minutes risks aborting perfectly normal operations. This option will
+cause libcurl to use the SIGALRM to enable time-outing system calls.
+<P>
+In unix-like systems, this might cause signals to be used unless
+<B>-nosignal</B> is used.
+<P>
+<DT><B>-timeoutms</B>
+
+<DD>
+Like <B>timeout</B> but takes a number of milliseconds instead. If libcurl is
+built to use the standard system name resolver, that part will still use
+full-second resolution for timeouts.
+<P>
+<DT><B>-lowspeedlimit</B>
+
+<DD>
+Pass the speed in bytes per second that the transfer should be below during
+<B>lowspeedtime</B>
+
+seconds for the extension to consider it too slow and abort.
+<P>
+<DT><B>-lowspeedtime</B>
+
+<DD>
+Pass the time in seconds that the transfer should be below the
+<B>lowspeedlimit</B>
+
+for the extension to consider it too slow and abort.
+<P>
+<DT><B>-maxsendspeed</B>
+
+<DD>
+Pass a speed in bytes per seconds. If an upload exceeds this speed on cumulative
+average during the transfer, the transfer will pause to keep the average rate less
+than or equal to the parameter value.  Defaults to unlimited speed.
+<P>
+<DT><B>-maxrecvspeed</B>
+
+<DD>
+Pass a speed in bytes per second. If a download exceeds this speed on cumulative
+average during the transfer, the transfer will pause to keep the average rate less
+than or equal to the parameter value. Defaults to unlimited speed.
+<P>
+<DT><B>-maxconnects</B>
+
+<DD>
+Sets the persistant connection cache size in all the protocols that support 
+persistent conecctions. The set amount will be the maximum amount of simultaneous
+connections that TclCurl may cache in this easy handle. Default is 5, and there
+isn't much point in changing this value unless you are perfectly aware of how this
+work and changes TclCurl's behaviour.
+<P>
+When reaching the maximum limit, TclCurl closes the oldest connection in the cache
+to prevent the number of open connections to increase. 
+<P>
+<B>Note</B>: if you have already performed transfers with this curl handle,
+setting a smaller
+<B>maxconnects</B>
+
+than before may cause open connections to unnecessarily get closed.
+<P>
+<B>Note</B> that if you add this easy handle to a multi handle, this setting is not
+being acknowledged, instead you must configure the multi handle its own
+<B>maxconnects</B> option.
+<P>
+<DT><B>-connecttimeout</B>
+
+<DD>
+Maximum time in seconds that you allow the
+connection to the server to take.  This only limits the connection phase, once
+it has connected, this option is of no more use. Set to zero to disable
+connection timeout (it will then only timeout on the internal timeouts).
+<P>
+In unix-like systems, this might cause signals to be used unless
+<B>-nosignal</B> is set.
+<P>
+<DT><B>-connecttimeoutms</B>
+
+<DD>
+Like <B>connecttimeout</B> but takes a number of milliseconds instead. If libcurl
+is built to use the standard system name resolver, that part will still use
+full-second resolution for timeouts.
+<P>
+<DT><B>-ipresolve</B>
+
+<DD>
+Allows an application to select what kind of IP addresses to use when
+resolving host names. This is only interesting when using host names
+that resolve addresses using more than one version of IP. The allowed
+values are:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>whatever</B>
+
+<DD>
+Default, resolves addresses to all IP versions that your system allows.
+<DT><B>v4</B>
+
+<DD>
+Resolve to ipv4 addresses.
+<DT><B>v6</B>
+
+<DD>
+Resolve to ipv6 addresses.
+</DL>
+</DL>
+
+<P>
+</DL>
+<A NAME="lbAP">&nbsp;</A>
+<H2>SSL and security options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-sslcert</B>
+
+<DD>
+Pass a string as parameter. The string should be the file name of your certificate.
+The default format is &quot;PEM&quot; and can be changed with <B>-sslcerttype</B>.
+<P>
+With NSS this is the nickname of the certificate you wish to authenticate with.
+<P>
+<DT><B>-sslcerttype</B>
+
+<DD>
+Pass a string as parameter. The string should be the format of your certificate.
+Supported formats are &quot;PEM&quot; and &quot;DER&quot;.
+<P>
+<DT><B>-sslkey</B>
+
+<DD>
+Pass a pointer to a zero terminated string as parameter. The string should be
+the file name of your private key. The default format is &quot;PEM&quot; and can be
+changed with <B>-sslkeytype</B>.
+<P>
+<DT><B>-sslkeytype</B>
+
+<DD>
+Pass a pointer to a zero terminated string as parameter. The string should be
+the format of your private key. Supported formats are &quot;PEM&quot;, &quot;DER&quot; and &quot;ENG&quot;
+<P>
+<B>NOTE:</B>The format &quot;ENG&quot; enables you to load the private key from a crypto
+engine. in this case <B>-sslkey</B> is used as an identifier passed to
+the engine. You have to set the crypto engine with <B>-sslengine</B>. The &quot;DER&quot;
+format key file currently does not work because of a bug in OpenSSL.
+<P>
+<DT><B>-keypasswd</B>
+
+<DD>
+Pass a string as parameter. It will be used as the password required to use the
+<B>-sslkey</B> or <B>-sshprivatekeyfile</B> private key.
+<P>
+You never need a pass phrase to load a certificate but you need one to load you
+private key. 
+<P>
+This option used to be known as <B>-sslkeypasswd</B> and <B>-sslcertpasswd</B>.
+<P>
+<DT><B>-sslengine</B>
+
+<DD>
+Pass a string as parameter. It will be used as the identifier for the crypto
+engine you want to use for your private key.
+<P>
+<B>NOTE:</B>If the crypto device cannot be loaded, an error will be returned.
+<P>
+<DT><B>-sslenginedefault</B>
+
+<DD>
+Pass a 1 to set the actual crypto engine as the default for (asymmetric) crypto operations.
+<P>
+<B>NOTE:</B>If the crypto device cannot be set, an error will be returned.
+<P>
+<DT><B>-sslversion</B>
+
+<DD>
+Use it to set what version of SSL/TLS to use. The available options are: 
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>default</B>
+
+<DD>
+The default action. This will attempt to figure out the remote SSL protocol version,
+i.e. either SSLv3 or TLSv1 (but not SSLv2, which became disabled by default with 7.18.1). 
+<DT><B>tlsv1</B>
+
+<DD>
+Force TLSv1
+<DT><B>sslv2</B>
+
+<DD>
+Force SSLv2
+<DT><B>sslv3</B>
+
+<DD>
+Force SSLv3
+</DL>
+</DL>
+
+<P>
+<DT><B>-sslverifypeer</B>
+
+<DD>
+This option determines whether TclCurl verifies the authenticity of the peer's certificate.
+A 1 means it verifies; zero means it doesn't. The default is 1. 
+<P>
+When negotiating an SSL connection, the server sends a certificate indicating its identity.
+TclCurl verifies whether the certificate is authentic, i.e. that you can trust that the
+server is who the certificate says it is. This trust is based on a chain of digital signatures,
+rooted in certification authority (CA) certificates you supply.
+<P>
+TclCurl uses a default bundle of CA certificates that comes with libcurl but you can specify
+alternate certificates with the <B>-cainfo</B> or the <B>-capath</B> options.
+<P>
+When <B>-sslverifypeer</B> is nonzero, and the verification fails to prove that the certificate
+is authentic, the connection fails. When the option is zero, the connection succeeds regardless. 
+<P>
+Authenticating the certificate is not by itself very useful. You typically want to ensure
+that the server, as authentically identified by its certificate, is the server you mean to
+be talking to, use <B>-sslverifyhost</B> to control that.
+<P>
+<DT><B>-cainfo</B>
+
+<DD>
+Pass a file naming holding the certificate to verify the peer with. This only
+makes sense when used in combination with the <B>-sslverifypeer</B> option, if
+it is set to zero <B>-cainfo</B> need not even indicate an accessible file.
+<P>
+When built against NSS this is the directory that the NSS certificate database
+resides in.
+<P>
+<DT><B>-issuercert</B>
+
+<DD>
+Pass a string naming a file holding a CA certificate in PEM format. If the option
+is set, an additional check against the peer certificate is performed to verify
+the issuer is indeed the one associated with the certificate provided by the option.
+This additional check is useful in multi-level PKI where one need to enforce the peer
+certificate is from a specific branch of the tree.
+<BR>&nbsp;
+This option makes sense only when used in combination with the <B>-sslverifypeer</B>
+option. Otherwise, the result of the check is not considered as failure.
+<P>
+<DT><B>-capath</B>
+
+<DD>
+Pass the directory holding multiple CA certificates to verify the peer with.
+The certificate directory must be prepared using the openssl c_rehash utility.
+This only makes sense when used in combination with the  <B>-sslverifypeer</B>
+option, if it is set to zero, <B>-capath</B> need not even indicate an accessible
+path.
+<P>
+This option apparently does not work in Windows due to some limitation in openssl.
+<P>
+This option is OpenSSL-specific and does nothing if libcurl is built to use GnuTLS.
+<P>
+<DT><B>-crlfile</B>
+
+<DD>
+Pass a string naming a file with the concatenation of CRL (in PEM format) to use in
+the certificate validation that occurs during the SSL exchange.
+<BR>&nbsp;
+When libcurl is built to use NSS or GnuTLS, there is no way to influence the use of
+CRL passed to help in the verification process. When built with OpenSSL support,
+X509_V_FLAG_CRL_CHECK and X509_V_FLAG_CRL_CHECK_ALL are both set, requiring CRL
+check against all the elements of the certificate chain if a CRL file is passed.
+<BR>&nbsp;
+This option makes sense only when used in combination with the <B>-sslverifypeer</B>
+option. 
+<P>
+<DT><B>-randomfile</B>
+
+<DD>
+Pass a file name. The file will be used to read from to seed the random engine
+for SSL. The more random the specified file is, the more secure will the SSL
+connection become.
+<P>
+<DT><B>-egdsocket</B>
+
+<DD>
+Pass a path name to the Entropy Gathering Daemon socket. It will be used to seed
+the random engine for SSL.
+<P>
+<DT><B>-sslverifyhost</B>
+
+<DD>
+This option determines whether TclCurl verifies that the server claims to be
+who you want it to be.
+<P>
+When negotiating an SSL connection, the server sends a certificate
+indicating its identity.
+<P>
+When <B>-sslverifyhost</B> is set to 2, that certificate must indicate
+that the server is the server to which you meant to connect, or the
+connection fails.
+<P>
+TclCurl considers the server the intended one when the Common Name field
+or a Subject Alternate Name field in the certificate matches the host
+name in the URL to which you told Curl to connect.
+<P>
+When set to 1, the certificate must contain a Common Name field,
+but it does not matter what name it says. (This is not ordinarily a
+useful setting).
+<P>
+When the value is 0, the connection succeeds regardless of the names in
+the certificate.
+<P>
+The default is 2.
+<P>
+This option controls the identity that the server <I>claims</I>. The server
+could be lying. To control lying, see <B>sslverifypeer</B>.
+<P>
+<DT><B>-sslcypherlist</B>
+
+<DD>
+Pass a string holding the ciphers to use for the SSL connection. The list must
+consists of one or more cipher strings separated by colons. Commas or spaces
+are also acceptable separators but colons are normally used, , - and + can be
+used as operators. 
+<P>
+For OpenSSL and GnuTLS valid examples of cipher lists include 'RC4-SHA', 'SHA1+DES',
+
+<P>
+You will find more details about cipher lists on this URL:
+<BR>&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="http://www.openssl.org/docs/apps/ciphers.html">http://www.openssl.org/docs/apps/ciphers.html</A>
+<P>
+For NSS valid examples of cipher lists include 'rsa_rc4_128_md5', 'rsa_aes_128_sha',
+etc. With NSS you don't add/remove ciphers. If you use this option then all known
+ciphers are disabled and only those passed in are enabled.
+<BR>&nbsp;
+You'll find more details about the NSS cipher lists on this URL:
+<BR>&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="http://directory.fedora.redhat.com/docs/mod_nss.html">http://directory.fedora.redhat.com/docs/mod_nss.html</A>
+<P>
+<DT><B>-sslsessionidcache</B>
+
+<DD>
+Pass a 0 to disable TclCurl's use of SSL session-ID caching or a 1 to enable it.
+By default all transfers are done using the cache. Note that while nothing ever
+should get hurt by attempting to reuse SSL session-IDs, there seem to be broken SSL
+implementations in the wild that may require you to disable this in order for you to
+succeed.
+<P>
+<DT><B>-krblevel</B>
+
+<DD>
+Set the kerberos security level for FTP, this also enables kerberos awareness.
+This is a string, 'clear', 'safe', 'confidential' or 'private'. If the string
+is set but does not match one of these, 'private' will be used. Set the string
+to NULL to disable kerberos4. Set the string to &quot;&quot; to disable kerberos
+support for FTP.
+<P>
+</DL>
+<A NAME="lbAQ">&nbsp;</A>
+<H2>SSH options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-sshauthtypes</B>
+
+<DD>
+The allowed types are:
+<P>
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>publickey</B>
+
+<DD>
+<DT><B>password</B>
+
+<DD>
+<DT><B>host</B>
+
+<DD>
+<DT><B>keyboard</B>
+
+<DD>
+<DT><B>any</B>
+
+<DD>
+To let TclCurl pick one
+</DL>
+</DL>
+
+<P>
+<DT><B>-sshhostpublickeymd5</B>
+
+<DD>
+Pass a string containing 32 hexadecimal digits. The string should be the 128
+bit MD5 cheksum of the remote host public key, and TclCurl will reject the
+connection to the host unless the md5sums match. This option is only for SCP
+and SFTP transfers.
+<P>
+<DT><B>-publickeyfile</B>
+
+<DD>
+Pass the file name for your public key. If not used, TclCurl defaults to using <B>~/.ssh/id_dsa.pub</B>.
+<P>
+<DT><B>-privatekeyfile</B>
+
+<DD>
+Pass the file name for your private key. If not used, TclCurl defaults to using <B>~/.ssh/id_dsa</B>.
+If the file is password-protected, set the password with <B>-keypasswd</B>.
+<P>
+</DL>
+<A NAME="lbAR">&nbsp;</A>
+<H2>Other options</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>-headervar</B>
+
+<DD>
+Name of the Tcl array variable where TclCurl will store the headers returned
+by the server.
+<P>
+When a server sends a chunked encoded transfer, it may contain a
+trailer. That trailer is identical to a HTTP header and if such a trailer is
+received it is passed to the application using this callback as well. There
+are several ways to detect it being a trailer and not an ordinary header: 1)
+it comes after the response-body. 2) it comes after the final header line (CR
+LF) 3) a Trailer: header among the response-headers mention what header to
+expect in the trailer.
+<P>
+<DT><B>-bodyvar</B>
+
+<DD>
+Name of the Tcl variable where TclCurl will store the file requested, the file
+may contain text or binary data.
+<P>
+<DT><B>-canceltransvar</B>
+
+<DD>
+Name of a Tcl variable, in case you have defined a procedure to call with
+<B>-progressproc</B> setting this variable to '1' will cancel the transfer.
+<P>
+<DT><B>-command</B>
+
+<DD>
+Executes the given command after the transfer is done, since it only works
+with blocking transfers, it is pretty much useless.
+<P>
+<DT><B>-share</B>
+
+<DD>
+Pass a share handle as a parameter. The share handle must have been created by
+a previous call to <B>curl::shareinit</B>. Setting this option, will make this
+handle use the data from the shared handle instead of keeping the data to itself.
+See <I>tclcurl_share</I> for details.
+<P>
+<DT><B>-newfileperms</B>
+
+<DD>
+Pass a number as a parameter, containing the value of the permissions that will
+be assigned to newly created files on the remote server. The default value is 0644,
+but any valid value can be used. The only protocols that can use this are <A HREF="sftp://,">sftp://,</A>
+scp:// and <A HREF="file://.">file://.</A>
+<P>
+<DT><B>-newdirectoryperms</B>
+
+<DD>
+Pass a number as a parameter, containing the value of the permissions that will be
+assigned to newly created directories on the remote server. The default value is 0755,
+but any valid value can be used. The only protocols that can use this are <A HREF="sftp://,">sftp://,</A> scp://
+and <A HREF="file://.">file://.</A>
+<P>
+</DL>
+<A NAME="lbAS">&nbsp;</A>
+<H2>NOT SUPPORTED</H2>
+
+Some of the options libcurl offers are not supported, I don't think them
+worth supporting in TclCurl but if you need one of them don't forget to
+complain:
+<P>
+<B>CURLOPT_FRESH_CONNECT, CURLOPT_FORBID_REUSE, CURLOPT_PRIVATE,</B>
+
+<B>CURLOPT_SSL_CTX_FUNCTION, CURLOPT_SSL_CTX_DATA, CURLOPT_SSL_CTX_FUNCTION and</B>
+
+<B>CURLOPT_CONNECT_ONLY, CURLOPT_OPENSOCKETFUNCTION, CURLOPT_OPENSOCKETDATA.</B>
+
+<P>
+<A NAME="lbAT">&nbsp;</A>
+<H2>curlHandle perform</H2>
+
+This procedure is called after the
+<B>init</B>
+
+and all the
+<B>configure</B>
+
+calls are made, and will perform the transfer as described in the options.
+<P>
+It must be called with the same
+<I>curlHandle</I> <B>curl::init</B> call returned.
+You can do any amount of calls to perform while using the same handle. If you
+intend to transfer more than one file, you are even encouraged to do
+so. TclCurl will then attempt to re-use the same connection for the following
+transfers, thus making the operations faster, less CPU intense and using less
+network resources. Just note that you will have to use
+<I>configure</I>
+
+between the invokes to set options for the following perform.
+<P>
+You must never call this procedure simultaneously from two places using the
+same handle. Let it return first before invoking it another time. If
+you want parallel transfers, you must use several curl handles.
+<DL COMPACT>
+<DT><B>RETURN VALUE</B>
+
+<DD>
+
+<I>errorbuffer</I>
+
+was set with
+<I>configure</I>
+
+there will be a readable error message.
+The error codes are:
+<DT>1<DD>
+Unsupported protocol. This build of TclCurl has no support for this protocol.
+<DT>2<DD>
+Very early initialization code failed. This is likely to be and internal error
+or problem.
+<DT>3<DD>
+URL malformat. The syntax was not correct.
+<DT>5<DD>
+Couldn't resolve proxy. The given proxy host could not be resolved.
+<DT>6<DD>
+Couldn't resolve host. The given remote host was not resolved.
+<DT>7<DD>
+Failed to connect to host or proxy.
+<DT>8<DD>
+FTP weird server reply. The server sent data TclCurl couldn't parse.
+The given remote server is probably not an OK FTP server.
+<DT>9<DD>
+We were denied access to the resource given in the URL. For FTP, this occurs
+while trying to change to the remote directory.
+<DT>11<DD>
+FTP weird PASS reply. TclCurl couldn't parse the reply sent to the PASS request.
+<DT>13<DD>
+FTP weird PASV reply, TclCurl couldn't parse the reply sent to the PASV or EPSV
+request.
+<DT>14<DD>
+FTP weird 227 format. TclCurl couldn't parse the 227-line the server sent.
+<DT>15<DD>
+FTP can't get host. Couldn't resolve the host IP we got in the 227-line.
+<DT>17<DD>
+FTP couldn't set type. Couldn't change transfer method to either binary or
+ascii.
+<DT>18<DD>
+Partial file. Only a part of the file was transfered, this happens when
+the server first reports an expected transfer size and then delivers data
+that doesn't match the given size.
+<DT>19<DD>
+FTP couldn't RETR file, we either got a weird reply to a 'RETR' command or
+a zero byte transfer.
+<DT>21<DD>
+Quote error. A custom 'QUOTE' returned error code 400 or higher (for FTP) or
+otherwise indicated unsuccessful completion of the command.
+<DT>22<DD>
+HTTP returned error. This return code only appears if <B>-failonerror</B> is
+used and the HTTP server returns an error code that is 400 or higher.
+<DT>23<DD>
+Write error. TclCurl couldn't write data to a local filesystem or an error
+was returned from a write callback.
+<DT>25<DD>
+Failed upload failed. For FTP, the server typcially denied the STOR
+command. The error buffer usually contains the server's explanation to this.
+<DT>26<DD>
+Read error. There was a problem reading from a local file or an error was returned
+from the read callback.
+<DT>27<DD>
+Out of memory. A memory allocation request failed. This should never happen unless
+something weird is going on in your computer.
+<DT>28<DD>
+Operation timeout. The specified time-out period was reached according to the
+conditions.
+<DT>30<DD>
+The FTP PORT command failed, not all FTP servers support the PORT command,
+try  doing a transfer using PASV instead!.
+<DT>31<DD>
+FTP couldn't use REST. This command is used for resumed FTP transfers.
+<DT>33<DD>
+Range error. The server doesn't support or accept range requests.
+<DT>34<DD>
+HTTP post error. Internal post-request generation error.
+<DT>35<DD>
+SSL connect error. The SSL handshaking failed, the error buffer may have
+a clue to the reason, could be certificates, passwords, ...
+<DT>36<DD>
+FTP bad download resume. Couldn't continue an earlier aborted download, probably
+because you are trying to resume beyond the file size.
+<DT>37<DD>
+A file given with FILE:// couldn't be read. Did you checked the permissions?
+<DT>38<DD>
+LDAP cannot bind. LDAP bind operation failed.
+<DT>39<DD>
+LDAP search failed.
+<DT>41<DD>
+A required zlib function was not found.
+<DT>42<DD>
+Aborted by callback. An application told TclCurl to abort the operation.
+<DT>43<DD>
+Internal error. A function was called with a bad parameter.
+<DT>45<DD>
+Interface error. A specified outgoing interface could not be used.
+<DT>47<DD>
+Too many redirects. When following redirects, TclCurl hit the maximum amount, set
+your limit with --maxredirs
+<DT>48<DD>
+Unknown TELNET option specified.
+<DT>49<DD>
+A telnet option string was illegally formatted.
+<DT>51<DD>
+The remote peer's SSL certificate or SSH md5 fingerprint wasn't ok
+<DT>52<DD>
+The server didn't reply anything, which here is considered an error.
+<DT>53<DD>
+The specified crypto engine wasn't found.
+<DT>54<DD>
+Failed setting the selected SSL crypto engine as default!
+<DT>55<DD>
+Failed sending network data.
+<DT>56<DD>
+Failure with receiving network data.
+<DT>58<DD>
+Problem with the local client certificate.
+<DT>59<DD>
+Couldn't use specified SSL cipher.
+<DT>60<DD>
+Peer certificate cannot be authenticated with known CA certificates.
+<DT>61<DD>
+Unrecognized transfer encoding.
+<DT>62<DD>
+Invalid LDAP URL.
+<DT>63<DD>
+Maximum file size exceeded.
+<DT>64<DD>
+SSL use failed.
+<DT>65<DD>
+Sending the data requires a rewind that failed, since TclCurl should
+take care of it for you, it means you found a bug.
+<DT>66<DD>
+Failed to initialise ssl engine.
+<DT>67<DD>
+Failed to login, user password or similar was not accepted.
+<DT>68<DD>
+File not found on TFTP server.
+<DT>69<DD>
+There is a permission problem with the TFTP request.
+<DT>70<DD>
+The remote server has run out of space.
+<DT>71<DD>
+Illegal TFTP operation.
+<DT>72<DD>
+Unknown transfer ID.
+<DT>73<DD>
+TFTP file already exists and will not be overwritten.
+<DT>74<DD>
+No such user in the TFTP server and good behaving TFTP server
+should never return this.
+<DT>75<DD>
+Character conversion failed.
+<DT>77<DD>
+Problem with reading the SSL CA cert (path? access rights?).
+<DT>78<DD>
+Remote file not found
+<DT>79<DD>
+Error from the SSH layer
+<DT>80<DD>
+Failed to shut down the SSL connection
+<DT>82<DD>
+Failed to load CRL file
+<DT>83<DD>
+Issuer check failed
+<P>
+</DL>
+<A NAME="lbAU">&nbsp;</A>
+<H2>curlHandle getinfo option</H2>
+
+Request internal information from the curl session with this procedure.
+This procedure is intended to get used *AFTER* a performed transfer,
+and can be relied upon only if the <B>perform</B> returns 0.  Use
+this function AFTER a performed transfer if you want to get
+transfer-oriented data.
+<P>
+The following information can be extracted:
+<P>
+<DL COMPACT>
+<DT><B>effectiveurl</B>
+
+<DD>
+Returns the last used effective URL.
+<P>
+<DT><B>responsecode</B>
+
+<DD>
+Returns the last received HTTP or FTP code. This will be zero if no server
+response code has been received. Note that a proxy's CONNECT response should
+be read with <B>httpconnectcode</B> and not this.
+<P>
+<DT><B>httpconnectcode</B>
+
+<DD>
+Returns the last received proxy response code to a CONNECT request.
+<P>
+<DT><B>filetime</B>
+
+<DD>
+Returns the remote time of the retrieved document (in number of seconds
+since 1 jan 1970 in the GMT/UTC time zone). If you get -1,
+it can be because of many reasons (unknown, the server hides it or the
+server doesn't support the command that tells document time etc) and the time
+of the document is unknown.
+<P>
+In order for this to work you have to set the <B>-filetime</B> option before
+the transfer.
+<P>
+<DT><B>namelookuptime</B>
+
+<DD>
+Returns the time, in seconds, it took from the start until the name resolving
+was completed.
+<P>
+<DT><B>connecttime</B>
+
+<DD>
+Returns the time, in seconds, it took from the start until the connect to the
+remote host (or proxy) was completed.
+<P>
+<DT><B>appconnecttime</B>
+
+<DD>
+Returns the time, in seconds, it took from the start until the SSL/SSH
+connect/handshake to the remote host was completed. This time is most often very
+near to the PRETRANSFER time, except for cases such as HTTP pippelining where the
+pretransfer time can be delayed due to waits in line for the pipeline and more.
+<P>
+<DT><B>pretransfertime</B>
+
+<DD>
+Returns the time, in seconds, it took from the start until the file transfer
+is just about to begin. This includes all pre-transfer commands and
+negotiations that are specific to the particular protocol(s) involved.
+<P>
+<DT><B>starttransfertime</B>
+
+<DD>
+Returns the time, in seconds, it took from the start until the first byte
+is just about to be transfered. This includes the <B>pretransfertime</B>,
+and also the time the server needs to calculate the result.
+<P>
+<DT><B>totaltime</B>
+
+<DD>
+Returns the total transaction time, in seconds, for the previous transfer,
+including name resolving, TCP connect etc.
+<P>
+<DT><B>redirecturl</B>
+
+<DD>
+Returns the URL a redirect would take you to if you enable <B>followlocation</B>.
+This can come very handy if you think using the built-in libcurl redirect logic
+isn't good enough for you but you would still prefer to avoid implementing all
+the magic of figuring out the new URL.
+<P>
+<DT><B>redirecttime</B>
+
+<DD>
+Returns the total time, in seconds, it took for all redirection steps
+including name lookup, connect, pretransfer and transfer before
+the final transaction was started, it returns the complete execution
+time for multiple redirections, so it returns zero if no redirections
+were needed.
+<P>
+<DT><B>redirectcount</B>
+
+<DD>
+Returns the total number of redirections that were actually followed.
+<P>
+<DT><B>numconnects</B>
+
+<DD>
+Returns how many new connections TclCurl had to create to achieve the
+previous transfer (only the successful connects are counted). Combined
+with <B>redirectcount</B> you are able to know how many times TclCurl
+successfully reused existing connection(s) or not. See the Connection
+Options of <B>setopt</B> to see how TclCurl tries to make persistent
+connections to save time.
+<P>
+<DT><B>primaryip</B>
+
+<DD>
+Returns the IP address of the most recent connection done with this handle.
+This string may be IPv6 if that's enabled.
+<P>
+<DT><B>sizeupload</B>
+
+<DD>
+Returns the total amount of bytes that were uploaded.
+<P>
+<DT><B>sizedownload</B>
+
+<DD>
+Returns the total amount of bytes that were downloaded. The amount is only
+for the latest transfer and will be reset again for each new transfer.
+<P>
+<DT><B>speeddownload</B>
+
+<DD>
+Returns the average download speed, measured in bytes/second, for the complete download.
+<P>
+<DT><B>speedupload</B>
+
+<DD>
+Returns the average upload speed, measured in bytes/second, for the complete upload.
+<P>
+<DT><B>headersize</B>
+
+<DD>
+Returns the total size in bytes of all the headers received.
+<P>
+<DT><B>requestsize</B>
+
+<DD>
+Returns the total size of the issued requests. This is so far only for HTTP
+requests. Note that this may be more than one request if followLocation is true.
+<P>
+<DT><B>sslverifyresult</B>
+
+<DD>
+Returns the result of the certification verification that was requested
+(using the -sslverifypeer option to configure).
+<P>
+<DT><B>sslengines</B>
+
+<DD>
+Returns a <B>list</B> of the OpenSSL crypto-engines supported. Note that engines are
+normally implemented in separate dynamic libraries. Hence not all the returned
+engines may be available at run-time.
+<P>
+<DT><B>contentlengthdownload</B>
+
+<DD>
+Returns the content-length of the download. This is the value read from the
+<B>Content-Length:</B>
+
+field.
+<P>
+<DT><B>contentlengthupload</B>
+
+<DD>
+Returns the specified size of the upload.
+<P>
+<DT><B>contenttype</B>
+
+<DD>
+Returns the content-type of the downloaded object. This is the value
+read from the Content-Type: field. If you get an empty string, it  means
+the server didn't send a valid Content-Type header or that the protocol
+used doesn't support this.
+<P>
+<DT><B>httpauthavail</B>
+
+<DD>
+Returns a list with the authentication method(s) available.
+<P>
+<DT><B>proxyauthavail</B>
+
+<DD>
+Returns a list with the authentication method(s) available for your
+proxy athentication.
+<P>
+<DT><B>oserrno</B>
+
+<DD>
+Returns the errno value from a connect failure.
+<P>
+<DT><B>cookielist</B>
+
+<DD>
+Returns a list of all cookies TclCurl knows (expired ones, too). If there
+are no cookies (cookies for the handle have not been enabled or simply
+none have been received) the list will be empty.
+<P>
+<DT><B>ftpentrypath </B>
+
+<DD>
+Returns a string holding the path of the entry path. That is the initial path
+TclCurl ended up in when logging on to the remote FTP server. Returns an empty
+string if something is wrong.
+<P>
+</DL>
+<A NAME="lbAV">&nbsp;</A>
+<H2>curlHandle cleanup</H2>
+
+This procedure must be the last one to call for a curl session. It is the
+opposite of the
+<I>curl::init</I>
+
+procedure and must be called with the same
+<I>curlhandle</I>
+
+as input as the curl::init call returned.
+This will effectively close all connections TclCurl has used and possibly
+has kept open until now. Don't call this procedure if you intend to transfer
+more files.
+<P>
+<A NAME="lbAW">&nbsp;</A>
+<H2>curlHandle reset</H2>
+
+<P>
+Re-initializes all options previously set on a specified handle to the
+default values.
+<P>
+This puts back the handle to the same state as it was in when it was just
+created with curl::init.
+<P>
+It does not change the following information kept in the handle: live
+connections, the Session ID cache, the DNS cache, the cookies and shares.
+<P>
+<A NAME="lbAX">&nbsp;</A>
+<H2>curlHandle duphandle</H2>
+
+This procedure will return a new curl handle, a duplicate,
+using all the options previously set in the input curl handle.
+Both handles can subsequently be used independently and
+they must both be freed with
+<B>cleanup.</B>
+
+The new handle will not inherit any state information,
+connections, SSL sessions or cookies.
+<DL COMPACT>
+<DT><B>RETURN VALUE</B>
+
+<DD>
+A new curl handle or an error message if the copy fails.
+<P>
+</DL>
+<A NAME="lbAY">&nbsp;</A>
+<H2>curlHandle pause</H2>
+
+You can use this command from within a progress callback procedure
+to pause the transfer.
+<P>
+<A NAME="lbAZ">&nbsp;</A>
+<H2>curlHandle resume</H2>
+
+Resumes a transfer paused with <B>curlhandle pause</B>
+<P>
+<A NAME="lbBA">&nbsp;</A>
+<H2>curl::transfer</H2>
+
+In case you do not want to use persistant connections you can use this
+command, it takes the same arguments as the <I>curlHandle</I> <B>configure</B>
+and will init, configure, perform and cleanup a connection for you.
+<P>
+You can also get the <I>getinfo</I> information by using <I>-infooption variable</I>
+pairs, after the transfer <I>variable</I> will contain the value that would have
+been returned by <I>$curlHandle getinfo option</I>.
+<DL COMPACT>
+<DT><B>RETURN VALUE</B>
+
+<DD>
+The same error code <B>perform</B> would return.
+<P>
+</DL>
+<A NAME="lbBB">&nbsp;</A>
+<H2>curl::version</H2>
+
+Returns a string with the version number of tclcurl, libcurl and some of
+its important components (like OpenSSL version).
+<DL COMPACT>
+<DT><B>RETURN VALUE</B>
+
+<DD>
+The string with the version info.
+<P>
+</DL>
+<A NAME="lbBC">&nbsp;</A>
+<H2>curl::escape url</H2>
+
+This procedure will convert the given input string to an URL encoded string and
+return that. All input characters that are not a-z,
+A-Z or 0-9 will be converted to their &quot;URL escaped&quot; version (%NN where NN is a
+two-digit hexadecimal number)
+<DL COMPACT>
+<DT><B>RETURN VALUE</B>
+
+<DD>
+The converted string.
+</DL>
+<A NAME="lbBD">&nbsp;</A>
+<H2>curl::unescape url</H2>
+
+This procedure will convert the given URL encoded input string to a &quot;plain
+string&quot; and return that. All input characters that
+are URL encoded (%XX where XX is a two-digit hexadecimal number) will be
+converted to their plain text versions.
+<DL COMPACT>
+<DT><B>RETURN VALUE</B>
+
+<DD>
+The string unencoded.
+<P>
+</DL>
+<A NAME="lbBE">&nbsp;</A>
+<H2>curl::curlConfig option</H2>
+
+Returns some information about how you have
+<B>cURL</B>
+
+installed.
+<P>
+<DL COMPACT>
+<DT><B>-prefix</B>
+
+<DD>
+Returns the directory root where you installed
+<B>cURL</B>
+
+<DT><B>-feature</B>
+
+<DD>
+Returns a list containing particular main features the installed
+<B>libcurl</B>
+
+was built with. The list may include SSL, KRB4 or IPv6, do not
+assume any particular order.
+<DT><B>-vernum</B>
+
+<DD>
+Outputs  version  information  about  the installed libcurl, in
+numerical mode.  This outputs the  version  number,  in hexadecimal,
+with 8 bits for each part; major, minor, patch. So  that  libcurl
+7.7.4 would appear as 070704 and libcurl 12.13.14 would appear as
+0c0d0e...
+<P>
+</DL>
+<A NAME="lbBF">&nbsp;</A>
+<H2>curl::versioninfo option</H2>
+
+Returns information about various run-time features in TclCurl.
+<P>
+Applications should use this information to judge if things are possible to do
+or not, instead of using compile-time checks, as dynamic/DLL libraries can be
+changed independent of applications.
+<P>
+<DL COMPACT>
+<DT><B>-version</B>
+
+<DD>
+Returns the version of libcurl we are using.
+<P>
+<DT><B>-versionnum</B>
+
+<DD>
+Retuns the version of libcurl we are using in hexadecimal with 8 bits for each
+part; major, minor, patch. So  that  libcurl 7.7.4 would appear as 070704 and
+libcurl 12.13.14 would appear as 0c0d0e... Note that the initial zero might be
+omitted.
+<P>
+<DT><B>-host</B>
+
+<DD>
+Returns a string with the host information as discovered by a configure
+script or set by the build environment.
+<P>
+<DT><B>-features</B>
+
+<DD>
+Returns a list with the features compiled into libcurl, the possible elements are:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>ASYNCHDNS</B>
+
+<DD>
+Libcurl was built with support for asynchronous name lookups, which allows
+more exact timeouts (even on Windows) and less blocking when using the multi
+interface.
+<DT><B>CONV</B>
+
+<DD>
+Libcurl was built with support for character conversions.
+<DT><B>DEBUG</B>
+
+<DD>
+Libcurl was built with extra debug capabilities built-in. This is mainly of
+interest for libcurl hackers. 
+<DT><B>GSSNEGOTIATE</B>
+
+<DD>
+Supports HTTP GSS-Negotiate.
+<DT><B>IDN</B>
+
+<DD>
+Supports IDNA, domain names with international letters.
+<DT><B>IPV6</B>
+
+<DD>
+Supports IPv6.
+<DT><B>KERBEROS4</B>
+
+<DD>
+Supports kerberos4 (when using FTP).
+<DT><B>LARGEFILE</B>
+
+<DD>
+Libcurl was built with support for large files.
+<DT><B>LIBZ</B>
+
+<DD>
+Supports HTTP deflate using libz.
+<DT><B>NTML</B>
+
+<DD>
+Supports HTTP NTLM
+<DT><B>SPNEGO</B>
+
+<DD>
+Libcurl was built with support for SPNEGO authentication (Simple and Protected
+GSS-API Negotiation Mechanism, defined in RFC 2478)
+<DT><B>SSL</B>
+
+<DD>
+Supports SSL (HTTPS/FTPS)
+<DT><B>SSPI</B>
+
+<DD>
+Libcurl was built with support for SSPI. This is only available on Windows and
+makes libcurl use Windows-provided functions for NTLM authentication. It also
+allows libcurl to use the current user and the current user's password without
+the app having to pass them on.
+</DL>
+</DL>
+
+Do not assume any particular order.
+<P>
+<DT><B>-sslversion</B>
+
+<DD>
+Returns a string with the OpenSSL version used, like OpenSSL/0.9.6b.
+<P>
+<DT><B>-sslversionnum</B>
+
+<DD>
+Returns the numerical OpenSSL version value as defined by the OpenSSL project.
+If libcurl has no SSL support, this is 0.
+<P>
+<DT><B>-libzversion</B>
+
+<DD>
+Returns a string, there is no numerical  version, for example: 1.1.3.
+<P>
+<DT><B>-protocols</B>
+
+<DD>
+Lists what particular protocols the installed TclCurl was built to support.
+At the time of writing, this list may include HTTP, HTTPS, FTP, FTPS,
+FILE, TELNET, LDAP, DICT. Do not assume any particular order. The protocols
+will be listed using uppercase. There may be none, one or several protocols
+in the list.
+<P>
+</DL>
+<A NAME="lbBG">&nbsp;</A>
+<H2>curl::easystrerror errorCode</H2>
+
+This procedure returns a string describing the error code passed in the argument.
+<P>
+<A NAME="lbBH">&nbsp;</A>
+<H2>SEE ALSO</H2>
+
+<I>curl, <A HREF="http://curl.haxx.se/docs/httpscripting.html">The art of HTTP scripting</A> RFC 2396,</I>
+
+<P>
+
+<HR>
+<A NAME="index">&nbsp;</A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">curl::init</A><DD>
+<DT><A HREF="#lbAF">curlHandle configure ?options?</A><DD>
+<DT><A HREF="#lbAG">Behaviour options</A><DD>
+<DT><A HREF="#lbAH">Callback options</A><DD>
+<DT><A HREF="#lbAI">Error Options</A><DD>
+<DT><A HREF="#lbAJ">Network options</A><DD>
+<DT><A HREF="#lbAK">Names and Passwords options</A><DD>
+<DT><A HREF="#lbAL">HTTP options</A><DD>
+<DT><A HREF="#lbAM">FTP options</A><DD>
+<DT><A HREF="#lbAN">Protocol options</A><DD>
+<DT><A HREF="#lbAO">Connection options</A><DD>
+<DT><A HREF="#lbAP">SSL and security options</A><DD>
+<DT><A HREF="#lbAQ">SSH options</A><DD>
+<DT><A HREF="#lbAR">Other options</A><DD>
+<DT><A HREF="#lbAS">NOT SUPPORTED</A><DD>
+<DT><A HREF="#lbAT">curlHandle perform</A><DD>
+<DT><A HREF="#lbAU">curlHandle getinfo option</A><DD>
+<DT><A HREF="#lbAV">curlHandle cleanup</A><DD>
+<DT><A HREF="#lbAW">curlHandle reset</A><DD>
+<DT><A HREF="#lbAX">curlHandle duphandle</A><DD>
+<DT><A HREF="#lbAY">curlHandle pause</A><DD>
+<DT><A HREF="#lbAZ">curlHandle resume</A><DD>
+<DT><A HREF="#lbBA">curl::transfer</A><DD>
+<DT><A HREF="#lbBB">curl::version</A><DD>
+<DT><A HREF="#lbBC">curl::escape url</A><DD>
+<DT><A HREF="#lbBD">curl::unescape url</A><DD>
+<DT><A HREF="#lbBE">curl::curlConfig option</A><DD>
+<DT><A HREF="#lbBF">curl::versioninfo option</A><DD>
+<DT><A HREF="#lbBG">curl::easystrerror errorCode</A><DD>
+<DT><A HREF="#lbBH">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by man2html,
+using the manual pages.<BR>
+</BODY>
+</HTML>
diff --git a/doc/tclcurl.n b/doc/tclcurl.n
new file mode 100644 (file)
index 0000000..cb51d82
--- /dev/null
@@ -0,0 +1,2078 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" Adapted from libcurl docs by fandom@telefonica.net
+.TH TclCurl n "8 September 2008" "TclCurl 7.19.0 "TclCurl Easy Interface"
+.SH NAME
+TclCurl: - get  a  URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE or LDAP syntax.
+.SH SYNOPSIS
+.BI "curl::init"
+.sp
+.IB curlHandle " configure " "?options?"
+.sp
+.IB curlHandle " perform"
+.sp
+.IB curlHandle " getinfo " curlinfo_option
+.sp
+.IB curlhandle " cleanup"
+.sp
+.IB curlhandle " reset"
+.sp
+.IB curlHandle " duhandle"
+.sp
+.IB curlHandle " pause"
+.sp
+.IB curlHandle " resume"
+.sp
+.BI curl::transfer " ?options?"
+.sp
+.BI curl::version
+.sp
+.BI "curl::escape " url
+.sp
+.BI "curl::unescape " url
+.sp
+.BI "curl::curlConfig " option
+.sp
+.BI "curl::versioninfo " option
+.sp
+.BI "curl::easystrerror " errorCode
+
+.SH DESCRIPTION
+The TclCurl extension gives Tcl programmers access to the libcurl
+library written by \fBDaniel Stenberg\fP, with it you can download urls,
+upload them and many other neat tricks, for more information check
+.I http://curl.haxx.se
+.SH curl::init
+This procedure must be the first one to call, it returns a
+.I curlHandle
+that you need to use to invoke TclCurl procedures. The init calls intializes
+curl and this call MUST have a corresponding call to
+.I cleanup
+when the operation is completed.
+You should perform all your sequential file transfers using the same
+curlHandle. This enables TclCurl to use persistant connections when
+possible.
+.sp
+.B RETURN VALUE
+.sp
+.I curlHandle
+to use.
+.SH curlHandle configure ?options?
+.sp
+.B configure
+is called to set the options for the transfer. Most operations in TclCurl
+have default actions, and by using the appropriate options you can
+make them behave differently (as documented). All options are set with
+the \fIoption\fP followed by a parameter.
+.sp
+.B Notes:
+the options set with this procedure are valid for the
+forthcoming data transfers that are performed when you invoke
+.I perform
+.sp
+The options are not reset between transfers (except where noted), so if
+you want subsequent transfers with different options, you must change them
+between the transfers. You can optionally reset all options back to the internal
+default with \fBcurlHandle reset\fP.
+.sp
+.I "curlHandle"
+is the return code from the
+.I "curl::init"
+call.
+.sp
+
+.B OPTIONS
+.sp
+.SH Behaviour options
+
+.TP
+.B -verbose
+Set the parameter to 1 to get the library to display a lot of verbose
+information about its operations. Very useful for libcurl and/or protocol
+debugging and understanding.
+
+You hardly ever want this set in production use, you will almost always want
+this when you debug/report problems. Another neat option for debugging is
+.B -debugproc
+
+.TP
+.B -header
+A 1 tells the extension to include the headers in the body output. This is
+only relevant for protocols that actually have headers preceding the data (like HTTP).
+
+.TP
+.B -noprogress
+A 1 tells the extension to turn on the built-in progress meter.
+Nowadays it is turn off by default.
+
+.TP
+.B -nosignal
+A 1 tells TclCurl not use any functions that install signal
+handlers or any functions that cause signals to be sent to the process. This
+option is mainly here to allow multi-threaded unix applications to still
+set/use all timeout options etc, without risking getting signals.
+
+
+.SH Callback options
+
+.TP
+.B -writeproc
+Use it to set a Tcl procedure that will be invoked by TclCurl as soon as
+there is received data that needs to be saved. The procedure will receive
+a single parameter with the data to be saved.
+
+NOTE: you will be passed as much data as possible in all invokes, but you
+cannot possibly make any assumptions. It may be nothing if the file is
+empty or it may be thousands of bytes.
+
+.TP
+.B -file
+File in which the transfered data will be saved.
+
+.TP
+.B -readproc
+Sets a Tcl procedure to be called by TclCurl as soon as it needs to read
+data in order to send it to the peer. The procedure has to take one
+parameter, which will contain the maximun numbers of bytes to read. It
+should return the actual number of bytes read, or '0' if you want to
+stop the transfer.
+
+.TP
+.B -infile
+File from which the data will be transfered.
+
+.TP
+.B -progressproc
+Name of the Tcl procedure that will invoked by TclCurl  with a frequent
+interval during operation (roughly once per second), no matter if data
+is being transfered or not.  Unknown/unused
+argument values passed to the callback will be set to zero (like if you
+only download data, the upload size will remain 0), the prototype of the
+procedure must be:
+.sp
+.B proc ProgressCallback {dltotal dlnow ultotal ulnow}
+.sp
+In order to this option to work you have to set the \fBnoprogress\fP
+option to '0'. Setting this option to the empty string will restore the
+original progress function.
+
+If you transfer data with the multi interface, this procedure will not be
+called during periods of idleness unless you call the appropriate procedure
+that performs transfers.
+
+You can pause and resume a transfer from within this procedure using the
+\fBpause\fP and \fBresume\fP commands.
+
+.TP
+.B -writeheader
+Pass a the file name to be used to write the header part of the received data to.
+The headers are guaranteed to be written one-by-one to this file and
+only complete lines are written. Parsing headers should be easy enough using
+this.
+
+.TP
+.B -debugproc
+Name of the procedure that will receive the debug data produced by the
+.B -verbose
+option, it should match the following prototype:
+.sp
+.B debugProc {infoType data}
+.sp
+where \fBinfoType\fP specifies what kind of information it is (0 text,
+1 incoming header, 2 outgoing header, 3 incoming data, 4 outgoing data,
+5 incoming SSL data, 6 outgoing SSL data).
+
+.SH Error Options
+
+.TP
+.B -errorbuffer
+Pass a variable name where TclCurl may store human readable error
+messages in. This may be more helpful than just the return code from the
+command.
+
+.TP
+.B -stderr
+Pass a file name as parameter. This is the stream to use internally instead
+of stderr when reporting errors.
+.TP
+.B -failonerror
+A 1 parameter tells the extension to fail silently if the HTTP code
+returned is equal or larger than 400. The default action would be to return
+the page normally, ignoring that code.
+
+This method is not fail-safe and there are occasions where non-successful response
+codes will slip through, especially when authentication is involved
+(response codes 401 and 407). 
+
+You might get some amounts of headers transferred before this situation is detected,
+like for when a "100-continue" is received as a response to a POST/PUT and a 401
+or 407 is received immediately afterwards.
+
+.SH Network options
+
+.TP
+.B -url
+The actual URL to deal with.
+
+If the given URL lacks the protocol part ("http://" or "ftp://" etc), it will
+attempt to guess which protocol to use based on the given host name. If the
+given protocol of the set URL is not supported, TclCurl will return the
+\fBunsupported protocol\fP error when you call \fBperform\fP. Use
+\fBcurl::versioninfo\fP for detailed info on which protocols that are supported.
+
+\fBNOTE\fP: this the one option required to be set
+before
+.B perform
+is called.
+
+.TP
+.B -proxy
+If you need to use a http proxy to access the outside world, set the
+proxy string with this option. To specify port number in this string,
+append :[port] to the end of the host name. The proxy string may be
+prefixed with [protocol]:// since any such prefix will be ignored.
+
+When you tell the extension to use a HTTP proxy, TclCurl will
+transparently convert operations to HTTP even if you specify a FTP
+URL etc. This may have an impact on what other features of the library
+you can use, such as
+.B quote
+and similar FTP specifics that will not work unless you tunnel through
+the HTTP proxy. Such tunneling  is activated with
+.B proxytunnel
+
+TclCurl respects the environment variables http_proxy, ftp_proxy,
+all_proxy etc, if any of those are set. The use of this option does
+however override any possibly set environment variables.
+
+Setting the proxy string to "" (an empty string) will explicitly disable
+the use of a proxy, even if there is an environment variable set for it.
+
+The proxy host string can be specified the exact same way as the proxy
+environment variables, include protocol prefix (http://) and embedded
+user + password.
+
+.TP
+.B -proxyport
+Use this option to set the proxy port to use unless it is specified in
+the proxy string by \fB-proxy\fP.
+
+.TP
+.B -proxytype
+Pass the type of  the  proxy. Available options are 'http', 'socks4', 'socks4a'
+and 'socks5', with the HTTP one being default.
+
+.TP
+.B -httpproxytunnel
+Set the parameter to 1 to get the extension to tunnel all non-HTTP
+operations through the given HTTP proxy. Do note that there is a big
+difference between using a proxy and tunneling through it. If you don't know what
+this means, you probably don't want this tunnel option.
+
+.TP
+.B -interface
+Pass the interface name to use as outgoing
+network interface. The name can be an interface name, an IP address or a host
+name.
+
+.TP
+.B -localport
+This sets the local port number of the socket used for connection. This can
+be used in combination with \fB-interface\fP and you are recommended to use
+\fBlocalportrange\fP as well when this is set. Note the only valid port numbers
+are 1 - 65535.
+
+.TP
+.B -localportrange
+This is the number of attempts TclCurl should do to find a working local port
+number. It starts with the given \fB-localport\fP and adds
+one to the number for each retry. Setting this value to 1 or below will make
+TclCurl do only one try for exact port number. Note that port numbers by nature
+are a scarce resource that will be busy at times so setting this value to something
+too low might cause unnecessary connection setup failures.
+
+.TP
+.B -dnscachetimeout
+Pass the timeout in seconds. Name resolves will be kept in memory for this number
+of seconds. Set to '0' to completely disable caching, or '-1' to make the
+cached entries remain forever. By default, TclCurl caches this info for 60 seconds.
+
+.TP
+.B -dnsuseglobalcache
+If the value passed is 1, it tells TclCurl to use a global DNS cache that
+will survive between curl handles creations and deletions. This is not thread-safe
+as it uses a global varible.
+
+\fBWARNING:\fP this option is considered obsolete. Stop using it. Switch over
+to using the share interface instead! See \fItclcurl_share\fP.
+
+.TP
+.B -buffersize
+Pass your prefered size for the receive buffer in TclCurl. The main point of this
+would be that the write callback gets called more often and with smaller chunks.
+This is just treated as a request, not an order. You cannot be guaranteed to
+actually get the given size.
+
+.TP
+.B -port
+
+Pass the number specifying what remote port to connect to, instead of the one specified
+in the URL or the default port for the used protocol.
+
+.TP
+.B -tcpnodelay
+
+Pass a number to specify whether the TCP_NODELAY option should be set or cleared (1 = set, 0 = clear).
+The option is cleared by default. This will have no effect after the connection has been established.
+
+Setting this option will disable TCP's Nagle algorithm. The purpose of this algorithm is to try to
+minimize the number of small packets on the network (where "small packets" means TCP segments less
+than the Maximum Segment Size (MSS) for the network).
+
+Maximizing the amount of data sent per TCP segment is good because it amortizes the overhead of the
+send. However, in some cases (most notably telnet or rlogin) small segments may need to be sent without
+delay. This is less efficient than sending larger amounts of data at a time, and can contribute to
+congestion on the network if overdone.
+
+.TP
+.B -addressscope
+Pass a number specifying the scope_id value to use when connecting to IPv6 link-local or site-local
+addresses.
+
+.SH Names and Passwords options
+
+.TP
+.B -netrc
+A 1 parameter tells the extension to scan your
+.B ~/.netrc
+file to find user name and password for the remote site you are about to
+access. Do note that TclCurl does not verify that the file has the correct
+properties set (as the standard unix ftp client does), and that only machine
+name, user name and password is taken into account (init macros and similar
+things are not supported).
+
+You can set it to the following values:
+.RS
+.TP 5
+.B optional
+The use of your ~/.netrc file is optional, and information in the URL is to
+be preferred. The file will be scanned with the host and user name (to find
+the password only) or with the host only, to find the first user name and
+password after that machine, which ever information is not specified in
+the URL.
+
+Undefined  values  of  the  option  will  have this effect.
+.TP
+.B ignored
+The extension will ignore the file and use only the information in the URL.
+This is the default.
+.TP
+.B required
+This value tells the library that use of the file is required, to ignore
+the information in the URL, and to search the file with the host only.
+.RE
+
+.TP
+.B -netrcfile
+Pass a string containing the full path name to the file you want to use as .netrc
+file. For the option to work, you have to set the \fBnetrc\fP option to
+\fBrequired\fP. If this option is omitted, and \fBnetrc\fP is set, TclCurl
+will attempt to find the a .netrc file in the current user's home directory.
+
+.TP
+.B -userpwd
+Pass a string as parameter, which should be [username]:[password] to use for
+the connection. Use \fBhttpauth\fP to decide authentication method.
+
+When using NTLM, you can set domain by prepending it to the user name and
+separating the domain and name with a forward (/) or backward slash (\\). Like
+this: "domain/user:password" or "domain\\user:password". Some HTTP servers (on
+Windows) support this style even for Basic authentication.
+
+When using HTTP and \fB-followlocation\fP, TclCurl might perform several
+requests to possibly different hosts. TclCurl will only send this user and
+password information to hosts using the initial host name (unless
+\fB-unrestrictedauth\fP is set), so if TclCurl follows locations to other
+hosts it will not send the user and password to those. This is enforced to
+prevent accidental information leakage.
+
+.TP
+.B -proxyuserpwd
+Pass a string as parameter, which should be [username]:[password] to use for
+the connection to the HTTP proxy.
+
+.TP
+.B -httpauth
+Set to the authentication method you want, the available ones are:
+.RS
+.TP 5
+.B basic
+HTTP Basic authentication. This is the default choice, and the only
+method that is in widespread use and supported virtually everywhere.
+It sends the user name and password over the network in plain text,
+easily captured by others.
+
+.TP
+.B digest
+HTTP Digest authentication. Digest authentication is a more secure
+way to do authentication over public networks than the regular
+old-fashioned Basic method.
+
+.TP
+.B gssnegotiate
+HTTP GSS-Negotiate authentication. The GSS-Negotiate method, also known as
+plain "Negotiate",was designed by Microsoft and is used in their web
+applications. It is primarily meant as a support for Kerberos5 authentication
+but may be also used along with another authentication methods.
+
+.TP
+.B ntlm
+HTTP NTLM authentication. A proprietary protocol invented and used by Microsoft.
+It uses a challenge-response and hash concept similar to Digest, to prevent the
+password from being eavesdropped.
+
+.TP
+.B any
+TclCurl will automatically select the one it finds most secure.
+
+.TP
+.B anysafe
+It may use anything but basic, TclCurl will automaticly select the
+one it finds most secure.
+.RE
+
+.TP
+.B -proxyauth
+Use it to tell TclCurl which authentication method(s) you want it to use for
+your proxy authentication. Note that for some methods, this will induce an
+extra network round-trip. Set the actual name and password with the 
+\fBproxyuserpwd\fP option.
+
+The methods are those listed above for the \fBhttpauth\fP option. As of this
+writing, only Basic and NTLM work.
+
+.SH HTTP options
+
+.TP
+.B -autoreferer
+Pass an 1 parameter to enable this. When enabled, TclCurl will
+automatically set the Referer: field in requests where it follows a Location:
+redirect.
+
+.TP
+.B -encoding
+Sets the contents of the Accept-Encoding: header sent in an HTTP
+request, and enables decoding of a response when a Content-Encoding:
+header is received.  Three encodings are supported: \fIidentity\fP,
+which does nothing, \fIdeflate\fP which requests the server to
+compress its response using the zlib algorithm, and \fIgzip\fP which
+requests the gzip algorithm.  Use \fIall\fP to send an
+Accept-Encoding: header containing all supported encodings.
+
+This is a request, not an order; the server may or may not do it.  This
+option must be set or else any unsolicited
+encoding done by the server is ignored. See the special file
+lib/README.encoding in libcurl docs for details.
+
+.TP
+.B -followlocation
+An 1 tells the library to follow any
+.B Location: header
+that the server sends as part of a HTTP header.
+
+\fBNOTE\fP: this means that the extension will re-send the  same
+request on the new location and follow new \fBLocation: headers\fP
+all the way until no more such headers are returned.
+\fB-maxredirs\fP can be used to limit the number of redirects
+TclCurl will follow.
+
+.TP
+.B -unrestrictedauth
+An 1 parameter tells the extension it can continue
+to  send authentication (user+password) when following
+locations, even when hostname changed. Note that  this
+is  meaningful  only  when setting \fB-followlocation\fP.
+
+.TP
+.B -maxredirs
+Sets the redirection limit. If that many redirections have been followed,
+the next redirect will cause an error. This option only makes sense if the
+\fB-followlocation\fP option is used at the same time. Setting the limit
+to 0 will make libcurl refuse any redirect. Set it to -1 for an infinite
+number of redirects (which is the default)
+
+.TP
+.B -post301
+An 1 tells TclCurl to respect RFC 2616/10.3.2 and not
+convert POST requests into GET requests when following a 301 redirection. The
+non-RFC behaviour is ubiquitous in web browsers, so the conversion is done
+by default to maintain consistency. However, a server may require
+a POST to remain a POST after such a redirection. This option is meaningful
+only when setting \fB-followlocation\fP.
+
+.TP
+.B -put
+An 1 parameter tells the extension to use HTTP PUT a file. The file to put
+must be set with \fB-infile\fP and \fB-infilesize\fP.
+
+This option is deprecated starting with version 0.12.1, you should use \fB-upload\fP.
+
+.TP
+.B -post
+An 1 parameter tells the library to do a regular HTTP post. This is a
+normal application/x-www-form-urlencoded kind, which is the most commonly used
+one by HTML forms. See the \fB-postfields\fP option for how to specify the
+data to post and \fB-postfieldsize\fP about how to set the data size.
+
+Use the \fB-postfields\fP option to specify what data to post and \fB-postfieldsize\fP
+to set the data size. Optionally, you can provide data to POST using the \fB-readproc\fP
+options.
+
+You can override the default POST Content-Type: header by setting your own with
+\fB-httpheader\fP.
+
+Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header.
+You can disable this header with \fB-httpheader\fP as usual.
+
+If you use POST to a HTTP 1.1 server, you can send data without knowing the
+size before starting the POST if you use chunked encoding. You enable this
+by adding a header like "Transfer-Encoding: chunked" with \fB-httpheader\fP.
+With HTTP 1.0 or without chunked transfer, you must specify the size in the
+request.
+
+When setting \fBpost\fP to an 1 value, it will automatically set
+\fBnobody\fP to 0.
+
+NOTE: if you have issued a POST request and want to make a HEAD or GET instead, you must
+explicitly pick the new request type using \fB-nobody\fP or \fB-httpget\fP or similar.
+
+.TP
+.B -postfields
+Pass a string as parameter, which should be the full data to post in a HTTP
+POST operation. You must make sure that the data is formatted the way you
+want the server to receive it. TclCurl will not convert or encode it for you.
+Most web servers will assume this data to be url-encoded.
+
+This is a normal application/x-www-form-urlencoded  kind,
+which is the most commonly used one by HTML forms.
+
+If you want to do a zero-byte POST, you need to set
+\fB-postfieldsize\fP explicitly to zero, as simply setting
+\fB-postfields\fP to NULL or "" just effectively disables the sending
+of the specified string. TclCurl will instead assume that the POST
+data will be send using the read callback!
+
+Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header.
+You can disable this header with \fB-httpheader\fP as usual.
+
+\fBNote\fP: to make multipart/formdata posts (aka rfc1867-posts), check out
+\fB-httppost\fP option.
+
+.TP
+.B -postfieldsize
+If you want to post data to the server without letting TclCurl do a strlen()
+to measure the data size, this option must be used. Also, when this option is
+used, you can post fully binary data which otherwise is likely to fail. If
+this size is set to zero, the library will use strlen() to get the data
+size.
+
+.TP
+.B -httppost
+Tells TclCurl you want a multipart/formdata HTTP POST to be made and you
+instruct what data to pass on to the server through a
+.B Tcl list.
+
+\fBThis is the only case where the data is reset after a transfer.\fP
+
+First, there are some basics you need to understand about multipart/formdata
+posts. Each part consists of at least a \fBNAME\fP and a \fBCONTENTS\fP part. If the part
+is made for file upload, there are also a stored \fBCONTENT-TYPE\fP and a
+\fBFILENAME\fP. Below, we'll discuss on what options you use to set these
+properties in the parts you want to add to your post.
+
+The list must contain a \fB'name'\fP tag with the name of the section followed
+by a string with the name, there are three tags to indicate the value of
+the section: \fB'value'\fP followed by a string with the data to post, \fB'file'\fP
+followed by the name of the file to post and \fB'contenttype'\fP with the
+type of the data (text/plain, image/jpg, ...), you can also indicate a \fIfalse\fP
+file name with \fB'filename'\fP, this is useful in case the server checks if the given
+file name is valid, for example, by testing if it starts with 'c:\\' as any real file
+name does or if you want to include the full path of the file to post. You can also post
+the content of a variable as if it were a file with the options \fB'bufferName'\fP and
+\fB'buffer'\fP or use \fB'filecontent'\fP followed by a file name to read that file and
+use the contents as data.
+
+Should you need to specify extra headers for the form POST section, use
+\fB'contentheader\fP' followed by a list with the headers to post.
+
+Please see 'httpPost.tcl' and 'httpBufferPost.tcl' for examples.
+
+If TclCurl can't set the data to post an error will be returned:
+.RS
+.TP 5
+.B 1
+If the memory allocation fails.
+.TP
+.B 2
+If one option is given twice for one form.
+.TP
+.B 3
+If an empty string was given.
+.TP
+.B 4
+If an unknown option was used.
+.TP
+.B 5
+If the some form info is not complete (or error)
+.TP
+.B 6
+If an illegal option is used in an array.
+.TP
+.B 7
+TclCurl has no http support.
+.RE
+
+.TP
+.B -referer
+Pass a string as parameter. It will be used to set the
+.B referer
+header in the http request sent to the remote server. This can be used to
+fool servers or scripts. You can also set any custom header with
+.B -httpheader.
+
+.TP
+.B -useragent
+Pass a string as parameter. It will be used to set the
+.B user-agent:
+header in the http request sent to the remote server. This can be used to fool
+servers or scripts. You can also set any custom header with
+.B -httpheader.
+
+.TP
+.B -httpheader
+Pass a
+.B list
+with the HTTP headers to pass to the server in your request.
+If you add a header that is otherwise generated
+and used by TclCurl internally, your added one will be used instead. If you
+add a header with no contents as in 'Accept:', the internally used header will
+just get disabled. Thus, using this option you can add new headers, replace
+and remove internal headers.
+
+The headers included in the linked list must not be CRLF-terminated, because
+TclCurl adds CRLF after each header item. Failure to comply with this will
+result in strange bugs because the server will most likely ignore part of the
+headers you specified.
+
+The first line in a request (containing the method, usually a GET or POST) is
+not a header and cannot be replaced using this option. Only the lines
+following the request-line are headers. Adding this method line in this list
+of headers will only cause your request to send an invalid header.
+
+\fBNOTE\fP:The most commonly replaced headers have "shortcuts" in the  options:
+.B cookie, useragent,
+and
+.B referer.
+
+.TP
+.B -http200aliases
+Pass a list of aliases to be treated as valid HTTP 200 responses. Some servers
+respond with a custom header response line. For example, IceCast servers respond
+with "ICY 200 OK". By including this string in your list of aliases, the
+response will be treated as a valid HTTP header line such as "HTTP/1.0 200 OK".
+
+\fBNOTE\fP:The alias itself is not parsed for any version strings. Before version
+7.16.3, TclCurl used the value set by option \fBhttpversion\fP, but starting with
+7.16.3 the protocol is assumed to match HTTP 1.0 when an alias matched.
+
+.TP
+.B -cookie
+Pass a string as parameter. It will be used to
+set a cookie in the http request. The format of the string should be
+'[NAME]=[CONTENTS];'. Where NAME is the cookie name and  CONTENTS is
+what the cookie should contain.
+
+If  you  need  to  set mulitple cookies, you need to set them all using
+a single option and thus you need to concatenate them all in one single string.
+Set multiple cookies in one string like this: "name1=content1; name2=content2;"
+etc.
+
+Note that this option sets the cookie header explictly in the outgoing request(s).
+If multiple requests are done due to authentication, followed redirections or similar,
+they will all get this cookie passed on.
+
+Using this option multiple times will only make the latest string override
+the previous ones.
+
+.TP
+.B -cookiefile
+Pass a string as parameter. It should contain the name of your file holding
+cookie data. The cookie data may be in netscape cookie data format or just
+regular HTTP-style headers dumped to a file.
+
+Given an empty or non-existing file, this option will enable cookies for this
+curl handle, making it understand and parse received cookies and then use
+matching cookies in future requests.
+
+If you use this option multiple times, you add more files to read.
+
+.TP
+.B -cookiejar
+Pass a file name in which TclCurl will dump all internally known cookies
+when
+.B curlHandle cleanup
+is called. If no cookies are known, no file will be created.
+Specify "-" to have the cookies written to stdout.
+
+Using this option also enables cookies for this session, so if you, for
+example, follow a location it will make matching cookies get sent accordingly.
+
+TclCurl will not and cannot report an error for  this. Using  '\fBverbose\fP'
+will get a warning to display, but that is the only visible feedback you get
+about this possibly lethal situation.
+
+.TP
+.B -cookiesession
+Pass an 1 to mark this as a new cookie "session". It will
+force TclCurl to ignore all cookies it is about to load that are "session
+cookies" from the previous session. By default, TclCurl always stores and
+loads all cookies, independent of whether they are session cookies are not.
+Session cookies are cookies without expiry date and they are meant to be
+alive and existing for this "session" only.
+
+.TP
+.B -cookielist
+Pass a string with a cookie. The cookie can be either in Netscape / Mozilla
+format or just regular HTTP-style header (Set-Cookie: ...) format. If the
+cookie engine was not enabled it will be enabled.  Passing a
+magic string "ALL" will erase all known cookies while "FLUSH" will write
+all cookies known by TclCurl to the file specified by \fB-cookiejar\fP.
+
+.TP
+.B -httpget
+If set to 1 forces the HTTP request to get back to GET, usable if
+POST, PUT or a custom request have been used previously with the
+same handle.
+
+When setting \fBhttpget\fP to 1, \fBnobody\fP will automatically be set to 0.
+
+.TP
+.B -httpversion
+Set to one of the values decribed below, they force TclCurl to use the
+specific http versions. It should only be used if you really MUST do
+that because of a silly remote server.
+.RS
+.TP 5
+.B none
+We do not care about what version the library uses. TclCurl will use whatever
+it thinks fit.
+.TP
+.B 1.0
+Enforce HTTP 1.0 requests.
+.TP
+.B 1.1
+Enforce HTTP 1.1 requests.
+.RE
+
+.TP
+.B -ignorecontentlength
+Ignore the Content-Length header. This is useful for Apache 1.x (and similar
+servers) which will report incorrect content length for files over 2
+gigabytes. If this option is used, TclCurl will not be able to accurately
+report progress, and will simply stop the download when the server ends the
+connection.
+
+.TP
+.B -httpcontentdecoding
+Set to zero to disable content decoding. If set to 1 it is enabled. Note however
+that TclCurl has no default content decoding but requires you to use \fBencoding\fP for that.
+
+.TP
+.B -httptransferencoding
+Set to zero to disable transfer decoding, if set to 1 it is enabled (default). TclCurl does
+chunked transfer decoding by default unless this option is set to zero.
+
+.SH FTP options
+
+.TP
+.B -ftpport
+Pass a string as parameter. It will be used to
+get the IP address to use for the ftp PORT instruction. The PORT instruction
+tells the remote server to connect to our specified IP address. The string may
+be a plain IP address, a host name, a network interface name (under unix) or
+just a '-' to let the library use your systems default IP address. Default FTP
+operations are passive, and thus will not use PORT.
+
+.TP
+.B -quote
+Pass a \fBlist\fP list with the FTP or SFTP commands to pass to the server prior to your
+ftp request. This will be done before any other FTP commands are issued (even
+before the CWD command).If you do not want to transfer any files, set
+\fBnobody\fP to '1' and \fBheader\fP to '0'.
+
+Keep in mind the commands to send must be 'raw' ftp commands, for example, to
+create a directory you need to send \fBmkd Test\fP, not \fBmkdir Test\fP.
+
+Valid SFTP commands are: chgrp, chmod, chown, ln, mkdir, pwd, rename, rm,
+rmdir and symlink. 
+
+.TP
+.B -postquote
+Pass a \fBlist\fP with the FTP commands to pass to the server after your
+ftp transfer request. If you do not want to transfer any files, set
+\fBnobody\fP to '1' and \fBheader\fP to '0'.
+
+.TP
+.B -prequote
+Pass a \fBlist\fP of FTP or SFTP commands to pass to the server after the
+transfer type is set.
+
+.TP
+.B -dirlistonly
+A 1 tells the library to just list the names of files in a
+directory, instead of doing a full directory listing that would include file
+sizes, dates etc. It works with both FTP and SFTP urls.
+
+This causes an FTP NLST command to be sent. Beware that some FTP servers list
+only files in their response to NLST, they might not include subdirectories
+and symbolic links.
+
+.TP
+.B -append
+A 1 parameter tells the extension to append to the remote file instead of
+overwriting it. This is only useful when uploading to a ftp site.
+
+.TP
+.B -ftpuseeprt
+Set to 1 to tell TclCurl to use the EPRT (and LPRT) command when doing
+active FTP downloads (which is enabled by '\fBftpport\fP'). Using EPRT means
+that it will first attempt to use EPRT and then LPRT before using PORT, if
+you pass zero to this option, it will not try using EPRT or LPRT, only plain PORT.
+
+.TP
+.B -ftpuseepvs
+Set to one to tell TclCurl to use the EPSV command when doing passive FTP
+downloads (which it always does by default). Using EPSV means that it will
+first attempt to use EPSV before using PASV, but if you pass a zero to this
+option, it will not try using EPSV, only plain PASV.
+
+.TP
+.B -ftpcreatemissingdirs
+If set to 1, TclCurl will attempt to create any remote directory that it
+fails to CWD into. CWD is the command that changes working directory.
+
+This setting also applies to SFTP-connections. TclCurl will attempt to create
+the remote directory if it can't obtain a handle to the target-location. The
+creation will fail if a file of the same name as the directory to create
+already exists or lack of permissions prevents creation.
+
+.TP
+.B -ftpresponsetimeout
+Causes TclCurl to set a timeout period (in seconds) on the amount of time that
+the server is allowed to take in order to generate a response message for a
+command before the session is considered hung. Note that while TclCurl is waiting
+for a response, this value overrides \fBtimeout\fP. It is recommended that if used
+in conjunction with \fBtimeout\fP, you set it to a value smaller than \fBtimeout\fP.
+
+.TP
+.B -ftpalternativetouser 
+Pass a string which will be used to authenticate if the usual FTP "USER user" and
+"PASS password" negotiation fails. This is currently only known to be required when
+connecting to Tumbleweed's Secure Transport FTPS server using client certificates for
+authentication.
+
+.TP
+.B -ftpskippasvip
+If set to 1, it instructs TclCurl not to use the IP address the
+server suggests in its 227-response to TclCurl's PASV command when TclCurl
+connects the data connection. Instead TclCurl will re-use the same IP address
+it already uses for the control connection. But it will use the port number
+from the 227-response.
+
+This option has no effect if PORT, EPRT or EPSV is used instead of PASV.
+
+.TP
+.B -usessl
+You can use ftps:// URLs to explicitly switch on SSL/TSL for the control
+connection and the data connection.
+
+Alternatively, and what seems to be the recommended way, you can set the
+option to one of these values:
+
+.RS
+.TP 5
+.B nope
+Do not attempt to use SSL
+.TP
+.B try
+Try using SSL, proceed anyway otherwise.
+.TP
+.B control
+Use SSL for the control conecction or fail with "use ssl failed" (64).
+.TP
+.B all
+Use SSL for all communication or fail with "use ssl failed" (64).
+.RE
+
+.TP
+.B -ftpsslauth
+
+Pass TclCurl one of the values from below, to alter how TclCurl issues
+"AUTH TLS" or "AUTH SSL" when FTP over SSL is activated (see \fB-ftpssl\fP).
+
+You may need this option because of servers like BSDFTPD-SSL from
+http://bsdftpd-ssl.sc.ru/ "which won't work properly  when "AUTH SSL" is issued
+(although the server responds fine and everything) but requires "AUTH TLS"
+instead".
+
+.RS
+.TP 5
+.B default
+Allows TclCurl to decide.
+.TP
+.B ssl
+Try "AUTH SSL" first, and only if that fails try "AUTH TLS".
+.TP
+.B tls
+Try "AUTH TLS" first, and only if that fails try "AUTH SSL".
+.RE
+
+.TP
+.B -ftpsslccc 
+Set it to make TclCurl use CCC (Clear Command Channel). It shuts down the
+SSL/TLS layer after authenticating. The rest of the control channel
+communication will be unencrypted. This allows NAT routers to follow the
+FTP transaction. Possible values are:
+
+.RS
+.TP 5
+.B none
+Do not attempt to use CCC.
+.TP
+.B passive
+Do not initiate the shutdown, wait for the server to do it. Do not send a reply. 
+.TP
+.B active
+Initiate the shutdown and wait for a reply. 
+.RE
+
+.TP
+.B -ftpaccount
+Pass string (or "" to disable). When an FTP server asks for "account data" after
+user name and password has been provided, this data is sent off using the ACCT
+command.
+
+.TP
+.B -ftpfilemethod
+It allows three values:
+.RS
+.TP 5
+.B multicwd
+The default, TclCurl will do a single CWD operation for each path part in the given
+URL. For deep hierarchies this means very many commands. This is how RFC1738 says it
+should be done.
+.TP
+.B nocwd
+No CWD at all is done, TclCurl will do SIZE, RETR, STOR, etc and give a full path to
+the server.
+.TP
+.B singlecwd
+Make one CWD with the full target directory and then operate on the file "normally".
+This is somewhat more standards compliant than 'nocwd' but without the full penalty of 'multicwd'.
+.RE
+
+.SH Protocol options
+
+.TP
+.B -transfertext
+A 1 tells the extension to use ASCII mode for ftp transfers,
+instead of the default binary transfer. For win32 systems it does not set the
+stdout to binary mode. This option can be usable when transferring text data
+between systems with different views on certain characters, such as newlines
+or similar.
+
+\fBNOTE:\fP TclCurl does not do a complete ASCII conversion when doing ASCII
+transfers over FTP. This is a known limitation/flaw that nobody has
+rectified. TclCurl simply sets the mode to ascii and performs a standard
+transfer.
+
+.TP
+.B -proxytransfermode
+If set to 1, TclCurl sets the transfer mode (binary or ASCII) for FTP transfers
+done via an HTTP proxy, by appending ;type=a or ;type=i to the URL.
+Without this setting, or it being set to 0, the default, \fB-transfertext\fP has
+no effect when doing FTP via a proxy. Beware that not all proxies support this feature.
+
+.TP
+.B -crlf
+Convert unix newlines to CRLF newlines on FTP transfers.
+
+.TP
+.B -range
+Pass a string as parameter, which should contain the specified range you
+want. It should be in the format
+.I "X-Y"
+, where X or Y may be left out. HTTP
+transfers also support several intervals, separated with commas as in
+.I "X-Y,N-M"
+Using this kind of multiple intervals will cause the HTTP server to send the
+response document in pieces (using standard MIME separation techniques).
+
+Ranges only work on HTTP, FTP and FILE transfers.
+
+.TP
+.B -resumefrom
+Pass the offset in number of bytes that you want the transfer to start from.
+Set this option to 0 to make the transfer start from the beginning
+(effectively disabling resume).
+
+For FTP, set this option to -1 to make the transfer start from the end of the
+target file (useful to continue an interrupted upload). 
+
+.TP
+.B -customrequest
+Pass a string as parameter. It will be used instead of GET or HEAD when doing
+the HTTP request. This is useful for doing DELETE or other more obscure HTTP
+requests. Do not do this at will, make sure your server supports the command first.
+
+Note that TclCurl will still act and assume the keyword it would use if you
+do not set your custom and it will act according to that. Thus, changing this
+to a HEAD when TclCurl otherwise would do a GET might cause TclCurl to act funny,
+and similar. To switch to a proper HEAD, use \fB-nobody\fP, to switch to a proper
+POST, use \fB-post\fP or \fB-postfields\fP and so on.
+
+.TP
+.B -filetime
+If you pass a 1, TclCurl will attempt to get the
+modification date of the remote document in this operation. This requires that
+the remote server sends the time or replies to a time querying command. The
+getinfo procedure with the
+.I filetime
+argument can be used after a transfer to extract the received time (if any).
+
+.TP
+.B -nobody
+A 1 tells the library not to include the body-part in the
+output. This is only relevant for protocols that have a separate header and
+body part. On HTTP(S) servers, this will make TclCurl do a HEAD request.
+
+To change request to GET, you should use \fBhttpget\fP. Change request
+to POST with \fBpost\fP etc.
+
+.TP
+.B -infilesize
+When uploading a file to a remote site, this option should be used to tell
+TclCurl what the expected size of the infile is.
+
+This option is mandatory for uploading using SCP.
+
+.TP
+.B -upload
+A 1 tells the library to prepare for an upload. The
+\fB-infile\fP and \fB-infilesize\fP options are also interesting for uploads.
+If the protocol is HTTP, uploading means using the PUT request unless you tell
+TclCurl otherwise.
+
+Using PUT with HTTP 1.1 implies the use of a "Expect: 100-continue" header.
+You can disable this header with \fB-httpheader\fP as usual.
+
+If you use PUT to a HTTP 1.1 server, you can upload data without knowing the
+size before starting the transfer if you use chunked encoding. You enable this
+by adding a header like "Transfer-Encoding: chunked" with \fB-httpheader\fP.
+With HTTP 1.0 or without chunked transfer, you must specify the size.
+
+.TP
+.B -maxfilesize
+This allows you to specify the maximum size (in bytes) of a file to download.
+If the file requested is larger than this value, the transfer will not start
+and error 'filesize exceeded' (63) will be returned.
+
+NOTE: The file size is not always known prior to download, and for such files
+this option has no effect even if the file transfer ends up being larger than
+this given limit. This concerns both FTP and HTTP transfers.
+
+.TP
+.B -timecondition
+This defines how the \fBtimevalue\fP value is treated. You can set this
+parameter to \fBifmodsince\fP or \fBifunmodsince\fP.  This feature applies to
+HTTP and FTP.
+
+.TP
+.B -timevalue
+This should be the time in seconds since 1 jan 1970, and the time will be
+used in a condition as specified with \fBtimecondition\fP.
+
+
+.SH Connection options
+
+.TP
+.B -timeout
+Pass the maximum time in seconds that you allow
+the TclCurl transfer operation to take. Do note that normally, name lookups
+may take a considerable time and that limiting the operation to less than a
+few minutes risks aborting perfectly normal operations. This option will
+cause libcurl to use the SIGALRM to enable time-outing system calls.
+
+In unix-like systems, this might cause signals to be used unless
+\fB-nosignal\fP is used.
+
+.TP
+.B -timeoutms
+Like \fBtimeout\fP but takes a number of milliseconds instead. If libcurl is
+built to use the standard system name resolver, that part will still use
+full-second resolution for timeouts.
+
+.TP
+.B -lowspeedlimit
+Pass the speed in bytes per second that the transfer should be below during
+.B lowspeedtime
+seconds for the extension to consider it too slow and abort.
+
+.TP
+.B -lowspeedtime
+Pass the time in seconds that the transfer should be below the
+.B lowspeedlimit
+for the extension to consider it too slow and abort.
+
+.TP
+.B -maxsendspeed
+Pass a speed in bytes per seconds. If an upload exceeds this speed on cumulative
+average during the transfer, the transfer will pause to keep the average rate less
+than or equal to the parameter value.  Defaults to unlimited speed.
+
+.TP
+.B -maxrecvspeed
+Pass a speed in bytes per second. If a download exceeds this speed on cumulative
+average during the transfer, the transfer will pause to keep the average rate less
+than or equal to the parameter value. Defaults to unlimited speed.
+
+.TP
+.B -maxconnects
+Sets the persistant connection cache size in all the protocols that support 
+persistent conecctions. The set amount will be the maximum amount of simultaneous
+connections that TclCurl may cache in this easy handle. Default is 5, and there
+isn't much point in changing this value unless you are perfectly aware of how this
+work and changes TclCurl's behaviour.
+
+When reaching the maximum limit, TclCurl closes the oldest connection in the cache
+to prevent the number of open connections to increase. 
+
+\fBNote\fP: if you have already performed transfers with this curl handle,
+setting a smaller
+.B maxconnects
+than before may cause open connections to unnecessarily get closed.
+
+\fBNote\fP that if you add this easy handle to a multi handle, this setting is not
+being acknowledged, instead you must configure the multi handle its own
+\fBmaxconnects\fP option.
+
+.TP
+.B -connecttimeout
+Maximum time in seconds that you allow the
+connection to the server to take.  This only limits the connection phase, once
+it has connected, this option is of no more use. Set to zero to disable
+connection timeout (it will then only timeout on the internal timeouts).
+
+In unix-like systems, this might cause signals to be used unless
+\fB-nosignal\fP is set.
+
+.TP
+.B -connecttimeoutms
+Like \fBconnecttimeout\fP but takes a number of milliseconds instead. If libcurl
+is built to use the standard system name resolver, that part will still use
+full-second resolution for timeouts.
+
+.TP
+.B -ipresolve
+Allows an application to select what kind of IP addresses to use when
+resolving host names. This is only interesting when using host names
+that resolve addresses using more than one version of IP. The allowed
+values are:
+.RS
+.TP 5
+.B whatever
+Default, resolves addresses to all IP versions that your system allows.
+.TP
+.B v4
+Resolve to ipv4 addresses.
+.TP
+.B v6
+Resolve to ipv6 addresses.
+.RE
+
+.SH SSL and security options
+
+.TP
+.B -sslcert
+Pass a string as parameter. The string should be the file name of your certificate.
+The default format is "PEM" and can be changed with \fB-sslcerttype\fP.
+
+With NSS this is the nickname of the certificate you wish to authenticate with.
+
+.TP
+.B -sslcerttype
+Pass a string as parameter. The string should be the format of your certificate.
+Supported formats are "PEM" and "DER".
+
+.TP
+.B -sslkey
+Pass a pointer to a zero terminated string as parameter. The string should be
+the file name of your private key. The default format is "PEM" and can be
+changed with \fB-sslkeytype\fP.
+
+.TP
+.B -sslkeytype
+Pass a pointer to a zero terminated string as parameter. The string should be
+the format of your private key. Supported formats are "PEM", "DER" and "ENG"
+
+\fBNOTE:\fPThe format "ENG" enables you to load the private key from a crypto
+engine. in this case \fB-sslkey\fP is used as an identifier passed to
+the engine. You have to set the crypto engine with \fB-sslengine\fP. The "DER"
+format key file currently does not work because of a bug in OpenSSL.
+
+.TP
+.B -keypasswd
+Pass a string as parameter. It will be used as the password required to use the
+\fB-sslkey\fP or \fB-sshprivatekeyfile\fP private key.
+
+You never need a pass phrase to load a certificate but you need one to load you
+private key. 
+
+This option used to be known as \fB-sslkeypasswd\fP and \fB-sslcertpasswd\fP.
+
+.TP
+.B -sslengine
+Pass a string as parameter. It will be used as the identifier for the crypto
+engine you want to use for your private key.
+
+\fBNOTE:\fPIf the crypto device cannot be loaded, an error will be returned.
+
+.TP
+.B -sslenginedefault
+Pass a 1 to set the actual crypto engine as the default for (asymmetric) crypto operations.
+
+\fBNOTE:\fPIf the crypto device cannot be set, an error will be returned.
+
+.TP
+.B -sslversion
+Use it to set what version of SSL/TLS to use. The available options are: 
+.RS
+.TP 5
+.B default
+The default action. This will attempt to figure out the remote SSL protocol version,
+i.e. either SSLv3 or TLSv1 (but not SSLv2, which became disabled by default with 7.18.1). 
+.TP
+.B tlsv1
+Force TLSv1
+.TP
+.B sslv2
+Force SSLv2
+.TP
+.B sslv3
+Force SSLv3
+.RE
+
+.TP
+.B -sslverifypeer
+This option determines whether TclCurl verifies the authenticity of the peer's certificate.
+A 1 means it verifies; zero means it doesn't. The default is 1. 
+
+When negotiating an SSL connection, the server sends a certificate indicating its identity.
+TclCurl verifies whether the certificate is authentic, i.e. that you can trust that the
+server is who the certificate says it is. This trust is based on a chain of digital signatures,
+rooted in certification authority (CA) certificates you supply.
+
+TclCurl uses a default bundle of CA certificates that comes with libcurl but you can specify
+alternate certificates with the \fB-cainfo\fP or the \fB-capath\fP options.
+
+When \fB-sslverifypeer\fP is nonzero, and the verification fails to prove that the certificate
+is authentic, the connection fails. When the option is zero, the connection succeeds regardless. 
+
+Authenticating the certificate is not by itself very useful. You typically want to ensure
+that the server, as authentically identified by its certificate, is the server you mean to
+be talking to, use \fB-sslverifyhost\fP to control that.
+
+.TP
+.B -cainfo
+Pass a file naming holding the certificate to verify the peer with. This only
+makes sense when used in combination with the \fB-sslverifypeer\fP option, if
+it is set to zero \fB-cainfo\fP need not even indicate an accessible file.
+
+When built against NSS this is the directory that the NSS certificate database
+resides in.
+
+.TP
+.B -issuercert
+Pass a string naming a file holding a CA certificate in PEM format. If the option
+is set, an additional check against the peer certificate is performed to verify
+the issuer is indeed the one associated with the certificate provided by the option.
+This additional check is useful in multi-level PKI where one need to enforce the peer
+certificate is from a specific branch of the tree.
+This option makes sense only when used in combination with the \fB-sslverifypeer\fP
+option. Otherwise, the result of the check is not considered as failure.
+
+.TP
+.B -capath
+Pass the directory holding multiple CA certificates to verify the peer with.
+The certificate directory must be prepared using the openssl c_rehash utility.
+This only makes sense when used in combination with the  \fB-sslverifypeer\fP
+option, if it is set to zero, \fB-capath\fP need not even indicate an accessible
+path.
+
+This option apparently does not work in Windows due to some limitation in openssl.
+
+This option is OpenSSL-specific and does nothing if libcurl is built to use GnuTLS.
+
+.TP
+.B -crlfile
+Pass a string naming a file with the concatenation of CRL (in PEM format) to use in
+the certificate validation that occurs during the SSL exchange.
+When libcurl is built to use NSS or GnuTLS, there is no way to influence the use of
+CRL passed to help in the verification process. When built with OpenSSL support,
+X509_V_FLAG_CRL_CHECK and X509_V_FLAG_CRL_CHECK_ALL are both set, requiring CRL
+check against all the elements of the certificate chain if a CRL file is passed.
+This option makes sense only when used in combination with the \fB-sslverifypeer\fP
+option. 
+
+.TP
+.B -randomfile
+Pass a file name. The file will be used to read from to seed the random engine
+for SSL. The more random the specified file is, the more secure will the SSL
+connection become.
+
+.TP
+.B -egdsocket
+Pass a path name to the Entropy Gathering Daemon socket. It will be used to seed
+the random engine for SSL.
+
+.TP
+.B -sslverifyhost
+This option determines whether TclCurl verifies that the server claims to be
+who you want it to be.
+
+When negotiating an SSL connection, the server sends a certificate
+indicating its identity.
+
+When \fB-sslverifyhost\fP is set to 2, that certificate must indicate
+that the server is the server to which you meant to connect, or the
+connection fails.
+
+TclCurl considers the server the intended one when the Common Name field
+or a Subject Alternate Name field in the certificate matches the host
+name in the URL to which you told Curl to connect.
+
+When set to 1, the certificate must contain a Common Name field,
+but it does not matter what name it says. (This is not ordinarily a
+useful setting).
+
+When the value is 0, the connection succeeds regardless of the names in
+the certificate.
+
+The default is 2.
+
+This option controls the identity that the server \fIclaims\fP. The server
+could be lying. To control lying, see \fBsslverifypeer\fP.
+
+.TP
+.B -sslcypherlist
+Pass a string holding the ciphers to use for the SSL connection. The list must
+consists of one or more cipher strings separated by colons. Commas or spaces
+are also acceptable separators but colons are normally used, , - and + can be
+used as operators. 
+
+For OpenSSL and GnuTLS valid examples of cipher lists include 'RC4-SHA', 'SHA1+DES',
+'TLSv1' and 'DEFAULT'. The default list is normally set when you compile OpenSSL.
+
+You will find more details about cipher lists on this URL:
+    http://www.openssl.org/docs/apps/ciphers.html
+
+For NSS valid examples of cipher lists include 'rsa_rc4_128_md5', 'rsa_aes_128_sha',
+etc. With NSS you don't add/remove ciphers. If you use this option then all known
+ciphers are disabled and only those passed in are enabled.
+You'll find more details about the NSS cipher lists on this URL:
+    http://directory.fedora.redhat.com/docs/mod_nss.html
+
+.TP
+.B -sslsessionidcache
+Pass a 0 to disable TclCurl's use of SSL session-ID caching or a 1 to enable it.
+By default all transfers are done using the cache. Note that while nothing ever
+should get hurt by attempting to reuse SSL session-IDs, there seem to be broken SSL
+implementations in the wild that may require you to disable this in order for you to
+succeed.
+
+.TP
+.B -krblevel
+Set the kerberos security level for FTP, this also enables kerberos awareness.
+This is a string, 'clear', 'safe', 'confidential' or 'private'. If the string
+is set but does not match one of these, 'private' will be used. Set the string
+to NULL to disable kerberos4. Set the string to "" to disable kerberos
+support for FTP.
+
+.SH SSH options
+
+.TP
+.B -sshauthtypes
+The allowed types are:
+
+.RS
+.TP 5
+.B publickey
+.TP
+.B password
+.TP
+.B host
+.TP
+.B keyboard
+.TP
+.B any
+To let TclCurl pick one
+.RE
+
+.TP
+.B -sshhostpublickeymd5
+Pass a string containing 32 hexadecimal digits. The string should be the 128
+bit MD5 cheksum of the remote host public key, and TclCurl will reject the
+connection to the host unless the md5sums match. This option is only for SCP
+and SFTP transfers.
+
+.TP
+.B -publickeyfile
+Pass the file name for your public key. If not used, TclCurl defaults to using \fB~/.ssh/id_dsa.pub\fP.
+
+.TP
+.B -privatekeyfile
+Pass the file name for your private key. If not used, TclCurl defaults to using \fB~/.ssh/id_dsa\fP.
+If the file is password-protected, set the password with \fB-keypasswd\fP.
+
+.SH Other options
+
+.TP
+.B -headervar
+Name of the Tcl array variable where TclCurl will store the headers returned
+by the server.
+
+When a server sends a chunked encoded transfer, it may contain a
+trailer. That trailer is identical to a HTTP header and if such a trailer is
+received it is passed to the application using this callback as well. There
+are several ways to detect it being a trailer and not an ordinary header: 1)
+it comes after the response-body. 2) it comes after the final header line (CR
+LF) 3) a Trailer: header among the response-headers mention what header to
+expect in the trailer.
+
+.TP
+.B -bodyvar
+Name of the Tcl variable where TclCurl will store the file requested, the file
+may contain text or binary data.
+
+.TP
+.B -canceltransvar
+Name of a Tcl variable, in case you have defined a procedure to call with
+\fB-progressproc\fP setting this variable to '1' will cancel the transfer.
+
+.TP
+.B -command
+Executes the given command after the transfer is done, since it only works
+with blocking transfers, it is pretty much useless.
+
+.TP
+.B -share
+Pass a share handle as a parameter. The share handle must have been created by
+a previous call to \fBcurl::shareinit\fP. Setting this option, will make this
+handle use the data from the shared handle instead of keeping the data to itself.
+See \fItclcurl_share\fP for details.
+
+.TP
+.B -newfileperms
+Pass a number as a parameter, containing the value of the permissions that will
+be assigned to newly created files on the remote server. The default value is 0644,
+but any valid value can be used. The only protocols that can use this are sftp://,
+scp:// and file://.
+
+.TP
+.B -newdirectoryperms
+Pass a number as a parameter, containing the value of the permissions that will be
+assigned to newly created directories on the remote server. The default value is 0755,
+but any valid value can be used. The only protocols that can use this are sftp://, scp://
+and file://.
+
+.SH NOT SUPPORTED
+Some of the options libcurl offers are not supported, I don't think them
+worth supporting in TclCurl but if you need one of them don't forget to
+complain:
+.sp
+.B CURLOPT_FRESH_CONNECT, CURLOPT_FORBID_REUSE, CURLOPT_PRIVATE,
+.B CURLOPT_SSL_CTX_FUNCTION, CURLOPT_SSL_CTX_DATA, CURLOPT_SSL_CTX_FUNCTION and
+.B CURLOPT_CONNECT_ONLY, CURLOPT_OPENSOCKETFUNCTION, CURLOPT_OPENSOCKETDATA.
+
+.SH curlHandle perform
+This procedure is called after the
+.B init
+and all the
+.B configure
+calls are made, and will perform the transfer as described in the options.
+.sp
+It must be called with the same
+\fIcurlHandle\fP \fBcurl::init\fP call returned.
+You can do any amount of calls to perform while using the same handle. If you
+intend to transfer more than one file, you are even encouraged to do
+so. TclCurl will then attempt to re-use the same connection for the following
+transfers, thus making the operations faster, less CPU intense and using less
+network resources. Just note that you will have to use
+.I configure
+between the invokes to set options for the following perform.
+.sp
+You must never call this procedure simultaneously from two places using the
+same handle. Let it return first before invoking it another time. If
+you want parallel transfers, you must use several curl handles.
+.TP
+.B RETURN VALUE
+'0' if all went well, non-zero if it didn't. In case of error, if the
+.I errorbuffer
+was set with
+.I configure
+there will be a readable error message.
+The error codes are:
+.IP 1
+Unsupported protocol. This build of TclCurl has no support for this protocol.
+.IP 2
+Very early initialization code failed. This is likely to be and internal error
+or problem.
+.IP 3
+URL malformat. The syntax was not correct.
+.IP 5
+Couldn't resolve proxy. The given proxy host could not be resolved.
+.IP 6
+Couldn't resolve host. The given remote host was not resolved.
+.IP 7
+Failed to connect to host or proxy.
+.IP 8
+FTP weird server reply. The server sent data TclCurl couldn't parse.
+The given remote server is probably not an OK FTP server.
+.IP 9
+We were denied access to the resource given in the URL. For FTP, this occurs
+while trying to change to the remote directory.
+.IP 11
+FTP weird PASS reply. TclCurl couldn't parse the reply sent to the PASS request.
+.IP 13
+FTP weird PASV reply, TclCurl couldn't parse the reply sent to the PASV or EPSV
+request.
+.IP 14
+FTP weird 227 format. TclCurl couldn't parse the 227-line the server sent.
+.IP 15
+FTP can't get host. Couldn't resolve the host IP we got in the 227-line.
+.IP 17
+FTP couldn't set type. Couldn't change transfer method to either binary or
+ascii.
+.IP 18
+Partial file. Only a part of the file was transfered, this happens when
+the server first reports an expected transfer size and then delivers data
+that doesn't match the given size.
+.IP 19
+FTP couldn't RETR file, we either got a weird reply to a 'RETR' command or
+a zero byte transfer.
+.IP 21
+Quote error. A custom 'QUOTE' returned error code 400 or higher (for FTP) or
+otherwise indicated unsuccessful completion of the command.
+.IP 22
+HTTP returned error. This return code only appears if \fB-failonerror\fP is
+used and the HTTP server returns an error code that is 400 or higher.
+.IP 23
+Write error. TclCurl couldn't write data to a local filesystem or an error
+was returned from a write callback.
+.IP 25
+Failed upload failed. For FTP, the server typcially denied the STOR
+command. The error buffer usually contains the server's explanation to this.
+.IP 26
+Read error. There was a problem reading from a local file or an error was returned
+from the read callback.
+.IP 27
+Out of memory. A memory allocation request failed. This should never happen unless
+something weird is going on in your computer.
+.IP 28
+Operation timeout. The specified time-out period was reached according to the
+conditions.
+.IP 30
+The FTP PORT command failed, not all FTP servers support the PORT command,
+try  doing a transfer using PASV instead!.
+.IP 31
+FTP couldn't use REST. This command is used for resumed FTP transfers.
+.IP 33
+Range error. The server doesn't support or accept range requests.
+.IP 34
+HTTP post error. Internal post-request generation error.
+.IP 35
+SSL connect error. The SSL handshaking failed, the error buffer may have
+a clue to the reason, could be certificates, passwords, ...
+.IP 36
+FTP bad download resume. Couldn't continue an earlier aborted download, probably
+because you are trying to resume beyond the file size.
+.IP 37
+A file given with FILE:// couldn't be read. Did you checked the permissions?
+.IP 38
+LDAP cannot bind. LDAP bind operation failed.
+.IP 39
+LDAP search failed.
+.IP 41
+A required zlib function was not found.
+.IP 42
+Aborted by callback. An application told TclCurl to abort the operation.
+.IP 43
+Internal error. A function was called with a bad parameter.
+.IP 45
+Interface error. A specified outgoing interface could not be used.
+.IP 47
+Too many redirects. When following redirects, TclCurl hit the maximum amount, set
+your limit with --maxredirs
+.IP 48
+Unknown TELNET option specified.
+.IP 49
+A telnet option string was illegally formatted.
+.IP 51
+The remote peer's SSL certificate or SSH md5 fingerprint wasn't ok
+.IP 52
+The server didn't reply anything, which here is considered an error.
+.IP 53
+The specified crypto engine wasn't found.
+.IP 54
+Failed setting the selected SSL crypto engine as default!
+.IP 55
+Failed sending network data.
+.IP 56
+Failure with receiving network data.
+.IP 58
+Problem with the local client certificate.
+.IP 59
+Couldn't use specified SSL cipher.
+.IP 60
+Peer certificate cannot be authenticated with known CA certificates.
+.IP 61
+Unrecognized transfer encoding.
+.IP 62
+Invalid LDAP URL.
+.IP 63
+Maximum file size exceeded.
+.IP 64
+SSL use failed.
+.IP 65
+Sending the data requires a rewind that failed, since TclCurl should
+take care of it for you, it means you found a bug.
+.IP 66
+Failed to initialise ssl engine.
+.IP 67
+Failed to login, user password or similar was not accepted.
+.IP 68
+File not found on TFTP server.
+.IP 69
+There is a permission problem with the TFTP request.
+.IP 70
+The remote server has run out of space.
+.IP 71
+Illegal TFTP operation.
+.IP 72
+Unknown transfer ID.
+.IP 73
+TFTP file already exists and will not be overwritten.
+.IP 74
+No such user in the TFTP server and good behaving TFTP server
+should never return this.
+.IP 75
+Character conversion failed.
+.IP 77
+Problem with reading the SSL CA cert (path? access rights?).
+.IP 78
+Remote file not found
+.IP 79
+Error from the SSH layer
+.IP 80
+Failed to shut down the SSL connection
+.IP 82
+Failed to load CRL file
+.IP 83
+Issuer check failed
+
+.SH curlHandle getinfo option
+Request internal information from the curl session with this procedure.
+This procedure is intended to get used *AFTER* a performed transfer,
+and can be relied upon only if the \fBperform\fP returns 0.  Use
+this function AFTER a performed transfer if you want to get
+transfer-oriented data.
+
+The following information can be extracted:
+
+.TP
+.B effectiveurl
+Returns the last used effective URL.
+
+.TP
+.B responsecode
+Returns the last received HTTP or FTP code. This will be zero if no server
+response code has been received. Note that a proxy's CONNECT response should
+be read with \fBhttpconnectcode\fP and not this.
+
+.TP
+.B httpconnectcode
+Returns the last received proxy response code to a CONNECT request.
+
+.TP
+.B filetime
+Returns the remote time of the retrieved document (in number of seconds
+since 1 jan 1970 in the GMT/UTC time zone). If you get -1,
+it can be because of many reasons (unknown, the server hides it or the
+server doesn't support the command that tells document time etc) and the time
+of the document is unknown.
+.sp
+In order for this to work you have to set the \fB-filetime\fP option before
+the transfer.
+
+.TP
+.B namelookuptime
+Returns the time, in seconds, it took from the start until the name resolving
+was completed.
+
+.TP
+.B connecttime
+Returns the time, in seconds, it took from the start until the connect to the
+remote host (or proxy) was completed.
+
+.TP
+.B appconnecttime
+Returns the time, in seconds, it took from the start until the SSL/SSH
+connect/handshake to the remote host was completed. This time is most often very
+near to the PRETRANSFER time, except for cases such as HTTP pippelining where the
+pretransfer time can be delayed due to waits in line for the pipeline and more.
+
+.TP
+.B pretransfertime
+Returns the time, in seconds, it took from the start until the file transfer
+is just about to begin. This includes all pre-transfer commands and
+negotiations that are specific to the particular protocol(s) involved.
+
+.TP
+.B starttransfertime
+Returns the time, in seconds, it took from the start until the first byte
+is just about to be transfered. This includes the \fBpretransfertime\fP,
+and also the time the server needs to calculate the result.
+
+.TP
+.B totaltime
+Returns the total transaction time, in seconds, for the previous transfer,
+including name resolving, TCP connect etc.
+
+.TP
+.B redirecturl
+Returns the URL a redirect would take you to if you enable \fBfollowlocation\fP.
+This can come very handy if you think using the built-in libcurl redirect logic
+isn't good enough for you but you would still prefer to avoid implementing all
+the magic of figuring out the new URL.
+
+.TP
+.B redirecttime
+Returns the total time, in seconds, it took for all redirection steps
+including name lookup, connect, pretransfer and transfer before
+the final transaction was started, it returns the complete execution
+time for multiple redirections, so it returns zero if no redirections
+were needed.
+
+.TP
+.B redirectcount
+Returns the total number of redirections that were actually followed.
+
+.TP
+.B numconnects
+Returns how many new connections TclCurl had to create to achieve the
+previous transfer (only the successful connects are counted). Combined
+with \fBredirectcount\fP you are able to know how many times TclCurl
+successfully reused existing connection(s) or not. See the Connection
+Options of \fBsetopt\fP to see how TclCurl tries to make persistent
+connections to save time.
+
+.TP
+.B primaryip
+Returns the IP address of the most recent connection done with this handle.
+This string may be IPv6 if that's enabled.
+
+.TP
+.B sizeupload
+Returns the total amount of bytes that were uploaded.
+
+.TP
+.B sizedownload
+Returns the total amount of bytes that were downloaded. The amount is only
+for the latest transfer and will be reset again for each new transfer.
+
+.TP
+.B speeddownload
+Returns the average download speed, measured in bytes/second, for the complete download.
+
+.TP
+.B speedupload
+Returns the average upload speed, measured in bytes/second, for the complete upload.
+
+.TP
+.B headersize
+Returns the total size in bytes of all the headers received.
+
+.TP
+.B requestsize
+Returns the total size of the issued requests. This is so far only for HTTP
+requests. Note that this may be more than one request if followLocation is true.
+
+.TP
+.B sslverifyresult
+Returns the result of the certification verification that was requested
+(using the -sslverifypeer option to configure).
+
+.TP
+.B sslengines
+Returns a \fBlist\fP of the OpenSSL crypto-engines supported. Note that engines are
+normally implemented in separate dynamic libraries. Hence not all the returned
+engines may be available at run-time.
+
+.TP
+.B contentlengthdownload
+Returns the content-length of the download. This is the value read from the
+.B Content-Length:
+field.
+
+.TP
+.B contentlengthupload
+Returns the specified size of the upload.
+
+.TP
+.B contenttype
+Returns the content-type of the downloaded object. This is the value
+read from the Content-Type: field. If you get an empty string, it  means
+the server didn't send a valid Content-Type header or that the protocol
+used doesn't support this.
+
+.TP
+.B httpauthavail
+Returns a list with the authentication method(s) available.
+
+.TP
+.B proxyauthavail
+Returns a list with the authentication method(s) available for your
+proxy athentication.
+
+.TP
+.B oserrno
+Returns the errno value from a connect failure.
+
+.TP
+.B cookielist
+Returns a list of all cookies TclCurl knows (expired ones, too). If there
+are no cookies (cookies for the handle have not been enabled or simply
+none have been received) the list will be empty.
+
+.TP
+.B ftpentrypath 
+Returns a string holding the path of the entry path. That is the initial path
+TclCurl ended up in when logging on to the remote FTP server. Returns an empty
+string if something is wrong.
+
+.SH curlHandle cleanup
+This procedure must be the last one to call for a curl session. It is the
+opposite of the
+.I curl::init
+procedure and must be called with the same
+.I curlhandle
+as input as the curl::init call returned.
+This will effectively close all connections TclCurl has used and possibly
+has kept open until now. Don't call this procedure if you intend to transfer
+more files.
+
+.SH curlHandle reset
+
+Re-initializes all options previously set on a specified handle to the
+default values.
+
+This puts back the handle to the same state as it was in when it was just
+created with curl::init.
+
+It does not change the following information kept in the handle: live
+connections, the Session ID cache, the DNS cache, the cookies and shares.
+
+.SH curlHandle duphandle
+This procedure will return a new curl handle, a duplicate,
+using all the options previously set in the input curl handle.
+Both handles can subsequently be used independently and
+they must both be freed with
+.B cleanup.
+The new handle will not inherit any state information,
+connections, SSL sessions or cookies.
+.TP
+.B RETURN VALUE
+A new curl handle or an error message if the copy fails.
+
+.SH curlHandle pause
+You can use this command from within a progress callback procedure
+to pause the transfer.
+
+.SH curlHandle resume
+Resumes a transfer paused with \fBcurlhandle pause\fP
+
+.SH curl::transfer
+In case you do not want to use persistant connections you can use this
+command, it takes the same arguments as the \fIcurlHandle\fP \fBconfigure\fP
+and will init, configure, perform and cleanup a connection for you.
+
+You can also get the \fIgetinfo\fP information by using \fI-infooption variable\fP
+pairs, after the transfer \fIvariable\fP will contain the value that would have
+been returned by \fI$curlHandle getinfo option\fP.
+.TP
+.B RETURN VALUE
+The same error code \fBperform\fP would return.
+
+.SH curl::version
+Returns a string with the version number of tclcurl, libcurl and some of
+its important components (like OpenSSL version).
+.TP
+.B RETURN VALUE
+The string with the version info.
+
+.SH curl::escape url
+This procedure will convert the given input string to an URL encoded string and
+return that. All input characters that are not a-z,
+A-Z or 0-9 will be converted to their "URL escaped" version (%NN where NN is a
+two-digit hexadecimal number)
+.TP
+.B RETURN VALUE
+The converted string.
+.SH curl::unescape url
+This procedure will convert the given URL encoded input string to a "plain
+string" and return that. All input characters that
+are URL encoded (%XX where XX is a two-digit hexadecimal number) will be
+converted to their plain text versions.
+.TP
+.B RETURN VALUE
+The string unencoded.
+
+.SH curl::curlConfig option
+Returns some information about how you have
+.B cURL
+installed.
+
+.TP
+.B -prefix
+Returns the directory root where you installed
+.B cURL
+.TP
+.B -feature
+Returns a list containing particular main features the installed
+.B libcurl
+was built with. The list may include SSL, KRB4 or IPv6, do not
+assume any particular order.
+.TP
+.B -vernum
+Outputs  version  information  about  the installed libcurl, in
+numerical mode.  This outputs the  version  number,  in hexadecimal,
+with 8 bits for each part; major, minor, patch. So  that  libcurl
+7.7.4 would appear as 070704 and libcurl 12.13.14 would appear as
+0c0d0e...
+
+.SH curl::versioninfo option
+Returns information about various run-time features in TclCurl.
+
+Applications should use this information to judge if things are possible to do
+or not, instead of using compile-time checks, as dynamic/DLL libraries can be
+changed independent of applications.
+
+.TP
+.B -version
+Returns the version of libcurl we are using.
+
+.TP
+.B -versionnum
+Retuns the version of libcurl we are using in hexadecimal with 8 bits for each
+part; major, minor, patch. So  that  libcurl 7.7.4 would appear as 070704 and
+libcurl 12.13.14 would appear as 0c0d0e... Note that the initial zero might be
+omitted.
+
+.TP
+.B -host
+Returns a string with the host information as discovered by a configure
+script or set by the build environment.
+
+.TP
+.B -features
+Returns a list with the features compiled into libcurl, the possible elements are:
+.RS
+.TP 5
+.B ASYNCHDNS
+Libcurl was built with support for asynchronous name lookups, which allows
+more exact timeouts (even on Windows) and less blocking when using the multi
+interface.
+.TP
+.B CONV
+Libcurl was built with support for character conversions.
+.TP
+.B DEBUG
+Libcurl was built with extra debug capabilities built-in. This is mainly of
+interest for libcurl hackers. 
+.TP
+.B GSSNEGOTIATE
+Supports HTTP GSS-Negotiate.
+.TP
+.B IDN
+Supports IDNA, domain names with international letters.
+.TP
+.B IPV6
+Supports IPv6.
+.TP
+.B KERBEROS4
+Supports kerberos4 (when using FTP).
+.TP
+.B LARGEFILE
+Libcurl was built with support for large files.
+.TP
+.B LIBZ
+Supports HTTP deflate using libz.
+.TP
+.B NTML
+Supports HTTP NTLM
+.TP
+.B SPNEGO
+Libcurl was built with support for SPNEGO authentication (Simple and Protected
+GSS-API Negotiation Mechanism, defined in RFC 2478)
+.TP
+.B SSL
+Supports SSL (HTTPS/FTPS)
+.TP
+.B SSPI
+Libcurl was built with support for SSPI. This is only available on Windows and
+makes libcurl use Windows-provided functions for NTLM authentication. It also
+allows libcurl to use the current user and the current user's password without
+the app having to pass them on.
+.RE
+Do not assume any particular order.
+
+.TP
+.B -sslversion
+Returns a string with the OpenSSL version used, like OpenSSL/0.9.6b.
+
+.TP
+.B -sslversionnum
+Returns the numerical OpenSSL version value as defined by the OpenSSL project.
+If libcurl has no SSL support, this is 0.
+
+.TP
+.B -libzversion
+Returns a string, there is no numerical  version, for example: 1.1.3.
+
+.TP
+.B -protocols
+Lists what particular protocols the installed TclCurl was built to support.
+At the time of writing, this list may include HTTP, HTTPS, FTP, FTPS,
+FILE, TELNET, LDAP, DICT. Do not assume any particular order. The protocols
+will be listed using uppercase. There may be none, one or several protocols
+in the list.
+
+.SH curl::easystrerror errorCode
+This procedure returns a string describing the error code passed in the argument.
+
+.SH "SEE ALSO"
+.I curl, The art of HTTP scripting (at http://curl.haxx.se), RFC 2396,
diff --git a/doc/tclcurl_multi.html b/doc/tclcurl_multi.html
new file mode 100755 (executable)
index 0000000..09c82f6
--- /dev/null
@@ -0,0 +1,319 @@
+<HTML><HEAD><TITLE>Manpage of TclCurl</TITLE>
+</HEAD><BODY>
+<H1>TclCurl</H1>
+Section: TclCurl Multi Interface (n)<BR>Updated: 8 September 2008<BR><HR>
+
+<A NAME="lbAB">&nbsp;</A>
+<H2>NAME</H2>
+
+TclCurl: - get  a  URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE or LDAP syntax.
+<A NAME="lbAC">&nbsp;</A>
+<H2>SYNOPSIS</H2>
+
+<B>curl::multiinit</B>
+
+<P>
+<I>multiHandle</I><B> addhandle</B>
+
+<P>
+<I>multiHandle</I><B> removehandle</B>
+
+<P>
+<I>multiHandle</I><B> configure</B>
+
+<P>
+<I>multiHandle</I><B> perform</B>
+
+<P>
+<I>multiHandle</I><B> active</B>
+
+<P>
+<I>multiHandle</I><B> getinfo </B>
+
+<P>
+<I>multihandle</I><B> cleanup</B>
+
+<P>
+<I>multihandle</I><B> auto</B>
+
+<P>
+<B>curl::multistrerror </B><I>errorCode</I>
+
+<P>
+<A NAME="lbAD">&nbsp;</A>
+<H2>DESCRIPTION</H2>
+
+TclCurl's multi interface introduces several new abilities that the easy
+interface refuses to offer. They are mainly:
+<ul>
+<li>Enable a &quot;pull&quot; interface. The application that uses TclCurl decides where
+and when to get/send data.<br><br>
+<li>Enable multiple simultaneous transfers in the same thread without making it
+complicated for the application.<br><br>
+<li>Keep Tk GUIs 'alive' while transfers are taking place.<br><br>
+</ul>
+<P>
+</DL>
+<A NAME="lbAE">&nbsp;</A>
+<H2>Blocking</H2>
+
+A few areas in the code are still using blocking code, even when used from the
+multi interface. While we certainly want and intend for these to get fixed in
+the future, you should be aware of the following current restrictions:
+<ul>
+<li>Name resolves on non-windows unless c-ares is used.</B>
+
+<li>GnuTLS SSL connections.</B>
+
+<li>Active FTP connections.</B>
+
+<li>HTTP proxy CONNECT operations.</B>
+
+<li>SCP and SFTP connections.</B>
+
+<li>SFTP transfers.</B>
+
+<li>TFTP transfers</B>
+
+<li>file:// transfers.</B>
+</ul>
+
+<P>
+<A NAME="lbAF">&nbsp;</A>
+<H2>curl::multiinit</H2>
+
+This procedure must be the first one to call, it returns a <I>multiHandle</I>
+that you need to use to invoke TclCurl procedures. The init MUST have a
+corresponding call to <I>cleanup</I> when the operation is completed.
+<P>
+<B>RETURN VALUE</B>
+
+<P>
+<I>multiHandle</I>
+
+to use.
+<P>
+<A NAME="lbAG">&nbsp;</A>
+<H2>multiHandle addhandle ?easyHandle?</H2>
+
+<P>
+Each single transfer is built up with an 'easy' handle, the kind we have been
+using so far with TclCurl, you must create them and setup the appropriate
+options for each of them. Then we add them to the 'multi stack' using the
+<I>addhandle</I> command.
+<P>
+If the easy handle is not set to use a shared or global DNS cache, it will be made
+to use the DNS cache that is shared between all easy handles within the multi handle.
+<P>
+When an easy handle has been added to a multi stack, you can not and you must not use
+<I>perform</I> on that handle!
+<P>
+<P>
+<I>multiHandle</I>
+
+is the return code from the <I>curl::multiinit</I> call.
+<P>
+<B>RETURN VALUE</B>
+
+The possible return values are:
+<DL COMPACT>
+<DT>-1<DD>
+Handle added to the multi stack, please call
+<I>perform</I>
+
+soon
+<DT>0<DD>
+Handle added ok.
+<DT>1<DD>
+Invalid multi handle.
+<DT>2<DD>
+Invalid 'easy' handle. It could mean that it isn't an easy handle at all, or possibly that
+the handle already is in used by this or another multi handle. 
+<DT>3<DD>
+Out of memory, you should never get this.
+<DT>4<DD>
+You found a bug in TclCurl.
+<P>
+</DL>
+<A NAME="lbAH">&nbsp;</A>
+<H2>multiHandle removehandle ?easyHandle?</H2>
+
+<P>
+When a transfer is done or if we want to stop a transfer before it is completed,
+we can use the <I>removehandle</I> command. Once removed from the multi handle,
+we can again use other easy interface functions on it.
+<P>
+Please note that when a single transfer is completed, the easy handle is still
+left added to the multi stack. You need to remove it and then close or, possibly,
+set new options to it and add it again to the multi handle to start another transfer.
+<P>
+<P>
+<B>RETURN VALUE</B>
+
+The possible return values are:
+<DL COMPACT>
+<DT>0<DD>
+Handle removed ok.
+<DT>1<DD>
+Invalid multi handle.
+<DT>2<DD>
+Invalid 'easy' handle.
+<DT>3<DD>
+Out of memory, you should never get this.
+<DT>4<DD>
+You found a bug in TclCurl.
+<P>
+</DL>
+<A NAME="lbAI">&nbsp;</A>
+<H2>multiHandle configure</H2>
+
+So far the only option is:
+<DL COMPACT>
+<DT><B>-pipelining</B>
+
+<DD>
+Pass a 1 to enable or 0 to disable. Enabling pipelining on a multi handle will
+make it attempt to perform HTTP Pipelining as far as possible for transfers using
+this handle. This means that if you add a second request that can use an already
+existing connection, the second request will be &quot;piped&quot; on the same connection
+rather than being executed in parallel.
+<DT><B>-maxconnects</B>
+
+<DD>
+Pass a number which will be used as the maximum amount of simultaneously open
+connections that TclCurl may cache. Default is 10, and TclCurl will enlarge
+the size for each added easy handle to make it fit 4 times the number of added
+easy handles.
+<P>
+By setting this option, you can prevent the cache size to grow beyond the limit
+set by you. When the cache is full, curl closes the oldest one in the cache to
+prevent the number of open connections to increase.
+<P>
+This option is for the multi handle's use only, when using the easy interface you should instead use it's own <B>maxconnects</B> option.
+<P>
+</DL>
+<A NAME="lbAJ">&nbsp;</A>
+<H2>multiHandle perform</H2>
+
+Adding the easy handles to the multi stack does not start any transfer.
+Remember that one of the main ideas with this interface is to let your
+application drive. You drive the transfers by invoking
+<I>perform.</I>
+
+TclCurl will then transfer data if there is anything available to transfer.
+It'll use the callbacks and everything else we have setup in the individual
+easy handles. It'll transfer data on all current transfers in the multi stack
+that are ready to transfer anything. It may be all, it may be none.
+<P>
+When you call <B>perform</B> and the amount of Irunning handles is
+changed from the previous call (or is less than the amount of easy handles
+you added to the multi handle), you know that there is one or more
+transfers less &quot;running&quot;. You can then call <I>getinfo</I> to
+get information about each individual completed transfer.
+<P>
+<B>RETURN VALUE</B>
+
+If everything goes well, it returns the number of running handles, '0' if all
+are done. In case of error, it will return the error code.
+<P>
+<A NAME="lbAK">&nbsp;</A>
+<H2>multiHandle active</H2>
+
+In order to know if any of the easy handles are ready to transfer data before
+invoking
+<I>perform</I>
+
+you can use the
+<I>active</I>
+
+command, it will return the number of transfers currently active.
+<P>
+<B>RETURN VALUE</B>
+
+The number of active transfers or '-1' in case of error.
+<P>
+<A NAME="lbAL">&nbsp;</A>
+<H2>multiHandle getinfo</H2>
+
+This procedure returns very simple information about the transfers, you
+can get more detail information using the <I>getinfo</I>
+command on each of the easy handles.
+<P>
+<P>
+<B>RETURN VALUE</B>
+
+A list with the following elements:
+<DL COMPACT>
+<DT>easyHandle about which the info is about.<DD>
+<DT>state of the transfer, '1' if it is done.<DD>
+<DT>exit code of the transfer, '0' if there was no error,...<DD>
+<DT>Number of messages still in the info queue.<DD>
+<DT>In case there are no messages in the queue it will return {&quot;&quot; 0 0 0}.<DD>
+<P>
+</DL>
+<A NAME="lbAM">&nbsp;</A>
+<H2>multiHandle cleanup</H2>
+
+This procedure must be the last one to call for a multi stack, it is the opposite of the
+<I>curl::multiinit</I>
+
+procedure and must be called with the same
+<I>multiHandle</I>
+
+as input as the
+<B>curl::multiinit</B>
+
+call returned.
+<P>
+<A NAME="lbAN">&nbsp;</A>
+<H2>multiHandle auto ?-command <I>command</I>?</H2>
+
+Using this command Tcl's event loop will take care of periodically invoking <B>perform</B>
+for you, before using it, you must have already added at least one easy handle to
+the multi handle.
+<P>
+The <B>command</B> option allows you to specify a command to invoke after all the easy
+handles have finished their transfers, even though I say it is an option, the truth is
+you must use this command to cleanup all the handles, otherwise the transfered files
+may not be complete.
+<P>
+This support is still in a very experimental state, it may still change without warning.
+Any and all comments are welcome.
+<P>
+You can find a couple of examples at <B>tests/multi</B>.
+<P>
+<A NAME="lbAO">&nbsp;</A>
+<H2>curl::multistrerror errorCode</H2>
+
+This procedure returns a string describing the error code passed in the argument.
+<P>
+<A NAME="lbAP">&nbsp;</A>
+<H2>SEE ALSO</H2>
+
+<I>tclcurl, curl.</I>
+
+<P>
+
+<HR>
+<A NAME="index">&nbsp;</A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">Blocking</A><DD>
+<DT><A HREF="#lbAF">curl::multiinit</A><DD>
+<DT><A HREF="#lbAG">multiHandle addhandle ?easyHandle?</A><DD>
+<DT><A HREF="#lbAH">multiHandle removehandle ?easyHandle?</A><DD>
+<DT><A HREF="#lbAI">multiHandle configure</A><DD>
+<DT><A HREF="#lbAJ">multiHandle perform</A><DD>
+<DT><A HREF="#lbAK">multiHandle active</A><DD>
+<DT><A HREF="#lbAL">multiHandle getinfo</A><DD>
+<DT><A HREF="#lbAM">multiHandle cleanup</A><DD>
+<DT><A HREF="#lbAN">multiHandle auto ?-command <I>command</I>?</A><DD>
+<DT><A HREF="#lbAO">curl::multistrerror errorCode</A><DD>
+<DT><A HREF="#lbAP">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by man2html, using the manual pages.<BR>
+</BODY>
+</HTML>
diff --git a/doc/tclcurl_multi.n b/doc/tclcurl_multi.n
new file mode 100644 (file)
index 0000000..933d00d
--- /dev/null
@@ -0,0 +1,226 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" Adapted from libcurl docs by fandom@telefonica.net
+.TH TclCurl n "8 September 2008" "TclCurl 7.19.0" "TclCurl Multi Interface"
+.SH NAME
+TclCurl: - get  a  URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE or LDAP syntax.
+.SH SYNOPSIS
+.BI "curl::multiinit"
+.sp
+.IB multiHandle " addhandle"
+.sp
+.IB multiHandle " removehandle"
+.sp
+.IB multiHandle " configure"
+.sp
+.IB multiHandle " perform"
+.sp
+.IB multiHandle " active"
+.sp
+.IB multiHandle " getinfo "
+.sp
+.IB multihandle " cleanup"
+.sp
+.IB multihandle " auto"
+.sp
+.BI "curl::multistrerror " errorCode
+.sp
+.SH DESCRIPTION
+TclCurl's multi interface introduces several new abilities that the easy
+interface refuses to offer. They are mainly:
+.TP
+Enable a "pull" interface. The application that uses TclCurl decides where and when to get/send data.
+.TP
+Enable multiple simultaneous transfers in the same thread without making it complicated for the application.
+.TP
+Keep Tk GUIs 'alive' while transfers are taking place.
+
+.SH Blocking
+A few areas in the code are still using blocking code, even when used from the
+multi interface. While we certainly want and intend for these to get fixed in
+the future, you should be aware of the following current restrictions:
+.RS
+.TP 5
+.B Name resolves on non-windows unless c-ares is used.
+.TP
+.B GnuTLS SSL connections.
+.TP
+.B Active FTP connections.
+.TP
+.B HTTP proxy CONNECT operations.
+.TP
+.B TFTP transfers
+.TP
+.B file:// transfers.
+.RE
+
+.SH curl::multiinit
+This procedure must be the first one to call, it returns a \fImultiHandle\fP
+that you need to use to invoke TclCurl procedures. The init MUST have a
+corresponding call to \fIcleanup\fP when the operation is completed.
+.sp
+.B RETURN VALUE
+.sp
+.I multiHandle
+to use.
+.sp
+.SH multiHandle addhandle ?easyHandle?
+.sp
+Each single transfer is built up with an 'easy' handle, the kind we have been
+using so far with TclCurl, you must create them and setup the appropriate
+options for each of them. Then we add them to the 'multi stack' using the
+\fIaddhandle\fP command.
+
+If the easy handle is not set to use a shared or global DNS cache, it will be made
+to use the DNS cache that is shared between all easy handles within the multi handle.
+
+When an easy handle has been added to a multi stack, you can not and you must not use
+\fIperform\fP on that handle!
+
+.sp
+.I "multiHandle"
+is the return code from the \fIcurl::multiinit\fP call.
+.sp
+.B RETURN VALUE
+The possible return values are:
+.IP -1
+Handle added to the multi stack, please call
+.I perform
+soon
+.IP 0
+Handle added ok.
+.IP 1
+Invalid multi handle.
+.IP 2
+Invalid 'easy' handle. It could mean that it isn't an easy handle at all, or possibly that
+the handle already is in used by this or another multi handle. 
+.IP 3
+Out of memory, you should never get this.
+.IP 4
+You found a bug in TclCurl.
+.sp
+.SH multiHandle removehandle ?easyHandle?
+.sp
+When a transfer is done or if we want to stop a transfer before it is completed,
+we can use the \fIremovehandle\fP command. Once removed from the multi handle,
+we can again use other easy interface functions on it.
+
+Please note that when a single transfer is completed, the easy handle is still
+left added to the multi stack. You need to remove it and then close or, possibly,
+set new options to it and add it again to the multi handle to start another transfer.
+
+.sp
+.B RETURN VALUE
+The possible return values are:
+.IP 0
+Handle removed ok.
+.IP 1
+Invalid multi handle.
+.IP 2
+Invalid 'easy' handle.
+.IP 3
+Out of memory, you should never get this.
+.IP 4
+You found a bug in TclCurl.
+.sp
+.SH multiHandle configure
+So far the only option is:
+.TP
+.B -pipelining
+Pass a 1 to enable or 0 to disable. Enabling pipelining on a multi handle will
+make it attempt to perform HTTP Pipelining as far as possible for transfers using
+this handle. This means that if you add a second request that can use an already
+existing connection, the second request will be "piped" on the same connection
+rather than being executed in parallel.
+.TP
+.B -maxconnects
+Pass a number which will be used as the maximum amount of simultaneously open
+connections that TclCurl may cache. Default is 10, and TclCurl will enlarge
+the size for each added easy handle to make it fit 4 times the number of added
+easy handles.
+
+By setting this option, you can prevent the cache size to grow beyond the limit
+set by you. When the cache is full, curl closes the oldest one in the cache to
+prevent the number of open connections to increase.
+
+This option is for the multi handle's use only, when using the easy interface you should instead use it's own \fBmaxconnects\fP option.
+.sp
+.SH multiHandle perform
+Adding the easy handles to the multi stack does not start any transfer.
+Remember that one of the main ideas with this interface is to let your
+application drive. You drive the transfers by invoking
+.I perform.
+TclCurl will then transfer data if there is anything available to transfer.
+It'll use the callbacks and everything else we have setup in the individual
+easy handles. It'll transfer data on all current transfers in the multi stack
+that are ready to transfer anything. It may be all, it may be none.
+
+When you call \fBperform\fP and the amount of Irunning handles is
+changed from the previous call (or is less than the amount of easy handles
+you added to the multi handle), you know that there is one or more
+transfers less "running". You can then call \fIgetinfo\fP to
+get information about each individual completed transfer.
+.sp
+.B RETURN VALUE
+If everything goes well, it returns the number of running handles, '0' if all
+are done. In case of error, it will return the error code.
+.sp
+.SH multiHandle active
+In order to know if any of the easy handles are ready to transfer data before
+invoking
+.I perform
+you can use the
+.I active
+command, it will return the number of transfers currently active.
+.sp
+.B RETURN VALUE
+The number of active transfers or '-1' in case of error.
+
+.SH multiHandle getinfo
+This procedure returns very simple information about the transfers, you
+can get more detail information using the \fIgetinfo\fP
+command on each of the easy handles.
+
+.sp
+.B RETURN VALUE
+A list with the following elements:
+.TP
+easyHandle about which the info is about.
+.TP
+state of the transfer, '1' if it is done.
+.TP
+exit code of the transfer, '0' if there was no error,...
+.TP
+Number of messages still in the info queue.
+.TP
+In case there are no messages in the queue it will return {"" 0 0 0}.
+
+.SH multiHandle cleanup
+This procedure must be the last one to call for a multi stack, it is the opposite of the
+.I curl::multiinit
+procedure and must be called with the same
+.I multiHandle
+as input as the
+.B curl::multiinit
+call returned.
+
+.SH multiHandle auto ?-command \fIcommand\fP?
+Using this command Tcl's event loop will take care of periodically invoking \fBperform\fP
+for you, before using it, you must have already added at least one easy handle to
+the multi handle.
+
+The \fBcommand\fP option allows you to specify a command to invoke after all the easy
+handles have finished their transfers, even though I say it is an option, the truth is
+you must use this command to cleanup all the handles, otherwise the transfered files
+may not be complete.
+
+This support is still in a very experimental state, it may still change without warning.
+Any and all comments are welcome.
+
+You can find a couple of examples at \fBtests/multi\fP.
+
+.SH curl::multistrerror errorCode
+This procedure returns a string describing the error code passed in the argument.
+
+.SH "SEE ALSO"
+.I tclcurl, curl.
diff --git a/doc/tclcurl_share.html b/doc/tclcurl_share.html
new file mode 100755 (executable)
index 0000000..d3336ea
--- /dev/null
@@ -0,0 +1,111 @@
+<HTML><HEAD><TITLE>Manpage of TclCurl</TITLE>
+</HEAD><BODY>
+<H1>TclCurl</H1>
+Section: TclCurl share data api (n)<BR>Updated: 8 September 2008<BR><HR>
+
+<A NAME="lbAB">&nbsp;</A>
+<H2>NAME</H2>
+TclCurl: - get  a  URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE or LDAP syntax.
+<A NAME="lbAC">&nbsp;</A>
+<H2>SYNOPSIS</H2>
+
+<B>curl::shareinit</B>
+
+<P>
+<I>shareHandle</I><B> share </B><I>?data?</I>
+
+<P>
+<I>shareHandle</I><B> unshare </B><I>?data?</I>
+
+<P>
+<I>shareHandle</I><B> cleanup</B>
+
+<P>
+<B>curl::sharestrerror </B><I>errorCode</I>
+
+<P>
+<P>
+<A NAME="lbAD">&nbsp;</A>
+<H2>DESCRIPTION</H2>
+
+<P>
+With the share API, you can have two or more 'easy' handles sharing data
+among them, so far they can only share cookies and DNS data.
+<P>
+<A NAME="lbAE">&nbsp;</A>
+<H2>curl::shareinit</H2>
+
+This procedure must be the first one to call, it returns a <B>shareHandle</B>
+that you need to use to share data among handles using the <B>-share</B> option
+to the <B>configure</B> command. The init MUST have a corresponding call to
+<B>cleanup</B> when the operation is completed.
+<P>
+<B>RETURN VALUE</B>
+
+<P>
+<B>shareHandle</B> to use.
+<P>
+<A NAME="lbAF">&nbsp;</A>
+<H2>shareHandle share ?data?</H2>
+
+<P>
+The parameter specifies a type of data that should be shared. This may be set
+to one of the values described below:
+<P>
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>cookies</B>
+
+<DD>
+Cookie data will be shared across the easy handles using this shared object.
+<P>
+<DT><B>dns</B>
+
+<DD>
+Cached DNS hosts will be shared across the easy handles using this shared object.
+</DL>
+</DL>
+
+<P>
+<A NAME="lbAG">&nbsp;</A>
+<H2>shareHandle unshare ?data?</H2>
+
+This command does the opposite of <B>share</B>. The specified parameter will no
+longer be shared. Valid values are the same as those for <B>share</B>.
+<P>
+<A NAME="lbAH">&nbsp;</A>
+<H2>sharehandle cleanup</H2>
+
+<P>
+Deletes a shared object. The share handle cannot be used anymore after this
+function has been called.
+<P>
+<A NAME="lbAI">&nbsp;</A>
+<H2>curl::sharestrerror errorCode</H2>
+
+Returns a string describing the error code passed in the argument.
+<P>
+<A NAME="lbAJ">&nbsp;</A>
+<H2>SEE ALSO</H2>
+
+<I>curl, TclCurl</I>
+
+<P>
+
+<HR>
+<A NAME="index">&nbsp;</A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">curl::shareinit</A><DD>
+<DT><A HREF="#lbAF">shareHandle share ?data?</A><DD>
+<DT><A HREF="#lbAG">shareHandle unshare ?data?</A><DD>
+<DT><A HREF="#lbAH">sharehandle cleanup</A><DD>
+<DT><A HREF="#lbAI">curl::sharestrerror errorCode</A><DD>
+<DT><A HREF="#lbAJ">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by man2html, using the manual pages.<BR>
+</BODY>
+</HTML>
diff --git a/doc/tclcurl_share.n b/doc/tclcurl_share.n
new file mode 100644 (file)
index 0000000..5bedf8b
--- /dev/null
@@ -0,0 +1,64 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" Adapted from libcurl docs by fandom@telefonica.net
+.TH TclCurl n "8 September 2008" "TclCurl 7.19.0" "TclCurl share data api"
+.SH NAME
+TclCurl: - get  a  URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE or LDAP syntax.
+.SH SYNOPSIS
+.BI "curl::shareinit"
+.sp
+.IB shareHandle " share " "?data?"
+.sp
+.IB shareHandle " unshare " "?data?"
+.sp
+.IB shareHandle " cleanup"
+.sp
+.BI "curl::sharestrerror " errorCode
+
+
+.SH DESCRIPTION
+
+With the share API, you can have two or more 'easy' handles sharing data
+among them, so far they can only share cookies and DNS data.
+
+.SH curl::shareinit
+This procedure must be the first one to call, it returns a \fBshareHandle\fP
+that you need to use to share data among handles using the \fB-share\fP option
+to the \fBconfigure\fP command. The init MUST have a corresponding call to
+\fBcleanup\fP when the operation is completed.
+
+.B RETURN VALUE
+.sp
+\fBshareHandle\fP to use.
+
+.SH shareHandle share ?data?
+
+The parameter specifies a type of data that should be shared. This may be set
+to one of the values described below:
+
+.RS
+.TP 5
+.B cookies
+Cookie data will be shared across the easy handles using this shared object.
+
+.TP
+.B dns
+Cached DNS hosts will be shared across the easy handles using this shared object.
+Note that when you use the multi interface, all easy handles added to the same multi
+handle will share DNS cache by default without this having to be used!
+.RE
+
+.SH shareHandle unshare ?data?
+This command does the opposite of \fBshare\fP. The specified parameter will no
+longer be shared. Valid values are the same as those for \fBshare\fP.
+
+.SH sharehandle cleanup
+
+Deletes a shared object. The share handle cannot be used anymore after this
+function has been called.
+
+.SH curl::sharestrerror errorCode
+Returns a string describing the error code passed in the argument.
+
+.SH "SEE ALSO"
+.I curl, TclCurl
diff --git a/generic/multi.c b/generic/multi.c
new file mode 100755 (executable)
index 0000000..c3dc202
--- /dev/null
@@ -0,0 +1,905 @@
+/*
+ * multi.c --
+ *
+ * Implementation of the part of the TclCurl extension that deals with libcurl's
+ * 'multi' interface.
+ *
+ * Copyright (c)2002-2009 Andres Garcia Garcia.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ */
+
+#include "multi.h"
+#include <sys/time.h>
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tclcurl_MultiInit --
+ *
+ *     This procedure initializes the 'multi' part of the package
+ *
+ * Results:
+ *     A standard Tcl result.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Tclcurl_MultiInit (Tcl_Interp *interp) {
+
+    Tcl_CreateObjCommand (interp,"::curl::multiinit",curlInitMultiObjCmd,
+            (ClientData)NULL,(Tcl_CmdDeleteProc *)NULL);
+
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlCreateMultiObjCmd --
+ *
+ *     Looks for the first free handle (mcurl1, mcurl2,...) and creates a
+ *     Tcl command for it.
+ *
+ * Results:
+ *  A string with the name of the handle, don't forget to free it.
+ *
+ * Side effects:
+ *     See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+
+char *
+curlCreateMultiObjCmd (Tcl_Interp *interp,struct curlMultiObjData *curlMultiData) {
+    char                *handleName;
+    int                 i;
+    Tcl_CmdInfo         info;
+    Tcl_Command         cmdToken;
+
+    /* We try with mcurl1, if it already exists with mcurl2, ... */
+    handleName=(char *)Tcl_Alloc(10);
+    for (i=1;;i++) {
+        sprintf(handleName,"mcurl%d",i);
+        if (!Tcl_GetCommandInfo(interp,handleName,&info)) {
+            cmdToken=Tcl_CreateObjCommand(interp,handleName,curlMultiObjCmd,
+                                (ClientData)curlMultiData, 
+                                (Tcl_CmdDeleteProc *)curlMultiDeleteCmd);
+            break;
+        }
+    }
+
+    curlMultiData->token=cmdToken;
+
+    return handleName;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlInitMultiObjCmd --
+ *
+ *     This procedure is invoked to process the "curl::multiInit" Tcl command.
+ *     See the user documentation for details on what it does.
+ *
+ * Results:
+ *     A standard Tcl result.
+ *
+ * Side effects:
+ *     See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+curlInitMultiObjCmd (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]) {
+
+
+    Tcl_Obj                     *result;
+    struct curlMultiObjData     *curlMultiData;
+    char                        *multiHandleName;
+
+    curlMultiData=(struct curlMultiObjData *)Tcl_Alloc(sizeof(struct curlMultiObjData));
+    if (curlMultiData==NULL) {
+        result=Tcl_NewStringObj("Couldn't allocate memory",-1);
+        Tcl_SetObjResult(interp,result); 
+        return TCL_ERROR;
+    }
+
+    memset(curlMultiData, 0, sizeof(struct curlMultiObjData));
+    curlMultiData->interp=interp;
+
+    curlMultiData->mcurl=curl_multi_init();
+
+    if (curlMultiData->mcurl==NULL) {
+        result=Tcl_NewStringObj("Couldn't open curl multi handle",-1);
+        Tcl_SetObjResult(interp,result); 
+        return TCL_ERROR;
+    }
+
+    multiHandleName=curlCreateMultiObjCmd(interp,curlMultiData);
+
+    result=Tcl_NewStringObj(multiHandleName,-1);
+    Tcl_SetObjResult(interp,result);
+    Tcl_Free(multiHandleName);
+
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlMultiObjCmd --
+ *
+ *     This procedure is invoked to process the "multi curl" commands.
+ *     See the user documentation for details on what it does.
+ *
+ * Results:
+ *     A standard Tcl result.
+ *
+ * Side effects:
+ *     See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlMultiObjCmd (ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]) {
+
+    struct curlMultiObjData    *curlMultiData=(struct curlMultiObjData *)clientData;
+    CURLMcode                   errorCode;
+    int                         tableIndex;
+
+    if (objc<2) {
+        Tcl_WrongNumArgs(interp,1,objv,"option arg ?arg?");
+        return TCL_ERROR;
+    }
+    if (Tcl_GetIndexFromObj(interp, objv[1], multiCommandTable, "option",
+            TCL_EXACT,&tableIndex)==TCL_ERROR) {
+        return TCL_ERROR;
+    }
+    switch(tableIndex) {
+        case 0:
+/*            fprintf(stdout,"Multi add handle\n"); */
+            errorCode=curlAddMultiHandle(interp,curlMultiData->mcurl,objv[2]);
+            return curlReturnCURLMcode(interp,errorCode);
+            break;
+        case 1:
+/*            fprintf(stdout,"Multi remove handle\n"); */
+            errorCode=curlRemoveMultiHandle(interp,curlMultiData->mcurl,objv[2]);
+            return curlReturnCURLMcode(interp,errorCode);
+            break;
+        case 2:
+/*            fprintf(stdout,"Multi perform\n"); */
+            errorCode=curlMultiPerform(interp,curlMultiData->mcurl);
+            return errorCode;
+            break;
+        case 3:
+/*            fprintf(stdout,"Multi cleanup\n"); */
+            Tcl_DeleteCommandFromToken(interp,curlMultiData->token);
+            break;
+        case 4:
+/*            fprintf(stdout,"Multi getInfo\n"); */
+            curlMultiGetInfo(interp,curlMultiData->mcurl);
+            break;
+        case 5:
+/*            fprintf(stdout,"Multi activeTransfers\n"); */
+            curlMultiActiveTransfers(interp,curlMultiData);
+            break;
+        case 6:
+/*            fprintf(stdout,"Multi auto transfer\n");*/
+            curlMultiAutoTransfer(interp,curlMultiData,objc,objv);
+            break;
+        case 7:
+/*            fprintf(stdout,"Multi configure\n");*/
+            curlMultiConfigTransfer(interp,curlMultiData,objc,objv);
+            break;            
+    }
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlAddMultiHandle --
+ *
+ *     Adds an 'easy' curl handle to the stack of a 'multi' handle.
+ *
+ *  Parameter:
+ *      interp: Pointer to the interpreter we are using.
+ *      curlMultiHandle: The handle into which we will add the easy one.
+ *      objvPtr: The Tcl object with the name of the easy handle.
+ *
+ * Results:
+ *  '0' all went well.
+ *  'non-zero' in case of error.
+ *----------------------------------------------------------------------
+ */
+CURLMcode
+curlAddMultiHandle(Tcl_Interp *interp,CURLM *curlMultiHandlePtr
+        ,Tcl_Obj *objvPtr) {
+
+    struct curlObjData        *curlDataPtr;
+    CURLMcode                  errorCode;
+
+
+    curlDataPtr=curlGetEasyHandle(interp,objvPtr);
+
+    if (curlOpenFiles(interp,curlDataPtr)) {
+        return TCL_ERROR;
+    }
+    if (curlSetPostData(interp,curlDataPtr)) {
+        return TCL_ERROR;
+    }
+
+    errorCode=curl_multi_add_handle(curlMultiHandlePtr,curlDataPtr->curl);
+
+    curlEasyHandleListAdd(curlMultiHandlePtr,curlDataPtr->curl
+            ,Tcl_GetString(objvPtr));
+
+    return errorCode;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlRemoveMultiHandle --
+ *
+ *     Removes an 'easy' curl handle to the stack of a 'multi' handle.
+ *
+ *  Parameter:
+ *      interp: Pointer to the interpreter we are using.
+ *      curlMultiHandle: The handle into which we will add the easy one.
+ *      objvPtr: The Tcl object with the name of the easy handle.
+ *
+ * Results:
+ *  '0' all went well.
+ *  'non-zero' in case of error.
+ *----------------------------------------------------------------------
+ */
+CURLMcode
+curlRemoveMultiHandle(Tcl_Interp *interp,CURLM *curlMultiHandle
+        ,Tcl_Obj *objvPtr) {
+    struct curlObjData        *curlDataPtr;
+    CURLMcode                  errorCode;
+
+    curlDataPtr=curlGetEasyHandle(interp,objvPtr);
+    errorCode=curl_multi_remove_handle(curlMultiHandle,curlDataPtr->curl);
+    curlEasyHandleListRemove(curlMultiHandle,curlDataPtr->curl);
+
+    curlCloseFiles(curlDataPtr);
+    curlResetPostData(curlDataPtr);
+
+    if (curlDataPtr->bodyVarName) {
+        curlSetBodyVarName(interp,curlDataPtr);
+    }
+
+    return errorCode;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlMultiPerform --
+ *
+ *     Invokes the 'curl_multi_perform' function to update the current
+ *  transfers.
+ *
+ *  Parameter:
+ *      interp: Pointer to the interpreter we are using.
+ *      curlMultiHandle: The handle of the transfer to update.
+ *      objvPtr: The Tcl object with the name of the easy handle.
+ *
+ * Results:
+        Usual Tcl result.
+ *----------------------------------------------------------------------
+ */
+int
+curlMultiPerform(Tcl_Interp *interp,CURLM *curlMultiHandlePtr) {
+
+    CURLMcode        errorCode;
+    int              runningTransfers;
+
+    for (errorCode=-1;errorCode<0;) {   
+        errorCode=curl_multi_perform(curlMultiHandlePtr,&runningTransfers);
+    }
+
+    if (errorCode==0) {
+        curlReturnCURLMcode(interp,runningTransfers);
+        return TCL_OK;
+    }
+
+    curlReturnCURLMcode(interp,errorCode);
+
+    return TCL_ERROR;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlMultiDeleteCmd --
+ *
+ *     This procedure is invoked when curl multi handle is deleted.
+ *     See the user documentation for details on what it does.
+ *
+ * Results:
+ *     A standard Tcl result.
+ *
+ * Side effects:
+ *     Cleans the curl handle and frees the memory.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlMultiDeleteCmd(ClientData clientData) {
+    struct curlMultiObjData     *curlMultiData=(struct curlMultiObjData *)clientData;
+    CURLM                       *curlMultiHandle=curlMultiData->mcurl;
+    CURLMcode                    errorCode;
+    Tcl_Interp                  *interp=curlMultiData->interp;
+    struct easyHandleList       *listPtr1,*listPtr2;
+
+    listPtr1=curlMultiData->handleListFirst;
+    while (listPtr1!=NULL) {
+        listPtr2=listPtr1->next;
+        Tcl_Free(listPtr1->name);
+        Tcl_Free((char *)listPtr1); 
+        listPtr1=listPtr2;
+    }
+    errorCode=curl_multi_cleanup(curlMultiHandle);
+    curlMultiFreeSpace(curlMultiData);
+    return curlReturnCURLMcode(interp,errorCode);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlGetMultiInfo --
+ *    Invokes the curl_multi_info_read function in libcurl to get
+ *    some info about the transfer, like if they are done and
+ *    things like that.
+ *
+ * Parameter:
+ *    interp: The Tcl interpreter we are using, mainly to report errors.
+ *    curlMultiHandlePtr: Pointer to the multi handle of the transfer.
+ *
+ * Results:
+ *    Standard Tcl codes. The Tcl command will return a list with the
+ *    name of the Tcl command and other info.
+ *----------------------------------------------------------------------
+ */
+int
+curlMultiGetInfo(Tcl_Interp *interp,CURLM *curlMultiHandlePtr) {
+    struct CURLMsg        *multiInfo;
+    int                    msgLeft;
+    Tcl_Obj               *resultPtr;
+
+    multiInfo=curl_multi_info_read(curlMultiHandlePtr, &msgLeft);
+    resultPtr=Tcl_NewListObj(0,(Tcl_Obj **)NULL); 
+    if (multiInfo==NULL) {
+        Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewStringObj("",-1));
+        Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewIntObj(0));
+        Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewIntObj(0));
+        Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewIntObj(0));
+    } else {
+        Tcl_ListObjAppendElement(interp,resultPtr,
+            Tcl_NewStringObj(curlGetEasyName(curlMultiHandlePtr,multiInfo->easy_handle),-1));
+        Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewIntObj(multiInfo->msg));
+        Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewIntObj(multiInfo->data.result));
+        Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewIntObj(msgLeft));
+    }
+    Tcl_SetObjResult(interp,resultPtr); 
+
+    return TCL_OK;            
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlMultiActiveTransfers --
+ *    This function is used to know whether an connection is ready to
+ *    transfer data. This code has been copied almost verbatim from
+ *    libcurl's examples.
+ *
+ * Parameter:
+ *    multiHandlePtr: Pointer to the multi handle of the transfer.
+ *
+ * Results:
+ *    
+ *----------------------------------------------------------------------
+ */
+int
+curlMultiGetActiveTransfers( struct curlMultiObjData *curlMultiData) {
+    struct timeval  timeout;
+    int             selectCode;
+    int             maxfd;
+
+    FD_ZERO(&(curlMultiData->fdread));
+    FD_ZERO(&(curlMultiData->fdwrite));
+    FD_ZERO(&(curlMultiData->fdexcep));
+
+    /* set a suitable timeout to play around with */
+    timeout.tv_sec  = 1;
+    timeout.tv_usec = 0;
+
+    /* get file descriptors from the transfers */
+    curl_multi_fdset(curlMultiData->mcurl,
+            &(curlMultiData->fdread),
+            &(curlMultiData->fdwrite),
+            &(curlMultiData->fdexcep), &maxfd);
+
+    selectCode = select(maxfd+1, &(curlMultiData->fdread)
+            , &(curlMultiData->fdwrite), &(curlMultiData->fdexcep)
+            , &timeout);
+
+    return selectCode;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlMultiActiveTransfers --
+ *    Implements the Tcl 'active', it queries the multi handle to know
+ *    if any of the connections are ready to transfer data.
+ *
+ * Parameter:
+ *    interp: The Tcl interpreter we are using, mainly to report errors.
+ *    curlMultiHandlePtr: Pointer to the multi handle of the transfer.
+ *
+ * Results:
+ *    Standard Tcl codes. The Tcl command will return the number of
+ *    transfers.
+ *----------------------------------------------------------------------
+ */
+int
+curlMultiActiveTransfers(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData) {
+    int             selectCode;
+    Tcl_Obj        *resultPtr;
+
+    selectCode = curlMultiGetActiveTransfers(curlMultiData);
+
+    if (selectCode==-1) {
+        return TCL_ERROR;
+    }
+
+    resultPtr=Tcl_NewIntObj(selectCode);
+    Tcl_SetObjResult(interp,resultPtr);
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlGetEasyHandle --
+ *
+ *     Given the name of an easy curl handle (curl1,...), in a Tcl object
+ *  this function  will return the pointer the 'internal' libcurl handle.
+ *
+ * Parameter:
+ *  The Tcl object with the name.
+ *
+ * Results:
+ *  The pointer to the libcurl handle
+ *----------------------------------------------------------------------
+ */
+struct curlObjData *
+curlGetEasyHandle(Tcl_Interp *interp,Tcl_Obj *nameObjPtr) {
+
+    char                    *handleName;
+    Tcl_CmdInfo             *infoPtr=(Tcl_CmdInfo *)Tcl_Alloc(sizeof(Tcl_CmdInfo));
+    struct curlObjData      *curlDataPtr;
+
+    handleName=Tcl_GetString(nameObjPtr);
+
+    if (0==Tcl_GetCommandInfo(interp,handleName,infoPtr)) {
+        return NULL;
+    }
+    curlDataPtr=(struct curlObjData *)(infoPtr->objClientData);
+    Tcl_Free((char *)infoPtr);
+    return curlDataPtr;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlMultiFreeSpace --
+ *
+ *     Frees the space taken by a curlMultiObjData struct.
+ *
+ *  Parameter:
+ *      interp: Pointer to the interpreter we are using.
+ *      curlMultiHandle: the curl handle for which the option is set.
+ *      objc and objv: The usual in Tcl.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *----------------------------------------------------------------------
+ */
+void
+curlMultiFreeSpace(struct curlMultiObjData *curlMultiData) {
+
+    curl_multi_cleanup(curlMultiData->mcurl);
+
+    Tcl_Free(curlMultiData->postCommand);
+    Tcl_Free((char *)curlMultiData);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlEasyHandleListAdd
+ *     Adds an easy handle to the list of handles in a multiHandle.
+ *
+ *  Parameter:
+ *      multiDataPtr: Pointer to the struct of the multi handle.
+ *      easyHandle: The easy handle to add to the list.
+ *
+ * Results:
+ *----------------------------------------------------------------------
+ */
+void
+curlEasyHandleListAdd(struct curlMultiObjData *multiDataPtr,CURL *easyHandlePtr,char *name) {
+    struct easyHandleList    *easyHandleListPtr;
+
+    easyHandleListPtr=(struct easyHandleList *)Tcl_Alloc(sizeof(struct easyHandleList));
+    easyHandleListPtr->curl   =easyHandlePtr;
+    easyHandleListPtr->name   =curlstrdup(name);
+    easyHandleListPtr->next=NULL;
+    if (multiDataPtr->handleListLast==NULL) {
+        multiDataPtr->handleListFirst=easyHandleListPtr;
+        multiDataPtr->handleListLast =easyHandleListPtr;
+    } else {
+        multiDataPtr->handleListLast->next=easyHandleListPtr;
+        multiDataPtr->handleListLast=easyHandleListPtr;
+    }
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlEasyHandleListRemove
+ *     When we remove an easy handle from the multiHandle, this function
+ *  will remove said handle from the linked list.
+ *
+ *  Parameter:
+ *      multiDataPtr: Pointer to the struct of the multi handle.
+ *      easyHandle: The easy handle to add to the list.
+ *
+ * Results:
+ *----------------------------------------------------------------------
+ */
+void
+curlEasyHandleListRemove(struct curlMultiObjData *multiDataPtr,CURL *easyHandle) {
+    struct easyHandleList *listPtr1,*listPtr2;
+
+    listPtr1=NULL;
+    listPtr2=multiDataPtr->handleListFirst;
+    while(listPtr2!=NULL) {
+        if (listPtr2->curl==easyHandle) {
+            if (listPtr1==NULL) {
+                multiDataPtr->handleListFirst=listPtr2->next;
+            } else {
+                listPtr1->next=listPtr2->next;
+            }
+            if (listPtr2==multiDataPtr->handleListLast) {
+                multiDataPtr->handleListLast=listPtr1;
+            }
+            Tcl_Free(listPtr2->name);
+            Tcl_Free((char *)listPtr2);
+            break;
+        }
+        listPtr1=listPtr2;
+        listPtr2=listPtr2->next;
+    }
+}
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlGetEasyName
+ *
+ *     Given the pointer to an easy handle, this function will return
+ *  the name of the Tcl command.
+ *
+ *  Parameter:
+ *      multiDataPtr: Multi handle we are using.
+ *      easyHandle: The easy handle whose Tcl command we want to know.
+ *
+ * Results:
+ *  A string with the name of the command.
+ *----------------------------------------------------------------------
+ */
+char *
+curlGetEasyName(struct curlMultiObjData *multiDataPtr,CURL *easyHandle) {
+    struct easyHandleList    *listPtr;
+
+    listPtr=multiDataPtr->handleListFirst;
+    while(listPtr!=NULL) {
+        if (listPtr->curl==easyHandle) {
+            return listPtr->name;
+        }
+        listPtr=listPtr->next;
+    }
+    return NULL;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlReturnCURLMcode
+ *
+ *     When one of the command wants to return a CURLMcode, it calls
+ *  this function.
+ *
+ *  Parameter:
+ *      interp: Pointer to the interpreter we are using.
+ *      errorCode: the value to be returned.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *----------------------------------------------------------------------
+ */
+int
+curlReturnCURLMcode (Tcl_Interp *interp,CURLMcode errorCode) {
+    Tcl_Obj        *resultPtr;
+
+    resultPtr=Tcl_NewIntObj(errorCode);
+    Tcl_SetObjResult(interp,resultPtr);
+
+    if (errorCode>0) {
+        return TCL_ERROR;
+    }
+    return TCL_OK;
+}
+
+
+/*----------------------------------------------------------------------
+ *
+ * curlMultiAutoTransfer --
+ *
+ *     Creates the event source that will take care of downloading using
+ *  the multi interface driven by Tcl's event loop.
+ *
+ * Parameters:
+ *  The usual Tcl command parameters.
+ *
+ * Results:
+ *     Standard Tcl return code.
+ *----------------------------------------------------------------------
+ */
+
+int
+curlMultiAutoTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData,
+        int objc,Tcl_Obj *CONST objv[]) {
+
+    if (objc==4) {
+        Tcl_Free(curlMultiData->postCommand);
+        curlMultiData->postCommand=curlstrdup(Tcl_GetString(objv[3]));
+    }
+
+    Tcl_CreateEventSource((Tcl_EventSetupProc *)curlEventSetup, 
+            (Tcl_EventCheckProc *)curlEventCheck, (ClientData *)curlMultiData);
+
+    /* We have to call perform once to boot the transfer, otherwise it seems nothing
+       works *shrug* */
+
+    while(CURLM_CALL_MULTI_PERFORM ==
+            curl_multi_perform(curlMultiData->mcurl,&(curlMultiData->runningTransfers))) {
+    }
+
+    return TCL_OK;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlMultiConfigTrasnfer --
+ *  This procedure is invoked by the user command 'configure', it reads 
+ *  the options passed by the user to configure a multi handle.
+ *
+ * Parameters:
+ *  The usual Tcl command parameters.
+ *
+ * Results:
+ *     Standard Tcl return code.
+ *----------------------------------------------------------------------
+ */
+
+int
+curlMultiConfigTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData,
+        int objc,Tcl_Obj *CONST objv[]) {
+    int            tableIndex;
+    int            i,j;
+
+    Tcl_Obj       *resultPtr;
+    char           errorMsg[500];
+
+    for(i=2,j=3;i<objc;i=i+2,j=j+2) {
+        if (Tcl_GetIndexFromObj(interp, objv[i], multiConfigTable, "option", 
+                TCL_EXACT, &tableIndex)==TCL_ERROR) {
+            return TCL_ERROR;
+        }
+        if (i==objc-1) {
+            snprintf(errorMsg,500,"Empty value for %s",multiConfigTable[tableIndex]);
+            resultPtr=Tcl_NewStringObj(errorMsg,-1);
+            Tcl_SetObjResult(interp,resultPtr);            
+            return TCL_ERROR;
+        }
+        if (curlMultiSetOpts(interp,curlMultiData,objv[j],tableIndex)==TCL_ERROR) {
+            return TCL_ERROR;
+        }
+    }
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlMultiSetOpts --
+ *
+ *     This procedure takes care of setting the transfer options.
+ *
+ *  Parameter:
+ *      interp: Pointer to the interpreter we are using.
+ *      curlMultiHandle: the curl handle for which the option is set.
+ *      objv: A pointer to the object where the data to set is stored.
+ *      tableIndex: The index of the option in the options table.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *----------------------------------------------------------------------
+ */
+int
+curlMultiSetOpts(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData,
+        Tcl_Obj *CONST objv,int tableIndex) {
+
+    switch(tableIndex) {
+        case 0:
+            if (SetMultiOptLong(interp,curlMultiData->mcurl,
+                    CURLMOPT_PIPELINING,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 1:
+            if (SetMultiOptLong(interp,curlMultiData->mcurl,
+                    CURLMOPT_MAXCONNECTS,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+    }
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * SetMultiOptLong --
+ *
+ *     Set the curl options that require a long
+ *
+ *  Parameter:
+ *      interp: The interpreter we are working with.
+ *      curlMultiHandle: and the multi curl handle
+ *      opt: the option to set
+ *      tclObj: The Tcl with the value for the option.
+ *
+ * Results:
+ *  0 if all went well.
+ *  1 in case of error.
+ *----------------------------------------------------------------------
+ */
+int
+SetMultiOptLong(Tcl_Interp *interp,CURLM *curlMultiHandle,CURLMoption opt,
+        int tableIndex,Tcl_Obj *tclObj) {
+    long        longNumber;
+    char        *parPtr;
+
+    if (Tcl_GetLongFromObj(interp,tclObj,&longNumber)) {
+        parPtr=curlstrdup(Tcl_GetString(tclObj));
+        curlErrorSetOpt(interp,multiConfigTable,tableIndex,parPtr);
+        Tcl_Free(parPtr);
+        return 1;
+    }
+    if (curl_multi_setopt(curlMultiHandle,opt,longNumber)) {
+        parPtr=curlstrdup(Tcl_GetString(tclObj));
+        curlErrorSetOpt(interp,multiConfigTable,tableIndex,parPtr);
+        Tcl_Free(parPtr);
+        return 1;
+    }
+    return 0;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlEventSetup --
+ *
+ *  This function is invoked by Tcl just after curlMultiAutoTransfer and
+ *  then every time just before curlEventCheck, I only use to set the
+ *  maximun time without checking for events
+ *
+ *  NOTE: I hate having a fixed value, I will have to look into it.
+ *
+ * Parameters:
+ *  They are passed automagically by Tcl, but I don't use them.
+ *----------------------------------------------------------------------
+ */
+
+void
+curlEventSetup(ClientData clientData, int flags) {
+    Tcl_Time     time = {0 , 0};
+
+    Tcl_SetMaxBlockTime(&time);
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlEventCheck --
+ *
+ *     Invoked automagically by Tcl from time to time, we check if there
+ *  are any active transfer, if so we put an event in the queue so that
+ *  'curl_multi_perfom' will be eventually called, if not we delete
+ *  the event source.
+ *
+ * Parameters:
+ *  They are passed automagically by Tcl.
+ *----------------------------------------------------------------------
+ */
+
+void
+curlEventCheck(ClientData clientData, int flags) {
+    struct curlMultiObjData    *curlMultiData=(struct curlMultiObjData *)clientData;
+    struct curlEvent           *curlEventPtr;
+    int                         selectCode;
+
+    selectCode=curlMultiGetActiveTransfers(curlMultiData);
+
+    if (curlMultiData->runningTransfers==0) {
+        Tcl_DeleteEventSource((Tcl_EventSetupProc *)curlEventSetup, 
+                (Tcl_EventCheckProc *)curlEventCheck, (ClientData *)curlMultiData);
+    } else {
+        if (selectCode>=0) {
+            curlEventPtr=(struct curlEvent *)Tcl_Alloc(sizeof(struct curlEvent));
+            curlEventPtr->proc=curlEventProc;
+            curlEventPtr->curlMultiData=curlMultiData;
+            Tcl_QueueEvent((Tcl_Event *)curlEventPtr, TCL_QUEUE_TAIL);
+        }
+    }
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlEventProc --
+ *
+ *     Finally Tcl event loop decides it is time to transfer something.
+ *
+ * Parameters:
+ *  They are passed automagically by Tcl.
+ *----------------------------------------------------------------------
+*/ 
+
+int
+curlEventProc(Tcl_Event *evPtr,int flags) {
+    struct curlMultiObjData   *curlMultiData
+            =(struct curlMultiObjData *)((struct curlEvent *)evPtr)->curlMultiData;
+    CURLMcode                  errorCode;
+    Tcl_Obj                   *tclCommandObjPtr;
+    char                       tclCommand[300];
+
+    errorCode=curl_multi_perform(curlMultiData->mcurl,&curlMultiData->runningTransfers);
+    if (curlMultiData->runningTransfers==0) {
+        if (curlMultiData->postCommand!=NULL) {
+            snprintf(tclCommand,299,"%s",curlMultiData->postCommand);
+            tclCommandObjPtr=Tcl_NewStringObj(tclCommand,-1);
+            if (Tcl_EvalObjEx(curlMultiData->interp,tclCommandObjPtr,TCL_EVAL_GLOBAL)!=TCL_OK) {
+/*
+                fprintf(stdout,"Error invoking command\n");
+                fprintf(stdout,"Error: %s\n",Tcl_GetString(Tcl_GetObjResult(curlMultiData->interp)));
+*/
+            }
+        }
+    }
+    return 1;
+}
+
+
diff --git a/generic/multi.h b/generic/multi.h
new file mode 100755 (executable)
index 0000000..3fbd324
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * multi.h --
+ *
+ * Header file for the part of the TclCurl extension that deals with libcurl's
+ * 'multi' interface.
+ *
+ * Copyright (c) 2002-2009 Andres Garcia Garcia.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ */
+
+#define multi_h
+#include "tclcurl.h"
+
+
+#ifdef  __cplusplus
+extern "C" {
+#endif 
+
+struct easyHandleList {
+    CURL                    *curl;
+    char                    *name;
+    struct easyHandleList   *next;
+};
+
+struct curlMultiObjData {
+    CURLM                 *mcurl;
+    Tcl_Command            token;
+    Tcl_Interp            *interp;
+    struct easyHandleList *handleListFirst;
+    struct easyHandleList *handleListLast;
+    fd_set                 fdread;
+    fd_set                 fdwrite;
+    fd_set                 fdexcep;
+    int                    runningTransfers;
+    char                  *postCommand;    
+};
+
+struct curlEvent {
+    Tcl_EventProc           *proc;
+    struct Tcl_Event        *nextPtr;
+    struct curlMultiObjData *curlMultiData;
+};
+
+CONST static char *multiCommandTable[] = {
+    "addhandle",
+    "removehandle",
+    "perform",
+    "cleanup",
+    "getinfo",
+    "active",
+    "auto",
+    "configure",
+    (char *) NULL
+};
+
+CONST static char *multiConfigTable[] = {
+    "-pipelining", "-maxconnects",
+    (char *)NULL
+};
+
+char *curlCreateMultiObjCmd (Tcl_Interp *interp,struct curlMultiObjData *curlMultiData);
+
+int Tclcurl_MultiInit (Tcl_Interp *interp);
+
+int curlMultiDeleteCmd(ClientData clientData);
+
+int curlInitMultiObjCmd (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]);
+
+int curlMultiObjCmd (ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]);
+
+CURLMcode curlAddMultiHandle(Tcl_Interp *interp,CURLM *curlMultiHandle
+        ,Tcl_Obj *objvPtr);
+
+CURLMcode curlRemoveMultiHandle(Tcl_Interp *interp,CURLM *curlMultiHandle
+        ,Tcl_Obj *objvPtr);
+
+int curlMultiPerform(Tcl_Interp *interp,CURLM *curlMultiHandle);
+
+int curlMultiGetInfo(Tcl_Interp *interp,CURLM *curlMultiHandlePtr);
+
+int curlMultiGetActiveTransfers( struct curlMultiObjData *curlMultiData);
+int curlMultiActiveTransfers(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData);
+
+struct curlObjData *curlGetEasyHandle(Tcl_Interp *interp,Tcl_Obj *nameObjPtr);
+
+void curlMultiFreeSpace(struct curlMultiObjData *curlMultiData);
+
+int curlReturnCURLMcode(Tcl_Interp *interp,CURLMcode errorCode);
+
+void curlEasyHandleListAdd(struct curlMultiObjData *multiDataPtr,CURL *easyHandle,char *name);
+void curlEasyHandleListRemove(struct curlMultiObjData *multiDataPtr,CURL *easyHandle);
+char *curlGetEasyName(struct curlMultiObjData *multiDataPtr,CURL *easyHandle);
+
+int curlMultiAutoTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData, int objc,Tcl_Obj *CONST objv[]);
+int curlMultiSetOpts(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData,Tcl_Obj *CONST objv,int tableIndex);
+int SetMultiOptLong(Tcl_Interp *interp,CURLM *curlMultiHandle,CURLMoption opt,
+        int tableIndex,Tcl_Obj *tclObj);
+
+int curlMultiConfigTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData, int objc,Tcl_Obj *CONST objv[]);
+
+void curlEventSetup(ClientData clientData, int flags);
+
+void curlEventCheck(ClientData clientData, int flags);
+
+int curlEventProc(Tcl_Event *evPtr,int flags);
+
+#ifdef  __cplusplus
+}
+
+#endif
diff --git a/generic/tclcurl.c b/generic/tclcurl.c
new file mode 100755 (executable)
index 0000000..ae7a483
--- /dev/null
@@ -0,0 +1,4054 @@
+/*
+ * tclcurl.c --
+ *
+ * Implementation of the TclCurl extension that creates the curl namespace
+ * so that Tcl interpreters can access libcurl.
+ *
+ * Copyright (c) 2001-2009 Andres Garcia Garcia.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ */
+
+#include "tclcurl.h"
+
+#include <sys/types.h>
+#include <unistd.h>
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tclcurl_Init --
+ *
+ *  This procedure initializes the package
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Tclcurl_Init (Tcl_Interp *interp) {
+
+    if(Tcl_InitStubs(interp,"8.1",0)==NULL) {
+        return TCL_ERROR;
+    }
+
+    Tcl_CreateObjCommand (interp,"::curl::init",curlInitObjCmd,
+            (ClientData)NULL,(Tcl_CmdDeleteProc *)NULL);
+    Tcl_CreateObjCommand (interp,"::curl::version",curlVersion,
+            (ClientData)NULL,(Tcl_CmdDeleteProc *)NULL);
+    Tcl_CreateObjCommand (interp,"::curl::escape",curlEscape,
+            (ClientData)NULL,(Tcl_CmdDeleteProc *)NULL);
+    Tcl_CreateObjCommand (interp,"::curl::unescape",curlUnescape,
+            (ClientData)NULL,(Tcl_CmdDeleteProc *)NULL);
+    Tcl_CreateObjCommand (interp,"::curl::versioninfo",curlVersionInfo,
+            (ClientData)NULL,(Tcl_CmdDeleteProc *)NULL);
+    Tcl_CreateObjCommand (interp,"::curl::shareinit",curlShareInitObjCmd,
+            (ClientData)NULL,(Tcl_CmdDeleteProc *)NULL);
+    Tcl_CreateObjCommand (interp,"::curl::easystrerror", curlEasyStringError,
+            (ClientData)NULL,(Tcl_CmdDeleteProc *)NULL);
+    Tcl_CreateObjCommand (interp,"::curl::sharestrerror",curlShareStringError,
+            (ClientData)NULL,(Tcl_CmdDeleteProc *)NULL);
+    Tcl_CreateObjCommand (interp,"::curl::multistrerror",curlMultiStringError,
+            (ClientData)NULL,(Tcl_CmdDeleteProc *)NULL);
+
+    Tclcurl_MultiInit(interp);
+
+    Tcl_PkgProvide(interp,"TclCurl","7.19.6");
+
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlCreateObjCmd --
+ *
+ *  Looks for the first free handle (curl1, curl2,...) and creates a
+ *  Tcl command for it.
+ *
+ * Results:
+ *  A string with the name of the handle, don't forget to free it.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+
+char *
+curlCreateObjCmd (Tcl_Interp *interp,struct curlObjData  *curlData) {
+    char                *handleName;
+    int                 i;
+    Tcl_CmdInfo         info;
+    Tcl_Command         cmdToken;
+
+    /* We try with curl1, if it already exists with curl2...*/
+    handleName=(char *)Tcl_Alloc(10);
+    for (i=1;;i++) {
+        sprintf(handleName,"curl%d",i);
+        if (!Tcl_GetCommandInfo(interp,handleName,&info)) {
+            cmdToken=Tcl_CreateObjCommand(interp,handleName,curlObjCmd,
+                                (ClientData)curlData, 
+                                (Tcl_CmdDeleteProc *)curlDeleteCmd);
+            break;
+        }
+    }
+    curlData->token=cmdToken;
+
+    return handleName;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlInitObjCmd --
+ *
+ *  This procedure is invoked to process the "curl::init" Tcl command.
+ *  See the user documentation for details on what it does.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+curlInitObjCmd (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]) {
+
+    Tcl_Obj             *resultPtr;
+    CURL                *curlHandle;
+    struct curlObjData  *curlData;
+    char                *handleName;
+
+    curlData=(struct curlObjData *)Tcl_Alloc(sizeof(struct curlObjData));
+    if (curlData==NULL) {
+        resultPtr=Tcl_NewStringObj("Couldn't allocate memory",-1);
+        Tcl_SetObjResult(interp,resultPtr);
+        return TCL_ERROR;
+    }
+
+    memset(curlData, 0, sizeof(struct curlObjData));
+    curlData->interp=interp;
+
+    curlHandle=curl_easy_init();
+    if (curlHandle==NULL) {
+        resultPtr=Tcl_NewStringObj("Couldn't open curl handle",-1);
+        Tcl_SetObjResult(interp,resultPtr);
+        return TCL_ERROR;
+    }
+
+    handleName=curlCreateObjCmd(interp,curlData);
+
+    curlData->curl=curlHandle;
+
+    resultPtr=Tcl_NewStringObj(handleName,-1);
+    Tcl_SetObjResult(interp,resultPtr);
+    Tcl_Free(handleName);
+
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlObjCmd --
+ *
+ *  This procedure is invoked to process the "curl" commands.
+ *  See the user documentation for details on what it does.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlObjCmd (ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]) {
+
+    struct curlObjData     *curlData=(struct curlObjData *)clientData;
+    CURL                   *curlHandle=curlData->curl;
+    int                    tableIndex;
+
+    if (objc<2) {
+        Tcl_WrongNumArgs(interp,1,objv,"option arg ?arg?");
+        return TCL_ERROR;
+    }
+    if (Tcl_GetIndexFromObj(interp, objv[1], commandTable, "option",
+            TCL_EXACT,&tableIndex)==TCL_ERROR) {
+        return TCL_ERROR;
+    }
+
+    switch(tableIndex) {
+        case 0:
+            if (curlSetOptsTransfer(interp,curlData,objc,objv)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            break;
+        case 1:
+/*            fprintf(stdout,"Perform\n"); */
+            if (curlPerform(interp,curlHandle,curlData)) {
+                if (curlData->errorBuffer!=NULL) {
+                    if (curlData->errorBufferKey==NULL) {
+                        Tcl_SetVar(interp,curlData->errorBufferName,
+                                curlData->errorBuffer,0);
+                    } else {
+                        Tcl_SetVar2(interp,curlData->errorBufferName,
+                                curlData->errorBufferKey,
+                                curlData->errorBuffer,0);
+                    }
+                }
+                return TCL_ERROR;
+            }
+            break;
+        case 2:
+/*            fprintf(stdout,"Getinfo\n"); */
+            if (Tcl_GetIndexFromObj(interp,objv[2],getInfoTable,
+                    "getinfo option",TCL_EXACT,&tableIndex)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            if (curlGetInfo(interp,curlHandle,tableIndex)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 3:
+/*            fprintf(stdout,"Cleanup\n");  */
+            Tcl_DeleteCommandFromToken(interp,curlData->token);
+            break;
+        case 4:
+/*            fprintf(stdout,"Configure\n"); */
+            if (curlConfigTransfer(interp,curlData,objc,objv)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            break;
+        case 5:
+/*            fprintf(stdout,"DupHandle\n"); */
+            if (curlDupHandle(interp,curlData,objc,objv)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            break;
+        case 6:
+/*            fprintf(stdout,"Reset\n");     */
+            if (curlResetHandle(interp,curlData)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            break;
+        case 7:
+/*            fprintf(stdout,"Pause\n");     */
+            if (curl_easy_pause(curlData->curl,CURLPAUSE_ALL)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            break;
+
+        case 8:
+/*            fprintf(stdout,"Resume\n");     */
+            if (curl_easy_pause(curlData->curl,CURLPAUSE_CONT)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            break;
+    }
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlDeleteCmd --
+ *
+ *  This procedure is invoked when curl handle is deleted.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  Cleans the curl handle and frees the memory.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlDeleteCmd(ClientData clientData) {
+    struct curlObjData     *curlData=(struct curlObjData *)clientData;
+    CURL                   *curlHandle=curlData->curl;
+
+    curl_easy_cleanup(curlHandle);
+    curlFreeSpace(curlData);
+
+    Tcl_Free((char *)curlData);
+
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlPerform --
+ *
+ *  Invokes the libcurl function 'curl_easy_perform'
+ *
+ * Parameter:
+ *  interp: Pointer to the interpreter we are using.
+ *  curlHandle: the curl handle for which the option is set.
+ *  objc and objv: The usual in Tcl.
+ *
+ * Results:
+ *  Standard Tcl return codes.
+ *----------------------------------------------------------------------
+ */
+int
+curlPerform(Tcl_Interp *interp,CURL *curlHandle,
+            struct curlObjData *curlData) {
+    int         exitCode;
+    Tcl_Obj     *resultPtr;
+
+    if (curlOpenFiles(interp,curlData)) {
+        return TCL_ERROR;
+    }
+    if (curlSetPostData(interp,curlData)) {
+        return TCL_ERROR;
+    }
+    exitCode=curl_easy_perform(curlHandle);
+    resultPtr=Tcl_NewIntObj(exitCode);
+    Tcl_SetObjResult(interp,resultPtr);
+    curlCloseFiles(curlData);
+    curlResetPostData(curlData);
+    if (curlData->bodyVarName) {
+        curlSetBodyVarName(interp,curlData);
+    }
+    if (curlData->command) {
+        Tcl_GlobalEval(interp,curlData->command);
+    }
+    return exitCode;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlSetOptsTransfer --
+ *
+ *  This procedure is invoked when the user invokes the 'setopt'
+ *  command, it is used to set the 'curl' options 
+ *
+ *  Parameter:
+ *    interp: Pointer to the interpreter we are using.
+ *    curlHandle: the curl handle for which the option is set.
+ *    objc and objv: The usual in Tcl.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *----------------------------------------------------------------------
+ */
+int
+curlSetOptsTransfer(Tcl_Interp *interp, struct curlObjData *curlData,
+        int objc, Tcl_Obj *CONST objv[]) {
+
+    int            tableIndex;
+fprintf(stdout,"Llegamos a curlSetOptsTrasnfer\n");
+    if (Tcl_GetIndexFromObj(interp, objv[2], optionTable, "option", 
+            TCL_EXACT, &tableIndex)==TCL_ERROR) {
+        return TCL_ERROR;
+    }
+fprintf(stdout,"La opcion es la %d\n",tableIndex);
+    return  curlSetOpts(interp,curlData,objv[3],tableIndex);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlConfigTransfer --
+ *
+ *  This procedure is invoked by the user command 'configure', it reads 
+ *  the options passed by the user to configure a transfer, and passes
+ *  then, one by one to 'curlSetOpts'.
+ *
+ *  Parameter:
+ *      interp: Pointer to the interpreter we are using.
+ *      curlHandle: the curl handle for which the option is set.
+ *      objc and objv: The usual in Tcl.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *----------------------------------------------------------------------
+ */
+int
+curlConfigTransfer(Tcl_Interp *interp, struct curlObjData *curlData,
+        int objc, Tcl_Obj *CONST objv[]) {
+
+    int            tableIndex;
+    int            i,j;
+
+    Tcl_Obj     *resultPtr;
+    char        errorMsg[500];
+
+    for(i=2,j=3;i<objc;i=i+2,j=j+2) {
+        if (Tcl_GetIndexFromObj(interp, objv[i], configTable, "option", 
+                TCL_EXACT, &tableIndex)==TCL_ERROR) {
+            return TCL_ERROR;
+        }
+        if (i==objc-1) {
+            snprintf(errorMsg,500,"Empty value for %s",configTable[tableIndex]);
+            resultPtr=Tcl_NewStringObj(errorMsg,-1);
+            Tcl_SetObjResult(interp,resultPtr);            
+            return TCL_ERROR;
+        }
+        if (curlSetOpts(interp,curlData,objv[j],tableIndex)==TCL_ERROR) {
+            return TCL_ERROR;
+        }
+    }
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlSetOpts --
+ *
+ *  This procedure takes care of setting the transfer options.
+ *
+ * Parameter:
+ *    interp: Pointer to the interpreter we are using.
+ *    curlHandle: the curl handle for which the option is set.
+ *    objv: A pointer to the object where the data to set is stored.
+ *    tableIndex: The index of the option in the options table.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *----------------------------------------------------------------------
+ */
+int
+curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData,
+        Tcl_Obj *CONST objv,int tableIndex) {
+
+    int            exitCode;
+    CURL           *curlHandle=curlData->curl;
+    int            i,j,k;
+
+    Tcl_Obj        *resultObjPtr;
+    Tcl_Obj        *tmpObjPtr;
+
+    Tcl_RegExp      regExp;
+    CONST char     *startPtr;
+    CONST char     *endPtr;
+
+    int             charLength;
+    long            longNumber=0;
+    int             intNumber;
+    char           *tmpStr;
+    unsigned char  *tmpUStr;
+
+    Tcl_Obj                 **httpPostData;
+    Tcl_Obj                 **protocols;
+    int                       curlTableIndex,formaddError,formArrayIndex;
+    struct formArrayStruct   *newFormArray;
+    struct curl_forms        *formArray;
+    int                       curlformBufferSize;
+    size_t                    contentslen;
+
+    ulong                     protocolMask;
+
+    switch(tableIndex) {
+        case 0:
+            if (SetoptChar(interp,curlHandle,CURLOPT_URL,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 1:
+            Tcl_Free(curlData->outFile);
+            curlData->outFile=curlstrdup(Tcl_GetString(objv));
+            if ((strcmp(curlData->outFile,""))&&(strcmp(curlData->outFile,"stdout"))) {
+                curlData->outFlag=1;
+            } else {
+                curlData->outFlag=0;
+                curl_easy_setopt(curlHandle,CURLOPT_WRITEDATA,stdout);
+                curlData->outFile=NULL;
+            }
+            curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,NULL);
+            break;
+        case 2:
+            Tcl_Free(curlData->inFile);
+            curlData->inFile=curlstrdup(Tcl_GetString(objv));
+            if ((strcmp(curlData->inFile,""))&&(strcmp(curlData->inFile,"stdin"))) {
+                curlData->inFlag=1;
+            } else {
+                curl_easy_setopt(curlHandle,CURLOPT_READDATA,stdin);
+                curlData->inFlag=0;
+                curlData->inFile=NULL;
+            }
+            curl_easy_setopt(curlHandle,CURLOPT_READFUNCTION,NULL);
+            break;
+        case 3:
+            if (SetoptChar(interp,curlHandle,
+                    CURLOPT_USERAGENT,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 4:
+            if (SetoptChar(interp,curlHandle,CURLOPT_REFERER,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 5:
+            if (SetoptInt(interp,curlHandle,CURLOPT_VERBOSE,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 6:
+            if (SetoptInt(interp,curlHandle,CURLOPT_HEADER,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 7:
+            if (SetoptInt(interp,curlHandle,CURLOPT_NOBODY,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 8:
+            if (SetoptChar(interp,curlHandle,CURLOPT_PROXY,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 9:
+            if (SetoptLong(interp,curlHandle,CURLOPT_PROXYPORT,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 10:
+            if (SetoptInt(interp,curlHandle,CURLOPT_HTTPPROXYTUNNEL,tableIndex,
+                    objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 11:
+            if (SetoptInt(interp,curlHandle,CURLOPT_FAILONERROR,tableIndex,
+                    objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 12:
+            if (SetoptLong(interp,curlHandle,CURLOPT_TIMEOUT,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 13:
+            if (SetoptLong(interp,curlHandle,CURLOPT_LOW_SPEED_LIMIT,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 14:
+            if (SetoptLong(interp,curlHandle,CURLOPT_LOW_SPEED_TIME,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 15:
+            if (SetoptLong(interp,curlHandle,CURLOPT_RESUME_FROM,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 16:
+            if (SetoptLong(interp,curlHandle,CURLOPT_INFILESIZE,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 17:
+            if (SetoptInt(interp,curlHandle,CURLOPT_UPLOAD,tableIndex,
+                    objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 137:
+        case 18:
+            if (SetoptInt(interp,curlHandle,CURLOPT_DIRLISTONLY,tableIndex,
+                    objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 136:
+        case 19:
+            if (SetoptInt(interp,curlHandle,CURLOPT_APPEND,tableIndex,
+                    objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 20:
+            if (Tcl_GetIndexFromObj(interp, objv, netrcTable,
+                    "netrc option",TCL_EXACT,&curlTableIndex)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_NETRC,curlTableIndex)) {
+                curlErrorSetOpt(interp,configTable,tableIndex,netrcTable[curlTableIndex]);
+                return 1;
+            }
+            break;
+        case 21:
+            if (SetoptInt(interp,curlHandle,CURLOPT_FOLLOWLOCATION,tableIndex,
+                    objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 22:
+            if (SetoptInt(interp,curlHandle,CURLOPT_TRANSFERTEXT,tableIndex,
+                    objv)) {
+                return TCL_ERROR;
+            }
+            Tcl_GetIntFromObj(interp,objv,&curlData->transferText);
+            break;
+        case 23:
+            if (SetoptInt(interp,curlHandle,CURLOPT_PUT,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 24: /* The CURLOPT_MUTE option no longer does anything.*/
+            break;
+        case 25:
+            if (SetoptChar(interp,curlHandle,CURLOPT_USERPWD,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 26:
+            if (SetoptChar(interp,curlHandle,CURLOPT_PROXYUSERPWD,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 27:
+            if (SetoptChar(interp,curlHandle,CURLOPT_RANGE,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 28:
+            tmpStr=curlstrdup(Tcl_GetString(objv));
+            regExp=Tcl_RegExpCompile(interp,"(.*)(?:\\()(.*)(?:\\))");
+            exitCode=Tcl_RegExpExec(interp,regExp,tmpStr,tmpStr);
+            switch(exitCode) {
+                case -1:
+                    Tcl_Free((char *)tmpStr);
+                    return TCL_ERROR;
+                    break;
+                case 0:
+                    if (*tmpStr!=0) {
+                        curlData->errorBufferName=curlstrdup(tmpStr);
+                    } else {
+                        curlData->errorBuffer=NULL;
+                    }
+                    curlData->errorBufferKey=NULL;
+                    break;
+                case 1:
+                    Tcl_RegExpRange(regExp,1,&startPtr,&endPtr);
+                    charLength=endPtr-startPtr;
+                    curlData->errorBufferName=Tcl_Alloc(charLength+1);
+                    strncpy(curlData->errorBufferName,startPtr,charLength);
+                    curlData->errorBufferName[charLength]=0;
+                    Tcl_RegExpRange(regExp,2,&startPtr,&endPtr);
+                    charLength=endPtr-startPtr;
+                    curlData->errorBufferKey=Tcl_Alloc(charLength+1);
+                    strncpy(curlData->errorBufferKey,startPtr,charLength);
+                    curlData->errorBufferKey[charLength]=0;
+                    break;
+            }
+            Tcl_Free((char *)tmpStr);
+            if (curlData->errorBufferName!=NULL) {
+                curlData->errorBuffer=Tcl_Alloc(CURL_ERROR_SIZE);
+                if (curl_easy_setopt(curlHandle,CURLOPT_ERRORBUFFER,
+                        curlData->errorBuffer)) {
+                    Tcl_Free((char *)curlData->errorBuffer);
+                    curlData->errorBuffer=NULL;
+                    return TCL_ERROR;
+                }
+            } else {
+                Tcl_Free(curlData->errorBuffer);
+            }
+            break;
+        case 29:
+            if (SetoptLong(interp,curlHandle,CURLOPT_HTTPGET,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 30:
+            if (SetoptInt(interp,curlHandle,CURLOPT_POST,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 31:
+            if (SetoptChar(interp,curlHandle,
+                    CURLOPT_COPYPOSTFIELDS,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 33:
+            if (SetoptChar(interp,curlHandle,
+                    CURLOPT_FTPPORT,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 34:
+            if (SetoptChar(interp,curlHandle,CURLOPT_COOKIE,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 35:
+            if (SetoptChar(interp,curlHandle,CURLOPT_COOKIEFILE,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 36:
+            if(SetoptsList(interp,&curlData->headerList,objv)) {
+                curlErrorSetOpt(interp,configTable,tableIndex,"Header list invalid");
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_HTTPHEADER,curlData->headerList)) {
+                curl_slist_free_all(curlData->headerList);
+                curlData->headerList=NULL;
+                return TCL_ERROR;
+            }
+            return TCL_OK;
+            break;
+        case 37:
+            if (Tcl_ListObjGetElements(interp,objv,&k,&httpPostData)
+                    ==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            formaddError=0;
+            newFormArray=(struct formArrayStruct *)Tcl_Alloc(sizeof(struct formArrayStruct));
+            formArray=(struct curl_forms *)Tcl_Alloc(k*(sizeof(struct curl_forms)));
+            formArrayIndex=0;
+
+            newFormArray->next=curlData->formArray;
+            newFormArray->formArray=formArray;
+            newFormArray->formHeaderList=NULL;
+
+            for(i=0,j=0;i<k;i+=2,j+=1) {
+                if (Tcl_GetIndexFromObj(interp,httpPostData[i],curlFormTable,
+                        "CURLFORM option",TCL_EXACT,&curlTableIndex)==TCL_ERROR) {
+                    formaddError=1;
+                    break;
+                }
+                switch(curlTableIndex) {
+                    case 0:
+/*                        fprintf(stdout,"Section name: %s\n",Tcl_GetString(httpPostData[i+1]));*/
+                        formArray[formArrayIndex].option = CURLFORM_COPYNAME;
+                        formArray[formArrayIndex].value  = curlstrdup(Tcl_GetString(httpPostData[i+1]));
+                        break;
+                    case 1:
+/*                        fprintf(stdout,"Section contents: %s\n",Tcl_GetString(httpPostData[i+1]));*/
+                        tmpStr=Tcl_GetStringFromObj(httpPostData[i+1],&curlformBufferSize);
+                        formArray[formArrayIndex].option = CURLFORM_COPYCONTENTS;
+                        formArray[formArrayIndex].value  = (char *)
+                                memcpy(Tcl_Alloc(curlformBufferSize), tmpStr, curlformBufferSize);
+
+                        formArrayIndex++;
+                        formArray[formArrayIndex].option = CURLFORM_CONTENTSLENGTH;
+                        contentslen=curlformBufferSize++;
+                        formArray[formArrayIndex].value  = (char *)contentslen;
+                        break;
+                    case 2:
+/*                        fprintf(stdout,"File name %d: %s\n",formArrayIndex,Tcl_GetString(httpPostData[i+1]));*/
+                        formArray[formArrayIndex].option = CURLFORM_FILE;
+                        formArray[formArrayIndex].value  = curlstrdup(Tcl_GetString(httpPostData[i+1]));
+                        break;
+                    case 3:
+/*                        fprintf(stdout,"Data type: %s\n",Tcl_GetString(httpPostData[i+1]));*/
+                        formArray[formArrayIndex].option = CURLFORM_CONTENTTYPE;
+                        formArray[formArrayIndex].value  = curlstrdup(Tcl_GetString(httpPostData[i+1]));
+                        break;
+                    case 4:
+/*                        fprintf(stdout,"ContentHeader: %s\n",Tcl_GetString(httpPostData[i+1]));*/
+                        formArray[formArrayIndex].option = CURLFORM_CONTENTHEADER;
+                        if(SetoptsList(interp,&newFormArray->formHeaderList,httpPostData[i+1])) {
+                            curlErrorSetOpt(interp,configTable,tableIndex,"Header list invalid");
+                            formaddError=1;
+                            return TCL_ERROR;
+                        }
+                        formArray[formArrayIndex].value  = (char *)newFormArray->formHeaderList;
+                        break;
+                    case 5:
+/*                        fprintf(stdout,"FileName: %s\n",Tcl_GetString(httpPostData[i+1])); */
+                        formArray[formArrayIndex].option = CURLFORM_FILENAME;
+                        formArray[formArrayIndex].value  = curlstrdup(Tcl_GetString(httpPostData[i+1]));
+                        break;
+                    case 6:
+/*                        fprintf(stdout,"BufferName: %s\n",Tcl_GetString(httpPostData[i+1])); */
+                        formArray[formArrayIndex].option = CURLFORM_BUFFER;
+                        formArray[formArrayIndex].value  = curlstrdup(Tcl_GetString(httpPostData[i+1]));
+                        break;
+                    case 7:
+/*                        fprintf(stdout,"Buffer: %s\n",Tcl_GetString(httpPostData[i+1])); */
+                        tmpUStr=Tcl_GetByteArrayFromObj
+                                (httpPostData[i+1],&curlformBufferSize);
+                        formArray[formArrayIndex].option = CURLFORM_BUFFERPTR;
+                        formArray[formArrayIndex].value  = (char *)
+                                memcpy(Tcl_Alloc(curlformBufferSize), tmpUStr, curlformBufferSize);
+                        formArrayIndex++;
+                        formArray[formArrayIndex].option = CURLFORM_BUFFERLENGTH;
+                        contentslen=curlformBufferSize;
+                        formArray[formArrayIndex].value  = (char *)contentslen;
+                        break;
+                    case 8:
+/*                        fprintf(stdout,"FileName: %s\n",Tcl_GetString(httpPostData[i+1])); */
+                        formArray[formArrayIndex].option = CURLFORM_FILECONTENT;
+                        formArray[formArrayIndex].value  = curlstrdup(Tcl_GetString(httpPostData[i+1]));
+                        break;
+                }
+                formArrayIndex++;
+            }
+            formArray[formArrayIndex].option=CURLFORM_END;
+            curlData->formArray=newFormArray;
+
+            if (0==formaddError) {
+                formaddError=curl_formadd(&(curlData->postListFirst)
+                        ,&(curlData->postListLast), CURLFORM_ARRAY, formArray
+                        , CURLFORM_END);
+            }
+            if (formaddError!=CURL_FORMADD_OK) {
+                curlResetFormArray(formArray);
+                curlData->formArray=newFormArray->next;
+                Tcl_Free((char *)newFormArray);
+                tmpStr=Tcl_Alloc(10);
+                snprintf(tmpStr,10,"%d",formaddError);
+                resultObjPtr=Tcl_NewStringObj(tmpStr,-1);
+                Tcl_SetObjResult(interp,resultObjPtr);
+                Tcl_Free(tmpStr);
+                return TCL_ERROR;
+            }
+            return TCL_OK;
+            break;
+        case 38:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSLCERT,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 39:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSLCERTPASSWD,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 40:
+            if (Tcl_GetIndexFromObj(interp, objv, sslversion,
+                "sslversion ",TCL_EXACT,&intNumber)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(intNumber) {
+                case 0:
+                    longNumber=CURL_SSLVERSION_DEFAULT;
+                    break;
+                case 1:
+                    longNumber=CURL_SSLVERSION_TLSv1;
+                    break;
+                case 2:
+                    longNumber=CURL_SSLVERSION_SSLv2;
+                    break;
+                case 3:
+                    longNumber=CURL_SSLVERSION_SSLv3;
+            }
+            tmpObjPtr=Tcl_NewLongObj(longNumber);
+            if (SetoptLong(interp,curlHandle,CURLOPT_SSLVERSION,
+                        tableIndex,tmpObjPtr)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 41:
+            if (SetoptInt(interp,curlHandle,CURLOPT_CRLF,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 42:
+            if(SetoptsList(interp,&curlData->quote,objv)) {
+                curlErrorSetOpt(interp,configTable,tableIndex,"quote list invalid");
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_QUOTE,curlData->quote)) {
+                curl_slist_free_all(curlData->quote);
+                curlData->quote=NULL;
+                return TCL_ERROR;
+            }
+            return TCL_OK;
+            break;
+        case 43:
+            if(SetoptsList(interp,&curlData->postquote,objv)) {
+                curlErrorSetOpt(interp,configTable,tableIndex,"postqoute invalid");
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_POSTQUOTE,curlData->postquote)) {
+                curlErrorSetOpt(interp,configTable,tableIndex,"postqoute invalid");
+                curl_slist_free_all(curlData->postquote);
+                curlData->postquote=NULL;
+                return TCL_ERROR;
+            }
+            return TCL_OK;
+            break;
+        case 44:
+            Tcl_Free(curlData->headerFile);
+            curlData->headerFile=curlstrdup(Tcl_GetString(objv));
+            if ((strcmp(curlData->headerFile,""))&&(strcmp(curlData->headerFile,"stdout"))
+                    &&(strcmp(curlData->headerFile,"stderr"))) {
+                curlData->headerFlag=1;
+            } else {
+                if ((strcmp(curlData->headerFile,"stdout"))) {
+                    curl_easy_setopt(curlHandle,CURLOPT_HEADERDATA,stderr);
+                } else {
+                    curl_easy_setopt(curlHandle,CURLOPT_HEADERDATA,stdout);
+                }
+                curlData->headerFlag=0;
+                curlData->headerFile=NULL;
+            }
+            break;
+        case 45:
+            if (Tcl_GetIndexFromObj(interp, objv, timeCond,
+                "time cond option",TCL_EXACT, &intNumber)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            if (intNumber==0) {
+                longNumber=CURL_TIMECOND_IFMODSINCE;
+            } else {
+                longNumber=CURL_TIMECOND_IFUNMODSINCE;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_TIMECONDITION,longNumber)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 46:
+            if (SetoptLong(interp,curlHandle,CURLOPT_TIMEVALUE,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 47:
+            if (SetoptChar(interp,curlHandle,CURLOPT_CUSTOMREQUEST,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 48:
+            Tcl_Free(curlData->stderrFile);
+            curlData->stderrFile=curlstrdup(Tcl_GetString(objv));
+            if ((strcmp(curlData->stderrFile,""))&&(strcmp(curlData->stderrFile,"stdout"))
+                    &&(strcmp(curlData->stderrFile,"stderr"))) {
+                curlData->stderrFlag=1;
+            } else {
+                curlData->stderrFlag=0;
+                if (strcmp(curlData->stderrFile,"stdout")) {
+                    curl_easy_setopt(curlHandle,CURLOPT_STDERR,stderr);
+                } else {
+                    curl_easy_setopt(curlHandle,CURLOPT_STDERR,stdout);
+                }
+                curlData->stderrFile=NULL;
+            }
+            break;
+        case 49:
+            if (SetoptChar(interp,curlHandle,CURLOPT_INTERFACE,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 50:
+        case 132:
+            if (SetoptChar(interp,curlHandle,CURLOPT_KRBLEVEL,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 51:
+            if (SetoptLong(interp,curlHandle,CURLOPT_SSL_VERIFYPEER,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 52:
+            if (SetoptChar(interp,curlHandle,CURLOPT_CAINFO,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 53:
+            if (SetoptLong(interp,curlHandle,CURLOPT_FILETIME,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 54:
+            if (SetoptLong(interp,curlHandle,CURLOPT_MAXREDIRS,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 55:
+            if (SetoptLong(interp,curlHandle,CURLOPT_MAXCONNECTS,tableIndex,
+                        objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 56:
+            curlErrorSetOpt(interp,configTable,tableIndex,"option is obsolete");
+            return TCL_ERROR;
+            break;
+        case 57:
+            if (SetoptChar(interp,curlHandle,CURLOPT_RANDOM_FILE,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 58:
+            if (SetoptChar(interp,curlHandle,CURLOPT_EGDSOCKET,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 59:
+            if (SetoptLong(interp,curlHandle,CURLOPT_CONNECTTIMEOUT,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 60:
+            if (SetoptLong(interp,curlHandle,CURLOPT_NOPROGRESS,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 61:
+            if (curl_easy_setopt(curlHandle,CURLOPT_HEADERFUNCTION,
+                    curlHeaderReader)) {
+                return TCL_ERROR;
+            }
+            Tcl_Free(curlData->headerVar);
+            curlData->headerVar=curlstrdup(Tcl_GetString(objv));
+            if (curl_easy_setopt(curlHandle,CURLOPT_HEADERDATA,
+                    (FILE *)curlData)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 62:
+            Tcl_Free(curlData->bodyVarName);
+            curlData->bodyVarName=curlstrdup(Tcl_GetString(objv));
+            if (curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,
+                    curlBodyReader)) {
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_WRITEDATA,curlData)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 63:
+            Tcl_Free(curlData->progressProc);
+            curlData->progressProc=curlstrdup(Tcl_GetString(objv));
+            if (strcmp(curlData->progressProc,"")) {
+                if (curl_easy_setopt(curlHandle,CURLOPT_PROGRESSFUNCTION,
+                        curlProgressCallback)) {
+                    return TCL_ERROR;
+                }
+                if (curl_easy_setopt(curlHandle,CURLOPT_PROGRESSDATA,
+                        curlData)) {
+                    return TCL_ERROR;
+                }
+            } else {
+                if (curl_easy_setopt(curlHandle,CURLOPT_PROGRESSFUNCTION,NULL)) {
+                    return TCL_ERROR;
+                }
+            }
+            break;
+        case 64:
+            if (curlData->cancelTransVarName) {
+                Tcl_UnlinkVar(curlData->interp,curlData->cancelTransVarName);
+                Tcl_Free(curlData->cancelTransVarName);
+            }
+            curlData->cancelTransVarName=curlstrdup(Tcl_GetString(objv));
+            Tcl_LinkVar(interp,curlData->cancelTransVarName,
+                    (char *)&(curlData->cancelTrans),TCL_LINK_INT);
+            break;
+        case 65:
+            curlData->writeProc=curlstrdup(Tcl_GetString(objv));
+            curlData->outFlag=0;
+            if (curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,
+                    curlWriteProcInvoke)) {
+                curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,NULL);
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_WRITEDATA,curlData)) {
+                curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,NULL);
+                return TCL_ERROR;
+            }
+            break;
+        case 66:
+            curlData->readProc=curlstrdup(Tcl_GetString(objv));
+            curlData->inFlag=0;
+            if (strcmp(curlData->readProc,"")) {
+                if (curl_easy_setopt(curlHandle,CURLOPT_READFUNCTION,
+                        curlReadProcInvoke)) {
+                    return TCL_ERROR;
+                }
+            } else {
+                curl_easy_setopt(curlHandle,CURLOPT_READFUNCTION,NULL);
+                return TCL_OK;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_READDATA,curlData)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 67:
+            if (SetoptLong(interp,curlHandle,CURLOPT_SSL_VERIFYHOST,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 68:
+            if (SetoptChar(interp,curlHandle,CURLOPT_COOKIEJAR,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 69:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSL_CIPHER_LIST,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 70:
+            if (Tcl_GetIndexFromObj(interp, objv, httpVersionTable,
+                "http version",TCL_EXACT,&tableIndex)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_HTTP_VERSION,
+                        tableIndex)) {
+                tmpStr=curlstrdup(Tcl_GetString(objv));
+                curlErrorSetOpt(interp,configTable,70,tmpStr);
+                Tcl_Free(tmpStr);
+                return TCL_ERROR;
+            }
+            break;
+        case 71:
+            if (SetoptLong(interp,curlHandle,CURLOPT_FTP_USE_EPSV,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 72:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSLCERTTYPE,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 73:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSLKEY,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 74:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSLKEYTYPE,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 135:
+        case 75:
+            if (SetoptChar(interp,curlHandle,CURLOPT_KEYPASSWD,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 76:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSLENGINE,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 77:
+            if (SetoptLong(interp,curlHandle,CURLOPT_SSLENGINE_DEFAULT,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 78:
+            if(SetoptsList(interp,&curlData->prequote,objv)) {
+                curlErrorSetOpt(interp,configTable,tableIndex,"pretqoute invalid");
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_PREQUOTE,curlData->prequote)) {
+                curlErrorSetOpt(interp,configTable,tableIndex,"preqoute invalid");
+                curl_slist_free_all(curlData->prequote);
+                curlData->prequote=NULL;
+                return TCL_ERROR;
+            }
+            return TCL_OK;
+            break;
+        case 79:
+            curlData->debugProc=curlstrdup(Tcl_GetString(objv));
+            if (curl_easy_setopt(curlHandle,CURLOPT_DEBUGFUNCTION,
+                    curlDebugProcInvoke)) {    
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_DEBUGDATA,curlData)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 80:
+            if (SetoptLong(interp,curlHandle,CURLOPT_DNS_CACHE_TIMEOUT,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 81:
+            if (SetoptLong(interp,curlHandle,CURLOPT_DNS_USE_GLOBAL_CACHE,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 82:
+            if (SetoptLong(interp,curlHandle,CURLOPT_COOKIESESSION,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 83:
+            if (SetoptChar(interp,curlHandle,CURLOPT_CAPATH,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 84:
+            if (SetoptLong(interp,curlHandle,CURLOPT_BUFFERSIZE,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 85:
+            if (SetoptLong(interp,curlHandle,CURLOPT_NOSIGNAL,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 86:
+            if (Tcl_GetIndexFromObj(interp, objv, encodingTable,
+                "encoding",TCL_EXACT,&tableIndex)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            if (tableIndex==2) {
+                if (curl_easy_setopt(curlHandle,CURLOPT_ENCODING,"")) {
+                    curlErrorSetOpt(interp,configTable,86,"all");
+                    return 1;
+                }
+            } else {
+                if (SetoptChar(interp,curlHandle,CURLOPT_ENCODING,86,objv)) {
+                    return TCL_ERROR;
+                }
+            }
+            break;
+        case 87:
+            if (Tcl_GetIndexFromObj(interp, objv, proxyTypeTable,
+                "proxy type",TCL_EXACT,&tableIndex)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(tableIndex) {
+                case 0:
+                    curl_easy_setopt(curlHandle,CURLOPT_PROXYTYPE,
+                            CURLPROXY_HTTP);
+                case 1:
+                    curl_easy_setopt(curlHandle,CURLOPT_PROXYTYPE,
+                            CURLPROXY_SOCKS4);
+                case 2:
+                    curl_easy_setopt(curlHandle,CURLOPT_PROXYTYPE,
+                            CURLPROXY_SOCKS4A);                            
+                case 4:
+                    curl_easy_setopt(curlHandle,CURLOPT_PROXYTYPE,
+                            CURLPROXY_SOCKS5);
+                case 5:
+                    curl_easy_setopt(curlHandle,CURLOPT_PROXYTYPE,
+                            CURLPROXY_SOCKS5_HOSTNAME);
+            }
+            break;
+        case 88:
+            if(SetoptsList(interp,&curlData->http200aliases,objv)) {
+                curlErrorSetOpt(interp,configTable,tableIndex,"http200aliases invalid");
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_HTTP200ALIASES,curlData->http200aliases)) {
+                curlErrorSetOpt(interp,configTable,tableIndex,"http200aliases invalid");
+                curl_slist_free_all(curlData->http200aliases);
+                curlData->http200aliases=NULL;
+                return TCL_ERROR;
+            }
+            return TCL_OK;
+            break;
+        case 89:
+            if (SetoptInt(interp,curlHandle,CURLOPT_UNRESTRICTED_AUTH
+                    ,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 90:
+            if (SetoptLong(interp,curlHandle,CURLOPT_FTP_USE_EPRT,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 91:
+            Tcl_Free(curlData->command);
+            curlData->command=curlstrdup(Tcl_GetString(objv));
+            break;
+        case 92:
+            if (Tcl_GetIndexFromObj(interp, objv, httpAuthMethods,
+                "authentication method",TCL_EXACT,&intNumber)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            curlData->anyAuthFlag=0;
+            switch(intNumber) {
+                case 0:
+                    longNumber=CURLAUTH_BASIC;
+                    break;
+                case 1:
+                    longNumber=CURLAUTH_DIGEST;
+                    break;
+                case 2:
+                    longNumber=CURLAUTH_DIGEST_IE;
+                    break;
+                case 3:
+                    longNumber=CURLAUTH_GSSNEGOTIATE;
+                    break;
+                case 4:
+                    longNumber=CURLAUTH_NTLM;
+                    break;
+                case 5:
+                    longNumber=CURLAUTH_ANY;
+                    curlData->anyAuthFlag=1;
+                    break;
+                case 6:
+                    longNumber=CURLAUTH_ANYSAFE;
+                    break;
+            }
+            tmpObjPtr=Tcl_NewLongObj(longNumber);
+            if (SetoptLong(interp,curlHandle,CURLOPT_HTTPAUTH
+                    ,tableIndex,tmpObjPtr)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 93:
+            if (SetoptLong(interp,curlHandle,CURLOPT_FTP_CREATE_MISSING_DIRS,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 94:
+            if (Tcl_GetIndexFromObj(interp, objv, httpAuthMethods,
+                "authentication method",TCL_EXACT,&intNumber)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(intNumber) {
+                case 0:
+                    longNumber=CURLAUTH_BASIC;
+                    break;
+                case 1:
+                    longNumber=CURLAUTH_DIGEST;
+                    break;
+                case 2:
+                    longNumber=CURLAUTH_GSSNEGOTIATE;
+                    break;
+                case 3:
+                    longNumber=CURLAUTH_NTLM;
+                    break;
+                case 4:
+                    longNumber=CURLAUTH_ANY;
+                    break;
+                case 5:
+                    longNumber=CURLAUTH_ANYSAFE;
+                    break;
+            }
+            tmpObjPtr=Tcl_NewLongObj(longNumber);
+            if (SetoptLong(interp,curlHandle,CURLOPT_PROXYAUTH
+                    ,tableIndex,tmpObjPtr)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 95:
+            if (SetoptLong(interp,curlHandle,CURLOPT_FTP_RESPONSE_TIMEOUT,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 96:
+            if (Tcl_GetIndexFromObj(interp, objv, ipresolve,
+                "ip version",TCL_EXACT,&curlTableIndex)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(curlTableIndex) {
+                case 0:
+                    longNumber=CURL_IPRESOLVE_WHATEVER;
+                    break;
+                case 1:
+                    longNumber=CURL_IPRESOLVE_V4;
+                    break;
+                case 2:
+                    longNumber=CURL_IPRESOLVE_V6;
+                    break;
+            }
+            tmpObjPtr=Tcl_NewLongObj(longNumber);
+            if (SetoptLong(interp,curlHandle,CURLOPT_IPRESOLVE
+                    ,tableIndex,tmpObjPtr)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 97:
+            if (SetoptLong(interp,curlHandle,CURLOPT_MAXFILESIZE,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 98:
+            if (SetoptChar(interp,curlHandle,CURLOPT_NETRC_FILE,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 99:
+        case 138:
+            if (Tcl_GetIndexFromObj(interp, objv, ftpssl,
+                "ftps method ",TCL_EXACT,&intNumber)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(intNumber) {
+                case 0:
+                    longNumber=CURLUSESSL_NONE;
+                    break;
+                case 1:
+                    longNumber=CURLUSESSL_TRY;
+                    break;
+                case 2:
+                    longNumber=CURLUSESSL_CONTROL;
+                    break;
+                case 3:
+                    longNumber=CURLUSESSL_ALL;
+                    break;
+            }
+            tmpObjPtr=Tcl_NewLongObj(longNumber);
+            if (SetoptLong(interp,curlHandle,CURLOPT_USE_SSL,
+                        tableIndex,tmpObjPtr)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 100:
+            if (SetoptSHandle(interp,curlHandle,CURLOPT_SHARE,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 101:
+            if (SetoptLong(interp,curlHandle,CURLOPT_PORT,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 102:
+            if (SetoptLong(interp,curlHandle,CURLOPT_TCP_NODELAY,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 103:
+            if (SetoptLong(interp,curlHandle,CURLOPT_AUTOREFERER,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 104:
+            curlErrorSetOpt(interp,configTable,tableIndex,"option is obsolete");
+            return TCL_ERROR;
+            break;
+        case 105:
+            curlErrorSetOpt(interp,configTable,tableIndex,"option is obsolete");
+            return TCL_ERROR;
+            break;
+        case 106:
+            curlErrorSetOpt(interp,configTable,tableIndex,"option is obsolete");
+            return TCL_ERROR;
+            break;
+        case 107:
+            curlErrorSetOpt(interp,configTable,tableIndex,"option is obsolete, check '-ftpport'");
+            return TCL_ERROR;
+            break;
+        case 108:
+            curlErrorSetOpt(interp,configTable,tableIndex,"option is obsolete, check '-ftpport'");
+            return TCL_ERROR;
+            break;
+        case 109:
+            curlErrorSetOpt(interp,configTable,tableIndex,"option is obsolete");
+            return TCL_ERROR;
+            break;
+        case 110:
+            curlErrorSetOpt(interp,configTable,tableIndex,"option is obsolete");
+            return TCL_ERROR;
+            break;
+        case 111:
+            if (Tcl_GetIndexFromObj(interp, objv, ftpsslauth,
+                "ftpsslauth method ",TCL_EXACT,&intNumber)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(intNumber) {
+                case 0:
+                    longNumber=CURLFTPAUTH_DEFAULT;
+                    break;
+                case 1:
+                    longNumber=CURLFTPAUTH_SSL;
+                    break;
+                case 2:
+                    longNumber=CURLFTPAUTH_TLS;
+                    break;
+            }
+            tmpObjPtr=Tcl_NewLongObj(longNumber);
+            if (SetoptLong(interp,curlHandle,CURLOPT_FTPSSLAUTH,
+                        tableIndex,tmpObjPtr)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 112:
+            curlErrorSetOpt(interp,configTable,tableIndex,"option is obsolete");
+            return TCL_ERROR;
+            break;
+        case 113:
+            curlErrorSetOpt(interp,configTable,tableIndex,"option is obsolete");
+            return TCL_ERROR;
+            break;
+        case 114:
+            if (SetoptChar(interp,curlHandle,CURLOPT_FTP_ACCOUNT,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 115:
+            if (SetoptLong(interp,curlHandle,CURLOPT_IGNORE_CONTENT_LENGTH,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 116:
+            if (SetoptChar(interp,curlHandle,CURLOPT_COOKIELIST,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 117:
+            if (SetoptLong(interp,curlHandle,CURLOPT_FTP_SKIP_PASV_IP,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 118:
+            if (Tcl_GetIndexFromObj(interp, objv, ftpfilemethod,
+                "ftp file method ",TCL_EXACT,&intNumber)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(intNumber) {
+                case 0:
+                case 1:
+                    longNumber=1;                /* FTPFILE_MULTICWD  */
+                    break;
+                case 2:
+                    longNumber=2;                /* FTPFILE_NOCWD     */
+                    break;
+                case 3:
+                    longNumber=3;                /* FTPFILE_SINGLECWD */
+                    break;
+            }
+            tmpObjPtr=Tcl_NewLongObj(longNumber);
+            if (SetoptLong(interp,curlHandle,CURLOPT_FTP_FILEMETHOD,
+                        tableIndex,tmpObjPtr)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 119:
+            if (SetoptLong(interp,curlHandle,CURLOPT_LOCALPORT,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 120:
+            if (SetoptLong(interp,curlHandle,CURLOPT_LOCALPORTRANGE,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 121:
+            if (SetoptCurlOffT(interp,curlHandle,CURLOPT_MAX_SEND_SPEED_LARGE,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+         case 122:
+            if (SetoptCurlOffT(interp,curlHandle,CURLOPT_MAX_RECV_SPEED_LARGE,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 123:
+            if (SetoptChar(interp,curlHandle,
+                    CURLOPT_FTP_ALTERNATIVE_TO_USER,tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 124:
+            if (SetoptLong(interp,curlHandle,CURLOPT_SSL_SESSIONID_CACHE,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 125:
+            if (Tcl_GetIndexFromObj(interp, objv, sshauthtypes,
+                "ssh auth type ",TCL_EXACT,&intNumber)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(intNumber) {
+                case 0:
+                    longNumber=CURLSSH_AUTH_PUBLICKEY;
+                    break;
+                case 1:
+                    longNumber=CURLSSH_AUTH_PASSWORD;
+                    break;
+                case 2:
+                    longNumber=CURLSSH_AUTH_HOST;
+                    break;
+                case 3:
+                    longNumber=CURLSSH_AUTH_KEYBOARD;
+                    break;
+                case 4:
+                    longNumber=CURLSSH_AUTH_ANY;
+                    break;
+            }
+            tmpObjPtr=Tcl_NewLongObj(longNumber);
+            if (SetoptLong(interp,curlHandle,CURLOPT_SSH_AUTH_TYPES,
+                        tableIndex,tmpObjPtr)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 126:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSH_PUBLIC_KEYFILE,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 127:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSH_PRIVATE_KEYFILE,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 128:
+            if (SetoptLong(interp,curlHandle,CURLOPT_TIMEOUT_MS,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 129:
+            if (SetoptLong(interp,curlHandle,CURLOPT_CONNECTTIMEOUT_MS,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 130:
+            if (SetoptLong(interp,curlHandle,CURLOPT_HTTP_CONTENT_DECODING,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 131:
+            if (SetoptLong(interp,curlHandle,CURLOPT_HTTP_TRANSFER_DECODING,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        /* 132 is together with case 50 */
+        case 133:
+            if (SetoptLong(interp,curlHandle,CURLOPT_NEW_FILE_PERMS,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 134:
+            if (SetoptLong(interp,curlHandle,CURLOPT_NEW_DIRECTORY_PERMS,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        /* case 135 with 75, case 136 with 19, case 137 with 18 and case 138 with 99 */
+        case 139:
+        case 146:
+            if (Tcl_GetIndexFromObj(interp, objv, postredir,
+                "Postredir option ",TCL_EXACT,&intNumber)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(intNumber) {
+                case 0:
+                    longNumber=CURL_REDIR_POST_301;
+                    break;
+                case 1:
+                    longNumber=CURL_REDIR_POST_302;
+                    break;
+                case 2:
+                    longNumber=CURL_REDIR_POST_ALL;
+                    break;
+            }
+            tmpObjPtr=Tcl_NewLongObj(longNumber);
+            if (SetoptLong(interp,curlHandle,CURLOPT_POSTREDIR,
+                        tableIndex,tmpObjPtr)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 140:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSH_HOST_PUBLIC_KEY_MD5,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 141:
+            if (SetoptLong(interp,curlHandle,CURLOPT_PROXY_TRANSFER_MODE,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 142:
+            if (SetoptChar(interp,curlHandle,CURLOPT_CRLFILE,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 143:
+            if (SetoptChar(interp,curlHandle,CURLOPT_ISSUERCERT,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 144:
+            if (SetoptLong(interp,curlHandle,CURLOPT_ADDRESS_SCOPE,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 145:
+            if (SetoptLong(interp,curlHandle,CURLOPT_CERTINFO,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        /* case 146 is together with 139*/
+        case 147:
+            if (SetoptChar(interp,curlHandle,CURLOPT_USERNAME,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 148:
+            if (SetoptChar(interp,curlHandle,CURLOPT_PASSWORD,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 149:
+            if (SetoptChar(interp,curlHandle,CURLOPT_PROXYUSERNAME,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 150:
+            if (SetoptChar(interp,curlHandle,CURLOPT_PROXYPASSWORD,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 151:
+            if (SetoptLong(interp,curlHandle,CURLOPT_TFTP_BLKSIZE,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 152:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SOCKS5_GSSAPI_SERVICE,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 153:
+            if (SetoptLong(interp,curlHandle,CURLOPT_SOCKS5_GSSAPI_NEC,
+                        tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 154:
+        case 155:
+            if (Tcl_ListObjGetElements(interp,objv,&j,&protocols)==TCL_ERROR) {
+                return 1;
+            }
+
+            for (i=0,protocolMask=0;i<j;i++) {
+                tmpStr=curlstrdup(Tcl_GetString(protocols[i]));
+                if (Tcl_GetIndexFromObj(interp,protocols[i],protocolNames,
+                       "protocol",TCL_EXACT,&curlTableIndex)==TCL_ERROR) {
+                   return TCL_ERROR;
+                }
+                switch(curlTableIndex) {
+                    case 0:             /* http     1 */
+                        protocolMask|=CURLPROTO_HTTP;
+                        break;
+                    case 1:             /* https    2 */
+                        protocolMask|=CURLPROTO_HTTPS;
+                        break;
+                    case 2:             /* ftp      4 */
+                        protocolMask|=CURLPROTO_FTP;
+                        break;
+                    case 3:             /* ftps     8 */
+                        protocolMask|=CURLPROTO_FTPS;
+                        break;
+                    case 4:             /* scp     16 */
+                        protocolMask|=CURLPROTO_SCP;
+                        break;
+                    case 5:             /* sftp    32 */
+                        protocolMask|=CURLPROTO_SFTP;
+                        break;
+                    case 6:             /* telnet  64 */
+                        protocolMask|=CURLPROTO_TELNET;
+                        break;
+                    case 7:             /* ldap   128 */
+                        protocolMask|=CURLPROTO_LDAP;
+                        break;
+                    case 8:             /* ldaps  256 */
+                        protocolMask|=CURLPROTO_LDAPS;
+                        break;
+                    case 9:             /* dict   512 */
+                        protocolMask|=CURLPROTO_DICT;
+                        break;
+                    case 10:            /* file  1024 */
+                        protocolMask|=CURLPROTO_FILE;
+                        break;
+                    case 11:            /* tftp  2048 */
+                        protocolMask|=CURLPROTO_TFTP;
+                        break;
+                    case 12:            /* all   FFFF */
+                        protocolMask|=CURLPROTO_ALL;
+                }
+            }
+            tmpObjPtr=Tcl_NewLongObj(protocolMask);
+            if (tableIndex==154) {
+                longNumber=CURLOPT_PROTOCOLS;
+            } else {
+                longNumber=CURLOPT_REDIR_PROTOCOLS;
+            }
+            if (SetoptLong(interp,curlHandle,longNumber,tableIndex,tmpObjPtr)) {
+                    return TCL_ERROR;
+            }
+            break;
+        case 156:
+            if (Tcl_GetIndexFromObj(interp, objv, ftpsslccc,
+                "Clear Command Channel option ",TCL_EXACT,&intNumber)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(intNumber) {
+                case 0:
+                    longNumber=CURLFTPSSL_CCC_NONE;
+                    break;
+                case 1:
+                    longNumber=CURLFTPSSL_CCC_PASSIVE;
+                    break;
+                case 2:
+                    longNumber=CURLFTPSSL_CCC_ACTIVE;
+                    break;
+            }
+            tmpObjPtr=Tcl_NewLongObj(longNumber);
+            if (SetoptLong(interp,curlHandle,CURLOPT_FTP_SSL_CCC,
+                        tableIndex,tmpObjPtr)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 157:
+            if (SetoptChar(interp,curlHandle,CURLOPT_SSH_KNOWNHOSTS,
+                    tableIndex,objv)) {
+                return TCL_ERROR;
+            }
+            break;
+        case 158:
+            if (curl_easy_setopt(curlHandle,CURLOPT_SSH_KEYFUNCTION,curlsshkeycallback)) {    
+                return TCL_ERROR;
+            }
+            if (curl_easy_setopt(curlHandle,CURLOPT_SSH_KEYDATA,curlData)) {
+                return TCL_ERROR;
+            }
+            curlData->sshkeycallProc=curlstrdup(Tcl_GetString(objv));
+            break;
+    }
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * SetoptInt --
+ *
+ *   Sets the curl options that require an int
+ *
+ *  Parameter:
+ *   interp: The interpreter we are working with.
+ *   curlHandle: and the curl handle
+ *   opt: the option to set
+ *   tclObj: The Tcl with the value for the option.
+ *
+ * Results:
+ *  0 if all went well.
+ *  1 in case of error.
+ *----------------------------------------------------------------------
+ */
+int
+SetoptInt(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt,
+        int tableIndex,Tcl_Obj *tclObj) {
+    int        intNumber;
+    char       *parPtr;
+
+    if (Tcl_GetIntFromObj(interp,tclObj,&intNumber)) {
+        parPtr=curlstrdup(Tcl_GetString(tclObj));
+        curlErrorSetOpt(interp,configTable,tableIndex,parPtr);
+        Tcl_Free(parPtr);
+        return 1;
+    }
+    if (curl_easy_setopt(curlHandle,opt,intNumber)) {
+        parPtr=curlstrdup(Tcl_GetString(tclObj));
+        curlErrorSetOpt(interp,configTable,tableIndex,parPtr);
+        Tcl_Free(parPtr);
+        return 1;
+    }
+    return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * SetoptLong --
+ *
+ *  Set the curl options that require a long
+ *
+ * Parameter:
+ *  interp: The interpreter we are working with.
+ *  curlHandle: and the curl handle
+ *  opt: the option to set
+ *  tclObj: The Tcl with the value for the option.
+ *
+ * Results:
+ *  0 if all went well.
+ *  1 in case of error.
+ *----------------------------------------------------------------------
+ */
+int
+SetoptLong(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt,
+        int tableIndex,Tcl_Obj *tclObj) {
+    long         longNumber;
+    char        *parPtr;
+
+    if (Tcl_GetLongFromObj(interp,tclObj,&longNumber)) {
+        parPtr=curlstrdup(Tcl_GetString(tclObj));
+        curlErrorSetOpt(interp,configTable,tableIndex,parPtr);
+        Tcl_Free(parPtr);
+        return 1;
+    }
+    if (curl_easy_setopt(curlHandle,opt,longNumber)) {
+        parPtr=curlstrdup(Tcl_GetString(tclObj));
+        curlErrorSetOpt(interp,configTable,tableIndex,parPtr);
+        Tcl_Free(parPtr);
+        return 1;
+    }
+
+    return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlSetoptCurlOffT --
+ *
+ *  Set the curl options that require a curl_off_t, even if we really
+ *  use a long to do it. (Cutting and pasting at its worst)
+ *
+ * Parameter:
+ *  interp: The interpreter we are working with.
+ *  curlHandle: and the curl handle
+ *  opt: the option to set
+ *  tclObj: The Tcl with the value for the option.
+ *
+ * Results:
+ *  0 if all went well.
+ *  1 in case of error.
+ *----------------------------------------------------------------------
+ */
+int
+SetoptCurlOffT(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt,
+        int tableIndex,Tcl_Obj *tclObj) {
+    long        longNumber;
+    char        *parPtr;
+
+    if (Tcl_GetLongFromObj(interp,tclObj,&longNumber)) {
+        parPtr=curlstrdup(Tcl_GetString(tclObj));
+        curlErrorSetOpt(interp,configTable,tableIndex,parPtr);
+        Tcl_Free(parPtr);
+        return 1;
+    }
+
+    if (curl_easy_setopt(curlHandle,opt,(curl_off_t)longNumber)) {
+        parPtr=curlstrdup(Tcl_GetString(tclObj));
+        curlErrorSetOpt(interp,configTable,tableIndex,parPtr);
+        Tcl_Free(parPtr);
+        return 1;
+    }
+
+    return 0;
+}
+
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * SetoptChar --
+ *
+ *  Set the curl options that require a string
+ *
+ * Parameter:
+ *  interp: The interpreter we are working with.
+ *  curlHandle: and the curl handle
+ *  opt: the option to set
+ *  tclObj: The Tcl with the value for the option.
+ *
+ * Results:
+ *  0 if all went well.
+ *  1 in case of error.
+ *----------------------------------------------------------------------
+ */
+int
+SetoptChar(Tcl_Interp *interp,CURL *curlHandle,
+        CURLoption opt,int tableIndex,Tcl_Obj *tclObj) {
+    char    *optionPtr;
+
+    optionPtr=curlstrdup(Tcl_GetString(tclObj));
+    if (curl_easy_setopt(curlHandle,opt,optionPtr)) {
+        curlErrorSetOpt(interp,configTable,tableIndex,optionPtr);
+        Tcl_Free(optionPtr);
+        return 1;
+    }
+    Tcl_Free(optionPtr);
+    return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * SetoptSHandle --
+ *
+ *  Set the curl options that require a share handle (there is only
+ *  one but you never know.
+ *
+ * Parameter:
+ *  interp: The interpreter we are working with.
+ *  curlHandle: the curl handle
+ *  opt: the option to set
+ *  tclObj: The Tcl with the value for the option.
+ *
+ * Results:
+ *  0 if all went well.
+ *  1 in case of error.
+ *----------------------------------------------------------------------
+ */
+int
+SetoptSHandle(Tcl_Interp *interp,CURL *curlHandle,
+        CURLoption opt,int tableIndex,Tcl_Obj *tclObj) {
+
+    char                    *shandleName;
+    Tcl_CmdInfo             *infoPtr=(Tcl_CmdInfo *)Tcl_Alloc(sizeof(Tcl_CmdInfo));
+    struct shcurlObjData    *shandleDataPtr;
+
+    shandleName=Tcl_GetString(tclObj);
+    if (0==Tcl_GetCommandInfo(interp,shandleName,infoPtr)) {
+        return 1;
+    }
+    shandleDataPtr=(struct shcurlObjData *)(infoPtr->objClientData);
+    Tcl_Free((char *)infoPtr);
+    if (curl_easy_setopt(curlHandle,opt,shandleDataPtr->shandle)) {
+        curlErrorSetOpt(interp,configTable,tableIndex,shandleName);
+        return 1;
+    }
+    return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * SetoptsList --
+ *
+ *  Prepares a slist for future use.
+ *
+ * Parameter:
+ *  slistPtr: Pointer to the slist to prepare.
+ *  objv: Tcl object with a list of the data.
+ *
+ * Results:
+ *  0 if all went well.
+ *  1 in case of error.
+ *----------------------------------------------------------------------
+ */
+int
+SetoptsList(Tcl_Interp *interp,struct curl_slist **slistPtr,
+        Tcl_Obj *CONST objv) {
+    int         i,headerNumber;
+    Tcl_Obj     **headers;
+
+    if (slistPtr!=NULL) {
+        curl_slist_free_all(*slistPtr);
+        *slistPtr=NULL;
+    }
+
+    if (Tcl_ListObjGetElements(interp,objv,&headerNumber,&headers)
+            ==TCL_ERROR) {
+        return 1;
+    }
+
+    for (i=0;i<headerNumber;i++) {
+       *slistPtr=curl_slist_append(*slistPtr,Tcl_GetString(headers[i]));
+        if (slistPtr==NULL) {
+            return 1;
+        }
+    }
+    return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlErrorSetOpt --
+ *
+ *  When an error happens when setting an option, this function
+ *  takes cares of reporting it
+ *
+ * Parameter:
+ *  interp: Pointer to the interpreter we are using.
+ *  option: The index of the option in 'optionTable'
+ *  parPtr: String with the parameter we wanted to set the option to.
+ *----------------------------------------------------------------------
+ */
+
+void
+curlErrorSetOpt(Tcl_Interp *interp,CONST char **configTable, int option,
+        CONST char *parPtr) {
+    Tcl_Obj     *resultPtr;
+    char        errorMsg[500];
+
+    snprintf(errorMsg,500,"setting option %s: %s",configTable[option],parPtr);
+    resultPtr=Tcl_NewStringObj(errorMsg,-1);
+    Tcl_SetObjResult(interp,resultPtr);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlHeaderVar --
+ *
+ *  This is the function that will be invoked if the user wants to put
+ *  the headers into a variable
+ *
+ * Parameter:
+ *  header: string with the header line.
+ *  size and nmemb: it so happens size * nmemb if the size of the
+ *  header string.
+ *  curlData: A pointer to the curlData structure for the transfer.
+ *
+ * Returns
+ *  The number of bytes actually written or -1 in case of error, in
+ *  which case 'libcurl' will abort the transfer.
+ *-----------------------------------------------------------------------
+ */
+size_t
+curlHeaderReader(void *ptr,size_t size,size_t nmemb,FILE *curlDataPtr) {
+
+    char                *header=ptr;
+    struct curlObjData  *curlData=(struct curlObjData *)curlDataPtr;
+    Tcl_RegExp           regExp;
+
+    CONST char          *startPtr;
+    CONST char          *endPtr;
+
+    char                *headerName;
+    char                *headerContent;
+    char                *httpStatus;
+
+    int                  match,charLength;
+
+    regExp=Tcl_RegExpCompile(curlData->interp,"(.*?)(?::\\s*)(.*?)(\\r*)(\\n)");
+    match=Tcl_RegExpExec(curlData->interp,regExp,header,header);
+
+    if (match) {
+        Tcl_RegExpRange(regExp,1,&startPtr,&endPtr);
+        charLength=endPtr-startPtr;
+        headerName=Tcl_Alloc(charLength+1);
+        strncpy(headerName,startPtr,charLength);
+        headerName[charLength]=0;
+
+        Tcl_RegExpRange(regExp,2,&startPtr,&endPtr);
+        charLength=endPtr-startPtr;
+        headerContent=Tcl_Alloc(charLength+1);
+        strncpy(headerContent,startPtr,charLength);
+        headerContent[charLength]=0;
+        /* There may be multiple 'Set-Cookie' headers, so we use a list */
+        if (Tcl_StringCaseMatch(headerName,"Set-Cookie",1)) {
+            Tcl_SetVar2(curlData->interp,curlData->headerVar,headerName, \
+                    headerContent,TCL_LIST_ELEMENT|TCL_APPEND_VALUE);
+        } else {
+            Tcl_SetVar2(curlData->interp,curlData->headerVar,headerName,
+                    headerContent,0);
+        }
+    }
+    regExp=Tcl_RegExpCompile(curlData->interp,"(^(HTTP|http)[^\r]+)(\r*)(\n)");
+    match=Tcl_RegExpExec(curlData->interp,regExp,header,header);
+    if (match) {
+        Tcl_RegExpRange(regExp,1,&startPtr,&endPtr);
+        charLength=endPtr-startPtr;
+        httpStatus=Tcl_Alloc(charLength+1);
+        strncpy(httpStatus,startPtr,charLength);
+        httpStatus[charLength]=0;
+
+        Tcl_SetVar2(curlData->interp,curlData->headerVar,"http",
+                httpStatus,0);
+    }
+    return size*nmemb;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlBodyReader --
+ *
+ *  This is the function that will be invoked as a callback while 
+ *  transferring the body of a request into a Tcl variable.
+ *
+ *  This function has been adapted from an example in libcurl's FAQ.
+ *
+ * Parameter:
+ *  header: string with the header line.
+ *  size and nmemb: it so happens size * nmemb if the size of the
+ *  header string.
+ *  curlData: A pointer to the curlData structure for the transfer.
+ *
+ * Returns
+ *  The number of bytes actually written or -1 in case of error, in
+ *  which case 'libcurl' will abort the transfer.
+ *-----------------------------------------------------------------------
+ */
+size_t
+curlBodyReader(void *ptr,size_t size,size_t nmemb,FILE *curlDataPtr) {
+
+    register int realsize = size * nmemb;
+    struct MemoryStruct *mem=&(((struct curlObjData *)curlDataPtr)->bodyVar);
+
+    mem->memory = (char *)Tcl_Realloc(mem->memory,mem->size + realsize);
+    if (mem->memory) {
+        memcpy(&(mem->memory[mem->size]), ptr, realsize);
+        mem->size += realsize;
+    }
+    return realsize;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlProgressCallback --
+ *
+ *  This is the function that will be invoked as a callback during a  
+ *  transfer.
+ *
+ *  This function has been adapted from an example in libcurl's FAQ.
+ *
+ * Parameter:
+ *  clientData: The curlData struct for the transfer.
+ *  dltotal: Total amount of bytes to download.
+ *  dlnow: Bytes downloaded so far.
+ *  ultotal: Total amount of bytes to upload.
+ *  ulnow: Bytes uploaded so far.
+ *
+ * Returns
+ *  Returning a non-zero value will make 'libcurl' abort the transfer
+ *  and return 'CURLE_ABORTED_BY_CALLBACK'.
+ *-----------------------------------------------------------------------
+ */
+int
+curlProgressCallback(void *clientData,double dltotal,double dlnow,
+        double ultotal,double ulnow) {
+
+    struct curlObjData    *curlData=(struct curlObjData *)clientData;
+    Tcl_Obj               *tclProcPtr;
+    char                   tclCommand[300];
+
+    snprintf(tclCommand,299,"%s %f %f %f %f",curlData->progressProc,dltotal,
+            dlnow,ultotal,ulnow);
+    tclProcPtr=Tcl_NewStringObj(tclCommand,-1);
+    if (curlData->cancelTransVarName) {
+        if (curlData->cancelTrans) {
+            curlData->cancelTrans=0;
+            return -1;
+        }
+    }
+    if (Tcl_EvalObjEx(curlData->interp,tclProcPtr,TCL_EVAL_GLOBAL)!=TCL_OK) {
+        return -1;
+    }
+    return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlWriteProcInvoke --
+ *
+ *  This is the function that will be invoked as a callback when the user
+ *  wants to invoke a Tcl procedure to write the recieved data.
+ *
+ *  This function has been adapted from an example in libcurl's FAQ.
+ *
+ * Parameter:
+ *  ptr: A pointer to the data.
+ *  size and nmemb: it so happens size * nmemb if the size of the
+ *  data read.
+ *  curlData: A pointer to the curlData structure for the transfer.
+ *
+ * Returns
+ *  The number of bytes actually written or -1 in case of error, in
+ *  which case 'libcurl' will abort the transfer.
+ *-----------------------------------------------------------------------
+ */
+size_t
+curlWriteProcInvoke(void *ptr,size_t size,size_t nmemb,FILE *curlDataPtr) {
+    register int realsize = size * nmemb;
+    struct curlObjData  *curlData=(struct curlObjData *)curlDataPtr;
+    Tcl_Obj             *objv[2];
+
+    objv[0]=Tcl_NewStringObj(curlData->writeProc,-1);
+    objv[1]=Tcl_NewByteArrayObj(ptr,realsize);
+    if (curlData->cancelTransVarName) {
+        if (curlData->cancelTrans) {
+            curlData->cancelTrans=0;
+            return -1;
+        }
+    }
+    if (Tcl_EvalObjv(curlData->interp,2,objv,TCL_EVAL_GLOBAL)!=TCL_OK) {
+        return -1;
+    }
+
+    return realsize;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlReadProcInvoke --
+ *
+ *  This is the function that will be invoked as a callback when the user
+ *  wants to invoke a Tcl procedure to read the data to send.
+ *
+ * Parameter:
+ *  header: string with the header line.
+ *  size and nmemb: it so happens size * nmemb if the size of the
+ *  header string.
+ *  curlData: A pointer to the curlData structure for the transfer.
+ *
+ * Returns
+ *  The number of bytes actually read or CURL_READFUNC_ABORT in case
+ *  of error, in which case 'libcurl' will abort the transfer.
+ *-----------------------------------------------------------------------
+ */
+size_t
+curlReadProcInvoke(void *ptr,size_t size,size_t nmemb,FILE *curlDataPtr) {
+    register int realsize = size * nmemb;
+    struct curlObjData  *curlData=(struct curlObjData *)curlDataPtr;
+    Tcl_Obj             *tclProcPtr;
+    Tcl_Obj             *readDataPtr;
+    char                 tclCommand[300];
+    unsigned char       *readBytes;
+    int                  sizeRead;
+
+    snprintf(tclCommand,300,"%s %d",curlData->readProc,realsize);
+    tclProcPtr=Tcl_NewStringObj(tclCommand,-1);
+
+    if (curlData->cancelTransVarName) {
+        if (curlData->cancelTrans) {
+            curlData->cancelTrans=0;
+            return CURL_READFUNC_ABORT;
+        }
+    }
+    if (Tcl_EvalObjEx(curlData->interp,tclProcPtr,TCL_EVAL_GLOBAL)!=TCL_OK) {
+        return CURL_READFUNC_ABORT;
+    }
+    readDataPtr=Tcl_GetObjResult(curlData->interp);
+    readBytes=Tcl_GetByteArrayFromObj(readDataPtr,&sizeRead);
+    memcpy(ptr,readBytes,sizeRead);
+
+    return sizeRead;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlshkeyextract --
+ *
+ *  Out of one of libcurl's ssh key struct, this function will return a 
+ *  Tcl_Obj with a list, the first element is the type ok key, the second
+ *  the key itself.
+ *
+ * Parameter:
+ *  interp: The interp need to deal with the objects.
+ *  key: a curl_khkey struct with the key.
+ *
+ * Returns
+ *  The object with the list.
+ *-----------------------------------------------------------------------
+ */
+Tcl_Obj *
+curlsshkeyextract(Tcl_Interp *interp,const struct curl_khkey *key) {
+
+    Tcl_Obj         *keyObjPtr;
+
+    keyObjPtr=Tcl_NewListObj(0,(Tcl_Obj **)NULL);
+
+    switch(key->keytype) {
+        case CURLKHTYPE_RSA1:
+            Tcl_ListObjAppendElement(interp,keyObjPtr,Tcl_NewStringObj("rsa1",-1));
+            break;
+        case CURLKHTYPE_RSA:
+            Tcl_ListObjAppendElement(interp,keyObjPtr,Tcl_NewStringObj("rsa",-1));
+            break;
+        case CURLKHTYPE_DSS:
+            Tcl_ListObjAppendElement(interp,keyObjPtr,Tcl_NewStringObj("dss",-1));
+            break;
+        default:
+            Tcl_ListObjAppendElement(interp,keyObjPtr,Tcl_NewStringObj("unknnown",-1));
+            break;
+    }
+    Tcl_ListObjAppendElement(interp,keyObjPtr,Tcl_NewStringObj(key->key,-1));
+
+    return keyObjPtr;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlshkeycallback --
+ *
+ *  This is the function that will be invoked as a callback when the user
+ *  wants to invoke a Tcl procedure to decide about this new ssh host
+ *
+ * Parameter:
+ *  curl: curl's easy handle for the connection.
+ *  knownkey:    The key from the hosts_file.
+ *  foundkey:    The key from the remote site.
+ *  match:       What libcurl thinks about how they match
+ *  curlDataPtr: Points to the structure with all the TclCurl data
+ *               for the connection.
+ *
+ * Returns
+ *  A libcurl return code so that libcurl knows what to do.
+ *-----------------------------------------------------------------------
+ */
+size_t
+curlsshkeycallback(CURL *curl ,const struct curl_khkey *knownkey,
+        const struct curl_khkey *foundkey, enum curl_khmatch match,void *curlDataPtr) {
+
+    struct curlObjData  *tclcurlDataPtr=(struct curlObjData *)curlDataPtr;
+    Tcl_Interp          *interp;
+
+    Tcl_Obj             *objv[4];
+    Tcl_Obj             *returnObjPtr;
+
+    int                  action;
+
+    interp=tclcurlDataPtr->interp;
+
+    objv[0]=Tcl_NewStringObj(tclcurlDataPtr->sshkeycallProc,-1);
+    objv[1]=curlsshkeyextract(interp,knownkey);
+    objv[2]=curlsshkeyextract(interp,foundkey);
+
+    switch(match) {
+        case CURLKHMATCH_OK:
+            objv[3]=Tcl_NewStringObj("match",-1);
+            break;
+        case CURLKHMATCH_MISMATCH:
+            objv[3]=Tcl_NewStringObj("mismatch",-1);
+            break;
+        case CURLKHMATCH_MISSING:
+            objv[3]=Tcl_NewStringObj("missing",-1);
+            break;
+        case CURLKHMATCH_LAST:
+            objv[3]=Tcl_NewStringObj("error",-1);
+    }
+
+    if (Tcl_EvalObjv(interp,4,objv,TCL_EVAL_GLOBAL)!=TCL_OK)      {return CURLKHSTAT_REJECT;}
+
+    returnObjPtr=Tcl_GetObjResult(interp);
+
+    if (Tcl_GetIntFromObj(interp,returnObjPtr,&action)!=TCL_OK)   {return CURLKHSTAT_REJECT;}
+
+    switch(action) {
+        case 0:
+            return CURLKHSTAT_FINE_ADD_TO_FILE;
+        case 1:
+            return CURLKHSTAT_FINE;
+        case 2:
+            return CURLKHSTAT_REJECT;
+        case 3:
+            return CURLKHSTAT_DEFER;
+    }
+    return CURLKHSTAT_REJECT;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlDebugProcInvoke --
+ *
+ *  This is the function that will be invoked as a callback when the user
+ *  wants to invoke a Tcl procedure to write the debug data produce by
+ *  the verbose option.
+ *
+ *  Parameter:
+ *   curlHandle: A pointer to the handle for the transfer.
+ *   infoType: Integer with the type of data.
+ *   dataPtr: the data passed to the procedure.
+ *   curlDataPtr: ointer to the curlData structure for the transfer.
+ *
+ *  Returns
+ *   The number of bytes actually written or -1 in case of error, in
+ *   which case 'libcurl' will abort the transfer.
+ *-----------------------------------------------------------------------
+ */
+int
+curlDebugProcInvoke(CURL *curlHandle, curl_infotype infoType,
+        unsigned char * dataPtr, size_t size, void  *curlDataPtr) {
+    struct curlObjData  *curlData=(struct curlObjData *)curlDataPtr;
+    Tcl_Obj             *tclProcPtr;
+    Tcl_Obj             *objv[3];
+    char                tclCommand[300];
+
+    snprintf(tclCommand,300,"%s %d %d",curlData->debugProc,infoType,size);
+    tclProcPtr=Tcl_NewStringObj(tclCommand,-1);
+
+    objv[0]=Tcl_NewStringObj(curlData->debugProc,-1);
+    objv[1]=Tcl_NewIntObj(infoType);
+    objv[2]=Tcl_NewByteArrayObj(dataPtr,size);
+
+    if (curlData->cancelTransVarName) {
+        if (curlData->cancelTrans) {
+            curlData->cancelTrans=0;
+            return -1;
+        }
+    }
+
+    Tcl_EvalObjv(curlData->interp,3,objv,TCL_EVAL_GLOBAL);
+
+    return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlGetInfo --
+ *
+ *  Invokes the 'curl_easy_getinfo' function in libcurl.
+ *
+ * Parameter:
+ *
+ * Results:
+ *   0 if all went well.
+ *   The CURLcode for the error.
+ *----------------------------------------------------------------------
+ */
+CURLcode
+curlGetInfo(Tcl_Interp *interp,CURL *curlHandle,int tableIndex) {
+    char                    *charPtr;
+    long                     longNumber;
+    double                   doubleNumber;
+    struct curl_slist       *slistPtr;
+    struct curl_certinfo    *certinfoPtr=NULL;
+    int                      i;
+
+    CURLcode    exitCode;
+
+    Tcl_Obj    *resultObjPtr;
+
+    switch(tableIndex) {
+        case 0:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_EFFECTIVE_URL,&charPtr);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewStringObj(charPtr,-1);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 1:
+        case 2:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_RESPONSE_CODE,&longNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewLongObj(longNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 3:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_FILETIME,&longNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewLongObj(longNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 4:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_TOTAL_TIME,&doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 5:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_NAMELOOKUP_TIME,
+                    &doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 6:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_CONNECT_TIME,
+                    &doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 7:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_PRETRANSFER_TIME,
+                    &doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 8:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_SIZE_UPLOAD,
+                    &doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 9:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_SIZE_DOWNLOAD,
+                    &doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 10:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_SPEED_DOWNLOAD,
+                    &doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 11:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_SPEED_UPLOAD,
+                    &doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 12:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_HEADER_SIZE,
+                    &longNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewLongObj(longNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 13:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_REQUEST_SIZE,
+                    &longNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewLongObj(longNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 14:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_SSL_VERIFYRESULT,
+                    &longNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewLongObj(longNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 15:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_CONTENT_LENGTH_DOWNLOAD,
+                    &doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 16:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_CONTENT_LENGTH_UPLOAD,
+                    &doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 17:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_STARTTRANSFER_TIME,&doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 18:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_CONTENT_TYPE,&charPtr);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewStringObj(charPtr,-1);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 19:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_REDIRECT_TIME,&doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 20:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_REDIRECT_COUNT,&longNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewLongObj(longNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 21:
+        case 22:
+            if (tableIndex==21) {
+                exitCode=curl_easy_getinfo(curlHandle,CURLINFO_HTTPAUTH_AVAIL,&longNumber);
+            } else {
+                exitCode=curl_easy_getinfo(curlHandle,CURLINFO_PROXYAUTH_AVAIL,&longNumber);
+            }
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewListObj(0,(Tcl_Obj **)NULL);
+            if (longNumber&CURLAUTH_BASIC) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("basic",-1));
+            }
+            if (longNumber&CURLAUTH_DIGEST) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("digest",-1));
+            }
+            if (longNumber&CURLAUTH_GSSNEGOTIATE) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("gssnegotiate",-1));
+            }
+            if (longNumber&CURLAUTH_NTLM) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("NTLM",-1));
+            }
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 23:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_OS_ERRNO,&longNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewLongObj(longNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 24:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_NUM_CONNECTS,&longNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewLongObj(longNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 25:
+            exitCode=curl_easy_getinfo                                  \
+                    (curlHandle,CURLINFO_SSL_ENGINES,&slistPtr);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewListObj(0,(Tcl_Obj **)NULL);
+            while(slistPtr!=NULL) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj(slistPtr->data,-1));
+                slistPtr=slistPtr->next;
+            }
+            curl_slist_free_all(slistPtr);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 26:
+            exitCode=curl_easy_getinfo                                  \
+                    (curlHandle,CURLINFO_HTTP_CONNECTCODE,&longNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewLongObj(longNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 27:
+            exitCode=curl_easy_getinfo                                  \
+                    (curlHandle,CURLINFO_COOKIELIST,&slistPtr);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewListObj(0,(Tcl_Obj **)NULL);
+            while(slistPtr!=NULL) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj(slistPtr->data,-1));
+                slistPtr=slistPtr->next;
+            }
+            curl_slist_free_all(slistPtr);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 28:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_FTP_ENTRY_PATH,&charPtr);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewStringObj(charPtr,-1);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 29:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_REDIRECT_URL,&charPtr);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewStringObj(charPtr,-1);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 30:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_PRIMARY_IP,&charPtr);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewStringObj(charPtr,-1);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 31:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_APPCONNECT_TIME,&doubleNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewDoubleObj(doubleNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 32:
+            exitCode=curl_easy_getinfo(curlHandle,CURLINFO_CERTINFO,&certinfoPtr);
+            if (exitCode) {
+                return exitCode;
+            }
+            charPtr=(char *)Tcl_Alloc(3);
+            sprintf(charPtr,"%d",certinfoPtr->num_of_certs);
+            resultObjPtr=Tcl_NewListObj(0,(Tcl_Obj **)NULL);
+            Tcl_ListObjAppendElement(interp,resultObjPtr,Tcl_NewStringObj(charPtr,-1));
+            Tcl_Free(charPtr);
+            for(i=0; i < certinfoPtr->num_of_certs; i++) {
+                for(slistPtr = certinfoPtr->certinfo[i]; slistPtr; slistPtr=slistPtr->next) {
+                    Tcl_ListObjAppendElement(interp,resultObjPtr,Tcl_NewStringObj(slistPtr->data,-1));
+                }
+            }
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+        case 33:
+            exitCode=curl_easy_getinfo                                  \
+                    (curlHandle,CURLINFO_CONDITION_UNMET,&longNumber);
+            if (exitCode) {
+                return exitCode;
+            }
+            resultObjPtr=Tcl_NewLongObj(longNumber);
+            Tcl_SetObjResult(interp,resultObjPtr);
+            break;
+    }
+    return 0;            
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlFreeSpace --
+ *
+ *    Frees the space taken by a curlObjData struct either because we are
+ *    deleting the handle or reseting it.
+ *
+ *  Parameter:
+ *    interp: Pointer to the interpreter we are using.
+ *    curlHandle: the curl handle for which the option is set.
+ *    objc and objv: The usual in Tcl.
+ *
+ * Results:
+ *    A standard Tcl result.
+ *----------------------------------------------------------------------
+ */
+void
+curlFreeSpace(struct curlObjData *curlData) {
+
+    curl_slist_free_all(curlData->headerList);
+    curl_slist_free_all(curlData->quote);
+    curl_slist_free_all(curlData->prequote);
+    curl_slist_free_all(curlData->postquote);
+
+    Tcl_Free(curlData->outFile);
+    Tcl_Free(curlData->inFile);
+    Tcl_Free(curlData->proxy);
+    Tcl_Free(curlData->errorBuffer);
+    Tcl_Free(curlData->errorBufferName);
+    Tcl_Free(curlData->errorBufferKey);
+    Tcl_Free(curlData->stderrFile);
+    Tcl_Free(curlData->randomFile);
+    Tcl_Free(curlData->headerVar);
+    Tcl_Free(curlData->bodyVarName);
+    if (curlData->bodyVar.memory) {
+        Tcl_Free(curlData->bodyVar.memory);
+    }
+    Tcl_Free(curlData->progressProc);
+    if (curlData->cancelTransVarName) {
+        Tcl_UnlinkVar(curlData->interp,curlData->cancelTransVarName);
+        Tcl_Free(curlData->cancelTransVarName);
+    }
+    Tcl_Free(curlData->writeProc);
+    Tcl_Free(curlData->readProc);
+    Tcl_Free(curlData->debugProc);
+    curl_slist_free_all(curlData->http200aliases);
+    Tcl_Free(curlData->sshkeycallProc);
+    Tcl_Free(curlData->command);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlDupHandle --
+ *
+ *  This function is invoked by the 'duphandle' command, it will 
+ *  create a duplicate of the given handle.
+ *
+ * Parameters:
+ *  The stantard parameters for Tcl commands
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlDupHandle(Tcl_Interp *interp, struct curlObjData *curlData,
+        int objc, Tcl_Obj *CONST objv[]) {
+
+    CURL                *newCurlHandle;
+    Tcl_Obj             *result;
+    struct curlObjData  *newCurlData;
+    char                *handleName;
+
+    newCurlHandle=curl_easy_duphandle(curlData->curl);
+    if (newCurlHandle==NULL) {
+        result=Tcl_NewStringObj("Couldn't create new handle.",-1);
+        Tcl_SetObjResult(interp,result);
+        return TCL_ERROR;
+    }
+
+    newCurlData=(struct curlObjData *)Tcl_Alloc(sizeof(struct curlObjData));    
+
+    curlCopyCurlData(curlData,newCurlData);
+
+    handleName=curlCreateObjCmd(interp,newCurlData);
+
+    newCurlData->curl=newCurlHandle;
+
+    result=Tcl_NewStringObj(handleName,-1);
+    Tcl_SetObjResult(interp,result);
+    Tcl_Free(handleName);
+
+    return TCL_OK;
+}
+
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlResetHandle --
+ *
+ *  This function is invoked by the 'reset' command, it reset all the
+ *  options in the handle to the state it had when 'init' was invoked.
+ *
+ * Parameters:
+ *  The stantard parameters for Tcl commands
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *     See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlResetHandle(Tcl_Interp *interp, struct curlObjData *curlData)  {
+    struct curlObjData   *tmpPtr=
+                    (struct curlObjData *)Tcl_Alloc(sizeof(struct curlObjData));
+
+    tmpPtr->curl       = curlData->curl;
+    tmpPtr->token      = curlData->token;
+    tmpPtr->shareToken = curlData->shareToken;
+    tmpPtr->interp     = curlData->interp;
+    
+    curlFreeSpace(curlData);
+    memset(curlData, 0, sizeof(struct curlObjData));
+
+    curlData->curl       = tmpPtr->curl;
+    curlData->token      = tmpPtr->token;
+    curlData->shareToken = tmpPtr->shareToken;
+    curlData->interp     = tmpPtr->interp;
+
+    curl_easy_reset(curlData->curl);
+
+    Tcl_Free((char *)tmpPtr);
+
+    return TCL_OK;
+
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlVersion --
+ *
+ *     This procedure is invoked to process the "curl::init" Tcl command.
+ *     See the user documentation for details on what it does.
+ *
+ * Parameters:
+ *  The stantard parameters for Tcl commands
+ *
+ * Results:
+ *     A standard Tcl result.
+ *
+ * Side effects:
+ *     See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlVersion (ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]) {
+
+    Tcl_Obj     *versionPtr;
+    char        tclversion[200];
+
+    sprintf(tclversion,"TclCurl Version %s (%s)",TclCurlVersion,
+                                                 curl_version());
+    versionPtr=Tcl_NewStringObj(tclversion,-1);
+    Tcl_SetObjResult(interp,versionPtr);
+
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlEscape --
+ *
+ *  This function is invoked to process the "curl::escape" Tcl command.
+ *  See the user documentation for details on what it does.
+ *
+ *
+ * Parameters:
+ *  The stantard parameters for Tcl commands
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlEscape(ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]) {
+
+    Tcl_Obj        *resultObj;
+    char           *escapedStr;
+
+    escapedStr=curl_easy_escape(NULL,Tcl_GetString(objv[1]),0);
+
+    if(!escapedStr) {
+        resultObj=Tcl_NewStringObj("curl::escape bad parameter",-1);
+        Tcl_SetObjResult(interp,resultObj);
+        return TCL_ERROR;
+    }
+    resultObj=Tcl_NewStringObj(escapedStr,-1);
+    Tcl_SetObjResult(interp,resultObj);
+    curl_free(escapedStr);
+
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlUnescape --
+ *
+ *  This function is invoked to process the "curl::Unescape" Tcl command.
+ *  See the user documentation for details on what it does.
+ *
+ *
+ * Parameters:
+ *  The stantard parameters for Tcl commands
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlUnescape(ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]) {
+
+    Tcl_Obj        *resultObj;
+    char           *unescapedStr;
+
+    unescapedStr=curl_easy_unescape(NULL,Tcl_GetString(objv[1]),0,NULL);
+    if(!unescapedStr) {
+        resultObj=Tcl_NewStringObj("curl::unescape bad parameter",-1);
+        Tcl_SetObjResult(interp,resultObj);
+        return TCL_ERROR;
+    }
+    resultObj=Tcl_NewStringObj(unescapedStr,-1);
+    Tcl_SetObjResult(interp,resultObj);
+    curl_free(unescapedStr);
+
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlVersionInfo --
+ *
+ *  This function invokes 'curl_version_info' to query how 'libcurl' was
+ *  compiled.
+ *
+ * Parameters:
+ *  The standard parameters for Tcl commands, but nothing is used.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlVersionInfo (ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]) {
+
+    int                            tableIndex;
+    int                            i;
+    curl_version_info_data        *infoPtr;
+    Tcl_Obj                       *resultObjPtr=NULL;
+    char                           tmp[7];
+
+    if (objc!=2) {
+        resultObjPtr=Tcl_NewStringObj("usage: curl::versioninfo -option",-1);
+        Tcl_SetObjResult(interp,resultObjPtr); 
+        return TCL_ERROR;
+    }
+
+    if (Tcl_GetIndexFromObj(interp, objv[1], versionInfoTable, "option",
+            TCL_EXACT,&tableIndex)==TCL_ERROR) {
+        return TCL_ERROR;
+    }
+
+    infoPtr=curl_version_info(CURLVERSION_NOW);
+
+    switch(tableIndex) {
+        case 0:
+            resultObjPtr=Tcl_NewStringObj(infoPtr->version,-1);
+            break;
+        case 1:
+            sprintf(tmp,"%X",infoPtr->version_num);
+            resultObjPtr=Tcl_NewStringObj(tmp,-1);
+            break;
+        case 2:
+            resultObjPtr=Tcl_NewStringObj(infoPtr->host,-1);
+            break;
+        case 3:
+            resultObjPtr=Tcl_NewListObj(0,(Tcl_Obj **)NULL);
+            if (infoPtr->features&CURL_VERSION_IPV6) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("IPV6",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_KERBEROS4) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("KERBEROS4",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_SSL) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("SSL",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_LIBZ) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("LIBZ",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_NTLM) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("NTLM",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_GSSNEGOTIATE) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("GSSNEGOTIATE",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_DEBUG) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("DEBUG",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_ASYNCHDNS) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("ASYNCHDNS",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_SPNEGO) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("SPNEGO",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_LARGEFILE) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("LARGEFILE",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_IDN) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("IDN",-1));
+            }
+            if (infoPtr->features&CURL_VERSION_SSPI) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("SSPI",-1));
+            }
+            break;
+            if (infoPtr->features&CURL_VERSION_CONV) {
+                Tcl_ListObjAppendElement(interp,resultObjPtr
+                        ,Tcl_NewStringObj("CONV",-1));
+            }
+        case 4:
+            resultObjPtr=Tcl_NewStringObj(infoPtr->ssl_version,-1);
+            break;
+        case 5:
+            resultObjPtr=Tcl_NewLongObj(infoPtr->ssl_version_num);
+            break;
+        case 6:
+            resultObjPtr=Tcl_NewStringObj(infoPtr->libz_version,-1);
+            break;
+        case 7:
+            resultObjPtr=Tcl_NewListObj(0,(Tcl_Obj **)NULL);
+            for(i=0;;i++) {
+                if (infoPtr->protocols[i]!=NULL) {
+                    Tcl_ListObjAppendElement(interp,resultObjPtr
+                            ,Tcl_NewStringObj(infoPtr->protocols[i],-1));
+                } else {
+                    break;
+                }
+            }
+    }
+
+    Tcl_SetObjResult(interp,resultObjPtr);
+
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlCopyCurlData --
+ *
+ *  This function copies the contents of a curlData struct into another.
+ *
+ * Parameters:
+ *  curlDataOld: The original one.
+ *  curlDataNew: The new one
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlCopyCurlData (struct curlObjData *curlDataOld,
+                      struct curlObjData *curlDataNew) {
+
+    /* This takes care of the int and long values */
+    memcpy(curlDataNew, curlDataOld, sizeof(struct curlObjData));
+
+    /* Some of the data doesn't get copied */
+
+    curlDataNew->headerList=NULL;
+    curlDataNew->quote=NULL;
+    curlDataNew->prequote=NULL;
+    curlDataNew->postquote=NULL;
+    curlDataNew->formArray=NULL;
+    curlDataNew->postListFirst=NULL;
+    curlDataNew->postListLast=NULL;
+    curlDataNew->formArray=NULL;
+    curlDataNew->outHandle=NULL;
+    curlDataNew->outFlag=0;
+    curlDataNew->inHandle=NULL;
+    curlDataNew->inFlag=0;
+    curlDataNew->headerHandle=NULL;
+    curlDataNew->headerFlag=0;
+    curlDataNew->stderrHandle=NULL;
+    curlDataNew->stderrFlag=0;
+    curlDataNew->http200aliases=NULL;
+
+    /* The strings need a special treatment. */
+
+    curlDataNew->outFile=curlstrdup(curlDataOld->outFile);
+    curlDataNew->inFile=curlstrdup(curlDataOld->inFile);
+    curlDataNew->proxy=curlstrdup(curlDataOld->proxy);
+    curlDataNew->errorBuffer=curlstrdup(curlDataOld->errorBuffer);
+    curlDataNew->errorBufferName=curlstrdup(curlDataOld->errorBufferName);
+    curlDataNew->errorBufferKey=curlstrdup(curlDataOld->errorBufferKey);
+    curlDataNew->headerFile=curlstrdup(curlDataOld->headerFile);
+    curlDataNew->stderrFile=curlstrdup(curlDataOld->stderrFile);
+    curlDataNew->randomFile=curlstrdup(curlDataOld->randomFile);
+    curlDataNew->headerVar=curlstrdup(curlDataOld->headerVar);
+    curlDataNew->bodyVarName=curlstrdup(curlDataOld->bodyVarName);
+    curlDataNew->progressProc=curlstrdup(curlDataOld->progressProc);
+    curlDataNew->cancelTransVarName=curlstrdup(curlDataOld->cancelTransVarName);
+    curlDataNew->writeProc=curlstrdup(curlDataOld->writeProc);
+    curlDataNew->readProc=curlstrdup(curlDataOld->readProc);
+    curlDataNew->debugProc=curlstrdup(curlDataOld->debugProc);
+    curlDataNew->command=curlstrdup(curlDataOld->command);
+    curlDataNew->sshkeycallProc=curlstrdup(curlDataOld->sshkeycallProc);
+
+    curlDataNew->bodyVar.memory=(char *)Tcl_Alloc(curlDataOld->bodyVar.size);
+    memcpy(curlDataNew->bodyVar.memory,curlDataOld->bodyVar.memory
+            ,curlDataOld->bodyVar.size);
+    curlDataNew->bodyVar.size=curlDataOld->bodyVar.size;
+
+    return TCL_OK;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlOpenFiles --
+ *
+ *  Before doing a transfer with the easy interface or adding an easy
+ *  handle to a multi one, this function takes care of opening all
+ *  necessary files for the transfer.
+ *
+ * Parameter:
+ *  curlData: The pointer to the struct with the transfer data.
+ *
+ * Results:
+ *  '0' all went well, '1' in case of error.
+ *----------------------------------------------------------------------
+ */
+int
+curlOpenFiles(Tcl_Interp *interp,struct curlObjData *curlData) {
+
+    if (curlData->outFlag) {
+        if (curlOpenFile(interp,curlData->outFile,&(curlData->outHandle),1,
+                curlData->transferText)) {
+            return 1;
+        }
+        curl_easy_setopt(curlData->curl,CURLOPT_WRITEDATA,curlData->outHandle);
+    }
+    if (curlData->inFlag) {
+        if (curlOpenFile(interp,curlData->inFile,&(curlData->inHandle),0,
+                curlData->transferText)) {
+            return 1;
+        }
+        curl_easy_setopt(curlData->curl,CURLOPT_READDATA,curlData->inHandle);
+        if (curlData->anyAuthFlag) {
+            curl_easy_setopt(curlData->curl, CURLOPT_SEEKFUNCTION, curlseek);
+            curl_easy_setopt(curlData->curl, CURLOPT_SEEKDATA, curlData->inHandle);
+        }
+    }
+    if (curlData->headerFlag) {
+        if (curlOpenFile(interp,curlData->headerFile,&(curlData->headerHandle),1,1)) {
+            return 1;
+        }
+        curl_easy_setopt(curlData->curl,CURLOPT_HEADERDATA,curlData->headerHandle);
+    }
+    if (curlData->stderrFlag) {
+        if (curlOpenFile(interp,curlData->stderrFile,&(curlData->stderrHandle),1,1)) {
+            return 1;
+        }
+        curl_easy_setopt(curlData->curl,CURLOPT_STDERR,curlData->stderrHandle);
+    }
+    return 0;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlCloseFiles --
+ *
+ *  Closes the files opened during a transfer.
+ *
+ * Parameter:
+ *  curlData: The pointer to the struct with the transfer data.
+ *
+ *----------------------------------------------------------------------
+ */
+void
+curlCloseFiles(struct curlObjData *curlData) {
+    if (curlData->outHandle!=NULL) {
+        fclose(curlData->outHandle);
+        curlData->outHandle=NULL;
+    }
+    if (curlData->inHandle!=NULL) {
+        fclose(curlData->inHandle);
+        curlData->inHandle=NULL;
+    }
+    if (curlData->headerHandle!=NULL) {
+        fclose(curlData->headerHandle);
+        curlData->headerHandle=NULL;
+    }
+    if (curlData->stderrHandle!=NULL) {
+        fclose(curlData->stderrHandle);
+        curlData->stderrHandle=NULL;
+    }
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlOpenFile --
+ *
+ *  Opens a file to be used during a transfer.
+ *
+ * Parameter:
+ *  fileName: name of the file.
+ *  handle: the handle for the file
+ *  writing: '0' if reading, '1' if writing.
+ *  text:    '0' if binary, '1' if text.
+ *
+ * Results:
+ *  '0' all went well, '1' in case of error.
+ *----------------------------------------------------------------------
+ */
+int
+curlOpenFile(Tcl_Interp *interp,char *fileName, FILE **handle, int writing, int text) {
+    Tcl_Obj        *resultObjPtr;
+    char            errorMsg[300];
+
+    if (*handle!=NULL) {
+        fclose(*handle);
+    }
+    if (writing==1) {
+        if (text==1) {
+            *handle=fopen(fileName,"w");
+        } else {
+            *handle=fopen(fileName,"wb");
+        }
+    } else {
+        if (text==1) {
+            *handle=fopen(fileName,"r");
+        } else {
+            *handle=fopen(fileName,"rb");
+        }
+    }
+    if (*handle==NULL) {
+        snprintf(errorMsg,300,"Couldn't open file %s.",fileName);
+        resultObjPtr=Tcl_NewStringObj(errorMsg,-1);
+        Tcl_SetObjResult(interp,resultObjPtr);
+        return 1;
+    }
+    return 0;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlseek --
+ *
+ *  When the user requests the 'any' auth, libcurl may need
+ *  to send the PUT/POST data more than once and thus may need to ask
+ *  the app to "rewind" the read data stream to start.
+ *
+ *----------------------------------------------------------------------
+ */
+
+static curlioerr curlseek(void *instream, curl_off_t offset, int origin)
+{
+    if(-1 == fseek((FILE *)instream, 0, origin)) {
+          return CURLIOE_FAILRESTART;
+    }
+
+    return CURLIOE_OK;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlSetPostData --
+ *
+ *  In case there is going to be a post transfer, this function sets the
+ *  data that is going to be posted.
+ *
+ * Parameter:
+ *  interp: Tcl interpreter we are using.
+ *  curlData: A pointer to the struct with the transfer data.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *----------------------------------------------------------------------
+ */
+int
+curlSetPostData(Tcl_Interp *interp,struct curlObjData *curlDataPtr) {
+    Tcl_Obj        *errorMsgObjPtr;
+
+    if (curlDataPtr->postListFirst!=NULL) {
+        if (curl_easy_setopt(curlDataPtr->curl,CURLOPT_HTTPPOST,curlDataPtr->postListFirst)) {
+            curl_formfree(curlDataPtr->postListFirst);
+            errorMsgObjPtr=Tcl_NewStringObj("Error setting the data to post",-1);
+            Tcl_SetObjResult(interp,errorMsgObjPtr);
+            return TCL_ERROR;
+        }
+    }
+    return TCL_OK;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlResetPostData --
+ *
+ *  After performing a transfer, this function is invoked to erease the
+ *  posr data.
+ *
+ * Parameter:
+ *  curlData: A pointer to the struct with the transfer data.
+ *----------------------------------------------------------------------
+ */
+void 
+curlResetPostData(struct curlObjData *curlDataPtr) {
+    struct formArrayStruct       *tmpPtr;
+
+    if (curlDataPtr->postListFirst) {
+        curl_formfree(curlDataPtr->postListFirst);
+        curlDataPtr->postListFirst=NULL;
+        curlDataPtr->postListLast=NULL;
+        curl_easy_setopt(curlDataPtr->curl,CURLOPT_HTTPPOST,NULL);
+
+        while(curlDataPtr->formArray!=NULL) {
+            if (curlDataPtr->formArray->formHeaderList!=NULL) {
+                curl_slist_free_all(curlDataPtr->formArray->formHeaderList);
+                curlDataPtr->formArray->formHeaderList=NULL;
+            }
+            curlResetFormArray(curlDataPtr->formArray->formArray);
+            tmpPtr=curlDataPtr->formArray->next;
+            Tcl_Free((char *)curlDataPtr->formArray);
+            curlDataPtr->formArray=tmpPtr;
+        }
+    }
+}
+/*----------------------------------------------------------------------
+ *
+ * curlResetFormArray --
+ *
+ *  Cleans the contents of the formArray, it is done after a transfer or
+ *  if 'curl_formadd' returns an error.
+ *
+ * Parameter:
+ *  formArray: A pointer to the array to clean up.
+ *----------------------------------------------------------------------
+ */
+void 
+curlResetFormArray(struct curl_forms *formArray) {
+    int        i;
+
+    for (i=0;formArray[i].option!=CURLFORM_END;i++) {
+        switch (formArray[i].option) {
+            case CURLFORM_COPYNAME:
+            case CURLFORM_COPYCONTENTS:
+            case CURLFORM_FILE:
+            case CURLFORM_CONTENTTYPE:
+            case CURLFORM_FILENAME:
+            case CURLFORM_FILECONTENT:
+            case CURLFORM_BUFFER:
+            case CURLFORM_BUFFERPTR:
+                Tcl_Free((char *)(formArray[i].value));
+                break;
+            default:
+                break;
+        } 
+    }
+    Tcl_Free((char *)formArray);
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlSetBodyVarName --
+ *
+ *  After performing a transfer, this function is invoked to set the 
+ *  body of the recieved transfer into a user defined Tcl variable.
+ *
+ * Parameter:
+ *  interp: The Tcl interpreter we are using.
+ *  curlData: A pointer to the struct with the transfer data.
+ *----------------------------------------------------------------------
+ */
+void 
+curlSetBodyVarName(Tcl_Interp *interp,struct curlObjData *curlDataPtr) {
+    Tcl_Obj    *bodyVarNameObjPtr, *bodyVarObjPtr;
+
+    bodyVarNameObjPtr=Tcl_NewStringObj(curlDataPtr->bodyVarName,-1);
+    bodyVarObjPtr=Tcl_NewByteArrayObj((unsigned char *)curlDataPtr->bodyVar.memory,
+            curlDataPtr->bodyVar.size);
+
+    Tcl_ObjSetVar2(interp,bodyVarNameObjPtr,(Tcl_Obj *)NULL,bodyVarObjPtr,0);
+
+    curlDataPtr->bodyVar.size=0;
+
+    Tcl_Free(curlDataPtr->bodyVarName);
+    curlDataPtr->bodyVarName=NULL;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * curlstrdup --
+ *   The same as strdup, but won't seg fault if the string to copy is NULL.
+ *
+ * Parameter:
+ *   old: The original one.
+ *
+ * Results:
+ *   Returns a pointer to the new string.
+ *----------------------------------------------------------------------
+ */
+char
+*curlstrdup (char *old) {
+    char    *tmpPtr;
+
+    if (old==NULL) {
+        return NULL;
+    }
+    tmpPtr=Tcl_Alloc(strlen(old)+1);
+    strcpy(tmpPtr,old);
+
+    return tmpPtr;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlShareInitObjCmd --
+ *
+ *  Looks for the first free share handle (scurl1, scurl2,...) and
+ *  creates a Tcl command for it.
+ *
+ * Results:
+ *  A string with the name of the handle, don't forget to free it.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+
+char *
+curlCreateShareObjCmd (Tcl_Interp *interp,struct shcurlObjData  *shcurlData) {
+    char                *shandleName;
+    int                 i;
+    Tcl_CmdInfo         info;
+    Tcl_Command         cmdToken;
+
+    /* We try with scurl1, if it already exists with scurl2...*/
+    shandleName=(char *)Tcl_Alloc(10);
+    for (i=1;;i++) {
+        sprintf(shandleName,"scurl%d",i);
+        if (!Tcl_GetCommandInfo(interp,shandleName,&info)) {
+            cmdToken=Tcl_CreateObjCommand(interp,shandleName,curlShareObjCmd,
+                                (ClientData)shcurlData, 
+                                (Tcl_CmdDeleteProc *)curlCleanUpShareCmd);
+            break;
+        }
+    }
+    shcurlData->token=cmdToken;
+
+    return shandleName;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlShareInitObjCmd --
+ *
+ *  This procedure is invoked to process the "curl::shareinit" Tcl command.
+ *  See the user documentation for details on what it does.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+curlShareInitObjCmd (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]) {
+
+    Tcl_Obj               *resultPtr;
+    CURL                  *shcurlHandle;
+    struct shcurlObjData  *shcurlData;
+    char                  *shandleName;
+
+    shcurlData=(struct shcurlObjData *)Tcl_Alloc(sizeof(struct shcurlObjData));
+    if (shcurlData==NULL) {
+        resultPtr=Tcl_NewStringObj("Couldn't allocate memory",-1);
+        Tcl_SetObjResult(interp,resultPtr);
+        return TCL_ERROR;
+    }
+
+    memset(shcurlData, 0, sizeof(struct shcurlObjData));
+
+    shcurlHandle=curl_share_init();
+    if (shcurlHandle==NULL) {
+        resultPtr=Tcl_NewStringObj("Couldn't create share handle",-1);
+        Tcl_SetObjResult(interp,resultPtr);
+        return TCL_ERROR;
+    }
+
+    shandleName=curlCreateShareObjCmd(interp,shcurlData);
+
+    shcurlData->shandle=shcurlHandle;
+
+    resultPtr=Tcl_NewStringObj(shandleName,-1);
+    Tcl_SetObjResult(interp,resultPtr);
+    Tcl_Free(shandleName);
+
+#ifdef TCL_THREADS
+    curl_share_setopt(shcurlHandle, CURLSHOPT_LOCKFUNC, curlShareLockFunc);
+    curl_share_setopt(shcurlHandle, CURLSHOPT_LOCKFUNC, curlShareUnLockFunc);
+#endif
+
+    return TCL_OK;
+}
+
+#ifdef TCL_THREADS
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlShareLockFunc --
+ *
+ *  This will be the function invoked by libcurl when it wants to lock
+ *  some data for the share interface.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+curlShareLockFunc (CURL *handle, curl_lock_data data, curl_lock_access access
+        , void *userptr) {
+
+    switch(data) {
+        CURL_LOCK_DATA_COOKIE:
+            Tcl_MutexLock(&cookieLock);
+            break;
+        CURL_LOCK_DATA_DNS:
+            Tcl_MutexLock(&dnsLock);
+            break;
+        CURL_LOCK_DATA_SSL_SESSION:
+            Tcl_MutexLock(&sslLock);
+            break;
+        CURL_LOCK_DATA_CONNECT:
+            Tcl_MutexLock(&connectLock);
+            break;
+        default:
+            /* Prevent useless compile warnings */
+            break;
+    }
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlShareUnLockFunc --
+ *
+ *  This will be the function invoked by libcurl when it wants to unlock
+ *  the previously locked data.
+ *
+ * Side effects:
+ *  See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+void
+curlShareUnLockFunc(CURL *handle, curl_lock_data data, void *userptr) {
+
+    switch(data) {
+        CURL_LOCK_DATA_COOKIE:
+            Tcl_MutexUnlock(&cookieLock);
+            break;
+        CURL_LOCK_DATA_DNS:
+            Tcl_MutexUnlock(&dnsLock);
+            break;
+        CURL_LOCK_DATA_SSL_SESSION:
+            Tcl_MutexUnlock(&sslLock);
+            break;
+        CURL_LOCK_DATA_CONNECT:
+            Tcl_MutexUnlock(&connectLock);
+            break;
+        default:
+            break;
+    }
+}
+
+#endif
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlShareObjCmd --
+ *
+ *   This procedure is invoked to process the "share curl" commands.
+ *   See the user documentation for details on what it does.
+ *
+ * Results:
+ *   A standard Tcl result.
+ *
+ * Side effects:
+ *   See the user documentation.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlShareObjCmd (ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]) {
+
+    struct shcurlObjData     *shcurlData=(struct shcurlObjData *)clientData;
+    CURLSH                   *shcurlHandle=shcurlData->shandle;
+    int                       tableIndex, dataIndex;
+    int                       dataToLock=0;
+
+    if (objc<2) {
+        Tcl_WrongNumArgs(interp,1,objv,"option arg ?arg?");
+        return TCL_ERROR;
+    }
+
+    if (Tcl_GetIndexFromObj(interp, objv[1], shareCmd, "option",TCL_EXACT,&tableIndex)==TCL_ERROR) {
+        return TCL_ERROR;
+    }
+
+    switch(tableIndex) {
+        case 0:
+        case 1:
+            if (Tcl_GetIndexFromObj(interp, objv[2], lockData,
+                "data to lock ",TCL_EXACT,&dataIndex)==TCL_ERROR) {
+                return TCL_ERROR;
+            }
+            switch(dataIndex) {
+                case 0:
+                    dataToLock=CURL_LOCK_DATA_COOKIE;
+                    break;
+                case 1:
+                    dataToLock=CURL_LOCK_DATA_DNS;
+                    break;
+            }
+            if (tableIndex==0) {
+                curl_share_setopt(shcurlHandle, CURLSHOPT_SHARE,   dataToLock);
+            } else {
+                curl_share_setopt(shcurlHandle, CURLSHOPT_UNSHARE, dataToLock);
+            }
+            break;
+        case 2:
+            Tcl_DeleteCommandFromToken(interp,shcurlData->token);
+            break;
+    }
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlCleanUpShareCmd --
+ *
+ *   This procedure is invoked when curl share handle is deleted.
+ *
+ * Results:
+ *   A standard Tcl result.
+ *
+ * Side effects:
+ *   Cleans the curl share handle and frees the memory.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlCleanUpShareCmd(ClientData clientData) {
+    struct shcurlObjData     *shcurlData=(struct shcurlObjData *)clientData;
+    CURLSH                   *shcurlHandle=shcurlData->shandle;
+
+    curl_share_cleanup(shcurlHandle);
+    Tcl_Free((char *)shcurlData);
+
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlErrorStrings --
+ *
+ *  All the commands to return the error string from the error code have
+ *  this function in common.
+ *
+ * Results:
+ *  '0': All went well.
+ *  '1': The error code didn't make sense.
+ *----------------------------------------------------------------------
+ */
+int
+curlErrorStrings (Tcl_Interp *interp, Tcl_Obj *CONST objv,int type) {
+
+    Tcl_Obj               *resultPtr;
+    int                    errorCode;
+    char                   errorMsg[500];
+
+    if (Tcl_GetIntFromObj(interp,objv,&errorCode)) {
+        snprintf(errorMsg,500,"Invalid error code: %s",Tcl_GetString(objv));
+        resultPtr=Tcl_NewStringObj(errorMsg,-1);
+        Tcl_SetObjResult(interp,resultPtr);
+        return 1;
+    }
+    switch(type) {
+        case 0:
+            resultPtr=Tcl_NewStringObj(curl_easy_strerror(errorCode),-1);
+            break;
+        case 1:
+            resultPtr=Tcl_NewStringObj(curl_share_strerror(errorCode),-1);
+            break;
+        case 2:
+            resultPtr=Tcl_NewStringObj(curl_multi_strerror(errorCode),-1);
+            break;
+        default:
+            resultPtr=Tcl_NewStringObj("You're kidding,right?",-1);
+    }
+    Tcl_SetObjResult(interp,resultPtr);
+
+    return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlEasyStringError --
+ *
+ *  This function is invoked to process the "curl::easystrerror" Tcl command.
+ *  It will return a string with an explanation of the error code given.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  The interpreter will contain as a result the string with the error
+ *  message.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlEasyStringError (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]) {
+
+    if (objc<2) {
+        Tcl_WrongNumArgs(interp,1,objv,"errorCode");
+        return TCL_ERROR;
+    }
+
+    if (curlErrorStrings(interp,objv[1],0)) {
+        return TCL_ERROR;
+    }
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlShareStringError --
+ *
+ *  This function is invoked to process the "curl::sharestrerror" Tcl command.
+ *  It will return a string with an explanation of the error code given.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  The interpreter will contain as a result the string with the error
+ *  message.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlShareStringError (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]) {
+
+    if (objc<2) {
+        Tcl_WrongNumArgs(interp,1,objv,"errorCode");
+        return TCL_ERROR;
+    }
+
+    if (curlErrorStrings(interp,objv[1],1)) {
+        return TCL_ERROR;
+    }
+    return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * curlMultiStringError --
+ *
+ *  This function is invoked to process the "curl::multirerror" Tcl command.
+ *  It will return a string with an explanation of the error code given.
+ *
+ * Results:
+ *  A standard Tcl result.
+ *
+ * Side effects:
+ *  The interpreter will contain as a result the string with the error
+ *  message.
+ *
+ *----------------------------------------------------------------------
+ */
+int
+curlMultiStringError (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]) {
+
+    if (objc<2) {
+        Tcl_WrongNumArgs(interp,1,objv,"errorCode");
+        return TCL_ERROR;
+    }
+
+    if (curlErrorStrings(interp,objv[1],2)) {
+        return TCL_ERROR;
+    }
+    return TCL_OK;
+}
diff --git a/generic/tclcurl.h b/generic/tclcurl.h
new file mode 100755 (executable)
index 0000000..01f4c4b
--- /dev/null
@@ -0,0 +1,482 @@
+/*
+ * tclcurl.h --
+ *
+ * Header file for the TclCurl extension to enable Tcl interpreters
+ * to access libcurl.
+ *
+ * Copyright (c) 2001-2009 Andres Garcia Garcia.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ */
+
+#if (defined(WIN32) || defined(_WIN32))
+#define CURL_STATICLIB 1
+#endif
+
+#include <curl/curl.h>
+#include <curl/types.h>
+#include <curl/easy.h>
+#include <tcl.h>
+#include <tclDecls.h>
+#include <stdio.h>
+#include <string.h>
+
+#define _MPRINTF_REPLACE
+#include <curl/mprintf.h>
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Windows needs to know which symbols to export.  Unix does not.
+ * BUILD_tclcurl should be undefined for Unix.
+ * Actually I don't use this, but it was in TEA so I keep in case
+ * I ever understand what it is for.
+ */
+
+#ifdef BUILD_tclcurl
+#undef  TCL_STORAGE_CLASS
+#define TCL_STORAGE_CLASS DLLEXPORT
+#endif
+
+#define TclCurlVersion "7.19.6"
+
+/*
+ * This struct will contain the data of a transfer if the user wants
+ * to put the body into a Tcl variable
+ */
+struct MemoryStruct {
+    char   *memory;
+    size_t size;
+};
+
+/* 
+ * Struct that will be used for a linked list with all the
+ * data for a post
+ */
+struct formArrayStruct {
+    struct curl_forms       *formArray;
+    struct curl_slist       *formHeaderList;
+    struct formArrayStruct  *next;
+};
+
+struct curlObjData {
+    CURL                   *curl;
+    Tcl_Command             token;
+    Tcl_Command             shareToken;
+    Tcl_Interp             *interp;
+    struct curl_slist      *headerList;
+    struct curl_slist      *quote;
+    struct curl_slist      *prequote;
+    struct curl_slist      *postquote;
+    struct curl_httppost   *postListFirst;
+    struct curl_httppost   *postListLast;
+    struct formArrayStruct *formArray;
+    char                   *outFile;
+    FILE                   *outHandle;
+    int                     outFlag;
+    char                   *inFile;
+    FILE                   *inHandle;
+    int                     inFlag;
+    char                   *proxy;
+    int                     transferText;
+    char                   *errorBuffer;
+    char                   *errorBufferName;
+    char                   *errorBufferKey;
+    char                   *headerFile;
+    FILE                   *headerHandle;
+    int                     headerFlag;
+    char                   *stderrFile;
+    FILE                   *stderrHandle;
+    int                     stderrFlag;
+    char                   *randomFile;
+    char                   *headerVar;
+    char                   *bodyVarName;
+    struct MemoryStruct     bodyVar;
+    char                   *progressProc;
+    char                   *cancelTransVarName;
+    int                     cancelTrans;
+    char                   *writeProc;
+    char                   *readProc;
+    char                   *debugProc;
+    struct curl_slist      *http200aliases;
+    char                   *command;
+    int                     anyAuthFlag;
+    char                   *sshkeycallProc;
+};
+
+struct shcurlObjData {
+    Tcl_Command           token;
+    CURLSH               *shandle;
+};
+
+#ifndef multi_h
+
+CONST static char *commandTable[] = {
+    "setopt",
+    "perform",
+    "getinfo",
+    "cleanup",
+    "configure",
+    "duphandle",
+    "reset",
+    "pause",
+    "resume",
+    (char *) NULL
+};
+
+CONST static char *optionTable[] = {
+    "CURLOPT_URL",           "CURLOPT_FILE",            "CURLOPT_INFILE",
+    "CURLOPT_USERAGENT",     "CURLOPT_REFERER",         "CURLOPT_VERBOSE",
+    "CURLOPT_HEADER",        "CURLOPT_NOBODY",          "CURLOPT_PROXY",
+    "CURLOPT_PROXYPORT",     "CURLOPT_HTTPPROXYTUNNEL", "CURLOPT_FAILONERROR",
+    "CURLOPT_TIMEOUT",       "CURLOPT_LOW_SPEED_LIMIT", "CURLOPT_LOW_SPEED_TIME",
+    "CURLOPT_RESUME_FROM",   "CURLOPT_INFILESIZE",      "CURLOPT_UPLOAD",
+    "CURLOPT_FTPLISTONLY",   "CURLOPT_FTPAPPEND",       "CURLOPT_NETRC",
+    "CURLOPT_FOLLOWLOCATION","CURLOPT_TRANSFERTEXT",    "CURLOPT_PUT",
+    "CURLOPT_MUTE",          "CURLOPT_USERPWD",         "CURLOPT_PROXYUSERPWD",
+    "CURLOPT_RANGE",         "CURLOPT_ERRORBUFFER",     "CURLOPT_HTTPGET",
+    "CURLOPT_POST",          "CURLOPT_POSTFIELDS",      "CURLOPT_POSTFIELDSIZE",
+    "CURLOPT_FTPPORT",       "CURLOPT_COOKIE",          "CURLOPT_COOKIEFILE",
+    "CURLOPT_HTTPHEADER",    "CURLOPT_HTTPPOST",        "CURLOPT_SSLCERT",
+    "CURLOPT_SSLCERTPASSWD", "CURLOPT_SSLVERSION",      "CURLOPT_CRLF",
+    "CURLOPT_QUOTE",         "CURLOPT_POSTQUOTE",       "CURLOPT_WRITEHEADER",
+    "CURLOPT_TIMECONDITION", "CURLOPT_TIMEVALUE",       "CURLOPT_CUSTOMREQUEST",
+    "CURLOPT_STDERR",        "CURLOPT_INTERFACE",       "CURLOPT_KRB4LEVEL",
+    "CURLOPT_SSL_VERIFYPEER","CURLOPT_CAINFO",          "CURLOPT_FILETIME",
+    "CURLOPT_MAXREDIRS",     "CURLOPT_MAXCONNECTS",     "CURLOPT_CLOSEPOLICY",
+    "CURLOPT_RANDOM_FILE",   "CURLOPT_EGDSOCKET",       "CURLOPT_CONNECTTIMEOUT",
+    "CURLOPT_NOPROGRESS",    "CURLOPT_HEADERVAR",       "CURLOPT_BODYVAR",
+    "CURLOPT_PROGRESSPROC","CURLOPT_CANCELTRANSVARNAME","CURLOPT_WRITEPROC",
+    "CURLOPT_READPROC",      "CURLOPT_SSL_VERIFYHOST",  "CURLOPT_COOKIEJAR",
+    "CURLOPT_SSL_CIPHER_LIST","CURLOPT_HTTP_VERSION",   "CURLOPT_FTP_USE_EPSV",
+    "CURLOPT_SSLCERTTYPE",    "CURLOPT_SSLKEY",         "CURLOPT_SSLKEYTYPE",
+    "CURLOPT_SSLKEYPASSWD",   "CURLOPT_SSL_ENGINE",     "CURLOPT_SSL_ENGINEDEFAULT",
+    "CURLOPT_PREQUOTE",       "CURLOPT_DEBUGPROC",      "CURLOPT_DNS_CACHE_TIMEOUT",
+    "CURLOPT_DNS_USE_GLOBAL_CACHE", "CURLOPT_COOKIESESSION","CURLOPT_CAPATH",
+    "CURLOPT_BUFFERSIZE",     "CURLOPT_NOSIGNAL",       "CURLOPT_ENCODING",
+    "CURLOPT_PROXYTYPE",      "CURLOPT_HTTP200ALIASES", "CURLOPT_UNRESTRICTED_AUTH",
+    "CURLOPT_FTP_USE_EPRT",   "CURLOPT_NOSUCHOPTION",   "CURLOPT_HTTPAUTH",
+    "CURLOPT_FTP_CREATE_MISSING_DIRS",                  "CURLOPT_PROXYAUTH",
+    "CURLOPT_FTP_RESPONSE_TIMEOUT",                     "CURLOPT_IPRESOLVE",
+    "CURLOPT_MAXFILESIZE",    "CURLOPT_NETRC_FILE",     "CURLOPT_FTP_SSL",
+    "CURLOPT_SHARE",          "CURLOPT_PORT",           "CURLOPT_TCP_NODELAY",
+    "CURLOPT_AUTOREFERER",    "CURLOPT_SOURCE_HOST",    "CURLOPT_SOURCE_USERPWD",
+    "CURLOPT_SOURCE_PATH",    "CURLOPT_SOURCE_PORT",    "CURLOPT_PASV_HOST",
+    "CURLOPT_SOURCE_PREQUOTE","CURLOPT_SOURCE_POSTQUOTE",
+    "CURLOPT_FTPSSLAUTH",     "CURLOPT_SOURCE_URL",     "CURLOPT_SOURCE_QUOTE",
+    "CURLOPT_FTP_ACCOUNT",    "CURLOPT_IGNORE_CONTENT_LENGTH",
+    "CURLOPT_COOKIELIST",     "CURLOPT_FTP_SKIP_PASV_IP",
+    "CURLOPT_FTP_FILEMETHOD", "CURLOPT_LOCALPORT",      "CURLOPT_LOCALPORTRANGE",
+    "CURLOPT_MAX_SEND_SPEED_LARGE",                     "CURLOPT_MAX_RECV_SPEED_LARGE",
+    "CURLOPT_FTP_ALTERNATIVE_TO_USER",                  "CURLOPT_SSL_SESSIONID_CACHE",
+    "CURLOPT_SSH_AUTH_TYPES",                           "CURLOPT_SSH_PUBLIC_KEYFILE",
+    "CURLOPT_SSH_PRIVATE_KEYFILE",                      "CURLOPT_TIMEOUT_MS",
+    "CURLOPT_CONNECTTIMEOUT_MS",                        "CURLOPT_HTTP_CONTENT_DECODING",
+    "CURLOPT_HTTP_TRANSFER_DECODING",                   "CURLOPT_KRBLEVEL",
+    "CURLOPT_NEW_FILE_PERMS",                           "CURLOPT_NEW_DIRECTORY_PERMS",
+    "CURLOPT_KEYPASSWD",      "CURLOPT_APPEND",         "CURLOPT_DIRLISTONLY",
+    "CURLOPT_USE_SSL",        "CURLOPT_POST301",        "CURLOPT_SSH_HOST_PUBLIC_KEY_MD5",
+    "CURLOPT_PROXY_TRANSFER_MODE",                      "CURLOPT_CRLFILE",
+    "CURLOPT_ISSUERCERT",     "CURLOPT_ADDRESS_SCOPE",  "CURLOPT_CERTINFO",
+    "CURLOPT_POSTREDIR",      "CURLOPT_USERNAME",       "CURLOPT_PASSWORD",
+    "CURLOPT_PROXYUSERNAME",  "CURLOPT_PROXYPASSWORD",  "CURLOPT_TFTP_BLKSIZE",
+    "CURLOPT_SOCKS5_GSSAPI_SERVICE",                    "CURLOPT_SOCKS5_GSSAPI_NEC",
+    "CURLOPT_PROTOCOLS",      "CURLOPT_REDIR_PROTOCOLS","CURLOPT_FTP_SSL_CC",
+    "CURLOPT_SSH_KNOWNHOSTS", "CURLOPT_SSH_KEYFUNCTION",
+    (char *)NULL
+};
+
+CONST static char *configTable[] = {
+    "-url",               "-file",               "-infile",
+    "-useragent",         "-referer",            "-verbose",
+    "-header",            "-nobody",             "-proxy",
+    "-proxyport",         "-httpproxytunnel",    "-failonerror",
+    "-timeout",           "-lowspeedlimit",      "-lowspeedtime",
+    "-resumefrom",        "-infilesize",         "-upload",
+    "-ftplistonly",       "-ftpappend",          "-netrc",
+    "-followlocation",    "-transfertext",       "-put",
+    "-mute",              "-userpwd",            "-proxyuserpwd",
+    "-range",             "-errorbuffer",        "-httpget",
+    "-post",              "-postfields",         "-postfieldssize",
+    "-ftpport",           "-cookie",             "-cookiefile",
+    "-httpheader",        "-httppost",           "-sslcert",
+    "-sslcertpasswd",     "-sslversion",         "-crlf",
+    "-quote",             "-postquote",          "-writeheader",
+    "-timecondition",     "-timevalue",          "-customrequest",
+    "-stderr",            "-interface",          "-krb4level",
+    "-sslverifypeer",     "-cainfo",             "-filetime",
+    "-maxredirs",         "-maxconnects",        "-closepolicy",
+    "-randomfile",        "-egdsocket",          "-connecttimeout",
+    "-noprogress",        "-headervar",          "-bodyvar",
+    "-progressproc",      "-canceltransvarname", "-writeproc",
+    "-readproc",          "-sslverifyhost",      "-cookiejar",
+    "-sslcipherlist",     "-httpversion",        "-ftpuseepsv",
+    "-sslcerttype",       "-sslkey",             "-sslkeytype",
+    "-sslkeypasswd",      "-sslengine",          "-sslenginedefault",
+    "-prequote",          "-debugproc",          "-dnscachetimeout",
+    "-dnsuseglobalcache", "-cookiesession",      "-capath",
+    "-buffersize",        "-nosignal",           "-encoding",
+    "-proxytype",         "-http200aliases",     "-unrestrictedauth",
+    "-ftpuseeprt",        "-command",            "-httpauth",
+    "-ftpcreatemissingdirs",                     "-proxyauth",
+    "-ftpresponsetimeout",                       "-ipresolve",
+    "-maxfilesize",       "-netrcfile",          "-ftpssl",
+    "-share",             "-port",               "-tcpnodelay",
+    "-autoreferer",       "-sourcehost",         "-sourceuserpwd",
+    "-sourcepath",        "-sourceport",         "-pasvhost",
+    "-sourceprequote",    "-sourcepostquote",    "-ftpsslauth",
+    "-sourceurl",         "-sourcequote",        "-ftpaccount",
+    "-ignorecontentlength",                      "-cookielist",
+    "-ftpskippasvip",     "-ftpfilemethod",      "-localport",
+    "-localportrange",
+    "-maxsendspeed",                             "-maxrecvspeed",
+    "-ftpalternativetouser",                     "-sslsessionidcache",
+    "-sshauthtypes",      "-sshpublickeyfile",   "-sshprivatekeyfile",
+    "-timeoutms",         "-connecttimeoutms",   "-contentdecoding",
+    "-transferdecoding",  "-krblevel",           "-newfileperms",
+    "-newdirectoryperms", "-keypasswd",          "-append",
+    "-dirlistonly",       "-usessl",             "-post301",
+    "-sshhostpublickeymd5",                      "-proxytransfermode",
+    "-crlfile",           "-issuercert",         "-addressscope",
+    "-certinfo",          "-postredir",          "-username",
+    "-password",          "-proxyuser",          "-proxypassword",
+    "-tftpblksize",       "-socks5gssapiservice","-socks5gssapinec",
+    "-protocols",         "-redirprotocols",     "-ftpsslcc",
+    "-sshknownhosts",     "-sshkeyproc",
+    (char *) NULL
+};
+
+CONST static char    *timeCond[] = {
+    "ifmodsince", "ifunmodsince",
+    (char *)NULL
+};
+
+CONST static char    *getInfoTable[]={
+    "effectiveurl",   "httpcode",       "responsecode",
+    "filetime",       "totaltime",      "namelookuptime",
+    "connecttime",    "pretransfertime","sizeupload",
+    "sizedownload",   "speeddownload",  "speedupload",
+    "headersize",     "requestsize",    "sslverifyresult",
+    "contentlengthdownload",            "contentlengthupload",
+    "starttransfertime",                "contenttype",
+    "redirecttime",   "redirectcount",  "httpauthavail",
+    "proxyauthavail", "oserrno",        "numconnects",
+    "sslengines",     "httpconnectcode","cookielist",
+    "ftpentrypath",   "redirecturl",    "primaryip",
+    "appconnecttime", "certinfo",       "conditionunmet",
+    (char *)NULL
+};
+
+CONST static char   *curlFormTable[]={
+    "name",  "contents", "file", "contenttype", "contentheader", "filename",
+    "bufferName", "buffer", "filecontent", (char *)NULL
+};
+
+CONST static char   *httpVersionTable[] = {
+    "none", "1.0", "1.1", (char *)NULL
+};
+
+CONST static char *netrcTable[] = {
+    "optional", "ignored", "required", (char *)NULL
+};
+
+CONST static char *encodingTable[] = {
+    "identity", "deflated", "all", (char *)NULL
+};
+
+CONST static char *versionInfoTable[] = {
+    "-version",    "-versionnum",    "-host",         "-features",
+    "-sslversion", "-sslversionnum", "-libzversion",
+    "-protocols",  (char *)NULL
+};
+
+CONST static char *proxyTypeTable[] = {
+    "http", "socks4", "socks4a", "socks5", "socks5hostname", (char *)NULL
+};
+
+CONST static char *httpAuthMethods[] = {
+    "basic", "digest", "digestie", "gssnegotiate", "ntlm", "any", "anysafe", (char *)NULL
+};
+
+CONST static char *ipresolve[] = {
+    "whatever", "v4", "v6", (char *)NULL
+};
+
+CONST static char *ftpssl[] = {
+    "nope", "try", "control", "all", (char *)NULL
+};
+
+CONST static char *shareCmd[] = {
+    "share", "unshare", "cleanup", (char *)NULL
+};
+
+CONST static char *lockData[] = {
+    "cookies", "dns", (char *)NULL
+};
+
+CONST static char *ftpsslauth[] = {
+    "default", "ssl", "tls", (char *)NULL
+};
+
+CONST static char *ftpsslccc[] = {
+    "none", "passive", "active", (char *)NULL
+};
+
+CONST static char *sslversion[] = {
+    "default", "tlsv1", "sslv2", "sslv3", (char *)NULL
+};
+
+CONST static char *ftpfilemethod[] = {
+    "default", "multicwd", "nocwd", "singlecwd", (char *)NULL
+};
+
+CONST static char *sshauthtypes[] = {
+    "publickey", "password", "host", "keyboard", "any", (char *)NULL
+};
+
+CONST static char *postredir[] = {
+    "301", "302", "all", (char *)NULL
+};
+
+CONST static char *protocolNames[] = {
+    "http", "https", "ftp", "ftps", "scp", "sftp", "telnet", "ldap",
+    "ldaps","dict",  "file","tftp", "all", (char*)NULL
+};
+
+static curlioerr curlseek(void *instream, curl_off_t offset, int origin);
+
+int Tclcurl_MultiInit (Tcl_Interp *interp);
+
+#endif
+
+int Tclcurl_Init(Tcl_Interp *interp);
+
+char *curlCreateObjCmd(Tcl_Interp *interp,struct curlObjData  *curlData);
+int curlInitObjCmd(ClientData clientData, Tcl_Interp *interp, int objc,
+        Tcl_Obj *CONST objv[]);
+int curlObjCmd(ClientData clientData, Tcl_Interp *interp, int objc,
+        Tcl_Obj *CONST objv[]);
+int curlDeleteCmd(ClientData clientData);
+
+int curlPerform(Tcl_Interp *interp,CURL *curlHandle,struct curlObjData *curlData);
+
+int curlSetOptsTransfer(Tcl_Interp *interp, struct curlObjData *curlData,int objc,
+        Tcl_Obj *CONST objv[]);
+
+int curlConfigTransfer(Tcl_Interp *interp, struct curlObjData *curlData,int objc,
+        Tcl_Obj *CONST objv[]);
+
+
+int curlDupHandle(Tcl_Interp *interp, struct curlObjData *curlData,int objc,
+        Tcl_Obj *CONST objv[]);
+
+int curlResetHandle(Tcl_Interp *interp, struct curlObjData *curlData);
+
+int curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData,
+        Tcl_Obj *CONST objv,int tableIndex);
+
+int SetoptInt(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt,int tableIndex,
+            Tcl_Obj *tclObj);
+int SetoptLong(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt,int tableIndex,
+            Tcl_Obj *tclObj);
+int SetoptCurlOffT(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt,int tableIndex,
+            Tcl_Obj *tclObj);
+int SetoptChar(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt,
+            int tableIndex,Tcl_Obj *tclObj);
+int SetoptSHandle(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt,
+        int tableIndex,Tcl_Obj *tclObj);
+int SetoptsList(Tcl_Interp *interp,struct curl_slist **slistPtr,Tcl_Obj *CONST objv);
+
+CURLcode curlGetInfo(Tcl_Interp *interp,CURL *curlHandle,int tableIndex);
+
+void curlFreeSpace(struct curlObjData *curlData);
+
+void curlErrorSetOpt(Tcl_Interp *interp,CONST char **configTable, int option,CONST char *parPtr);
+
+size_t curlHeaderReader(void *ptr,size_t size,size_t nmemb,FILE *stream);
+
+size_t curlBodyReader(void *ptr,size_t size,size_t nmemb,FILE *curlDataPtr);
+
+int curlProgressCallback(void *clientp,double dltotal,double dlnow,
+        double ultotal,double ulnow);
+
+size_t curlWriteProcInvoke(void *ptr,size_t size,size_t nmemb,FILE *curlDataPtr);
+size_t curlReadProcInvoke(void *ptr,size_t size,size_t nmemb,FILE *curlDataPtr);
+
+
+/* Puts a ssh key into a Tcl object */
+Tcl_Obj *curlsshkeyextract(Tcl_Interp *interp,const struct curl_khkey *key);
+
+/* Function that will be invoked by libcurl to see what the user wants to
+   do about the new ssh host */
+size_t curlsshkeycallback(CURL *easy,                        /* easy handle */
+                          const struct curl_khkey *knownkey, /* known */
+                          const struct curl_khkey *foundkey, /* found */
+                          enum curl_khmatch,                 /* libcurl's view on the keys */
+                          void *curlData);
+
+int curlDebugProcInvoke(CURL *curlHandle, curl_infotype infoType,
+        unsigned char * dataPtr, size_t size, void  *curlData);
+
+int curlVersion (ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]);
+
+int curlEscape(ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]);
+
+int curlUnescape(ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]);
+
+int curlVersionInfo (ClientData clientData, Tcl_Interp *interp,
+    int objc,Tcl_Obj *CONST objv[]);
+
+int curlCopyCurlData (struct curlObjData *curlDataOld,
+                      struct curlObjData *curlDataNew);
+
+int curlOpenFile(Tcl_Interp *interp,char *fileName, FILE **handle, int writing, int text);
+
+int  curlOpenFiles (Tcl_Interp *interp,struct curlObjData *curlData);
+void curlCloseFiles(struct curlObjData *curlData);
+
+int curlSetPostData(Tcl_Interp *interp,struct curlObjData *curlData);
+void curlResetPostData(struct curlObjData *curlDataPtr);
+void curlResetFormArray(struct curl_forms *formArray);
+
+void curlSetBodyVarName(Tcl_Interp *interp,struct curlObjData *curlDataPtr);
+
+char *curlstrdup (char *old);
+
+
+char *curlCreateShareObjCmd (Tcl_Interp *interp,struct shcurlObjData  *shcurlData);
+int curlShareInitObjCmd (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]);
+int curlShareObjCmd (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]);
+int curlCleanUpShareCmd(ClientData clientData);
+
+#ifdef TCL_THREADS
+    TCL_DECLARE_MUTEX(cookieLock)
+    TCL_DECLARE_MUTEX(dnsLock)
+    TCL_DECLARE_MUTEX(sslLock)
+    TCL_DECLARE_MUTEX(connectLock)
+
+    void curlShareLockFunc (CURL *handle, curl_lock_data data
+            , curl_lock_access access, void *userptr);
+    void curlShareUnLockFunc(CURL *handle, curl_lock_data data, void *userptr);
+#endif
+
+int curlErrorStrings (Tcl_Interp *interp, Tcl_Obj *CONST objv,int type);
+int curlEasyStringError (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]);
+int curlShareStringError (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]);
+int curlMultiStringError (ClientData clientData, Tcl_Interp *interp,
+        int objc,Tcl_Obj *CONST objv[]);
+
+#ifdef  __cplusplus
+}
+#endif
diff --git a/generic/tclcurl.tcl b/generic/tclcurl.tcl
new file mode 100755 (executable)
index 0000000..bc34636
--- /dev/null
@@ -0,0 +1,140 @@
+################################################################################
+################################################################################
+####                                  tclcurl.tcl
+################################################################################
+################################################################################
+## Includes the tcl part of TclCurl
+################################################################################
+################################################################################
+## (c) 2001-2009 Andres Garcia Garcia. fandom@telefonica.net
+## See the file "license.terms" for information on usage and redistribution
+## of this file and for a DISCLAIMER OF ALL WARRANTIES.
+################################################################################
+################################################################################
+
+package provide TclCurl 7.19.6
+
+namespace eval curl {
+
+################################################################################
+# configure
+#    Invokes the 'curl-config' script to be able to know what features have
+#    been compiled in the installed version of libcurl.
+#    Possible options are '-prefix', '-feature' and 'vernum'
+################################################################################
+proc ::curl::curlConfig {option} {
+
+    if {$::tcl_platform(platform)=="windows"} {
+        error "This command is not available in Windows"
+    }
+
+    switch -exact -- $option {
+        -prefix {
+            return [exec curl-config --prefix]
+        }
+        -feature {
+            set featureList [exec curl-config --feature]
+            regsub -all {\\n} $featureList { } featureList
+            return $featureList
+        }
+        -vernum {
+            return [exec curl-config --vernum]
+        }
+        -ca {
+            return [exec curl-config --ca]
+        }
+        default {
+            error "bad option '$option': must be '-prefix', '-feature', '-vernum' or '-ca'"
+        }
+    }
+    return
+}
+
+################################################################################
+# transfer
+#    The transfer command is used for simple transfers in which you don't
+#    want to request more than one file.
+#
+# Parameters:
+#    Use the same parameters you would use in the 'configure' command to
+#    configure the download and the same as in 'getinfo' with a 'info'
+#    prefix to get info about the transfer.
+################################################################################
+proc ::curl::transfer {args} {
+    variable getInfo
+    variable curlBodyVar
+
+    set i 0
+    set newArgs ""
+    catch {unset getInfo}
+
+    foreach {option value} $args {
+        set noPassOption 0
+        set block        1
+        switch -regexp -- $option {
+            -info.* {
+                set noPassOption 1
+                regsub -- {-info} $option {} option
+                set getInfo($option) $value
+            }
+            -block {
+                set noPassOption 1
+                set block $value
+            }
+            -bodyvar {
+                upvar $value curlBodyVar
+                set    value curlBodyVar
+            }
+            -headervar {
+                upvar $value curlHeaderVar
+                set    value curlHeaderVar
+            }
+            -errorbuffer {
+                upvar $value curlErrorVar
+                set    value curlErrorVar
+            }
+        }
+        if {$noPassOption==0} {
+            lappend newArgs $option $value
+        }
+    }
+
+    if {[catch {::curl::init} curlHandle]} {
+        error "Could not init a curl session: $curlHandle"
+    }
+
+    if {[catch {eval $curlHandle configure $newArgs} result]} {
+        $curlHandle  cleanup
+        error $result
+    }
+
+    if {$block==1} {
+        if {[catch {$curlHandle perform} result]} {
+           $curlHandle cleanup
+           error $result
+        }
+        if {[info exists getInfo]} {
+            foreach {option var} [array get getInfo] {
+                upvar $var info
+                set info [eval $curlHandle getinfo $option]
+            }
+        }
+        if {[catch {$curlHandle cleanup} result]} {
+            error $result
+        }
+    } else {
+        # We create a multiHandle
+        set multiHandle [curl::multiinit]
+
+        # We add the easy handle to the multi handle.
+        $multiHandle addhandle $curlHandle
+
+        # So now we create the event source passing the multiHandle as a parameter.
+        curl::createEventSource $multiHandle
+
+        # And we return, it is non blocking after all.
+    }
+    return 0
+}
+
+}
diff --git a/license.terms b/license.terms
new file mode 100755 (executable)
index 0000000..9f023c4
--- /dev/null
@@ -0,0 +1,38 @@
+This software is copyrighted by Andres Garcia Garcia and other parties.
+The following terms apply to all files associated with the
+software unless explicitly disclaimed in individual files.
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
+FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
+DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
+IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
+NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+MODIFICATIONS.
+
+GOVERNMENT USE: If you are acquiring this software on behalf of the
+U.S. government, the Government shall have only "Restricted Rights"
+in the software and related documentation as defined in the Federal 
+Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
+are acquiring the software on behalf of the Department of Defense, the
+software shall be classified as "Commercial Computer Software" and the
+Government shall have only "Restricted Rights" as defined in Clause
+252.227-7013 (c) (1) of DFARs.  Notwithstanding the foregoing, the
+authors grant the U.S. Government and others acting in its behalf
+permission to use and distribute the software in accordance with the
+terms specified in this license. 
diff --git a/packages/Linux/tclcurl-7.19.6.spec b/packages/Linux/tclcurl-7.19.6.spec
new file mode 100755 (executable)
index 0000000..668a997
--- /dev/null
@@ -0,0 +1,42 @@
+Name: tclcurl
+Version: 7.19.6
+Release: 1
+License: BSD revised
+Group:  Development/Libraries
+Packager: Andres Garcia <fandom@telefonica.net>
+Vendor: Fandom Enterprise
+Source: http://personal1.iddeo.es/andresgarci/tclcurl/download/tarball/tclcurl-7.19.6.tar.gz
+Summary: A Tcl interface for libcurl.
+
+%description
+
+TclCurl provides a binding to libcurl, with it you can upload
+and download files using FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE or  LDAP syntax.
+
+%prep
+%setup
+
+%build
+./configure --mandir=/usr/share/man --prefix=/usr
+make
+
+%install
+make install
+mkdir -p /usr/share/doc/tclcurl-7.19.6/tests
+cp -f ReadMe.txt               /usr/share/doc/tclcurl-7.19.6/
+cp -f ToDo.txt                 /usr/share/doc/tclcurl-7.19.6/
+cp -f license.terms            /usr/share/doc/tclcurl-7.19.6/
+cp -f doc/tclcurl.html         /usr/share/doc/tclcurl-7.19.6/
+cp -f doc/tclcurl_multi.html   /usr/share/doc/tclcurl-7.19.6/
+cp -f doc/tclcurl_share.html   /usr/share/doc/tclcurl-7.19.6/
+cp -f doc/aolserver.txt        /usr/share/doc/tclcurl-7.19.6/
+cp -f tests/*.tcl              /usr/share/doc/tclcurl-7.19.6/tests
+
+%files
+/usr/lib/TclCurl7.19.6/
+/usr/share/doc/tclcurl-7.19.6/
+/usr/share/man/mann/tclcurl.n.gz
+/usr/share/man/mann/tclcurl_multi.n.gz
+/usr/share/man/mann/tclcurl_share.n.gz
+
+
diff --git a/packages/Windows/SetUp.tcl b/packages/Windows/SetUp.tcl
new file mode 100755 (executable)
index 0000000..f59f10f
--- /dev/null
@@ -0,0 +1,40 @@
+# This script installs TclCurl in a Windows system, you only
+# have to double-click on it and, provided Tcl/Tk is already
+# installed, TclCurl will be ready to use.
+#
+# Copyright (c) 2001-2009 Andres Garcia Garcia.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+
+
+wm withdraw .
+
+set tclLibDir     [file dirname $tcl_library]
+set tclBinDir     [file join [file dirname $tclLibDir] bin]
+set windowsSystem [file join $env(windir) SYSTEM]
+
+foreach oldie [glob -nocomplain $tclLibDir/tclcurl*] {
+    catch {file delete -force $oldie}
+}
+
+file copy -force tclcurl7.19.6 $tclLibDir
+
+foreach sslFile [glob -nocomplain ssl/*] {
+    catch {file copy -force $sslFile $windowsSystem}
+}
+foreach sslFile [glob -nocomplain certs/*] {
+    file copy -force $sslFile [file join $env(windir) curl-ca-bundle.crt]
+}
+
+package forget TclCurl
+
+if {[catch {package require TclCurl} version]} {
+    tk_messageBox -icon error -type ok -title Error \
+        -message "Install failed\n$version"
+} else {
+    tk_messageBox -icon info -type ok -title Installed \
+        -message "Version $version installed"
+}
+
+exit
diff --git a/packages/Windows/tclcurl.mk b/packages/Windows/tclcurl.mk
new file mode 100755 (executable)
index 0000000..f9934d3
--- /dev/null
@@ -0,0 +1,97 @@
+TCL_VERSION     = 8.5.7\r
+TCLCURL_VERSION = 7.19.6\r
+TclCurl_nodot   = 7.196\r
+CURL_VERSION    = 7.19.6\r
+ZLIB_VERSION    = 1.2.3\r
+\r
+installFiles = ChangeLog.txt changes.txt license.terms ReadMe.txt ReadMeW32.txt ToDo.txt packages/Windows/SetUp.tcl\r
+installDirs  = tests\r
+certFiles    = curl-${CURL_VERSION}/lib/cacert.pem\r
+sslFiles     = libeay32.dll libssl32.dll\r
+docFiles     = aolserver.txt OpenSSL-LICENSE.txt tclcurl.html tclcurl_multi.html tclcurl_share.html\r
+\r
+tclcurl-plain:        DESTDIR = TclCurl-${TCLCURL_VERSION}\r
+tclcurl-plain:        TclCurlFlags= --disable-threads\r
+\r
+tclcurl-ssl:          DESTDIR = TclCurl-SSL-${TCLCURL_VERSION}\r
+tclcurl-ssl:          TclCurlFlags = --enable-ssl --disable-threads\r
+tclcurl-ssl:          curlFlags = --with-ssl=/usr/local/\r
+\r
+tclcurl-threaded:     DESTDIR = TclCurl-THREADED-${TCLCURL_VERSION}\r
+tclcurl-threaded:     TclFlags = --enable-threads\r
+\r
+tclcurl-threaded-ssl: DESTDIR = TclCurl-THREADED-SSL-${TCLCURL_VERSION}\r
+tclcurl-threaded-ssl: TclFlags = --enable-threads\r
+tclcurl-threaded-ssl: TclCurlFlags = --enable-ssl\r
+tclcurl-threaded-ssl: curlFlags = --with-ssl=/usr/local/\r
+\r
+tclcurl-plain:        tcl zlib curl tclcurlComp createDir extraFiles extraDirs docs     rar\r
+\r
+tclcurl-ssl:          tcl zlib curl tclcurlComp createDir extraFiles extraDirs docs ssl rar\r
+\r
+tclcurl-threaded:     tcl zlib curl tclcurlComp createDir extraFiles extraDirs docs     rar\r
+\r
+tclcurl-threaded-ssl: tcl zlib curl tclcurlComp createDir extraFiles extraDirs docs ssl rar\r
+\r
+clean:\r
+       rm TclCurl-${TCLCURL_VERSION}.exe TclCurl-SSL-${TCLCURL_VERSION}.exe TclCurl-THREADED-${TCLCURL_VERSION}.exe TclCurl-THREADED-SSL-${TCLCURL_VERSION}.exe\r
+\r
+tcl:\r
+       cd tcl${TCL_VERSION}/win                     ;\\r
+       make distclean                               ;\\r
+       ./configure ${TclFlags}                      ;\\r
+       make                                         ;\\r
+       make install\r
+\r
+curl:\r
+       cd curl-${CURL_VERSION}                      ;\\r
+       ./configure ${curlFlags}  --enable-shared=no ;\\r
+       make                                         ;\\r
+       make install-strip\r
+\r
+zlib:\r
+       cd zlib-${ZLIB_VERSION}                      ;\\r
+       make distclean                               ;\\r
+       ./configure                                  ;\\r
+       make                                         ;\\r
+       make install                                 ;\\r
+\r
+tclcurlComp:\r
+       cd TclCurl                                                    ;\\r
+       make distclean                                                ;\\r
+       CC=gcc ./configure ${TclFlags} ${TclCurlFlags} -enable-zlib   ;\\r
+       make                                                          ;\\r
+       make install\r
+\r
+createDir:\r
+       mkdir ${DESTDIR}                                              ;\\r
+       cp -r /usr/local/lib/TclCurl${TCLCURL_VERSION} ${DESTDIR}     ;\\r
+\r
+extraFiles:\r
+       for f in $(installFiles) ; do                                  \\r
+       cp  TclCurl/$$f ${DESTDIR}                                    ;\\r
+       done\r
+\r
+extraDirs:\r
+       for f in $(installDirs) ; do                                   \\r
+       cp -r TclCurl/$$f ${DESTDIR}/TclCurl${TCLCURL_VERSION}        ;\\r
+       done\r
+\r
+ssl:\r
+       mkdir ${DESTDIR}/certs                                        ;\\r
+       cp ${certFiles} ${DESTDIR}/certs                              ;\\r
+       mkdir ${DESTDIR}/ssl                                          ;\\r
+       for f in $(sslFiles) ; do                                      \\r
+       cp -r /usr/local/bin/$$f ${DESTDIR}/ssl                       ;\\r
+       done\r
+\r
+docs:\r
+       mkdir ${DESTDIR}/tclcurl${TCLCURL_VERSION}/doc                ;\\r
+       for f in $(docFiles) ; do                                      \\r
+       cp -r TclCurl/doc/$$f ${DESTDIR}/tclcurl${TCLCURL_VERSION}/doc;\\r
+       done\r
+\r
+rar:\r
+       c:/Archiv~1/WinRAR/rar a -r -s -sfx  ${DESTDIR}.exe ${DESTDIR};\\r
+       rm -r ${DESTDIR}\r
+\r
diff --git a/pkgIndex.tcl.in b/pkgIndex.tcl.in
new file mode 100755 (executable)
index 0000000..d7566b4
--- /dev/null
@@ -0,0 +1,5 @@
+#
+# Tcl package index file
+#
+package ifneeded @PACKAGE_NAME@ @PACKAGE_VERSION@ \
+    [list load [file join $dir @PKG_LIB_FILE@] @PACKAGE_NAME@]
diff --git a/tclconfig/install-sh b/tclconfig/install-sh
new file mode 100755 (executable)
index 0000000..0ff4b6a
--- /dev/null
@@ -0,0 +1,119 @@
+#!/bin/sh
+
+#
+# install - install a program, script, or datafile
+# This comes from X11R5; it is not part of GNU.
+#
+# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+#
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+
+instcmd="$mvprog"
+chmodcmd=""
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+       -c) instcmd="$cpprog"
+           shift
+           continue;;
+
+       -m) chmodcmd="$chmodprog $2"
+           shift
+           shift
+           continue;;
+
+       -o) chowncmd="$chownprog $2"
+           shift
+           shift
+           continue;;
+
+       -g) chgrpcmd="$chgrpprog $2"
+           shift
+           shift
+           continue;;
+
+       -s) stripcmd="$stripprog"
+           shift
+           continue;;
+
+       *)  if [ x"$src" = x ]
+           then
+               src=$1
+           else
+               dst=$1
+           fi
+           shift
+           continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+       echo "install:  no input file specified"
+       exit 1
+fi
+
+if [ x"$dst" = x ]
+then
+       echo "install:  no destination specified"
+       exit 1
+fi
+
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+if [ -d $dst ]
+then
+       dst="$dst"/`basename $src`
+fi
+
+# Make a temp file name in the proper directory.
+
+dstdir=`dirname $dst`
+dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+$doit $instcmd $src $dsttmp
+
+# and set any options; do chmod last to preserve setuid bits
+
+if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi
+if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi
+if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi
+if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi
+
+# Now rename the file to the real destination.
+
+$doit $rmcmd $dst
+$doit $mvcmd $dsttmp $dst
+
+
+exit 0
diff --git a/tclconfig/tcl.m4 b/tclconfig/tcl.m4
new file mode 100644 (file)
index 0000000..ef99a37
--- /dev/null
@@ -0,0 +1,4148 @@
+# tcl.m4 --
+#
+#      This file provides a set of autoconf macros to help TEA-enable
+#      a Tcl extension.
+#
+# Copyright (c) 1999-2000 Ajuba Solutions.
+# Copyright (c) 2002-2005 ActiveState Corporation.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: @(#) $Id: tcl.m4,v 1.135 2009/04/28 00:40:24 hobbs Exp $
+
+AC_PREREQ(2.57)
+
+dnl TEA extensions pass us the version of TEA they think they
+dnl are compatible with (must be set in TEA_INIT below)
+dnl TEA_VERSION="3.7"
+
+# Possible values for key variables defined:
+#
+# TEA_WINDOWINGSYSTEM - win32 aqua x11 (mirrors 'tk windowingsystem')
+# TEA_PLATFORM        - windows unix
+#
+
+#------------------------------------------------------------------------
+# TEA_PATH_TCLCONFIG --
+#
+#      Locate the tclConfig.sh file and perform a sanity check on
+#      the Tcl compile flags
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --with-tcl=...
+#
+#      Defines the following vars:
+#              TCL_BIN_DIR     Full path to the directory containing
+#                              the tclConfig.sh file
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_PATH_TCLCONFIG], [
+    dnl TEA specific: Make sure we are initialized
+    AC_REQUIRE([TEA_INIT])
+    #
+    # Ok, lets find the tcl configuration
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-tcl
+    #
+
+    if test x"${no_tcl}" = x ; then
+       # we reset no_tcl in case something fails here
+       no_tcl=true
+       AC_ARG_WITH(tcl,
+           AC_HELP_STRING([--with-tcl],
+               [directory containing tcl configuration (tclConfig.sh)]),
+           with_tclconfig=${withval})
+       AC_MSG_CHECKING([for Tcl configuration])
+       AC_CACHE_VAL(ac_cv_c_tclconfig,[
+
+           # First check to see if --with-tcl was specified.
+           if test x"${with_tclconfig}" != x ; then
+               case ${with_tclconfig} in
+                   */tclConfig.sh )
+                       if test -f ${with_tclconfig}; then
+                           AC_MSG_WARN([--with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself])
+                           with_tclconfig=`echo ${with_tclconfig} | sed 's!/tclConfig\.sh$!!'`
+                       fi ;;
+               esac
+               if test -f "${with_tclconfig}/tclConfig.sh" ; then
+                   ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
+               else
+                   AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh])
+               fi
+           fi
+
+           # then check for a private Tcl installation
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in \
+                       ../tcl \
+                       `ls -dr ../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../tcl[[8-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
+                       ../../tcl \
+                       `ls -dr ../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../../tcl[[8-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
+                       ../../../tcl \
+                       `ls -dr ../../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../../../tcl[[8-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do
+                   if test "${TEA_PLATFORM}" = "windows" \
+                           -a -f "$i/win/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+                       break
+                   fi
+                   if test -f "$i/unix/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # on Darwin, check in Framework installation locations
+           if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d ~/Library/Frameworks 2>/dev/null` \
+                       `ls -d /Library/Frameworks 2>/dev/null` \
+                       `ls -d /Network/Library/Frameworks 2>/dev/null` \
+                       `ls -d /System/Library/Frameworks 2>/dev/null` \
+                       ; do
+                   if test -f "$i/Tcl.framework/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/Tcl.framework; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # TEA specific: on Windows, check in common installation locations
+           if test "${TEA_PLATFORM}" = "windows" \
+               -a x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d C:/Tcl/lib 2>/dev/null` \
+                       `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few common install locations
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d ${libdir} 2>/dev/null` \
+                       `ls -d ${exec_prefix}/lib 2>/dev/null` \
+                       `ls -d ${prefix}/lib 2>/dev/null` \
+                       `ls -d /usr/local/lib 2>/dev/null` \
+                       `ls -d /usr/contrib/lib 2>/dev/null` \
+                       `ls -d /usr/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few other private locations
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in \
+                       ${srcdir}/../tcl \
+                       `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
+                       `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do
+                   if test "${TEA_PLATFORM}" = "windows" \
+                           -a -f "$i/win/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+                       break
+                   fi
+                   if test -f "$i/unix/tclConfig.sh" ; then
+                   ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+                   break
+               fi
+               done
+           fi
+       ])
+
+       if test x"${ac_cv_c_tclconfig}" = x ; then
+           TCL_BIN_DIR="# no Tcl configs found"
+           AC_MSG_ERROR([Can't find Tcl configuration definitions])
+       else
+           no_tcl=
+           TCL_BIN_DIR=${ac_cv_c_tclconfig}
+           AC_MSG_RESULT([found ${TCL_BIN_DIR}/tclConfig.sh])
+       fi
+    fi
+])
+
+#------------------------------------------------------------------------
+# TEA_PATH_TKCONFIG --
+#
+#      Locate the tkConfig.sh file
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --with-tk=...
+#
+#      Defines the following vars:
+#              TK_BIN_DIR      Full path to the directory containing
+#                              the tkConfig.sh file
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_PATH_TKCONFIG], [
+    #
+    # Ok, lets find the tk configuration
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-tk
+    #
+
+    if test x"${no_tk}" = x ; then
+       # we reset no_tk in case something fails here
+       no_tk=true
+       AC_ARG_WITH(tk,
+           AC_HELP_STRING([--with-tk],
+               [directory containing tk configuration (tkConfig.sh)]),
+           with_tkconfig=${withval})
+       AC_MSG_CHECKING([for Tk configuration])
+       AC_CACHE_VAL(ac_cv_c_tkconfig,[
+
+           # First check to see if --with-tkconfig was specified.
+           if test x"${with_tkconfig}" != x ; then
+               case ${with_tkconfig} in
+                   */tkConfig.sh )
+                       if test -f ${with_tkconfig}; then
+                           AC_MSG_WARN([--with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself])
+                           with_tkconfig=`echo ${with_tkconfig} | sed 's!/tkConfig\.sh$!!'`
+                       fi ;;
+               esac
+               if test -f "${with_tkconfig}/tkConfig.sh" ; then
+                   ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)`
+               else
+                   AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh])
+               fi
+           fi
+
+           # then check for a private Tk library
+           if test x"${ac_cv_c_tkconfig}" = x ; then
+               for i in \
+                       ../tk \
+                       `ls -dr ../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../tk[[8-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../tk[[8-9]].[[0-9]]* 2>/dev/null` \
+                       ../../tk \
+                       `ls -dr ../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../../tk[[8-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../../tk[[8-9]].[[0-9]]* 2>/dev/null` \
+                       ../../../tk \
+                       `ls -dr ../../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../../../tk[[8-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../../../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do
+                   if test "${TEA_PLATFORM}" = "windows" \
+                           -a -f "$i/win/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i/win; pwd)`
+                       break
+                   fi
+                   if test -f "$i/unix/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # on Darwin, check in Framework installation locations
+           if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tkconfig}" = x ; then
+               for i in `ls -d ~/Library/Frameworks 2>/dev/null` \
+                       `ls -d /Library/Frameworks 2>/dev/null` \
+                       `ls -d /Network/Library/Frameworks 2>/dev/null` \
+                       `ls -d /System/Library/Frameworks 2>/dev/null` \
+                       ; do
+                   if test -f "$i/Tk.framework/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i/Tk.framework; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few common install locations
+           if test x"${ac_cv_c_tkconfig}" = x ; then
+               for i in `ls -d ${libdir} 2>/dev/null` \
+                       `ls -d ${exec_prefix}/lib 2>/dev/null` \
+                       `ls -d ${prefix}/lib 2>/dev/null` \
+                       `ls -d /usr/local/lib 2>/dev/null` \
+                       `ls -d /usr/contrib/lib 2>/dev/null` \
+                       `ls -d /usr/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # TEA specific: on Windows, check in common installation locations
+           if test "${TEA_PLATFORM}" = "windows" \
+               -a x"${ac_cv_c_tkconfig}" = x ; then
+               for i in `ls -d C:/Tcl/lib 2>/dev/null` \
+                       `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few other private locations
+           if test x"${ac_cv_c_tkconfig}" = x ; then
+               for i in \
+                       ${srcdir}/../tk \
+                       `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
+                       `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do
+                   if test "${TEA_PLATFORM}" = "windows" \
+                           -a -f "$i/win/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i/win; pwd)`
+                       break
+                   fi
+                   if test -f "$i/unix/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+       ])
+
+       if test x"${ac_cv_c_tkconfig}" = x ; then
+           TK_BIN_DIR="# no Tk configs found"
+           AC_MSG_ERROR([Can't find Tk configuration definitions])
+       else
+           no_tk=
+           TK_BIN_DIR=${ac_cv_c_tkconfig}
+           AC_MSG_RESULT([found ${TK_BIN_DIR}/tkConfig.sh])
+       fi
+    fi
+])
+
+#------------------------------------------------------------------------
+# TEA_LOAD_TCLCONFIG --
+#
+#      Load the tclConfig.sh file
+#
+# Arguments:
+#
+#      Requires the following vars to be set:
+#              TCL_BIN_DIR
+#
+# Results:
+#
+#      Subst the following vars:
+#              TCL_BIN_DIR
+#              TCL_SRC_DIR
+#              TCL_LIB_FILE
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_LOAD_TCLCONFIG], [
+    AC_MSG_CHECKING([for existence of ${TCL_BIN_DIR}/tclConfig.sh])
+
+    if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then
+        AC_MSG_RESULT([loading])
+       . "${TCL_BIN_DIR}/tclConfig.sh"
+    else
+        AC_MSG_RESULT([could not find ${TCL_BIN_DIR}/tclConfig.sh])
+    fi
+
+    # eval is required to do the TCL_DBGX substitution
+    eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
+    eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
+
+    # If the TCL_BIN_DIR is the build directory (not the install directory),
+    # then set the common variable name to the value of the build variables.
+    # For example, the variable TCL_LIB_SPEC will be set to the value
+    # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC
+    # instead of TCL_BUILD_LIB_SPEC since it will work with both an
+    # installed and uninstalled version of Tcl.
+    if test -f "${TCL_BIN_DIR}/Makefile" ; then
+        TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC}
+        TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC}
+        TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH}
+    elif test "`uname -s`" = "Darwin"; then
+       # If Tcl was built as a framework, attempt to use the libraries
+       # from the framework at the given location so that linking works
+       # against Tcl.framework installed in an arbitrary location.
+       case ${TCL_DEFS} in
+           *TCL_FRAMEWORK*)
+               if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then
+                   for i in "`cd ${TCL_BIN_DIR}; pwd`" \
+                            "`cd ${TCL_BIN_DIR}/../..; pwd`"; do
+                       if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then
+                           TCL_LIB_SPEC="-F`dirname "$i"` -framework ${TCL_LIB_FILE}"
+                           break
+                       fi
+                   done
+               fi
+               if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then
+                   TCL_STUB_LIB_SPEC="-L${TCL_BIN_DIR} ${TCL_STUB_LIB_FLAG}"
+                   TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"
+               fi
+               ;;
+       esac
+    fi
+
+    # eval is required to do the TCL_DBGX substitution
+    eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
+    eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
+    eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
+    eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
+
+    AC_SUBST(TCL_VERSION)
+    AC_SUBST(TCL_BIN_DIR)
+    AC_SUBST(TCL_SRC_DIR)
+
+    AC_SUBST(TCL_LIB_FILE)
+    AC_SUBST(TCL_LIB_FLAG)
+    AC_SUBST(TCL_LIB_SPEC)
+
+    AC_SUBST(TCL_STUB_LIB_FILE)
+    AC_SUBST(TCL_STUB_LIB_FLAG)
+    AC_SUBST(TCL_STUB_LIB_SPEC)
+
+    # TEA specific:
+    AC_SUBST(TCL_LIBS)
+    AC_SUBST(TCL_DEFS)
+    AC_SUBST(TCL_EXTRA_CFLAGS)
+    AC_SUBST(TCL_LD_FLAGS)
+    AC_SUBST(TCL_SHLIB_LD_LIBS)
+])
+
+#------------------------------------------------------------------------
+# TEA_LOAD_TKCONFIG --
+#
+#      Load the tkConfig.sh file
+#
+# Arguments:
+#
+#      Requires the following vars to be set:
+#              TK_BIN_DIR
+#
+# Results:
+#
+#      Sets the following vars that should be in tkConfig.sh:
+#              TK_BIN_DIR
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_LOAD_TKCONFIG], [
+    AC_MSG_CHECKING([for existence of ${TK_BIN_DIR}/tkConfig.sh])
+
+    if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then
+        AC_MSG_RESULT([loading])
+       . "${TK_BIN_DIR}/tkConfig.sh"
+    else
+        AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh])
+    fi
+
+    # eval is required to do the TK_DBGX substitution
+    eval "TK_LIB_FILE=\"${TK_LIB_FILE}\""
+    eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\""
+
+    # If the TK_BIN_DIR is the build directory (not the install directory),
+    # then set the common variable name to the value of the build variables.
+    # For example, the variable TK_LIB_SPEC will be set to the value
+    # of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC
+    # instead of TK_BUILD_LIB_SPEC since it will work with both an
+    # installed and uninstalled version of Tcl.
+    if test -f "${TK_BIN_DIR}/Makefile" ; then
+        TK_LIB_SPEC=${TK_BUILD_LIB_SPEC}
+        TK_STUB_LIB_SPEC=${TK_BUILD_STUB_LIB_SPEC}
+        TK_STUB_LIB_PATH=${TK_BUILD_STUB_LIB_PATH}
+    elif test "`uname -s`" = "Darwin"; then
+       # If Tk was built as a framework, attempt to use the libraries
+       # from the framework at the given location so that linking works
+       # against Tk.framework installed in an arbitrary location.
+       case ${TK_DEFS} in
+           *TK_FRAMEWORK*)
+               if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then
+                   for i in "`cd ${TK_BIN_DIR}; pwd`" \
+                            "`cd ${TK_BIN_DIR}/../..; pwd`"; do
+                       if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then
+                           TK_LIB_SPEC="-F`dirname "$i"` -framework ${TK_LIB_FILE}"
+                           break
+                       fi
+                   done
+               fi
+               if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then
+                   TK_STUB_LIB_SPEC="-L${TK_BIN_DIR} ${TK_STUB_LIB_FLAG}"
+                   TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"
+               fi
+               ;;
+       esac
+    fi
+
+    # eval is required to do the TK_DBGX substitution
+    eval "TK_LIB_FLAG=\"${TK_LIB_FLAG}\""
+    eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\""
+    eval "TK_STUB_LIB_FLAG=\"${TK_STUB_LIB_FLAG}\""
+    eval "TK_STUB_LIB_SPEC=\"${TK_STUB_LIB_SPEC}\""
+
+    # TEA specific: Ensure windowingsystem is defined
+    if test "${TEA_PLATFORM}" = "unix" ; then
+       case ${TK_DEFS} in
+           *MAC_OSX_TK*)
+               AC_DEFINE(MAC_OSX_TK, 1, [Are we building against Mac OS X TkAqua?])
+               TEA_WINDOWINGSYSTEM="aqua"
+               ;;
+           *)
+               TEA_WINDOWINGSYSTEM="x11"
+               ;;
+       esac
+    elif test "${TEA_PLATFORM}" = "windows" ; then
+       TEA_WINDOWINGSYSTEM="win32"
+    fi
+
+    AC_SUBST(TK_VERSION)
+    AC_SUBST(TK_BIN_DIR)
+    AC_SUBST(TK_SRC_DIR)
+
+    AC_SUBST(TK_LIB_FILE)
+    AC_SUBST(TK_LIB_FLAG)
+    AC_SUBST(TK_LIB_SPEC)
+
+    AC_SUBST(TK_STUB_LIB_FILE)
+    AC_SUBST(TK_STUB_LIB_FLAG)
+    AC_SUBST(TK_STUB_LIB_SPEC)
+
+    # TEA specific:
+    AC_SUBST(TK_LIBS)
+    AC_SUBST(TK_XINCLUDES)
+])
+
+#------------------------------------------------------------------------
+# TEA_PROG_TCLSH
+#      Determine the fully qualified path name of the tclsh executable
+#      in the Tcl build directory or the tclsh installed in a bin
+#      directory. This macro will correctly determine the name
+#      of the tclsh executable even if tclsh has not yet been
+#      built in the build directory. The tclsh found is always
+#      associated with a tclConfig.sh file. This tclsh should be used
+#      only for running extension test cases. It should never be
+#      or generation of files (like pkgIndex.tcl) at build time.
+#
+# Arguments
+#      none
+#
+# Results
+#      Subst's the following values:
+#              TCLSH_PROG
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_PROG_TCLSH], [
+    AC_MSG_CHECKING([for tclsh])
+    if test -f "${TCL_BIN_DIR}/Makefile" ; then
+        # tclConfig.sh is in Tcl build directory
+        if test "${TEA_PLATFORM}" = "windows"; then
+            TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
+        else
+            TCLSH_PROG="${TCL_BIN_DIR}/tclsh"
+        fi
+    else
+        # tclConfig.sh is in install location
+        if test "${TEA_PLATFORM}" = "windows"; then
+            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
+        else
+            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}"
+        fi
+        list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \
+              `ls -d ${TCL_BIN_DIR}/..     2>/dev/null` \
+              `ls -d ${TCL_PREFIX}/bin     2>/dev/null`"
+        for i in $list ; do
+            if test -f "$i/${TCLSH_PROG}" ; then
+                REAL_TCL_BIN_DIR="`cd "$i"; pwd`/"
+                break
+            fi
+        done
+        TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}"
+    fi
+    AC_MSG_RESULT([${TCLSH_PROG}])
+    AC_SUBST(TCLSH_PROG)
+])
+
+#------------------------------------------------------------------------
+# TEA_PROG_WISH
+#      Determine the fully qualified path name of the wish executable
+#      in the Tk build directory or the wish installed in a bin
+#      directory. This macro will correctly determine the name
+#      of the wish executable even if wish has not yet been
+#      built in the build directory. The wish found is always
+#      associated with a tkConfig.sh file. This wish should be used
+#      only for running extension test cases. It should never be
+#      or generation of files (like pkgIndex.tcl) at build time.
+#
+# Arguments
+#      none
+#
+# Results
+#      Subst's the following values:
+#              WISH_PROG
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_PROG_WISH], [
+    AC_MSG_CHECKING([for wish])
+    if test -f "${TK_BIN_DIR}/Makefile" ; then
+        # tkConfig.sh is in Tk build directory
+        if test "${TEA_PLATFORM}" = "windows"; then
+            WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}"
+        else
+            WISH_PROG="${TK_BIN_DIR}/wish"
+        fi
+    else
+        # tkConfig.sh is in install location
+        if test "${TEA_PLATFORM}" = "windows"; then
+            WISH_PROG="wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}"
+        else
+            WISH_PROG="wish${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_DBGX}"
+        fi
+        list="`ls -d ${TK_BIN_DIR}/../bin 2>/dev/null` \
+              `ls -d ${TK_BIN_DIR}/..     2>/dev/null` \
+              `ls -d ${TK_PREFIX}/bin     2>/dev/null`"
+        for i in $list ; do
+            if test -f "$i/${WISH_PROG}" ; then
+                REAL_TK_BIN_DIR="`cd "$i"; pwd`/"
+                break
+            fi
+        done
+        WISH_PROG="${REAL_TK_BIN_DIR}${WISH_PROG}"
+    fi
+    AC_MSG_RESULT([${WISH_PROG}])
+    AC_SUBST(WISH_PROG)
+])
+
+#------------------------------------------------------------------------
+# TEA_ENABLE_SHARED --
+#
+#      Allows the building of shared libraries
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --enable-shared=yes|no
+#
+#      Defines the following vars:
+#              STATIC_BUILD    Used for building import/export libraries
+#                              on Windows.
+#
+#      Sets the following vars:
+#              SHARED_BUILD    Value of 1 or 0
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_ENABLE_SHARED], [
+    AC_MSG_CHECKING([how to build libraries])
+    AC_ARG_ENABLE(shared,
+       AC_HELP_STRING([--enable-shared],
+           [build and link with shared libraries (default: on)]),
+       [tcl_ok=$enableval], [tcl_ok=yes])
+
+    if test "${enable_shared+set}" = set; then
+       enableval="$enable_shared"
+       tcl_ok=$enableval
+    else
+       tcl_ok=yes
+    fi
+
+    if test "$tcl_ok" = "yes" ; then
+       AC_MSG_RESULT([shared])
+       SHARED_BUILD=1
+    else
+       AC_MSG_RESULT([static])
+       SHARED_BUILD=0
+       AC_DEFINE(STATIC_BUILD, 1, [Is this a static build?])
+    fi
+    AC_SUBST(SHARED_BUILD)
+])
+
+#------------------------------------------------------------------------
+# TEA_ENABLE_THREADS --
+#
+#      Specify if thread support should be enabled.  If "yes" is specified
+#      as an arg (optional), threads are enabled by default, "no" means
+#      threads are disabled.  "yes" is the default.
+#
+#      TCL_THREADS is checked so that if you are compiling an extension
+#      against a threaded core, your extension must be compiled threaded
+#      as well.
+#
+#      Note that it is legal to have a thread enabled extension run in a
+#      threaded or non-threaded Tcl core, but a non-threaded extension may
+#      only run in a non-threaded Tcl core.
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --enable-threads
+#
+#      Sets the following vars:
+#              THREADS_LIBS    Thread library(s)
+#
+#      Defines the following vars:
+#              TCL_THREADS
+#              _REENTRANT
+#              _THREAD_SAFE
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_ENABLE_THREADS], [
+    AC_ARG_ENABLE(threads,
+       AC_HELP_STRING([--enable-threads],
+           [build with threads]),
+       [tcl_ok=$enableval], [tcl_ok=yes])
+
+    if test "${enable_threads+set}" = set; then
+       enableval="$enable_threads"
+       tcl_ok=$enableval
+    else
+       tcl_ok=yes
+    fi
+
+    if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
+       TCL_THREADS=1
+
+       if test "${TEA_PLATFORM}" != "windows" ; then
+           # We are always OK on Windows, so check what this platform wants:
+
+           # USE_THREAD_ALLOC tells us to try the special thread-based
+           # allocator that significantly reduces lock contention
+           AC_DEFINE(USE_THREAD_ALLOC, 1,
+               [Do we want to use the threaded memory allocator?])
+           AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?])
+           if test "`uname -s`" = "SunOS" ; then
+               AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1,
+                       [Do we really want to follow the standard? Yes we do!])
+           fi
+           AC_DEFINE(_THREAD_SAFE, 1, [Do we want the thread-safe OS API?])
+           AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no)
+           if test "$tcl_ok" = "no"; then
+               # Check a little harder for __pthread_mutex_init in the same
+               # library, as some systems hide it there until pthread.h is
+               # defined.  We could alternatively do an AC_TRY_COMPILE with
+               # pthread.h, but that will work with libpthread really doesn't
+               # exist, like AIX 4.2.  [Bug: 4359]
+               AC_CHECK_LIB(pthread, __pthread_mutex_init,
+                   tcl_ok=yes, tcl_ok=no)
+           fi
+
+           if test "$tcl_ok" = "yes"; then
+               # The space is needed
+               THREADS_LIBS=" -lpthread"
+           else
+               AC_CHECK_LIB(pthreads, pthread_mutex_init,
+                   tcl_ok=yes, tcl_ok=no)
+               if test "$tcl_ok" = "yes"; then
+                   # The space is needed
+                   THREADS_LIBS=" -lpthreads"
+               else
+                   AC_CHECK_LIB(c, pthread_mutex_init,
+                       tcl_ok=yes, tcl_ok=no)
+                   if test "$tcl_ok" = "no"; then
+                       AC_CHECK_LIB(c_r, pthread_mutex_init,
+                           tcl_ok=yes, tcl_ok=no)
+                       if test "$tcl_ok" = "yes"; then
+                           # The space is needed
+                           THREADS_LIBS=" -pthread"
+                       else
+                           TCL_THREADS=0
+                           AC_MSG_WARN([Do not know how to find pthread lib on your system - thread support disabled])
+                       fi
+                   fi
+               fi
+           fi
+       fi
+    else
+       TCL_THREADS=0
+    fi
+    # Do checking message here to not mess up interleaved configure output
+    AC_MSG_CHECKING([for building with threads])
+    if test "${TCL_THREADS}" = 1; then
+       AC_DEFINE(TCL_THREADS, 1, [Are we building with threads enabled?])
+       AC_MSG_RESULT([yes (default)])
+    else
+       AC_MSG_RESULT([no])
+    fi
+    # TCL_THREADS sanity checking.  See if our request for building with
+    # threads is the same as the way Tcl was built.  If not, warn the user.
+    case ${TCL_DEFS} in
+       *THREADS=1*)
+           if test "${TCL_THREADS}" = "0"; then
+               AC_MSG_WARN([
+    Building ${PACKAGE_NAME} without threads enabled, but building against Tcl
+    that IS thread-enabled.  It is recommended to use --enable-threads.])
+           fi
+           ;;
+       *)
+           if test "${TCL_THREADS}" = "1"; then
+               AC_MSG_WARN([
+    --enable-threads requested, but building against a Tcl that is NOT
+    thread-enabled.  This is an OK configuration that will also run in
+    a thread-enabled core.])
+           fi
+           ;;
+    esac
+    AC_SUBST(TCL_THREADS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ENABLE_SYMBOLS --
+#
+#      Specify if debugging symbols should be used.
+#      Memory (TCL_MEM_DEBUG) debugging can also be enabled.
+#
+# Arguments:
+#      none
+#
+#      TEA varies from core Tcl in that C|LDFLAGS_DEFAULT receives
+#      the value of C|LDFLAGS_OPTIMIZE|DEBUG already substituted.
+#      Requires the following vars to be set in the Makefile:
+#              CFLAGS_DEFAULT
+#              LDFLAGS_DEFAULT
+#
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --enable-symbols
+#
+#      Defines the following vars:
+#              CFLAGS_DEFAULT  Sets to $(CFLAGS_DEBUG) if true
+#                              Sets to $(CFLAGS_OPTIMIZE) if false
+#              LDFLAGS_DEFAULT Sets to $(LDFLAGS_DEBUG) if true
+#                              Sets to $(LDFLAGS_OPTIMIZE) if false
+#              DBGX            Formerly used as debug library extension;
+#                              always blank now.
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_ENABLE_SYMBOLS], [
+    dnl TEA specific: Make sure we are initialized
+    AC_REQUIRE([TEA_CONFIG_CFLAGS])
+    AC_MSG_CHECKING([for build with symbols])
+    AC_ARG_ENABLE(symbols,
+       AC_HELP_STRING([--enable-symbols],
+           [build with debugging symbols (default: off)]),
+       [tcl_ok=$enableval], [tcl_ok=no])
+    DBGX=""
+    if test "$tcl_ok" = "no"; then
+       CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
+       LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
+       AC_MSG_RESULT([no])
+    else
+       CFLAGS_DEFAULT="${CFLAGS_DEBUG}"
+       LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}"
+       if test "$tcl_ok" = "yes"; then
+           AC_MSG_RESULT([yes (standard debugging)])
+       fi
+    fi
+    # TEA specific:
+    if test "${TEA_PLATFORM}" != "windows" ; then
+       LDFLAGS_DEFAULT="${LDFLAGS}"
+    fi
+    AC_SUBST(CFLAGS_DEFAULT)
+    AC_SUBST(LDFLAGS_DEFAULT)
+    AC_SUBST(TCL_DBGX)
+
+    if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then
+       AC_DEFINE(TCL_MEM_DEBUG, 1, [Is memory debugging enabled?])
+    fi
+
+    if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then
+       if test "$tcl_ok" = "all"; then
+           AC_MSG_RESULT([enabled symbols mem debugging])
+       else
+           AC_MSG_RESULT([enabled $tcl_ok debugging])
+       fi
+    fi
+])
+
+#------------------------------------------------------------------------
+# TEA_ENABLE_LANGINFO --
+#
+#      Allows use of modern nl_langinfo check for better l10n.
+#      This is only relevant for Unix.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --enable-langinfo=yes|no (default is yes)
+#
+#      Defines the following vars:
+#              HAVE_LANGINFO   Triggers use of nl_langinfo if defined.
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_ENABLE_LANGINFO], [
+    AC_ARG_ENABLE(langinfo,
+       AC_HELP_STRING([--enable-langinfo],
+           [use nl_langinfo if possible to determine encoding at startup, otherwise use old heuristic (default: on)]),
+       [langinfo_ok=$enableval], [langinfo_ok=yes])
+
+    HAVE_LANGINFO=0
+    if test "$langinfo_ok" = "yes"; then
+       AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no])
+    fi
+    AC_MSG_CHECKING([whether to use nl_langinfo])
+    if test "$langinfo_ok" = "yes"; then
+       AC_CACHE_VAL(tcl_cv_langinfo_h, [
+           AC_TRY_COMPILE([#include <langinfo.h>], [nl_langinfo(CODESET);],
+                   [tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])])
+       AC_MSG_RESULT([$tcl_cv_langinfo_h])
+       if test $tcl_cv_langinfo_h = yes; then
+           AC_DEFINE(HAVE_LANGINFO, 1, [Do we have nl_langinfo()?])
+       fi
+    else
+       AC_MSG_RESULT([$langinfo_ok])
+    fi
+])
+
+#--------------------------------------------------------------------
+# TEA_CONFIG_SYSTEM
+#
+#      Determine what the system is (some things cannot be easily checked
+#      on a feature-driven basis, alas). This can usually be done via the
+#      "uname" command, but there are a few systems, like Next, where
+#      this doesn't work.
+#
+# Arguments:
+#      none
+#
+# Results:
+#      Defines the following var:
+#
+#      system -        System/platform/version identification code.
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_CONFIG_SYSTEM], [
+    AC_CACHE_CHECK([system version], tcl_cv_sys_version, [
+       # TEA specific:
+       if test "${TEA_PLATFORM}" = "windows" ; then
+           tcl_cv_sys_version=windows
+       elif test -f /usr/lib/NextStep/software_version; then
+           tcl_cv_sys_version=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
+       else
+           tcl_cv_sys_version=`uname -s`-`uname -r`
+           if test "$?" -ne 0 ; then
+               AC_MSG_WARN([can't find uname command])
+               tcl_cv_sys_version=unknown
+           else
+               # Special check for weird MP-RAS system (uname returns weird
+               # results, and the version is kept in special file).
+
+               if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+                   tcl_cv_sys_version=MP-RAS-`awk '{print $[3]}' /etc/.relid`
+               fi
+               if test "`uname -s`" = "AIX" ; then
+                   tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+               fi
+           fi
+       fi
+    ])
+    system=$tcl_cv_sys_version
+])
+
+#--------------------------------------------------------------------
+# TEA_CONFIG_CFLAGS
+#
+#      Try to determine the proper flags to pass to the compiler
+#      for building shared libraries and other such nonsense.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Defines and substitutes the following vars:
+#
+#       DL_OBJS -       Name of the object file that implements dynamic
+#                       loading for Tcl on this system.
+#       DL_LIBS -       Library file(s) to include in tclsh and other base
+#                       applications in order for the "load" command to work.
+#       LDFLAGS -      Flags to pass to the compiler when linking object
+#                       files into an executable application binary such
+#                       as tclsh.
+#       LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib",
+#                       that tell the run-time dynamic linker where to look
+#                       for shared libraries such as libtcl.so.  Depends on
+#                       the variable LIB_RUNTIME_DIR in the Makefile. Could
+#                       be the same as CC_SEARCH_FLAGS if ${CC} is used to link.
+#       CC_SEARCH_FLAGS-Flags to pass to ${CC}, such as "-Wl,-rpath,/usr/local/tcl/lib",
+#                       that tell the run-time dynamic linker where to look
+#                       for shared libraries such as libtcl.so.  Depends on
+#                       the variable LIB_RUNTIME_DIR in the Makefile.
+#       SHLIB_CFLAGS -  Flags to pass to cc when compiling the components
+#                       of a shared library (may request position-independent
+#                       code, among other things).
+#       SHLIB_LD -      Base command to use for combining object files
+#                       into a shared library.
+#       SHLIB_LD_LIBS - Dependent libraries for the linker to scan when
+#                       creating shared libraries.  This symbol typically
+#                       goes at the end of the "ld" commands that build
+#                       shared libraries. The value of the symbol is
+#                       "${LIBS}" if all of the dependent libraries should
+#                       be specified when creating a shared library.  If
+#                       dependent libraries should not be specified (as on
+#                       SunOS 4.x, where they cause the link to fail, or in
+#                       general if Tcl and Tk aren't themselves shared
+#                       libraries), then this symbol has an empty string
+#                       as its value.
+#       SHLIB_SUFFIX -  Suffix to use for the names of dynamically loadable
+#                       extensions.  An empty string means we don't know how
+#                       to use shared libraries on this platform.
+#       LIB_SUFFIX -    Specifies everything that comes after the "libfoo"
+#                       in a static or shared library name, using the $VERSION variable
+#                       to put the version in the right place.  This is used
+#                       by platforms that need non-standard library names.
+#                       Examples:  ${VERSION}.so.1.1 on NetBSD, since it needs
+#                       to have a version after the .so, and ${VERSION}.a
+#                       on AIX, since a shared library needs to have
+#                       a .a extension whereas shared objects for loadable
+#                       extensions have a .so extension.  Defaults to
+#                       ${VERSION}${SHLIB_SUFFIX}.
+#       TCL_NEEDS_EXP_FILE -
+#                       1 means that an export file is needed to link to a
+#                       shared library.
+#       TCL_EXP_FILE -  The name of the installed export / import file which
+#                       should be used to link to the Tcl shared library.
+#                       Empty if Tcl is unshared.
+#       TCL_BUILD_EXP_FILE -
+#                       The name of the built export / import file which
+#                       should be used to link to the Tcl shared library.
+#                       Empty if Tcl is unshared.
+#      CFLAGS_DEBUG -
+#                      Flags used when running the compiler in debug mode
+#      CFLAGS_OPTIMIZE -
+#                      Flags used when running the compiler in optimize mode
+#      CFLAGS -        Additional CFLAGS added as necessary (usually 64-bit)
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_CONFIG_CFLAGS], [
+    dnl TEA specific: Make sure we are initialized
+    AC_REQUIRE([TEA_INIT])
+
+    # Step 0.a: Enable 64 bit support?
+
+    AC_MSG_CHECKING([if 64bit support is requested])
+    AC_ARG_ENABLE(64bit,
+       AC_HELP_STRING([--enable-64bit],
+           [enable 64bit support (default: off)]),
+       [do64bit=$enableval], [do64bit=no])
+    AC_MSG_RESULT([$do64bit])
+
+    # Step 0.b: Enable Solaris 64 bit VIS support?
+
+    AC_MSG_CHECKING([if 64bit Sparc VIS support is requested])
+    AC_ARG_ENABLE(64bit-vis,
+       AC_HELP_STRING([--enable-64bit-vis],
+           [enable 64bit Sparc VIS support (default: off)]),
+       [do64bitVIS=$enableval], [do64bitVIS=no])
+    AC_MSG_RESULT([$do64bitVIS])
+    # Force 64bit on with VIS
+    AS_IF([test "$do64bitVIS" = "yes"], [do64bit=yes])
+
+    # Step 0.c: Check if visibility support is available. Do this here so
+    # that platform specific alternatives can be used below if this fails.
+
+    AC_CACHE_CHECK([if compiler supports visibility "hidden"],
+       tcl_cv_cc_visibility_hidden, [
+       hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror"
+       AC_TRY_LINK([
+           extern __attribute__((__visibility__("hidden"))) void f(void);
+           void f(void) {}], [f();], tcl_cv_cc_visibility_hidden=yes,
+           tcl_cv_cc_visibility_hidden=no)
+       CFLAGS=$hold_cflags])
+    AS_IF([test $tcl_cv_cc_visibility_hidden = yes], [
+       AC_DEFINE(MODULE_SCOPE,
+           [extern __attribute__((__visibility__("hidden")))],
+           [Compiler support for module scope symbols])
+    ])
+
+    # Step 0.d: Disable -rpath support?
+
+    AC_MSG_CHECKING([if rpath support is requested])
+    AC_ARG_ENABLE(rpath,
+       AC_HELP_STRING([--disable-rpath],
+           [disable rpath support (default: on)]),
+       [doRpath=$enableval], [doRpath=yes])
+    AC_MSG_RESULT([$doRpath])
+
+    # TEA specific: Cross-compiling options for Windows/CE builds?
+
+    AS_IF([test "${TEA_PLATFORM}" = windows], [
+       AC_MSG_CHECKING([if Windows/CE build is requested])
+       AC_ARG_ENABLE(wince,
+           AC_HELP_STRING([--enable-wince],
+               [enable Win/CE support (where applicable)]),
+           [doWince=$enableval], [doWince=no])
+       AC_MSG_RESULT([$doWince])
+    ])
+
+    # Step 1: set the variable "system" to hold the name and version number
+    # for the system.
+
+    TEA_CONFIG_SYSTEM
+
+    # Step 2: check for existence of -ldl library.  This is needed because
+    # Linux can use either -ldl or -ldld for dynamic loading.
+
+    AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no)
+
+    # Require ranlib early so we can override it in special cases below.
+
+    AC_REQUIRE([AC_PROG_RANLIB])
+
+    # Step 3: set configuration options based on system name and version.
+    # This is similar to Tcl's unix/tcl.m4 except that we've added a
+    # "windows" case.
+
+    do64bit_ok=no
+    LDFLAGS_ORIG="$LDFLAGS"
+    # When ld needs options to work in 64-bit mode, put them in
+    # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load]
+    # is disabled by the user. [Bug 1016796]
+    LDFLAGS_ARCH=""
+    TCL_EXPORT_FILE_SUFFIX=""
+    UNSHARED_LIB_SUFFIX=""
+    # TEA specific: use PACKAGE_VERSION instead of VERSION
+    TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`'
+    ECHO_VERSION='`echo ${PACKAGE_VERSION}`'
+    TCL_LIB_VERSIONS_OK=ok
+    CFLAGS_DEBUG=-g
+    CFLAGS_OPTIMIZE=-O
+    AS_IF([test "$GCC" = yes], [
+       # TEA specific:
+       CFLAGS_OPTIMIZE=-O2
+       CFLAGS_WARNING="-Wall"
+    ], [CFLAGS_WARNING=""])
+    TCL_NEEDS_EXP_FILE=0
+    TCL_BUILD_EXP_FILE=""
+    TCL_EXP_FILE=""
+dnl FIXME: Replace AC_CHECK_PROG with AC_CHECK_TOOL once cross compiling is fixed.
+dnl AC_CHECK_TOOL(AR, ar)
+    AC_CHECK_PROG(AR, ar, ar)
+    STLIB_LD='${AR} cr'
+    LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"
+    AS_IF([test "x$SHLIB_VERSION" = x],[SHLIB_VERSION="1.0"])
+    case $system in
+       # TEA specific:
+       windows)
+           # This is a 2-stage check to make sure we have the 64-bit SDK
+           # We have to know where the SDK is installed.
+           # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs
+           # MACHINE is IX86 for LINK, but this is used by the manifest,
+           # which requires x86|amd64|ia64.
+           MACHINE="X86"
+           if test "$do64bit" != "no" ; then
+               if test "x${MSSDK}x" = "xx" ; then
+                   MSSDK="C:/Progra~1/Microsoft Platform SDK"
+               fi
+               MSSDK=`echo "$MSSDK" | sed -e  's!\\\!/!g'`
+               PATH64=""
+               case "$do64bit" in
+                   amd64|x64|yes)
+                       MACHINE="AMD64" ; # default to AMD64 64-bit build
+                       PATH64="${MSSDK}/Bin/Win64/x86/AMD64"
+                       ;;
+                   ia64)
+                       MACHINE="IA64"
+                       PATH64="${MSSDK}/Bin/Win64"
+                       ;;
+               esac
+               if test ! -d "${PATH64}" ; then
+                   AC_MSG_WARN([Could not find 64-bit $MACHINE SDK to enable 64bit mode])
+                   AC_MSG_WARN([Ensure latest Platform SDK is installed])
+                   do64bit="no"
+               else
+                   AC_MSG_RESULT([   Using 64-bit $MACHINE mode])
+                   do64bit_ok="yes"
+               fi
+           fi
+
+           if test "$doWince" != "no" ; then
+               if test "$do64bit" != "no" ; then
+                   AC_MSG_ERROR([Windows/CE and 64-bit builds incompatible])
+               fi
+               if test "$GCC" = "yes" ; then
+                   AC_MSG_ERROR([Windows/CE and GCC builds incompatible])
+               fi
+               TEA_PATH_CELIB
+               # Set defaults for common evc4/PPC2003 setup
+               # Currently Tcl requires 300+, possibly 420+ for sockets
+               CEVERSION=420;          # could be 211 300 301 400 420 ...
+               TARGETCPU=ARMV4;        # could be ARMV4 ARM MIPS SH3 X86 ...
+               ARCH=ARM;               # could be ARM MIPS X86EM ...
+               PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002"
+               if test "$doWince" != "yes"; then
+                   # If !yes then the user specified something
+                   # Reset ARCH to allow user to skip specifying it
+                   ARCH=
+                   eval `echo $doWince | awk -F, '{ \
+           if (length([$]1)) { printf "CEVERSION=\"%s\"\n", [$]1; \
+           if ([$]1 < 400)   { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \
+           if (length([$]2)) { printf "TARGETCPU=\"%s\"\n", toupper([$]2) }; \
+           if (length([$]3)) { printf "ARCH=\"%s\"\n", toupper([$]3) }; \
+           if (length([$]4)) { printf "PLATFORM=\"%s\"\n", [$]4 }; \
+                   }'`
+                   if test "x${ARCH}" = "x" ; then
+                       ARCH=$TARGETCPU;
+                   fi
+               fi
+               OSVERSION=WCE$CEVERSION;
+               if test "x${WCEROOT}" = "x" ; then
+                       WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0"
+                   if test ! -d "${WCEROOT}" ; then
+                       WCEROOT="C:/Program Files/Microsoft eMbedded Tools"
+                   fi
+               fi
+               if test "x${SDKROOT}" = "x" ; then
+                   SDKROOT="C:/Program Files/Windows CE Tools"
+                   if test ! -d "${SDKROOT}" ; then
+                       SDKROOT="C:/Windows CE Tools"
+                   fi
+               fi
+               WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'`
+               SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'`
+               if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \
+                   -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then
+                   AC_MSG_ERROR([could not find PocketPC SDK or target compiler to enable WinCE mode [$CEVERSION,$TARGETCPU,$ARCH,$PLATFORM]])
+                   doWince="no"
+               else
+                   # We could PATH_NOSPACE these, but that's not important,
+                   # as long as we quote them when used.
+                   CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include"
+                   if test -d "${CEINCLUDE}/${TARGETCPU}" ; then
+                       CEINCLUDE="${CEINCLUDE}/${TARGETCPU}"
+                   fi
+                   CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}"
+               fi
+           fi
+
+           if test "$GCC" != "yes" ; then
+               if test "${SHARED_BUILD}" = "0" ; then
+                   runtime=-MT
+               else
+                   runtime=-MD
+               fi
+
+                if test "$do64bit" != "no" ; then
+                   # All this magic is necessary for the Win64 SDK RC1 - hobbs
+                   CC="\"${PATH64}/cl.exe\""
+                   CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\""
+                   RC="\"${MSSDK}/bin/rc.exe\""
+                   lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
+                   LINKBIN="\"${PATH64}/link.exe\""
+                   CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"
+                   CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+                   # Avoid 'unresolved external symbol __security_cookie'
+                   # errors, c.f. http://support.microsoft.com/?id=894573
+                   TEA_ADD_LIBS([bufferoverflowU.lib])
+               elif test "$doWince" != "no" ; then
+                   CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin"
+                   if test "${TARGETCPU}" = "X86"; then
+                       CC="\"${CEBINROOT}/cl.exe\""
+                   else
+                       CC="\"${CEBINROOT}/cl${ARCH}.exe\""
+                   fi
+                   CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\""
+                   RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\""
+                   arch=`echo ${ARCH} | awk '{print tolower([$]0)}'`
+                   defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS"
+                   if test "${SHARED_BUILD}" = "1" ; then
+                       # Static CE builds require static celib as well
+                       defs="${defs} _DLL"
+                   fi
+                   for i in $defs ; do
+                       AC_DEFINE_UNQUOTED($i, 1, [WinCE def ]$i)
+                   done
+                   AC_DEFINE_UNQUOTED(_WIN32_WCE, $CEVERSION, [_WIN32_WCE version])
+                   AC_DEFINE_UNQUOTED(UNDER_CE, $CEVERSION, [UNDER_CE version])
+                   CFLAGS_DEBUG="-nologo -Zi -Od"
+                   CFLAGS_OPTIMIZE="-nologo -Ox"
+                   lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'`
+                   lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo"
+                   LINKBIN="\"${CEBINROOT}/link.exe\""
+                   AC_SUBST(CELIB_DIR)
+               else
+                   RC="rc"
+                   lflags="-nologo"
+                   LINKBIN="link"
+                   CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d"
+                   CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+               fi
+           fi
+
+           if test "$GCC" = "yes"; then
+               # mingw gcc mode
+               RC="windres"
+               CFLAGS_DEBUG="-g"
+               CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer"
+               SHLIB_LD="$CC -shared"
+               UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+               LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}"
+               LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}"
+           else
+               SHLIB_LD="${LINKBIN} -dll ${lflags}"
+               # link -lib only works when -lib is the first arg
+               STLIB_LD="${LINKBIN} -lib ${lflags}"
+               UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.lib'
+               PATHTYPE=-w
+               # For information on what debugtype is most useful, see:
+               # http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp
+               # and also
+               # http://msdn2.microsoft.com/en-us/library/y0zzbyt4%28VS.80%29.aspx
+               # This essentially turns it all on.
+               LDFLAGS_DEBUG="-debug -debugtype:cv"
+               LDFLAGS_OPTIMIZE="-release"
+               if test "$doWince" != "no" ; then
+                   LDFLAGS_CONSOLE="-link ${lflags}"
+                   LDFLAGS_WINDOW=${LDFLAGS_CONSOLE}
+               else
+                   LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}"
+                   LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}"
+               fi
+           fi
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".dll"
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll'
+
+           TCL_LIB_VERSIONS_OK=nodots
+           # Bogus to avoid getting this turned off
+           DL_OBJS="tclLoadNone.obj"
+           ;;
+       AIX-*)
+           AS_IF([test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"], [
+               # AIX requires the _r compiler when gcc isn't being used
+               case "${CC}" in
+                   *_r|*_r\ *)
+                       # ok ...
+                       ;;
+                   *)
+                       # Make sure only first arg gets _r
+                       CC=`echo "$CC" | sed -e 's/^\([[^ ]]*\)/\1_r/'`
+                       ;;
+               esac
+               AC_MSG_RESULT([Using $CC for compiling with threads])
+           ])
+           LIBS="$LIBS -lc"
+           SHLIB_CFLAGS=""
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           DL_OBJS="tclLoadDl.o"
+           LD_LIBRARY_PATH_VAR="LIBPATH"
+
+           # Check to enable 64-bit flags for compiler/linker on AIX 4+
+           AS_IF([test "$do64bit" = yes -a "`uname -v`" -gt 3], [
+               AS_IF([test "$GCC" = yes], [
+                   AC_MSG_WARN([64bit mode not supported with GCC on $system])
+               ], [
+                   do64bit_ok=yes
+                   CFLAGS="$CFLAGS -q64"
+                   LDFLAGS_ARCH="-q64"
+                   RANLIB="${RANLIB} -X64"
+                   AR="${AR} -X64"
+                   SHLIB_LD_FLAGS="-b64"
+               ])
+           ])
+
+           AS_IF([test "`uname -m`" = ia64], [
+               # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC
+               SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+               # AIX-5 has dl* in libc.so
+               DL_LIBS=""
+               AS_IF([test "$GCC" = yes], [
+                   CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               ], [
+                   CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
+               ])
+               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+           ], [
+               AS_IF([test "$GCC" = yes], [SHLIB_LD='${CC} -shared'], [
+                   SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry"
+               ])
+               SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}"
+               DL_LIBS="-ldl"
+               CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+               TCL_NEEDS_EXP_FILE=1
+               # TEA specific: use PACKAGE_VERSION instead of VERSION
+               TCL_EXPORT_FILE_SUFFIX='${PACKAGE_VERSION}.exp'
+           ])
+
+           # AIX v<=4.1 has some different flags than 4.2+
+           AS_IF([test "$system" = "AIX-4.1" -o "`uname -v`" -lt 4], [
+               AC_LIBOBJ([tclLoadAix])
+               DL_LIBS="-lld"
+           ])
+
+           # On AIX <=v4 systems, libbsd.a has to be linked in to support
+           # non-blocking file IO.  This library has to be linked in after
+           # the MATH_LIBS or it breaks the pow() function.  The way to
+           # insure proper sequencing, is to add it to the tail of MATH_LIBS.
+           # This library also supplies gettimeofday.
+           #
+           # AIX does not have a timezone field in struct tm. When the AIX
+           # bsd library is used, the timezone global and the gettimeofday
+           # methods are to be avoided for timezone deduction instead, we
+           # deduce the timezone by comparing the localtime result on a
+           # known GMT value.
+
+           AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes, libbsd=no)
+           AS_IF([test $libbsd = yes], [
+               MATH_LIBS="$MATH_LIBS -lbsd"
+               AC_DEFINE(USE_DELTA_FOR_TZ, 1, [Do we need a special AIX hack for timezones?])
+           ])
+           ;;
+       BeOS*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD='${CC} -nostart'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+
+           #-----------------------------------------------------------
+           # Check for inet_ntoa in -lbind, for BeOS (which also needs
+           # -lsocket, even if the network functions are in -lnet which
+           # is always linked to, for compatibility.
+           #-----------------------------------------------------------
+           AC_CHECK_LIB(bind, inet_ntoa, [LIBS="$LIBS -lbind -lsocket"])
+           ;;
+       BSD/OS-2.1*|BSD/OS-3*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="shlicc -r"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       BSD/OS-4.*)
+           SHLIB_CFLAGS="-export-dynamic -fPIC"
+           SHLIB_LD='${CC} -shared'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -export-dynamic"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       dgux*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       HP-UX-*.11.*)
+           # Use updated header definitions where possible
+           AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Do we want to use the XOPEN network library?])
+           # TEA specific: Needed by Tcl, but not most extensions
+           #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?])
+           #LIBS="$LIBS -lxnet"               # Use the XOPEN network library
+
+           AS_IF([test "`uname -m`" = ia64], [
+               SHLIB_SUFFIX=".so"
+               # Use newer C++ library for C++ extensions
+               #if test "$GCC" != "yes" ; then
+               #   CPPFLAGS="-AA"
+               #fi
+           ], [
+               SHLIB_SUFFIX=".sl"
+           ])
+           AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no)
+           AS_IF([test "$tcl_ok" = yes], [
+               SHLIB_LD_LIBS='${LIBS}'
+               DL_OBJS="tclLoadShl.o"
+               DL_LIBS="-ldld"
+               LDFLAGS="$LDFLAGS -E"
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
+               LD_LIBRARY_PATH_VAR="SHLIB_PATH"
+           ])
+           AS_IF([test "$GCC" = yes], [
+               SHLIB_LD='${CC} -shared'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           ], [
+               CFLAGS="$CFLAGS -z"
+               # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc
+               #CFLAGS="$CFLAGS +DAportable"
+               SHLIB_CFLAGS="+z"
+               SHLIB_LD="ld -b"
+           ])
+
+           # Check to enable 64-bit flags for compiler/linker
+           AS_IF([test "$do64bit" = "yes"], [
+               AS_IF([test "$GCC" = yes], [
+                   case `${CC} -dumpmachine` in
+                       hppa64*)
+                           # 64-bit gcc in use.  Fix flags for GNU ld.
+                           do64bit_ok=yes
+                           SHLIB_LD='${CC} -shared'
+                           SHLIB_LD_LIBS='${LIBS}'
+                           AS_IF([test $doRpath = yes], [
+                               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
+                           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+                           ;;
+                       *)
+                           AC_MSG_WARN([64bit mode not supported with GCC on $system])
+                           ;;
+                   esac
+               ], [
+                   do64bit_ok=yes
+                   CFLAGS="$CFLAGS +DD64"
+                   LDFLAGS_ARCH="+DD64"
+               ])
+           ]) ;;
+       HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*)
+           SHLIB_SUFFIX=".sl"
+           AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no)
+           AS_IF([test "$tcl_ok" = yes], [
+               SHLIB_CFLAGS="+z"
+               SHLIB_LD="ld -b"
+               SHLIB_LD_LIBS=""
+               DL_OBJS="tclLoadShl.o"
+               DL_LIBS="-ldld"
+               LDFLAGS="$LDFLAGS -Wl,-E"
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
+               LD_LIBRARY_PATH_VAR="SHLIB_PATH"
+           ]) ;;
+       IRIX-5.*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -shared -rdata_shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           AS_IF([test $doRpath = yes], [
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])
+           ;;
+       IRIX-6.*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -n32 -shared -rdata_shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           AS_IF([test $doRpath = yes], [
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])
+           AS_IF([test "$GCC" = yes], [
+               CFLAGS="$CFLAGS -mabi=n32"
+               LDFLAGS="$LDFLAGS -mabi=n32"
+           ], [
+               case $system in
+                   IRIX-6.3)
+                       # Use to build 6.2 compatible binaries on 6.3.
+                       CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS"
+                       ;;
+                   *)
+                       CFLAGS="$CFLAGS -n32"
+                       ;;
+               esac
+               LDFLAGS="$LDFLAGS -n32"
+           ])
+           ;;
+       IRIX64-6.*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -n32 -shared -rdata_shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           AS_IF([test $doRpath = yes], [
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])
+
+           # Check to enable 64-bit flags for compiler/linker
+
+           AS_IF([test "$do64bit" = yes], [
+               AS_IF([test "$GCC" = yes], [
+                   AC_MSG_WARN([64bit mode not supported by gcc])
+               ], [
+                   do64bit_ok=yes
+                   SHLIB_LD="ld -64 -shared -rdata_shared"
+                   CFLAGS="$CFLAGS -64"
+                   LDFLAGS_ARCH="-64"
+               ])
+           ])
+           ;;
+       Linux*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           # TEA specific:
+           CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer"
+           # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
+           # when you inline the string and math operations.  Turn this off to
+           # get rid of the warnings.
+           #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+
+           # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
+           SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS_DEFAULT}'
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           AS_IF([test $doRpath = yes], [
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"])
+           AS_IF([test $do64bit = yes], [
+               AC_CACHE_CHECK([if compiler accepts -m64 flag], tcl_cv_cc_m64, [
+                   hold_cflags=$CFLAGS
+                   CFLAGS="$CFLAGS -m64"
+                   AC_TRY_LINK(,, tcl_cv_cc_m64=yes, tcl_cv_cc_m64=no)
+                   CFLAGS=$hold_cflags])
+               AS_IF([test $tcl_cv_cc_m64 = yes], [
+                   CFLAGS="$CFLAGS -m64"
+                   do64bit_ok=yes
+               ])
+          ])
+
+           # The combo of gcc + glibc has a bug related to inlining of
+           # functions like strtod(). The -fno-builtin flag should address
+           # this problem but it does not work. The -fno-inline flag is kind
+           # of overkill but it works. Disable inlining only when one of the
+           # files in compat/*.c is being linked in.
+
+           AS_IF([test x"${USE_COMPAT}" != x],[CFLAGS="$CFLAGS -fno-inline"])
+
+           ;;
+       GNU*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           SHLIB_LD='${CC} -shared'
+           DL_OBJS=""
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"])
+           ;;
+       Lynx*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           CFLAGS_OPTIMIZE=-02
+           SHLIB_LD='${CC} -shared'
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-mshared -ldl"
+           LD_FLAGS="-Wl,--export-dynamic"
+           AS_IF([test $doRpath = yes], [
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
+           ;;
+       MP-RAS-02*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       MP-RAS-*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,-Bexport"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       NetBSD-1.*|FreeBSD-[[1-2]].*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           AS_IF([test $doRpath = yes], [
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])
+           AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [
+               AC_EGREP_CPP(yes, [
+#ifdef __ELF__
+       yes
+#endif
+               ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)])
+           AS_IF([test $tcl_cv_ld_elf = yes], [
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+           ], [
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
+           ])
+
+           # Ancient FreeBSD doesn't handle version numbers with dots.
+
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       OpenBSD-*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           AS_IF([test $doRpath = yes], [
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
+           AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [
+               AC_EGREP_CPP(yes, [
+#ifdef __ELF__
+       yes
+#endif
+               ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)])
+           AS_IF([test $tcl_cv_ld_elf = yes], [
+               LDFLAGS=-Wl,-export-dynamic
+           ], [LDFLAGS=""])
+
+           # OpenBSD doesn't do version numbers with dots.
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       NetBSD-*|FreeBSD-*)
+           # FreeBSD 3.* and greater have ELF.
+           # NetBSD 2.* has ELF and can use 'cc -shared' to build shared libs
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           LDFLAGS="$LDFLAGS -export-dynamic"
+           AS_IF([test $doRpath = yes], [
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           AS_IF([test "${TCL_THREADS}" = "1"], [
+               # The -pthread needs to go in the CFLAGS, not LIBS
+               LIBS=`echo $LIBS | sed s/-pthread//`
+               CFLAGS="$CFLAGS -pthread"
+               LDFLAGS="$LDFLAGS -pthread"
+           ])
+           case $system in
+           FreeBSD-3.*)
+               # FreeBSD-3 doesn't handle version numbers with dots.
+               UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+               TCL_LIB_VERSIONS_OK=nodots
+               ;;
+           esac
+           ;;
+       Darwin-*)
+           CFLAGS_OPTIMIZE="-Os"
+           SHLIB_CFLAGS="-fno-common"
+           # To avoid discrepancies between what headers configure sees during
+           # preprocessing tests and compiling tests, move any -isysroot and
+           # -mmacosx-version-min flags from CFLAGS to CPPFLAGS:
+           CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \
+               awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \
+               if ([$]i~/^(isysroot|mmacosx-version-min)/) print "-"[$]i}'`"
+           CFLAGS="`echo " ${CFLAGS}" | \
+               awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \
+               if (!([$]i~/^(isysroot|mmacosx-version-min)/)) print "-"[$]i}'`"
+           AS_IF([test $do64bit = yes], [
+               case `arch` in
+                   ppc)
+                       AC_CACHE_CHECK([if compiler accepts -arch ppc64 flag],
+                               tcl_cv_cc_arch_ppc64, [
+                           hold_cflags=$CFLAGS
+                           CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
+                           AC_TRY_LINK(,, tcl_cv_cc_arch_ppc64=yes,
+                                   tcl_cv_cc_arch_ppc64=no)
+                           CFLAGS=$hold_cflags])
+                       AS_IF([test $tcl_cv_cc_arch_ppc64 = yes], [
+                           CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
+                           do64bit_ok=yes
+                       ]);;
+                   i386)
+                       AC_CACHE_CHECK([if compiler accepts -arch x86_64 flag],
+                               tcl_cv_cc_arch_x86_64, [
+                           hold_cflags=$CFLAGS
+                           CFLAGS="$CFLAGS -arch x86_64"
+                           AC_TRY_LINK(,, tcl_cv_cc_arch_x86_64=yes,
+                                   tcl_cv_cc_arch_x86_64=no)
+                           CFLAGS=$hold_cflags])
+                       AS_IF([test $tcl_cv_cc_arch_x86_64 = yes], [
+                           CFLAGS="$CFLAGS -arch x86_64"
+                           do64bit_ok=yes
+                       ]);;
+                   *)
+                       AC_MSG_WARN([Don't know how enable 64-bit on architecture `arch`]);;
+               esac
+           ], [
+               # Check for combined 32-bit and 64-bit fat build
+               AS_IF([echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \
+                   && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '], [
+                   fat_32_64=yes])
+           ])
+           # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
+           SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}'
+           AC_CACHE_CHECK([if ld accepts -single_module flag], tcl_cv_ld_single_module, [
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module"
+               AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no)
+               LDFLAGS=$hold_ldflags])
+           AS_IF([test $tcl_cv_ld_single_module = yes], [
+               SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
+           ])
+           # TEA specific: link shlib with current and compatiblity version flags
+           vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([[0-9]]\{1,5\}\)\(\(\.[[0-9]]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d`
+           SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".dylib"
+           DL_OBJS="tclLoadDyld.o"
+           DL_LIBS=""
+           # Don't use -prebind when building for Mac OS X 10.4 or later only:
+           AS_IF([test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \
+               "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int([$]2)}'`" -lt 4], [
+               LDFLAGS="$LDFLAGS -prebind"])
+           LDFLAGS="$LDFLAGS -headerpad_max_install_names"
+           AC_CACHE_CHECK([if ld accepts -search_paths_first flag],
+                   tcl_cv_ld_search_paths_first, [
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+               AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes,
+                       tcl_cv_ld_search_paths_first=no)
+               LDFLAGS=$hold_ldflags])
+           AS_IF([test $tcl_cv_ld_search_paths_first = yes], [
+               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+           ])
+           AS_IF([test "$tcl_cv_cc_visibility_hidden" != yes], [
+               AC_DEFINE(MODULE_SCOPE, [__private_extern__],
+                   [Compiler support for module scope symbols])
+           ])
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
+           # TEA specific: for combined 32 & 64 bit fat builds of Tk
+           # extensions, verify that 64-bit build is possible.
+           AS_IF([test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}"], [
+               AS_IF([test "${TEA_WINDOWINGSYSTEM}" = x11], [
+                   AC_CACHE_CHECK([for 64-bit X11], tcl_cv_lib_x11_64, [
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
+                       done
+                       CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include"
+                       LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
+                       AC_TRY_LINK([#include <X11/Xlib.h>], [XrmInitialize();],
+                           tcl_cv_lib_x11_64=yes, tcl_cv_lib_x11_64=no)
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval $v'="$hold_'$v'"'
+                       done])
+               ])
+               AS_IF([test "${TEA_WINDOWINGSYSTEM}" = aqua], [
+                   AC_CACHE_CHECK([for 64-bit Tk], tcl_cv_lib_tk_64, [
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
+                       done
+                       CPPFLAGS="$CPPFLAGS -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 ${TCL_INCLUDES} ${TK_INCLUDES}"
+                       LDFLAGS="$LDFLAGS ${TCL_STUB_LIB_SPEC} ${TK_STUB_LIB_SPEC}"
+                       AC_TRY_LINK([#include <tk.h>], [Tk_InitStubs(NULL, "", 0);],
+                           tcl_cv_lib_tk_64=yes, tcl_cv_lib_tk_64=no)
+                       for v in CFLAGS CPPFLAGS LDFLAGS; do
+                           eval $v'="$hold_'$v'"'
+                       done])
+               ])
+               # remove 64-bit arch flags from CFLAGS et al. if configuration
+               # does not support 64-bit.
+               AS_IF([test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no], [
+                   AC_MSG_NOTICE([Removing 64-bit architectures from compiler & linker flags])
+                   for v in CFLAGS CPPFLAGS LDFLAGS; do
+                       eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"'
+                   done])
+           ])
+           ;;
+       NEXTSTEP-*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD='${CC} -nostdlib -r'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadNext.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OS/390-*)
+           CFLAGS_OPTIMIZE=""          # Optimizer is buggy
+           AC_DEFINE(_OE_SOCKETS, 1,   # needed in sys/socket.h
+               [Should OS/390 do the right thing with sockets?])
+           ;;
+       OSF1-1.0|OSF1-1.1|OSF1-1.2)
+           # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1
+           SHLIB_CFLAGS=""
+           # Hack: make package name same as library name
+           SHLIB_LD='ld -R -export $@:'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadOSF.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OSF1-1.*)
+           # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2
+           SHLIB_CFLAGS="-fPIC"
+           AS_IF([test "$SHARED_BUILD" = 1], [SHLIB_LD="ld -shared"], [
+               SHLIB_LD="ld -non_shared"
+           ])
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OSF1-V*)
+           # Digital OSF/1
+           SHLIB_CFLAGS=""
+           AS_IF([test "$SHARED_BUILD" = 1], [
+               SHLIB_LD='ld -shared -expect_unresolved "*"'
+           ], [
+               SHLIB_LD='ld -non_shared -expect_unresolved "*"'
+           ])
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           AS_IF([test $doRpath = yes], [
+               CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])
+           AS_IF([test "$GCC" = yes], [CFLAGS="$CFLAGS -mieee"], [
+               CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee"])
+           # see pthread_intro(3) for pthread support on osf1, k.furukawa
+           AS_IF([test "${TCL_THREADS}" = 1], [
+               CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE"
+               CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64"
+               LIBS=`echo $LIBS | sed s/-lpthreads//`
+               AS_IF([test "$GCC" = yes], [
+                   LIBS="$LIBS -lpthread -lmach -lexc"
+               ], [
+                   CFLAGS="$CFLAGS -pthread"
+                   LDFLAGS="$LDFLAGS -pthread"
+               ])
+           ])
+           ;;
+       QNX-6*)
+           # QNX RTP
+           # This may work for all QNX, but it was only reported for v6.
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           # dlopen is in -lc on QNX
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       SCO_SV-3.2*)
+           # Note, dlopen is available only on SCO 3.2.5 and greater. However,
+           # this test works, since "uname -s" was non-standard in 3.2.4 and
+           # below.
+           AS_IF([test "$GCC" = yes], [
+               SHLIB_CFLAGS="-fPIC -melf"
+               LDFLAGS="$LDFLAGS -melf -Wl,-Bexport"
+           ], [
+               SHLIB_CFLAGS="-Kpic -belf"
+               LDFLAGS="$LDFLAGS -belf -Wl,-Bexport"
+           ])
+           SHLIB_LD="ld -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       SINIX*5.4*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       SunOS-4*)
+           SHLIB_CFLAGS="-PIC"
+           SHLIB_LD="ld"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+
+           # SunOS can't handle version numbers with dots in them in library
+           # specs, like -ltcl7.5, so use -ltcl75 instead.  Also, it
+           # requires an extra version number at the end of .so file names.
+           # So, the library has to have a name like libtcl75.so.1.0
+
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       SunOS-5.[[0-6]])
+           # Careful to not let 5.10+ fall into this case
+
+           # Note: If _REENTRANT isn't defined, then Solaris
+           # won't define thread-safe library routines.
+
+           AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?])
+           AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1,
+               [Do we really want to follow the standard? Yes we do!])
+
+           SHLIB_CFLAGS="-KPIC"
+
+           # Note: need the LIBS below, otherwise Tk won't find Tcl's
+           # symbols when dynamically loaded into tclsh.
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           AS_IF([test "$GCC" = yes], [
+               SHLIB_LD='${CC} -shared'
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           ], [
+               SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+               CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           ])
+           ;;
+       SunOS-5*)
+           # Note: If _REENTRANT isn't defined, then Solaris
+           # won't define thread-safe library routines.
+
+           AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?])
+           AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1,
+               [Do we really want to follow the standard? Yes we do!])
+
+           SHLIB_CFLAGS="-KPIC"
+
+           # Check to enable 64-bit flags for compiler/linker
+           AS_IF([test "$do64bit" = yes], [
+               arch=`isainfo`
+               AS_IF([test "$arch" = "sparcv9 sparc"], [
+                   AS_IF([test "$GCC" = yes], [
+                       AS_IF([test "`${CC} -dumpversion | awk -F. '{print [$]1}'`" -lt 3], [
+                           AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system])
+                       ], [
+                           do64bit_ok=yes
+                           CFLAGS="$CFLAGS -m64 -mcpu=v9"
+                           LDFLAGS="$LDFLAGS -m64 -mcpu=v9"
+                           SHLIB_CFLAGS="-fPIC"
+                       ])
+                   ], [
+                       do64bit_ok=yes
+                       AS_IF([test "$do64bitVIS" = yes], [
+                           CFLAGS="$CFLAGS -xarch=v9a"
+                           LDFLAGS_ARCH="-xarch=v9a"
+                       ], [
+                           CFLAGS="$CFLAGS -xarch=v9"
+                           LDFLAGS_ARCH="-xarch=v9"
+                       ])
+                       # Solaris 64 uses this as well
+                       #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64"
+                   ])
+               ], [AS_IF([test "$arch" = "amd64 i386"], [
+                   AS_IF([test "$GCC" = yes], [
+                       case $system in
+                           SunOS-5.1[[1-9]]*|SunOS-5.[[2-9]][[0-9]]*)
+                               do64bit_ok=yes
+                               CFLAGS="$CFLAGS -m64"
+                               LDFLAGS="$LDFLAGS -m64";;
+                           *)
+                               AC_MSG_WARN([64bit mode not supported with GCC on $system]);;
+                       esac
+                   ], [
+                       do64bit_ok=yes
+                       case $system in
+                           SunOS-5.1[[1-9]]*|SunOS-5.[[2-9]][[0-9]]*)
+                               CFLAGS="$CFLAGS -m64"
+                               LDFLAGS="$LDFLAGS -m64";;
+                           *)
+                               CFLAGS="$CFLAGS -xarch=amd64"
+                               LDFLAGS="$LDFLAGS -xarch=amd64";;
+                       esac
+                   ])
+               ], [AC_MSG_WARN([64bit mode not supported for $arch])])])
+           ])
+
+           # Note: need the LIBS below, otherwise Tk won't find Tcl's
+           # symbols when dynamically loaded into tclsh.
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           AS_IF([test "$GCC" = yes], [
+               SHLIB_LD='${CC} -shared'
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+               AS_IF([test "$do64bit_ok" = yes], [
+                   AS_IF([test "$arch" = "sparcv9 sparc"], [
+                       # We need to specify -static-libgcc or we need to
+                       # add the path to the sparv9 libgcc.
+                       # JH: static-libgcc is necessary for core Tcl, but may
+                       # not be necessary for extensions.
+                       SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc"
+                       # for finding sparcv9 libgcc, get the regular libgcc
+                       # path, remove so name and append 'sparcv9'
+                       #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
+                       #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir"
+                   ], [AS_IF([test "$arch" = "amd64 i386"], [
+                       # JH: static-libgcc is necessary for core Tcl, but may
+                       # not be necessary for extensions.
+                       SHLIB_LD="$SHLIB_LD -m64 -static-libgcc"
+                   ])])
+               ])
+           ], [
+               case $system in
+                   SunOS-5.[[1-9]][[0-9]]*)
+                       # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
+                       SHLIB_LD='${CC} -G -z text ${LDFLAGS_DEFAULT}';;
+                   *)
+                       SHLIB_LD='/usr/ccs/bin/ld -G -z text';;
+               esac
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+           ])
+           ;;
+       UNIX_SV* | UnixWare-5*)
+           SHLIB_CFLAGS="-KPIC"
+           SHLIB_LD='${CC} -G'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
+           # that don't grok the -Bexport option.  Test that it does.
+           AC_CACHE_CHECK([for ld accepts -Bexport flag], tcl_cv_ld_Bexport, [
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
+               AC_TRY_LINK(, [int i;], tcl_cv_ld_Bexport=yes, tcl_cv_ld_Bexport=no)
+               LDFLAGS=$hold_ldflags])
+           AS_IF([test $tcl_cv_ld_Bexport = yes], [
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
+           ])
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+    esac
+
+    AS_IF([test "$do64bit" = yes -a "$do64bit_ok" = no], [
+       AC_MSG_WARN([64bit support being disabled -- don't know magic for this platform])
+    ])
+
+dnl # Add any CPPFLAGS set in the environment to our CFLAGS, but delay doing so
+dnl # until the end of configure, as configure's compile and link tests use
+dnl # both CPPFLAGS and CFLAGS (unlike our compile and link) but configure's
+dnl # preprocessing tests use only CPPFLAGS.
+    AC_CONFIG_COMMANDS_PRE([CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS=""])
+
+    # Step 4: disable dynamic loading if requested via a command-line switch.
+
+    AC_ARG_ENABLE(load,
+       AC_HELP_STRING([--enable-load],
+           [allow dynamic loading and "load" command (default: on)]),
+       [tcl_ok=$enableval], [tcl_ok=yes])
+    AS_IF([test "$tcl_ok" = no], [DL_OBJS=""])
+
+    AS_IF([test "x$DL_OBJS" != x], [BUILD_DLTEST="\$(DLTEST_TARGETS)"], [
+       AC_MSG_WARN([Can't figure out how to do dynamic loading or shared libraries on this system.])
+       SHLIB_CFLAGS=""
+       SHLIB_LD=""
+       SHLIB_SUFFIX=""
+       DL_OBJS="tclLoadNone.o"
+       DL_LIBS=""
+       LDFLAGS="$LDFLAGS_ORIG"
+       CC_SEARCH_FLAGS=""
+       LD_SEARCH_FLAGS=""
+       BUILD_DLTEST=""
+    ])
+    LDFLAGS="$LDFLAGS $LDFLAGS_ARCH"
+
+    # If we're running gcc, then change the C flags for compiling shared
+    # libraries to the right flags for gcc, instead of those for the
+    # standard manufacturer compiler.
+
+    AS_IF([test "$DL_OBJS" != "tclLoadNone.o" -a "$GCC" = yes], [
+       case $system in
+           AIX-*) ;;
+           BSD/OS*) ;;
+           IRIX*) ;;
+           NetBSD-*|FreeBSD-*) ;;
+           Darwin-*) ;;
+           SCO_SV-3.2*) ;;
+           windows) ;;
+           *) SHLIB_CFLAGS="-fPIC" ;;
+       esac])
+
+    AS_IF([test "$SHARED_LIB_SUFFIX" = ""], [
+       # TEA specific: use PACKAGE_VERSION instead of VERSION
+       SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}'])
+    AS_IF([test "$UNSHARED_LIB_SUFFIX" = ""], [
+       # TEA specific: use PACKAGE_VERSION instead of VERSION
+       UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a'])
+
+    AC_SUBST(DL_LIBS)
+
+    AC_SUBST(CFLAGS_DEBUG)
+    AC_SUBST(CFLAGS_OPTIMIZE)
+    AC_SUBST(CFLAGS_WARNING)
+
+    AC_SUBST(STLIB_LD)
+    AC_SUBST(SHLIB_LD)
+
+    AC_SUBST(SHLIB_LD_LIBS)
+    AC_SUBST(SHLIB_CFLAGS)
+
+    AC_SUBST(LD_LIBRARY_PATH_VAR)
+
+    # These must be called after we do the basic CFLAGS checks and
+    # verify any possible 64-bit or similar switches are necessary
+    TEA_TCL_EARLY_FLAGS
+    TEA_TCL_64BIT_FLAGS
+])
+
+#--------------------------------------------------------------------
+# TEA_SERIAL_PORT
+#
+#      Determine which interface to use to talk to the serial port.
+#      Note that #include lines must begin in leftmost column for
+#      some compilers to recognize them as preprocessor directives,
+#      and some build environments have stdin not pointing at a
+#      pseudo-terminal (usually /dev/null instead.)
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Defines only one of the following vars:
+#              HAVE_SYS_MODEM_H
+#              USE_TERMIOS
+#              USE_TERMIO
+#              USE_SGTTY
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_SERIAL_PORT], [
+    AC_CHECK_HEADERS(sys/modem.h)
+    AC_CACHE_CHECK([termios vs. termio vs. sgtty], tcl_cv_api_serial, [
+    AC_TRY_RUN([
+#include <termios.h>
+
+int main() {
+    struct termios t;
+    if (tcgetattr(0, &t) == 0) {
+       cfsetospeed(&t, 0);
+       t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;
+       return 0;
+    }
+    return 1;
+}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
+    if test $tcl_cv_api_serial = no ; then
+       AC_TRY_RUN([
+#include <termio.h>
+
+int main() {
+    struct termio t;
+    if (ioctl(0, TCGETA, &t) == 0) {
+       t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;
+       return 0;
+    }
+    return 1;
+}], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
+    fi
+    if test $tcl_cv_api_serial = no ; then
+       AC_TRY_RUN([
+#include <sgtty.h>
+
+int main() {
+    struct sgttyb t;
+    if (ioctl(0, TIOCGETP, &t) == 0) {
+       t.sg_ospeed = 0;
+       t.sg_flags |= ODDP | EVENP | RAW;
+       return 0;
+    }
+    return 1;
+}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
+    fi
+    if test $tcl_cv_api_serial = no ; then
+       AC_TRY_RUN([
+#include <termios.h>
+#include <errno.h>
+
+int main() {
+    struct termios t;
+    if (tcgetattr(0, &t) == 0
+       || errno == ENOTTY || errno == ENXIO || errno == EINVAL) {
+       cfsetospeed(&t, 0);
+       t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;
+       return 0;
+    }
+    return 1;
+}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
+    fi
+    if test $tcl_cv_api_serial = no; then
+       AC_TRY_RUN([
+#include <termio.h>
+#include <errno.h>
+
+int main() {
+    struct termio t;
+    if (ioctl(0, TCGETA, &t) == 0
+       || errno == ENOTTY || errno == ENXIO || errno == EINVAL) {
+       t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;
+       return 0;
+    }
+    return 1;
+    }], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
+    fi
+    if test $tcl_cv_api_serial = no; then
+       AC_TRY_RUN([
+#include <sgtty.h>
+#include <errno.h>
+
+int main() {
+    struct sgttyb t;
+    if (ioctl(0, TIOCGETP, &t) == 0
+       || errno == ENOTTY || errno == ENXIO || errno == EINVAL) {
+       t.sg_ospeed = 0;
+       t.sg_flags |= ODDP | EVENP | RAW;
+       return 0;
+    }
+    return 1;
+}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=none, tcl_cv_api_serial=none)
+    fi])
+    case $tcl_cv_api_serial in
+       termios) AC_DEFINE(USE_TERMIOS, 1, [Use the termios API for serial lines]);;
+       termio)  AC_DEFINE(USE_TERMIO, 1, [Use the termio API for serial lines]);;
+       sgtty)   AC_DEFINE(USE_SGTTY, 1, [Use the sgtty API for serial lines]);;
+    esac
+])
+
+#--------------------------------------------------------------------
+# TEA_MISSING_POSIX_HEADERS
+#
+#      Supply substitutes for missing POSIX header files.  Special
+#      notes:
+#          - stdlib.h doesn't define strtol, strtoul, or
+#            strtod in some versions of SunOS
+#          - some versions of string.h don't declare procedures such
+#            as strstr
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Defines some of the following vars:
+#              NO_DIRENT_H
+#              NO_ERRNO_H
+#              NO_VALUES_H
+#              HAVE_LIMITS_H or NO_LIMITS_H
+#              NO_STDLIB_H
+#              NO_STRING_H
+#              NO_SYS_WAIT_H
+#              NO_DLFCN_H
+#              HAVE_SYS_PARAM_H
+#
+#              HAVE_STRING_H ?
+#
+# tkUnixPort.h checks for HAVE_LIMITS_H, so do both HAVE and
+# CHECK on limits.h
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_MISSING_POSIX_HEADERS], [
+    AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h, [
+    AC_TRY_LINK([#include <sys/types.h>
+#include <dirent.h>], [
+#ifndef _POSIX_SOURCE
+#   ifdef __Lynx__
+       /*
+        * Generate compilation error to make the test fail:  Lynx headers
+        * are only valid if really in the POSIX environment.
+        */
+
+       missing_procedure();
+#   endif
+#endif
+DIR *d;
+struct dirent *entryPtr;
+char *p;
+d = opendir("foobar");
+entryPtr = readdir(d);
+p = entryPtr->d_name;
+closedir(d);
+], tcl_cv_dirent_h=yes, tcl_cv_dirent_h=no)])
+
+    if test $tcl_cv_dirent_h = no; then
+       AC_DEFINE(NO_DIRENT_H, 1, [Do we have <dirent.h>?])
+    fi
+
+    # TEA specific:
+    AC_CHECK_HEADER(errno.h, , [AC_DEFINE(NO_ERRNO_H, 1, [Do we have <errno.h>?])])
+    AC_CHECK_HEADER(float.h, , [AC_DEFINE(NO_FLOAT_H, 1, [Do we have <float.h>?])])
+    AC_CHECK_HEADER(values.h, , [AC_DEFINE(NO_VALUES_H, 1, [Do we have <values.h>?])])
+    AC_CHECK_HEADER(limits.h,
+       [AC_DEFINE(HAVE_LIMITS_H, 1, [Do we have <limits.h>?])],
+       [AC_DEFINE(NO_LIMITS_H, 1, [Do we have <limits.h>?])])
+    AC_CHECK_HEADER(stdlib.h, tcl_ok=1, tcl_ok=0)
+    AC_EGREP_HEADER(strtol, stdlib.h, , tcl_ok=0)
+    AC_EGREP_HEADER(strtoul, stdlib.h, , tcl_ok=0)
+    AC_EGREP_HEADER(strtod, stdlib.h, , tcl_ok=0)
+    if test $tcl_ok = 0; then
+       AC_DEFINE(NO_STDLIB_H, 1, [Do we have <stdlib.h>?])
+    fi
+    AC_CHECK_HEADER(string.h, tcl_ok=1, tcl_ok=0)
+    AC_EGREP_HEADER(strstr, string.h, , tcl_ok=0)
+    AC_EGREP_HEADER(strerror, string.h, , tcl_ok=0)
+
+    # See also memmove check below for a place where NO_STRING_H can be
+    # set and why.
+
+    if test $tcl_ok = 0; then
+       AC_DEFINE(NO_STRING_H, 1, [Do we have <string.h>?])
+    fi
+
+    AC_CHECK_HEADER(sys/wait.h, , [AC_DEFINE(NO_SYS_WAIT_H, 1, [Do we have <sys/wait.h>?])])
+    AC_CHECK_HEADER(dlfcn.h, , [AC_DEFINE(NO_DLFCN_H, 1, [Do we have <dlfcn.h>?])])
+
+    # OS/390 lacks sys/param.h (and doesn't need it, by chance).
+    AC_HAVE_HEADERS(sys/param.h)
+])
+
+#--------------------------------------------------------------------
+# TEA_PATH_X
+#
+#      Locate the X11 header files and the X11 library archive.  Try
+#      the ac_path_x macro first, but if it doesn't find the X stuff
+#      (e.g. because there's no xmkmf program) then check through
+#      a list of possible directories.  Under some conditions the
+#      autoconf macro will return an include directory that contains
+#      no include files, so double-check its result just to be safe.
+#
+#      This should be called after TEA_CONFIG_CFLAGS as setting the
+#      LIBS line can confuse some configure macro magic.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Sets the following vars:
+#              XINCLUDES
+#              XLIBSW
+#              PKG_LIBS (appends to)
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_PATH_X], [
+    if test "${TEA_WINDOWINGSYSTEM}" = "x11" ; then
+       TEA_PATH_UNIX_X
+    fi
+])
+
+AC_DEFUN([TEA_PATH_UNIX_X], [
+    AC_PATH_X
+    not_really_there=""
+    if test "$no_x" = ""; then
+       if test "$x_includes" = ""; then
+           AC_TRY_CPP([#include <X11/XIntrinsic.h>], , not_really_there="yes")
+       else
+           if test ! -r $x_includes/X11/Intrinsic.h; then
+               not_really_there="yes"
+           fi
+       fi
+    fi
+    if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
+       AC_MSG_CHECKING([for X11 header files])
+       found_xincludes="no"
+       AC_TRY_CPP([#include <X11/Intrinsic.h>], found_xincludes="yes", found_xincludes="no")
+       if test "$found_xincludes" = "no"; then
+           dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include"
+           for i in $dirs ; do
+               if test -r $i/X11/Intrinsic.h; then
+                   AC_MSG_RESULT([$i])
+                   XINCLUDES=" -I$i"
+                   found_xincludes="yes"
+                   break
+               fi
+           done
+       fi
+    else
+       if test "$x_includes" != ""; then
+           XINCLUDES="-I$x_includes"
+           found_xincludes="yes"
+       fi
+    fi
+    if test found_xincludes = "no"; then
+       AC_MSG_RESULT([couldn't find any!])
+    fi
+
+    if test "$no_x" = yes; then
+       AC_MSG_CHECKING([for X11 libraries])
+       XLIBSW=nope
+       dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib"
+       for i in $dirs ; do
+           if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl -o -r $i/libX11.dylib; then
+               AC_MSG_RESULT([$i])
+               XLIBSW="-L$i -lX11"
+               x_libraries="$i"
+               break
+           fi
+       done
+    else
+       if test "$x_libraries" = ""; then
+           XLIBSW=-lX11
+       else
+           XLIBSW="-L$x_libraries -lX11"
+       fi
+    fi
+    if test "$XLIBSW" = nope ; then
+       AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow)
+    fi
+    if test "$XLIBSW" = nope ; then
+       AC_MSG_RESULT([could not find any!  Using -lX11.])
+       XLIBSW=-lX11
+    fi
+    # TEA specific:
+    if test x"${XLIBSW}" != x ; then
+       PKG_LIBS="${PKG_LIBS} ${XLIBSW}"
+    fi
+])
+
+#--------------------------------------------------------------------
+# TEA_BLOCKING_STYLE
+#
+#      The statements below check for systems where POSIX-style
+#      non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented.
+#      On these systems (mostly older ones), use the old BSD-style
+#      FIONBIO approach instead.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Defines some of the following vars:
+#              HAVE_SYS_IOCTL_H
+#              HAVE_SYS_FILIO_H
+#              USE_FIONBIO
+#              O_NONBLOCK
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_BLOCKING_STYLE], [
+    AC_CHECK_HEADERS(sys/ioctl.h)
+    AC_CHECK_HEADERS(sys/filio.h)
+    TEA_CONFIG_SYSTEM
+    AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O])
+    case $system in
+       # There used to be code here to use FIONBIO under AIX.  However, it
+       # was reported that FIONBIO doesn't work under AIX 3.2.5.  Since
+       # using O_NONBLOCK seems fine under AIX 4.*, I removed the FIONBIO
+       # code (JO, 5/31/97).
+
+       OSF*)
+           AC_DEFINE(USE_FIONBIO, 1, [Should we use FIONBIO?])
+           AC_MSG_RESULT([FIONBIO])
+           ;;
+       SunOS-4*)
+           AC_DEFINE(USE_FIONBIO, 1, [Should we use FIONBIO?])
+           AC_MSG_RESULT([FIONBIO])
+           ;;
+       *)
+           AC_MSG_RESULT([O_NONBLOCK])
+           ;;
+    esac
+])
+
+#--------------------------------------------------------------------
+# TEA_TIME_HANDLER
+#
+#      Checks how the system deals with time.h, what time structures
+#      are used on the system, and what fields the structures have.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Defines some of the following vars:
+#              USE_DELTA_FOR_TZ
+#              HAVE_TM_GMTOFF
+#              HAVE_TM_TZADJ
+#              HAVE_TIMEZONE_VAR
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_TIME_HANDLER], [
+    AC_CHECK_HEADERS(sys/time.h)
+    AC_HEADER_TIME
+    AC_STRUCT_TIMEZONE
+
+    AC_CHECK_FUNCS(gmtime_r localtime_r)
+
+    AC_CACHE_CHECK([tm_tzadj in struct tm], tcl_cv_member_tm_tzadj, [
+       AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_tzadj;],
+           tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no)])
+    if test $tcl_cv_member_tm_tzadj = yes ; then
+       AC_DEFINE(HAVE_TM_TZADJ, 1, [Should we use the tm_tzadj field of struct tm?])
+    fi
+
+    AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, [
+       AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_gmtoff;],
+           tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no)])
+    if test $tcl_cv_member_tm_gmtoff = yes ; then
+       AC_DEFINE(HAVE_TM_GMTOFF, 1, [Should we use the tm_gmtoff field of struct tm?])
+    fi
+
+    #
+    # Its important to include time.h in this check, as some systems
+    # (like convex) have timezone functions, etc.
+    #
+    AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [
+       AC_TRY_COMPILE([#include <time.h>],
+           [extern long timezone;
+           timezone += 1;
+           exit (0);],
+           tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)])
+    if test $tcl_cv_timezone_long = yes ; then
+       AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
+    else
+       #
+       # On some systems (eg IRIX 6.2), timezone is a time_t and not a long.
+       #
+       AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [
+           AC_TRY_COMPILE([#include <time.h>],
+               [extern time_t timezone;
+               timezone += 1;
+               exit (0);],
+               tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)])
+       if test $tcl_cv_timezone_time = yes ; then
+           AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
+       fi
+    fi
+])
+
+#--------------------------------------------------------------------
+# TEA_BUGGY_STRTOD
+#
+#      Under Solaris 2.4, strtod returns the wrong value for the
+#      terminating character under some conditions.  Check for this
+#      and if the problem exists use a substitute procedure
+#      "fixstrtod" (provided by Tcl) that corrects the error.
+#      Also, on Compaq's Tru64 Unix 5.0,
+#      strtod(" ") returns 0.0 instead of a failure to convert.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Might defines some of the following vars:
+#              strtod (=fixstrtod)
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_BUGGY_STRTOD], [
+    AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0)
+    if test "$tcl_strtod" = 1; then
+       AC_CACHE_CHECK([for Solaris2.4/Tru64 strtod bugs], tcl_cv_strtod_buggy,[
+           AC_TRY_RUN([
+               extern double strtod();
+               int main() {
+                   char *infString="Inf", *nanString="NaN", *spaceString=" ";
+                   char *term;
+                   double value;
+                   value = strtod(infString, &term);
+                   if ((term != infString) && (term[-1] == 0)) {
+                       exit(1);
+                   }
+                   value = strtod(nanString, &term);
+                   if ((term != nanString) && (term[-1] == 0)) {
+                       exit(1);
+                   }
+                   value = strtod(spaceString, &term);
+                   if (term == (spaceString+1)) {
+                       exit(1);
+                   }
+                   exit(0);
+               }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy,
+                   tcl_cv_strtod_buggy=buggy)])
+       if test "$tcl_cv_strtod_buggy" = buggy; then
+           AC_LIBOBJ([fixstrtod])
+           USE_COMPAT=1
+           AC_DEFINE(strtod, fixstrtod, [Do we want to use the strtod() in compat?])
+       fi
+    fi
+])
+
+#--------------------------------------------------------------------
+# TEA_TCL_LINK_LIBS
+#
+#      Search for the libraries needed to link the Tcl shell.
+#      Things like the math library (-lm) and socket stuff (-lsocket vs.
+#      -lnsl) are dealt with here.
+#
+# Arguments:
+#      Requires the following vars to be set in the Makefile:
+#              DL_LIBS
+#              LIBS
+#              MATH_LIBS
+#
+# Results:
+#
+#      Subst's the following var:
+#              TCL_LIBS
+#              MATH_LIBS
+#
+#      Might append to the following vars:
+#              LIBS
+#
+#      Might define the following vars:
+#              HAVE_NET_ERRNO_H
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_TCL_LINK_LIBS], [
+    #--------------------------------------------------------------------
+    # On a few very rare systems, all of the libm.a stuff is
+    # already in libc.a.  Set compiler flags accordingly.
+    # Also, Linux requires the "ieee" library for math to work
+    # right (and it must appear before "-lm").
+    #--------------------------------------------------------------------
+
+    AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm")
+    AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"])
+
+    #--------------------------------------------------------------------
+    # Interactive UNIX requires -linet instead of -lsocket, plus it
+    # needs net/errno.h to define the socket-related error codes.
+    #--------------------------------------------------------------------
+
+    AC_CHECK_LIB(inet, main, [LIBS="$LIBS -linet"])
+    AC_CHECK_HEADER(net/errno.h, [
+       AC_DEFINE(HAVE_NET_ERRNO_H, 1, [Do we have <net/errno.h>?])])
+
+    #--------------------------------------------------------------------
+    #  Check for the existence of the -lsocket and -lnsl libraries.
+    #  The order here is important, so that they end up in the right
+    #  order in the command line generated by make.  Here are some
+    #  special considerations:
+    #  1. Use "connect" and "accept" to check for -lsocket, and
+    #     "gethostbyname" to check for -lnsl.
+    #  2. Use each function name only once:  can't redo a check because
+    #     autoconf caches the results of the last check and won't redo it.
+    #  3. Use -lnsl and -lsocket only if they supply procedures that
+    #     aren't already present in the normal libraries.  This is because
+    #     IRIX 5.2 has libraries, but they aren't needed and they're
+    #     bogus:  they goof up name resolution if used.
+    #  4. On some SVR4 systems, can't use -lsocket without -lnsl too.
+    #     To get around this problem, check for both libraries together
+    #     if -lsocket doesn't work by itself.
+    #--------------------------------------------------------------------
+
+    tcl_checkBoth=0
+    AC_CHECK_FUNC(connect, tcl_checkSocket=0, tcl_checkSocket=1)
+    if test "$tcl_checkSocket" = 1; then
+       AC_CHECK_FUNC(setsockopt, , [AC_CHECK_LIB(socket, setsockopt,
+           LIBS="$LIBS -lsocket", tcl_checkBoth=1)])
+    fi
+    if test "$tcl_checkBoth" = 1; then
+       tk_oldLibs=$LIBS
+       LIBS="$LIBS -lsocket -lnsl"
+       AC_CHECK_FUNC(accept, tcl_checkNsl=0, [LIBS=$tk_oldLibs])
+    fi
+    AC_CHECK_FUNC(gethostbyname, , [AC_CHECK_LIB(nsl, gethostbyname,
+           [LIBS="$LIBS -lnsl"])])
+
+    # TEA specific: Don't perform the eval of the libraries here because
+    # DL_LIBS won't be set until we call TEA_CONFIG_CFLAGS
+
+    TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}'
+    AC_SUBST(TCL_LIBS)
+    AC_SUBST(MATH_LIBS)
+])
+
+#--------------------------------------------------------------------
+# TEA_TCL_EARLY_FLAGS
+#
+#      Check for what flags are needed to be passed so the correct OS
+#      features are available.
+#
+# Arguments:
+#      None
+#
+# Results:
+#
+#      Might define the following vars:
+#              _ISOC99_SOURCE
+#              _LARGEFILE64_SOURCE
+#              _LARGEFILE_SOURCE64
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_TCL_EARLY_FLAG],[
+    AC_CACHE_VAL([tcl_cv_flag_]translit($1,[A-Z],[a-z]),
+       AC_TRY_COMPILE([$2], $3, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no,
+           AC_TRY_COMPILE([[#define ]$1[ 1
+]$2], $3,
+               [tcl_cv_flag_]translit($1,[A-Z],[a-z])=yes,
+               [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no)))
+    if test ["x${tcl_cv_flag_]translit($1,[A-Z],[a-z])[}" = "xyes"] ; then
+       AC_DEFINE($1, 1, [Add the ]$1[ flag when building])
+       tcl_flags="$tcl_flags $1"
+    fi
+])
+
+AC_DEFUN([TEA_TCL_EARLY_FLAGS],[
+    AC_MSG_CHECKING([for required early compiler flags])
+    tcl_flags=""
+    TEA_TCL_EARLY_FLAG(_ISOC99_SOURCE,[#include <stdlib.h>],
+       [char *p = (char *)strtoll; char *q = (char *)strtoull;])
+    TEA_TCL_EARLY_FLAG(_LARGEFILE64_SOURCE,[#include <sys/stat.h>],
+       [struct stat64 buf; int i = stat64("/", &buf);])
+    TEA_TCL_EARLY_FLAG(_LARGEFILE_SOURCE64,[#include <sys/stat.h>],
+       [char *p = (char *)open64;])
+    if test "x${tcl_flags}" = "x" ; then
+       AC_MSG_RESULT([none])
+    else
+       AC_MSG_RESULT([${tcl_flags}])
+    fi
+])
+
+#--------------------------------------------------------------------
+# TEA_TCL_64BIT_FLAGS
+#
+#      Check for what is defined in the way of 64-bit features.
+#
+# Arguments:
+#      None
+#
+# Results:
+#
+#      Might define the following vars:
+#              TCL_WIDE_INT_IS_LONG
+#              TCL_WIDE_INT_TYPE
+#              HAVE_STRUCT_DIRENT64
+#              HAVE_STRUCT_STAT64
+#              HAVE_TYPE_OFF64_T
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_TCL_64BIT_FLAGS], [
+    AC_MSG_CHECKING([for 64-bit integer type])
+    AC_CACHE_VAL(tcl_cv_type_64bit,[
+       tcl_cv_type_64bit=none
+       # See if the compiler knows natively about __int64
+       AC_TRY_COMPILE(,[__int64 value = (__int64) 0;],
+           tcl_type_64bit=__int64, tcl_type_64bit="long long")
+       # See if we should use long anyway  Note that we substitute in the
+       # type that is our current guess for a 64-bit type inside this check
+       # program, so it should be modified only carefully...
+        AC_TRY_COMPILE(,[switch (0) { 
+            case 1: case (sizeof(]${tcl_type_64bit}[)==sizeof(long)): ; 
+        }],tcl_cv_type_64bit=${tcl_type_64bit})])
+    if test "${tcl_cv_type_64bit}" = none ; then
+       AC_DEFINE(TCL_WIDE_INT_IS_LONG, 1, [Are wide integers to be implemented with C 'long's?])
+       AC_MSG_RESULT([using long])
+    elif test "${tcl_cv_type_64bit}" = "__int64" \
+               -a "${TEA_PLATFORM}" = "windows" ; then
+       # TEA specific: We actually want to use the default tcl.h checks in
+       # this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER*
+       AC_MSG_RESULT([using Tcl header defaults])
+    else
+       AC_DEFINE_UNQUOTED(TCL_WIDE_INT_TYPE,${tcl_cv_type_64bit},
+           [What type should be used to define wide integers?])
+       AC_MSG_RESULT([${tcl_cv_type_64bit}])
+
+       # Now check for auxiliary declarations
+       AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[
+           AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/dirent.h>],[struct dirent64 p;],
+               tcl_cv_struct_dirent64=yes,tcl_cv_struct_dirent64=no)])
+       if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then
+           AC_DEFINE(HAVE_STRUCT_DIRENT64, 1, [Is 'struct dirent64' in <sys/types.h>?])
+       fi
+
+       AC_CACHE_CHECK([for struct stat64], tcl_cv_struct_stat64,[
+           AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat64 p;
+],
+               tcl_cv_struct_stat64=yes,tcl_cv_struct_stat64=no)])
+       if test "x${tcl_cv_struct_stat64}" = "xyes" ; then
+           AC_DEFINE(HAVE_STRUCT_STAT64, 1, [Is 'struct stat64' in <sys/stat.h>?])
+       fi
+
+       AC_CHECK_FUNCS(open64 lseek64)
+       AC_MSG_CHECKING([for off64_t])
+       AC_CACHE_VAL(tcl_cv_type_off64_t,[
+           AC_TRY_COMPILE([#include <sys/types.h>],[off64_t offset;
+],
+               tcl_cv_type_off64_t=yes,tcl_cv_type_off64_t=no)])
+       dnl Define HAVE_TYPE_OFF64_T only when the off64_t type and the
+       dnl functions lseek64 and open64 are defined.
+       if test "x${tcl_cv_type_off64_t}" = "xyes" && \
+               test "x${ac_cv_func_lseek64}" = "xyes" && \
+               test "x${ac_cv_func_open64}" = "xyes" ; then
+           AC_DEFINE(HAVE_TYPE_OFF64_T, 1, [Is off64_t in <sys/types.h>?])
+           AC_MSG_RESULT([yes])
+       else
+           AC_MSG_RESULT([no])
+       fi
+    fi
+])
+
+##
+## Here ends the standard Tcl configuration bits and starts the
+## TEA specific functions
+##
+
+#------------------------------------------------------------------------
+# TEA_INIT --
+#
+#      Init various Tcl Extension Architecture (TEA) variables.
+#      This should be the first called TEA_* macro.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Defines and substs the following vars:
+#              CYGPATH
+#              EXEEXT
+#      Defines only:
+#              TEA_VERSION
+#              TEA_INITED
+#              TEA_PLATFORM (windows or unix)
+#
+# "cygpath" is used on windows to generate native path names for include
+# files. These variables should only be used with the compiler and linker
+# since they generate native path names.
+#
+# EXEEXT
+#      Select the executable extension based on the host type.  This
+#      is a lightweight replacement for AC_EXEEXT that doesn't require
+#      a compiler.
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_INIT], [
+    # TEA extensions pass this us the version of TEA they think they
+    # are compatible with.
+    TEA_VERSION="3.7"
+
+    AC_MSG_CHECKING([for correct TEA configuration])
+    if test x"${PACKAGE_NAME}" = x ; then
+       AC_MSG_ERROR([
+The PACKAGE_NAME variable must be defined by your TEA configure.in])
+    fi
+    if test x"$1" = x ; then
+       AC_MSG_ERROR([
+TEA version not specified.])
+    elif test "$1" != "${TEA_VERSION}" ; then
+       AC_MSG_RESULT([warning: requested TEA version "$1", have "${TEA_VERSION}"])
+    else
+       AC_MSG_RESULT([ok (TEA ${TEA_VERSION})])
+    fi
+    case "`uname -s`" in
+       *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW32_*)
+           AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo)
+           EXEEXT=".exe"
+           TEA_PLATFORM="windows"
+           ;;
+       *)
+           CYGPATH=echo
+           EXEEXT=""
+           TEA_PLATFORM="unix"
+           ;;
+    esac
+
+    # Check if exec_prefix is set. If not use fall back to prefix.
+    # Note when adjusted, so that TEA_PREFIX can correct for this.
+    # This is needed for recursive configures, since autoconf propagates
+    # $prefix, but not $exec_prefix (doh!).
+    if test x$exec_prefix = xNONE ; then
+       exec_prefix_default=yes
+       exec_prefix=$prefix
+    fi
+
+    AC_SUBST(EXEEXT)
+    AC_SUBST(CYGPATH)
+
+    # This package name must be replaced statically for AC_SUBST to work
+    AC_SUBST(PKG_LIB_FILE)
+    # Substitute STUB_LIB_FILE in case package creates a stub library too.
+    AC_SUBST(PKG_STUB_LIB_FILE)
+
+    # We AC_SUBST these here to ensure they are subst'ed,
+    # in case the user doesn't call TEA_ADD_...
+    AC_SUBST(PKG_STUB_SOURCES)
+    AC_SUBST(PKG_STUB_OBJECTS)
+    AC_SUBST(PKG_TCL_SOURCES)
+    AC_SUBST(PKG_HEADERS)
+    AC_SUBST(PKG_INCLUDES)
+    AC_SUBST(PKG_LIBS)
+    AC_SUBST(PKG_CFLAGS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_SOURCES --
+#
+#      Specify one or more source files.  Users should check for
+#      the right platform before adding to their list.
+#      It is not important to specify the directory, as long as it is
+#      in the generic, win or unix subdirectory of $(srcdir).
+#
+# Arguments:
+#      one or more file names
+#
+# Results:
+#
+#      Defines and substs the following vars:
+#              PKG_SOURCES
+#              PKG_OBJECTS
+#------------------------------------------------------------------------
+AC_DEFUN([TEA_ADD_SOURCES], [
+    vars="$@"
+    for i in $vars; do
+       case $i in
+           [\$]*)
+               # allow $-var names
+               PKG_SOURCES="$PKG_SOURCES $i"
+               PKG_OBJECTS="$PKG_OBJECTS $i"
+               ;;
+           *)
+               # check for existence - allows for generic/win/unix VPATH
+               # To add more dirs here (like 'src'), you have to update VPATH
+               # in Makefile.in as well
+               if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
+                   -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
+                   ; then
+                   AC_MSG_ERROR([could not find source file '$i'])
+               fi
+               PKG_SOURCES="$PKG_SOURCES $i"
+               # this assumes it is in a VPATH dir
+               i=`basename $i`
+               # handle user calling this before or after TEA_SETUP_COMPILER
+               if test x"${OBJEXT}" != x ; then
+                   j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}"
+               else
+                   j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}"
+               fi
+               PKG_OBJECTS="$PKG_OBJECTS $j"
+               ;;
+       esac
+    done
+    AC_SUBST(PKG_SOURCES)
+    AC_SUBST(PKG_OBJECTS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_STUB_SOURCES --
+#
+#      Specify one or more source files.  Users should check for
+#      the right platform before adding to their list.
+#      It is not important to specify the directory, as long as it is
+#      in the generic, win or unix subdirectory of $(srcdir).
+#
+# Arguments:
+#      one or more file names
+#
+# Results:
+#
+#      Defines and substs the following vars:
+#              PKG_STUB_SOURCES
+#              PKG_STUB_OBJECTS
+#------------------------------------------------------------------------
+AC_DEFUN([TEA_ADD_STUB_SOURCES], [
+    vars="$@"
+    for i in $vars; do
+       # check for existence - allows for generic/win/unix VPATH
+       if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
+           -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
+           ; then
+           AC_MSG_ERROR([could not find stub source file '$i'])
+       fi
+       PKG_STUB_SOURCES="$PKG_STUB_SOURCES $i"
+       # this assumes it is in a VPATH dir
+       i=`basename $i`
+       # handle user calling this before or after TEA_SETUP_COMPILER
+       if test x"${OBJEXT}" != x ; then
+           j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}"
+       else
+           j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}"
+       fi
+       PKG_STUB_OBJECTS="$PKG_STUB_OBJECTS $j"
+    done
+    AC_SUBST(PKG_STUB_SOURCES)
+    AC_SUBST(PKG_STUB_OBJECTS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_TCL_SOURCES --
+#
+#      Specify one or more Tcl source files.  These should be platform
+#      independent runtime files.
+#
+# Arguments:
+#      one or more file names
+#
+# Results:
+#
+#      Defines and substs the following vars:
+#              PKG_TCL_SOURCES
+#------------------------------------------------------------------------
+AC_DEFUN([TEA_ADD_TCL_SOURCES], [
+    vars="$@"
+    for i in $vars; do
+       # check for existence, be strict because it is installed
+       if test ! -f "${srcdir}/$i" ; then
+           AC_MSG_ERROR([could not find tcl source file '${srcdir}/$i'])
+       fi
+       PKG_TCL_SOURCES="$PKG_TCL_SOURCES $i"
+    done
+    AC_SUBST(PKG_TCL_SOURCES)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_HEADERS --
+#
+#      Specify one or more source headers.  Users should check for
+#      the right platform before adding to their list.
+#
+# Arguments:
+#      one or more file names
+#
+# Results:
+#
+#      Defines and substs the following vars:
+#              PKG_HEADERS
+#------------------------------------------------------------------------
+AC_DEFUN([TEA_ADD_HEADERS], [
+    vars="$@"
+    for i in $vars; do
+       # check for existence, be strict because it is installed
+       if test ! -f "${srcdir}/$i" ; then
+           AC_MSG_ERROR([could not find header file '${srcdir}/$i'])
+       fi
+       PKG_HEADERS="$PKG_HEADERS $i"
+    done
+    AC_SUBST(PKG_HEADERS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_INCLUDES --
+#
+#      Specify one or more include dirs.  Users should check for
+#      the right platform before adding to their list.
+#
+# Arguments:
+#      one or more file names
+#
+# Results:
+#
+#      Defines and substs the following vars:
+#              PKG_INCLUDES
+#------------------------------------------------------------------------
+AC_DEFUN([TEA_ADD_INCLUDES], [
+    vars="$@"
+    for i in $vars; do
+       PKG_INCLUDES="$PKG_INCLUDES $i"
+    done
+    AC_SUBST(PKG_INCLUDES)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_LIBS --
+#
+#      Specify one or more libraries.  Users should check for
+#      the right platform before adding to their list.  For Windows,
+#      libraries provided in "foo.lib" format will be converted to
+#      "-lfoo" when using GCC (mingw).
+#
+# Arguments:
+#      one or more file names
+#
+# Results:
+#
+#      Defines and substs the following vars:
+#              PKG_LIBS
+#------------------------------------------------------------------------
+AC_DEFUN([TEA_ADD_LIBS], [
+    vars="$@"
+    for i in $vars; do
+       if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
+           # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
+           i=`echo "$i" | sed -e 's/^\([[^-]].*\)\.lib[$]/-l\1/i'`
+       fi
+       PKG_LIBS="$PKG_LIBS $i"
+    done
+    AC_SUBST(PKG_LIBS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_CFLAGS --
+#
+#      Specify one or more CFLAGS.  Users should check for
+#      the right platform before adding to their list.
+#
+# Arguments:
+#      one or more file names
+#
+# Results:
+#
+#      Defines and substs the following vars:
+#              PKG_CFLAGS
+#------------------------------------------------------------------------
+AC_DEFUN([TEA_ADD_CFLAGS], [
+    PKG_CFLAGS="$PKG_CFLAGS $@"
+    AC_SUBST(PKG_CFLAGS)
+])
+
+#------------------------------------------------------------------------
+# TEA_PREFIX --
+#
+#      Handle the --prefix=... option by defaulting to what Tcl gave
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      If --prefix or --exec-prefix was not specified, $prefix and
+#      $exec_prefix will be set to the values given to Tcl when it was
+#      configured.
+#------------------------------------------------------------------------
+AC_DEFUN([TEA_PREFIX], [
+    if test "${prefix}" = "NONE"; then
+       prefix_default=yes
+       if test x"${TCL_PREFIX}" != x; then
+           AC_MSG_NOTICE([--prefix defaulting to TCL_PREFIX ${TCL_PREFIX}])
+           prefix=${TCL_PREFIX}
+       else
+           AC_MSG_NOTICE([--prefix defaulting to /usr/local])
+           prefix=/usr/local
+       fi
+    fi
+    if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \
+       -o x"${exec_prefix_default}" = x"yes" ; then
+       if test x"${TCL_EXEC_PREFIX}" != x; then
+           AC_MSG_NOTICE([--exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}])
+           exec_prefix=${TCL_EXEC_PREFIX}
+       else
+           AC_MSG_NOTICE([--exec-prefix defaulting to ${prefix}])
+           exec_prefix=$prefix
+       fi
+    fi
+])
+
+#------------------------------------------------------------------------
+# TEA_SETUP_COMPILER_CC --
+#
+#      Do compiler checks the way we want.  This is just a replacement
+#      for AC_PROG_CC in TEA configure.in files to make them cleaner.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Sets up CC var and other standard bits we need to make executables.
+#------------------------------------------------------------------------
+AC_DEFUN([TEA_SETUP_COMPILER_CC], [
+    # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE)
+    # in this macro, they need to go into TEA_SETUP_COMPILER instead.
+
+    # If the user did not set CFLAGS, set it now to keep
+    # the AC_PROG_CC macro from adding "-g -O2".
+    if test "${CFLAGS+set}" != "set" ; then
+       CFLAGS=""
+    fi
+
+    AC_PROG_CC
+    AC_PROG_CPP
+
+    AC_PROG_INSTALL
+
+    #--------------------------------------------------------------------
+    # Checks to see if the make program sets the $MAKE variable.
+    #--------------------------------------------------------------------
+
+    AC_PROG_MAKE_SET
+
+    #--------------------------------------------------------------------
+    # Find ranlib
+    #--------------------------------------------------------------------
+
+    AC_PROG_RANLIB
+
+    #--------------------------------------------------------------------
+    # Determines the correct binary file extension (.o, .obj, .exe etc.)
+    #--------------------------------------------------------------------
+
+    AC_OBJEXT
+    AC_EXEEXT
+])
+
+#------------------------------------------------------------------------
+# TEA_SETUP_COMPILER --
+#
+#      Do compiler checks that use the compiler.  This must go after
+#      TEA_SETUP_COMPILER_CC, which does the actual compiler check.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Sets up CC var and other standard bits we need to make executables.
+#------------------------------------------------------------------------
+AC_DEFUN([TEA_SETUP_COMPILER], [
+    # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here.
+    AC_REQUIRE([TEA_SETUP_COMPILER_CC])
+
+    #------------------------------------------------------------------------
+    # If we're using GCC, see if the compiler understands -pipe. If so, use it.
+    # It makes compiling go faster.  (This is only a performance feature.)
+    #------------------------------------------------------------------------
+
+    if test -z "$no_pipe" -a -n "$GCC"; then
+       AC_CACHE_CHECK([if the compiler understands -pipe],
+           tcl_cv_cc_pipe, [
+           hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe"
+           AC_TRY_COMPILE(,, tcl_cv_cc_pipe=yes, tcl_cv_cc_pipe=no)
+           CFLAGS=$hold_cflags])
+       if test $tcl_cv_cc_pipe = yes; then
+           CFLAGS="$CFLAGS -pipe"
+       fi
+    fi
+
+    #--------------------------------------------------------------------
+    # Common compiler flag setup
+    #--------------------------------------------------------------------
+
+    AC_C_BIGENDIAN
+    if test "${TEA_PLATFORM}" = "unix" ; then
+       TEA_TCL_LINK_LIBS
+       TEA_MISSING_POSIX_HEADERS
+       # Let the user call this, because if it triggers, they will
+       # need a compat/strtod.c that is correct.  Users can also
+       # use Tcl_GetDouble(FromObj) instead.
+       #TEA_BUGGY_STRTOD
+    fi
+])
+
+#------------------------------------------------------------------------
+# TEA_MAKE_LIB --
+#
+#      Generate a line that can be used to build a shared/unshared library
+#      in a platform independent manner.
+#
+# Arguments:
+#      none
+#
+#      Requires:
+#
+# Results:
+#
+#      Defines the following vars:
+#      CFLAGS -        Done late here to note disturb other AC macros
+#       MAKE_LIB -      Command to execute to build the Tcl library;
+#                       differs depending on whether or not Tcl is being
+#                       compiled as a shared library.
+#      MAKE_SHARED_LIB Makefile rule for building a shared library
+#      MAKE_STATIC_LIB Makefile rule for building a static library
+#      MAKE_STUB_LIB   Makefile rule for building a stub library
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_MAKE_LIB], [
+    if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then
+       MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)"
+       MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)"
+       MAKE_STUB_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_STUB_OBJECTS)"
+    else
+       MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(PKG_OBJECTS)"
+       MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}"
+       MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(PKG_STUB_OBJECTS)"
+    fi
+
+    if test "${SHARED_BUILD}" = "1" ; then
+       MAKE_LIB="${MAKE_SHARED_LIB} "
+    else
+       MAKE_LIB="${MAKE_STATIC_LIB} "
+    fi
+
+    #--------------------------------------------------------------------
+    # Shared libraries and static libraries have different names.
+    # Use the double eval to make sure any variables in the suffix is
+    # substituted. (@@@ Might not be necessary anymore)
+    #--------------------------------------------------------------------
+
+    if test "${TEA_PLATFORM}" = "windows" ; then
+       if test "${SHARED_BUILD}" = "1" ; then
+           # We force the unresolved linking of symbols that are really in
+           # the private libraries of Tcl and Tk.
+           SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\""
+           if test x"${TK_BIN_DIR}" != x ; then
+               SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\""
+           fi
+           eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+       else
+           eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+       fi
+       # Some packages build their own stubs libraries
+       eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+       if test "$GCC" = "yes"; then
+           PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE}
+       fi
+       # These aren't needed on Windows (either MSVC or gcc)
+       RANLIB=:
+       RANLIB_STUB=:
+    else
+       RANLIB_STUB="${RANLIB}"
+       if test "${SHARED_BUILD}" = "1" ; then
+           SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}"
+           if test x"${TK_BIN_DIR}" != x ; then
+               SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}"
+           fi
+           eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+           RANLIB=:
+       else
+           eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+       fi
+       # Some packages build their own stubs libraries
+       eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+    fi
+
+    # These are escaped so that only CFLAGS is picked up at configure time.
+    # The other values will be substituted at make time.
+    CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}"
+    if test "${SHARED_BUILD}" = "1" ; then
+       CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}"
+    fi
+
+    AC_SUBST(MAKE_LIB)
+    AC_SUBST(MAKE_SHARED_LIB)
+    AC_SUBST(MAKE_STATIC_LIB)
+    AC_SUBST(MAKE_STUB_LIB)
+    AC_SUBST(RANLIB_STUB)
+])
+
+#------------------------------------------------------------------------
+# TEA_LIB_SPEC --
+#
+#      Compute the name of an existing object library located in libdir
+#      from the given base name and produce the appropriate linker flags.
+#
+# Arguments:
+#      basename        The base name of the library without version
+#                      numbers, extensions, or "lib" prefixes.
+#      extra_dir       Extra directory in which to search for the
+#                      library.  This location is used first, then
+#                      $prefix/$exec-prefix, then some defaults.
+#
+# Requires:
+#      TEA_INIT and TEA_PREFIX must be called first.
+#
+# Results:
+#
+#      Defines the following vars:
+#              ${basename}_LIB_NAME    The computed library name.
+#              ${basename}_LIB_SPEC    The computed linker flags.
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_LIB_SPEC], [
+    AC_MSG_CHECKING([for $1 library])
+
+    # Look in exec-prefix for the library (defined by TEA_PREFIX).
+
+    tea_lib_name_dir="${exec_prefix}/lib"
+
+    # Or in a user-specified location.
+
+    if test x"$2" != x ; then
+       tea_extra_lib_dir=$2
+    else
+       tea_extra_lib_dir=NONE
+    fi
+
+    for i in \
+           `ls -dr ${tea_extra_lib_dir}/$1[[0-9]]*.lib 2>/dev/null ` \
+           `ls -dr ${tea_extra_lib_dir}/lib$1[[0-9]]* 2>/dev/null ` \
+           `ls -dr ${tea_lib_name_dir}/$1[[0-9]]*.lib 2>/dev/null ` \
+           `ls -dr ${tea_lib_name_dir}/lib$1[[0-9]]* 2>/dev/null ` \
+           `ls -dr /usr/lib/$1[[0-9]]*.lib 2>/dev/null ` \
+           `ls -dr /usr/lib/lib$1[[0-9]]* 2>/dev/null ` \
+           `ls -dr /usr/local/lib/$1[[0-9]]*.lib 2>/dev/null ` \
+           `ls -dr /usr/local/lib/lib$1[[0-9]]* 2>/dev/null ` ; do
+       if test -f "$i" ; then
+           tea_lib_name_dir=`dirname $i`
+           $1_LIB_NAME=`basename $i`
+           $1_LIB_PATH_NAME=$i
+           break
+       fi
+    done
+
+    if test "${TEA_PLATFORM}" = "windows"; then
+       $1_LIB_SPEC=\"`${CYGPATH} ${$1_LIB_PATH_NAME} 2>/dev/null`\"
+    else
+       # Strip off the leading "lib" and trailing ".a" or ".so"
+
+       tea_lib_name_lib=`echo ${$1_LIB_NAME}|sed -e 's/^lib//' -e 's/\.[[^.]]*$//' -e 's/\.so.*//'`
+       $1_LIB_SPEC="-L${tea_lib_name_dir} -l${tea_lib_name_lib}"
+    fi
+
+    if test "x${$1_LIB_NAME}" = x ; then
+       AC_MSG_ERROR([not found])
+    else
+       AC_MSG_RESULT([${$1_LIB_SPEC}])
+    fi
+])
+
+#------------------------------------------------------------------------
+# TEA_PRIVATE_TCL_HEADERS --
+#
+#      Locate the private Tcl include files
+#
+# Arguments:
+#
+#      Requires:
+#              TCL_SRC_DIR     Assumes that TEA_LOAD_TCLCONFIG has
+#                              already been called.
+#
+# Results:
+#
+#      Substs the following vars:
+#              TCL_TOP_DIR_NATIVE
+#              TCL_INCLUDES
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_PRIVATE_TCL_HEADERS], [
+    # Allow for --with-tclinclude to take effect and define ${ac_cv_c_tclh}
+    AC_REQUIRE([TEA_PUBLIC_TCL_HEADERS])
+    AC_MSG_CHECKING([for Tcl private include files])
+
+    TCL_SRC_DIR_NATIVE=`${CYGPATH} ${TCL_SRC_DIR}`
+    TCL_TOP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}\"
+
+    # Check to see if tcl<Plat>Port.h isn't already with the public headers
+    # Don't look for tclInt.h because that resides with tcl.h in the core
+    # sources, but the <plat>Port headers are in a different directory
+    if test "${TEA_PLATFORM}" = "windows" -a \
+       -f "${ac_cv_c_tclh}/tclWinPort.h"; then
+       result="private headers found with public headers"
+    elif test "${TEA_PLATFORM}" = "unix" -a \
+       -f "${ac_cv_c_tclh}/tclUnixPort.h"; then
+       result="private headers found with public headers"
+    else
+       TCL_GENERIC_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/generic\"
+       if test "${TEA_PLATFORM}" = "windows"; then
+           TCL_PLATFORM_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/win\"
+       else
+           TCL_PLATFORM_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/unix\"
+       fi
+       # Overwrite the previous TCL_INCLUDES as this should capture both
+       # public and private headers in the same set.
+       # We want to ensure these are substituted so as not to require
+       # any *_NATIVE vars be defined in the Makefile
+       TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
+       if test "`uname -s`" = "Darwin"; then
+            # If Tcl was built as a framework, attempt to use
+            # the framework's Headers and PrivateHeaders directories
+            case ${TCL_DEFS} in
+               *TCL_FRAMEWORK*)
+                   if test -d "${TCL_BIN_DIR}/Headers" -a \
+                           -d "${TCL_BIN_DIR}/PrivateHeaders"; then
+                       TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}"
+                   else
+                       TCL_INCLUDES="${TCL_INCLUDES} ${TCL_INCLUDE_SPEC} `echo "${TCL_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`"
+                   fi
+                   ;;
+           esac
+           result="Using ${TCL_INCLUDES}"
+       else
+           if test ! -f "${TCL_SRC_DIR}/generic/tclInt.h" ; then
+               AC_MSG_ERROR([Cannot find private header tclInt.h in ${TCL_SRC_DIR}])
+           fi
+           result="Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR}"
+       fi
+    fi
+
+    AC_SUBST(TCL_TOP_DIR_NATIVE)
+
+    AC_SUBST(TCL_INCLUDES)
+    AC_MSG_RESULT([${result}])
+])
+
+#------------------------------------------------------------------------
+# TEA_PUBLIC_TCL_HEADERS --
+#
+#      Locate the installed public Tcl header files
+#
+# Arguments:
+#      None.
+#
+# Requires:
+#      CYGPATH must be set
+#
+# Results:
+#
+#      Adds a --with-tclinclude switch to configure.
+#      Result is cached.
+#
+#      Substs the following vars:
+#              TCL_INCLUDES
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_PUBLIC_TCL_HEADERS], [
+    AC_MSG_CHECKING([for Tcl public headers])
+
+    AC_ARG_WITH(tclinclude, [  --with-tclinclude       directory containing the public Tcl header files], with_tclinclude=${withval})
+
+    AC_CACHE_VAL(ac_cv_c_tclh, [
+       # Use the value from --with-tclinclude, if it was given
+
+       if test x"${with_tclinclude}" != x ; then
+           if test -f "${with_tclinclude}/tcl.h" ; then
+               ac_cv_c_tclh=${with_tclinclude}
+           else
+               AC_MSG_ERROR([${with_tclinclude} directory does not contain tcl.h])
+           fi
+       else
+           list=""
+           if test "`uname -s`" = "Darwin"; then
+               # If Tcl was built as a framework, attempt to use
+               # the framework's Headers directory
+               case ${TCL_DEFS} in
+                   *TCL_FRAMEWORK*)
+                       list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`"
+                       ;;
+               esac
+           fi
+
+           # Look in the source dir only if Tcl is not installed,
+           # and in that situation, look there before installed locations.
+           if test -f "${TCL_BIN_DIR}/Makefile" ; then
+               list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`"
+           fi
+
+           # Check order: pkg --prefix location, Tcl's --prefix location,
+           # relative to directory of tclConfig.sh.
+
+           eval "temp_includedir=${includedir}"
+           list="$list \
+               `ls -d ${temp_includedir}        2>/dev/null` \
+               `ls -d ${TCL_PREFIX}/include     2>/dev/null` \
+               `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
+           if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
+               list="$list /usr/local/include /usr/include"
+               if test x"${TCL_INCLUDE_SPEC}" != x ; then
+                   d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'`
+                   list="$list `ls -d ${d} 2>/dev/null`"
+               fi
+           fi
+           for i in $list ; do
+               if test -f "$i/tcl.h" ; then
+                   ac_cv_c_tclh=$i
+                   break
+               fi
+           done
+       fi
+    ])
+
+    # Print a message based on how we determined the include path
+
+    if test x"${ac_cv_c_tclh}" = x ; then
+       AC_MSG_ERROR([tcl.h not found.  Please specify its location with --with-tclinclude])
+    else
+       AC_MSG_RESULT([${ac_cv_c_tclh}])
+    fi
+
+    # Convert to a native path and substitute into the output files.
+
+    INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}`
+
+    TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
+
+    AC_SUBST(TCL_INCLUDES)
+])
+
+#------------------------------------------------------------------------
+# TEA_PRIVATE_TK_HEADERS --
+#
+#      Locate the private Tk include files
+#
+# Arguments:
+#
+#      Requires:
+#              TK_SRC_DIR      Assumes that TEA_LOAD_TKCONFIG has
+#                               already been called.
+#
+# Results:
+#
+#      Substs the following vars:
+#              TK_INCLUDES
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_PRIVATE_TK_HEADERS], [
+    # Allow for --with-tkinclude to take effect and define ${ac_cv_c_tkh}
+    AC_REQUIRE([TEA_PUBLIC_TK_HEADERS])
+    AC_MSG_CHECKING([for Tk private include files])
+
+    TK_SRC_DIR_NATIVE=`${CYGPATH} ${TK_SRC_DIR}`
+    TK_TOP_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}\"
+
+    # Check to see if tk<Plat>Port.h isn't already with the public headers
+    # Don't look for tkInt.h because that resides with tk.h in the core
+    # sources, but the <plat>Port headers are in a different directory
+    if test "${TEA_PLATFORM}" = "windows" -a \
+       -f "${ac_cv_c_tkh}/tkWinPort.h"; then
+       result="private headers found with public headers"
+    elif test "${TEA_PLATFORM}" = "unix" -a \
+       -f "${ac_cv_c_tkh}/tkUnixPort.h"; then
+       result="private headers found with public headers"
+    else
+       TK_GENERIC_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/generic\"
+       TK_XLIB_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/xlib\"
+       if test "${TEA_PLATFORM}" = "windows"; then
+           TK_PLATFORM_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/win\"
+       else
+           TK_PLATFORM_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/unix\"
+       fi
+       # Overwrite the previous TK_INCLUDES as this should capture both
+       # public and private headers in the same set.
+       # We want to ensure these are substituted so as not to require
+       # any *_NATIVE vars be defined in the Makefile
+       TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}"
+       # Detect and add ttk subdir
+       if test -d "${TK_SRC_DIR}/generic/ttk"; then
+          TK_INCLUDES="${TK_INCLUDES} -I\"${TK_SRC_DIR_NATIVE}/generic/ttk\""
+       fi
+       if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then
+          TK_INCLUDES="${TK_INCLUDES} -I\"${TK_XLIB_DIR_NATIVE}\""
+       fi
+       if test "${TEA_WINDOWINGSYSTEM}" = "aqua"; then
+          TK_INCLUDES="${TK_INCLUDES} -I\"${TK_SRC_DIR_NATIVE}/macosx\""
+       fi
+       if test "`uname -s`" = "Darwin"; then
+           # If Tk was built as a framework, attempt to use
+           # the framework's Headers and PrivateHeaders directories
+           case ${TK_DEFS} in
+               *TK_FRAMEWORK*)
+                       if test -d "${TK_BIN_DIR}/Headers" -a \
+                               -d "${TK_BIN_DIR}/PrivateHeaders"; then
+                           TK_INCLUDES="-I\"${TK_BIN_DIR}/Headers\" -I\"${TK_BIN_DIR}/PrivateHeaders\" ${TK_INCLUDES}"
+                       else
+                           TK_INCLUDES="${TK_INCLUDES} ${TK_INCLUDE_SPEC} `echo "${TK_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`"
+                       fi
+                       ;;
+           esac
+           result="Using ${TK_INCLUDES}"
+       else
+           if test ! -f "${TK_SRC_DIR}/generic/tkInt.h" ; then
+              AC_MSG_ERROR([Cannot find private header tkInt.h in ${TK_SRC_DIR}])
+           fi
+           result="Using srcdir found in tkConfig.sh: ${TK_SRC_DIR}"
+       fi
+    fi
+
+    AC_SUBST(TK_TOP_DIR_NATIVE)
+    AC_SUBST(TK_XLIB_DIR_NATIVE)
+
+    AC_SUBST(TK_INCLUDES)
+    AC_MSG_RESULT([${result}])
+])
+
+#------------------------------------------------------------------------
+# TEA_PUBLIC_TK_HEADERS --
+#
+#      Locate the installed public Tk header files
+#
+# Arguments:
+#      None.
+#
+# Requires:
+#      CYGPATH must be set
+#
+# Results:
+#
+#      Adds a --with-tkinclude switch to configure.
+#      Result is cached.
+#
+#      Substs the following vars:
+#              TK_INCLUDES
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_PUBLIC_TK_HEADERS], [
+    AC_MSG_CHECKING([for Tk public headers])
+
+    AC_ARG_WITH(tkinclude, [  --with-tkinclude        directory containing the public Tk header files], with_tkinclude=${withval})
+
+    AC_CACHE_VAL(ac_cv_c_tkh, [
+       # Use the value from --with-tkinclude, if it was given
+
+       if test x"${with_tkinclude}" != x ; then
+           if test -f "${with_tkinclude}/tk.h" ; then
+               ac_cv_c_tkh=${with_tkinclude}
+           else
+               AC_MSG_ERROR([${with_tkinclude} directory does not contain tk.h])
+           fi
+       else
+           list=""
+           if test "`uname -s`" = "Darwin"; then
+               # If Tk was built as a framework, attempt to use
+               # the framework's Headers directory.
+               case ${TK_DEFS} in
+                   *TK_FRAMEWORK*)
+                       list="`ls -d ${TK_BIN_DIR}/Headers 2>/dev/null`"
+                       ;;
+               esac
+           fi
+
+           # Look in the source dir only if Tk is not installed,
+           # and in that situation, look there before installed locations.
+           if test -f "${TK_BIN_DIR}/Makefile" ; then
+               list="$list `ls -d ${TK_SRC_DIR}/generic 2>/dev/null`"
+           fi
+
+           # Check order: pkg --prefix location, Tk's --prefix location,
+           # relative to directory of tkConfig.sh, Tcl's --prefix location,
+           # relative to directory of tclConfig.sh.
+
+           eval "temp_includedir=${includedir}"
+           list="$list \
+               `ls -d ${temp_includedir}        2>/dev/null` \
+               `ls -d ${TK_PREFIX}/include      2>/dev/null` \
+               `ls -d ${TK_BIN_DIR}/../include  2>/dev/null` \
+               `ls -d ${TCL_PREFIX}/include     2>/dev/null` \
+               `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
+           if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
+               list="$list /usr/local/include /usr/include"
+               if test x"${TK_INCLUDE_SPEC}" != x ; then
+                   d=`echo "${TK_INCLUDE_SPEC}" | sed -e 's/^-I//'`
+                   list="$list `ls -d ${d} 2>/dev/null`"
+               fi
+           fi
+           for i in $list ; do
+               if test -f "$i/tk.h" ; then
+                   ac_cv_c_tkh=$i
+                   break
+               fi
+           done
+       fi
+    ])
+
+    # Print a message based on how we determined the include path
+
+    if test x"${ac_cv_c_tkh}" = x ; then
+       AC_MSG_ERROR([tk.h not found.  Please specify its location with --with-tkinclude])
+    else
+       AC_MSG_RESULT([${ac_cv_c_tkh}])
+    fi
+
+    # Convert to a native path and substitute into the output files.
+
+    INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tkh}`
+
+    TK_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
+
+    AC_SUBST(TK_INCLUDES)
+
+    if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then
+       # On Windows and Aqua, we need the X compat headers
+       AC_MSG_CHECKING([for X11 header files])
+       if test ! -r "${INCLUDE_DIR_NATIVE}/X11/Xlib.h"; then
+           INCLUDE_DIR_NATIVE="`${CYGPATH} ${TK_SRC_DIR}/xlib`"
+           TK_XINCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
+           AC_SUBST(TK_XINCLUDES)
+       fi
+       AC_MSG_RESULT([${INCLUDE_DIR_NATIVE}])
+    fi
+])
+
+#------------------------------------------------------------------------
+# TEA_PATH_CONFIG --
+#
+#      Locate the ${1}Config.sh file and perform a sanity check on
+#      the ${1} compile flags.  These are used by packages like
+#      [incr Tk] that load *Config.sh files from more than Tcl and Tk.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --with-$1=...
+#
+#      Defines the following vars:
+#              $1_BIN_DIR      Full path to the directory containing
+#                              the $1Config.sh file
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_PATH_CONFIG], [
+    #
+    # Ok, lets find the $1 configuration
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-$1
+    #
+
+    if test x"${no_$1}" = x ; then
+       # we reset no_$1 in case something fails here
+       no_$1=true
+       AC_ARG_WITH($1, [  --with-$1              directory containing $1 configuration ($1Config.sh)], with_$1config=${withval})
+       AC_MSG_CHECKING([for $1 configuration])
+       AC_CACHE_VAL(ac_cv_c_$1config,[
+
+           # First check to see if --with-$1 was specified.
+           if test x"${with_$1config}" != x ; then
+               case ${with_$1config} in
+                   */$1Config.sh )
+                       if test -f ${with_$1config}; then
+                           AC_MSG_WARN([--with-$1 argument should refer to directory containing $1Config.sh, not to $1Config.sh itself])
+                           with_$1config=`echo ${with_$1config} | sed 's!/$1Config\.sh$!!'`
+                       fi;;
+               esac
+               if test -f "${with_$1config}/$1Config.sh" ; then
+                   ac_cv_c_$1config=`(cd ${with_$1config}; pwd)`
+               else
+                   AC_MSG_ERROR([${with_$1config} directory doesn't contain $1Config.sh])
+               fi
+           fi
+
+           # then check for a private $1 installation
+           if test x"${ac_cv_c_$1config}" = x ; then
+               for i in \
+                       ../$1 \
+                       `ls -dr ../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
+                       `ls -dr ../$1*[[0-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
+                       ../../$1 \
+                       `ls -dr ../../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
+                       `ls -dr ../../$1*[[0-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
+                       ../../../$1 \
+                       `ls -dr ../../../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../../../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
+                       `ls -dr ../../../$1*[[0-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../../../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
+                       ${srcdir}/../$1 \
+                       `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
+                       `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
+                       `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
+                       ; do
+                   if test -f "$i/$1Config.sh" ; then
+                       ac_cv_c_$1config=`(cd $i; pwd)`
+                       break
+                   fi
+                   if test -f "$i/unix/$1Config.sh" ; then
+                       ac_cv_c_$1config=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few common install locations
+           if test x"${ac_cv_c_$1config}" = x ; then
+               for i in `ls -d ${libdir} 2>/dev/null` \
+                       `ls -d ${exec_prefix}/lib 2>/dev/null` \
+                       `ls -d ${prefix}/lib 2>/dev/null` \
+                       `ls -d /usr/local/lib 2>/dev/null` \
+                       `ls -d /usr/contrib/lib 2>/dev/null` \
+                       `ls -d /usr/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/$1Config.sh" ; then
+                       ac_cv_c_$1config=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+       ])
+
+       if test x"${ac_cv_c_$1config}" = x ; then
+           $1_BIN_DIR="# no $1 configs found"
+           AC_MSG_WARN([Cannot find $1 configuration definitions])
+           exit 0
+       else
+           no_$1=
+           $1_BIN_DIR=${ac_cv_c_$1config}
+           AC_MSG_RESULT([found $$1_BIN_DIR/$1Config.sh])
+       fi
+    fi
+])
+
+#------------------------------------------------------------------------
+# TEA_LOAD_CONFIG --
+#
+#      Load the $1Config.sh file
+#
+# Arguments:
+#
+#      Requires the following vars to be set:
+#              $1_BIN_DIR
+#
+# Results:
+#
+#      Subst the following vars:
+#              $1_SRC_DIR
+#              $1_LIB_FILE
+#              $1_LIB_SPEC
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_LOAD_CONFIG], [
+    AC_MSG_CHECKING([for existence of ${$1_BIN_DIR}/$1Config.sh])
+
+    if test -f "${$1_BIN_DIR}/$1Config.sh" ; then
+        AC_MSG_RESULT([loading])
+       . "${$1_BIN_DIR}/$1Config.sh"
+    else
+        AC_MSG_RESULT([file not found])
+    fi
+
+    #
+    # If the $1_BIN_DIR is the build directory (not the install directory),
+    # then set the common variable name to the value of the build variables.
+    # For example, the variable $1_LIB_SPEC will be set to the value
+    # of $1_BUILD_LIB_SPEC. An extension should make use of $1_LIB_SPEC
+    # instead of $1_BUILD_LIB_SPEC since it will work with both an
+    # installed and uninstalled version of Tcl.
+    #
+
+    if test -f "${$1_BIN_DIR}/Makefile" ; then
+       AC_MSG_WARN([Found Makefile - using build library specs for $1])
+        $1_LIB_SPEC=${$1_BUILD_LIB_SPEC}
+        $1_STUB_LIB_SPEC=${$1_BUILD_STUB_LIB_SPEC}
+        $1_STUB_LIB_PATH=${$1_BUILD_STUB_LIB_PATH}
+    fi
+
+    AC_SUBST($1_VERSION)
+    AC_SUBST($1_BIN_DIR)
+    AC_SUBST($1_SRC_DIR)
+
+    AC_SUBST($1_LIB_FILE)
+    AC_SUBST($1_LIB_SPEC)
+
+    AC_SUBST($1_STUB_LIB_FILE)
+    AC_SUBST($1_STUB_LIB_SPEC)
+    AC_SUBST($1_STUB_LIB_PATH)
+])
+
+#------------------------------------------------------------------------
+# TEA_PATH_CELIB --
+#
+#      Locate Keuchel's celib emulation layer for targeting Win/CE
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --with-celib=...
+#
+#      Defines the following vars:
+#              CELIB_DIR       Full path to the directory containing
+#                              the include and platform lib files
+#------------------------------------------------------------------------
+
+AC_DEFUN([TEA_PATH_CELIB], [
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-celib
+
+    if test x"${no_celib}" = x ; then
+       # we reset no_celib in case something fails here
+       no_celib=true
+       AC_ARG_WITH(celib,[  --with-celib=DIR        use Windows/CE support library from DIR], with_celibconfig=${withval})
+       AC_MSG_CHECKING([for Windows/CE celib directory])
+       AC_CACHE_VAL(ac_cv_c_celibconfig,[
+           # First check to see if --with-celibconfig was specified.
+           if test x"${with_celibconfig}" != x ; then
+               if test -d "${with_celibconfig}/inc" ; then
+                   ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)`
+               else
+                   AC_MSG_ERROR([${with_celibconfig} directory doesn't contain inc directory])
+               fi
+           fi
+
+           # then check for a celib library
+           if test x"${ac_cv_c_celibconfig}" = x ; then
+               for i in \
+                       ../celib-palm-3.0 \
+                       ../celib \
+                       ../../celib-palm-3.0 \
+                       ../../celib \
+                       `ls -dr ../celib-*3.[[0-9]]* 2>/dev/null` \
+                       ${srcdir}/../celib-palm-3.0 \
+                       ${srcdir}/../celib \
+                       `ls -dr ${srcdir}/../celib-*3.[[0-9]]* 2>/dev/null` \
+                       ; do
+                   if test -d "$i/inc" ; then
+                       ac_cv_c_celibconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+       ])
+       if test x"${ac_cv_c_celibconfig}" = x ; then
+           AC_MSG_ERROR([Cannot find celib support library directory])
+       else
+           no_celib=
+           CELIB_DIR=${ac_cv_c_celibconfig}
+           CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'`
+           AC_MSG_RESULT([found $CELIB_DIR])
+       fi
+    fi
+])
+
+
+# Local Variables:
+# mode: autoconf
+# End:
diff --git a/tests/a.tcl b/tests/a.tcl
new file mode 100644 (file)
index 0000000..c96014f
--- /dev/null
@@ -0,0 +1,13 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+
+$curlHandle configure -url "http://127.0.0.1" -protocols [list http https ftp]
+
+$curlHandle cleanup
+
+
+
+
+
+
diff --git a/tests/a.tcl~ b/tests/a.tcl~
new file mode 100644 (file)
index 0000000..2bc63fb
--- /dev/null
@@ -0,0 +1,13 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+
+$curlHandle configure -url "http://127.0.0.1" -ftpssl 1 -protocols [list http https ftp]
+
+$curlHandle cleanup
+
+
+
+
+
+
diff --git a/tests/basico.tcl b/tests/basico.tcl
new file mode 100755 (executable)
index 0000000..18f4d7e
--- /dev/null
@@ -0,0 +1,8 @@
+package require TclCurl
+
+curl::transfer -url "127.0.0.1"
+
+
+
+
+
diff --git a/tests/bodyVar.tcl b/tests/bodyVar.tcl
new file mode 100755 (executable)
index 0000000..ef3a9a0
--- /dev/null
@@ -0,0 +1,36 @@
+package require TclCurl
+
+# These tests has some urls that don't exists outside my system,
+# so IT WON'T WORK FOR YOU unless you change them.
+
+set curlHandle [curl::init]
+$curlHandle configure -url "127.0.0.1" -bodyvar body -noprogress 1 
+$curlHandle perform
+
+$curlHandle configure -url "127.0.0.1/~andres/" -bodyvar newBody
+$curlHandle perform
+
+$curlHandle cleanup
+
+puts "First page:"
+puts $body
+
+puts "Second page:"
+puts $newBody
+
+# You can also use it for binary transfers
+
+curl::transfer \
+        -url {127.0.0.1/~andres/HomePage/getleft/images/getleft.png} \
+        -bodyvar image -noprogress 1 -verbose 1
+
+if [catch {open "getleft.png" w} out] {
+    puts "Could not open $out."
+    exit
+}
+
+fconfigure $out -translation binary
+puts  $out $image
+close $out
+
+
diff --git a/tests/bufferSize.tcl b/tests/bufferSize.tcl
new file mode 100755 (executable)
index 0000000..1be1cee
--- /dev/null
@@ -0,0 +1,24 @@
+package require TclCurl
+
+# This is one contrived example, but it works.
+
+proc writeToFile {readData} {
+    puts "writeToFile called [incr ::i]"
+    puts -nonewline $::inFile $readData
+
+    return
+}
+
+set i 0
+
+set inFile [open "cosa.tar" w+]
+fconfigure $inFile -translation binary
+
+curl::transfer -url "127.0.0.1/~andres/cosa&co.tar" \
+        -writeproc writeToFile -buffersize 250
+
+close $inFile
+
+
+
+
diff --git a/tests/command.tcl b/tests/command.tcl
new file mode 100755 (executable)
index 0000000..6977052
--- /dev/null
@@ -0,0 +1,10 @@
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -command "puts \"\nTransfer complete\n\""
+
+
+
+
+
+
+
diff --git a/tests/cookie.tcl b/tests/cookie.tcl
new file mode 100755 (executable)
index 0000000..cbc9a63
--- /dev/null
@@ -0,0 +1,8 @@
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -cookie "name=andres;" -verbose 1
+
+
+
+
+
diff --git a/tests/cookieFile.tcl b/tests/cookieFile.tcl
new file mode 100755 (executable)
index 0000000..4a993fb
--- /dev/null
@@ -0,0 +1,13 @@
+package require TclCurl
+
+if {![file exists /home/andres/.getleft/cookies]} {
+    puts "The given cookie file doesn't exist"
+}
+
+curl::transfer -url 127.0.0.1 \
+        -cookiefile "/home/andres/.getleft/cookies" -verbose 1
+
+
+
+
+
diff --git a/tests/curlConfig.tcl b/tests/curlConfig.tcl
new file mode 100755 (executable)
index 0000000..987d544
--- /dev/null
@@ -0,0 +1,12 @@
+package require TclCurl
+
+puts "cURL is installed in: [curl::curlConfig -prefix]"
+
+set compiledOptions [curl::curlConfig -feature]
+regsub -all {\n} $compiledOptions { - } compiledOptions
+puts "The compiled options: $compiledOptions"
+
+puts "The version in hex: [curl::curlConfig -vernum]"
+
+puts "The built-in path to the CA cert bundle:\n\t[curl::curlConfig -ca]"
+
diff --git a/tests/debugProc.tcl b/tests/debugProc.tcl
new file mode 100755 (executable)
index 0000000..fd2ebdb
--- /dev/null
@@ -0,0 +1,41 @@
+package require TclCurl
+
+proc DebugProc {infoType data} {
+
+    switch $infoType {
+        0 {
+            set type "text"
+        }
+        1 {
+            set type "incoming header"
+        }
+        2 {
+            set type "outgoing header"
+        }
+        3 {
+            set type "incoming data"
+        }
+        4 {
+            set type "outgoing data"
+        }
+        5 {
+            set type "incoming SSL data"
+        }
+        6 {
+            set type "outgoing SSL data"
+        }
+    }
+
+    puts "Type: $type - Data:"
+    puts "$data"
+
+    return 0
+}
+
+set curlHandle [curl::init]
+
+$curlHandle configure -url 127.0.0.1 -verbose 1 \
+        -debugproc DebugProc
+
+$curlHandle perform
+$curlHandle cleanup
diff --git a/tests/dict.tcl b/tests/dict.tcl
new file mode 100755 (executable)
index 0000000..d32b9f8
--- /dev/null
@@ -0,0 +1,7 @@
+package require TclCurl
+
+curl::transfer -url "dict://dict.org/m:curl"
+
+
+
+
diff --git a/tests/dupHandle.tcl b/tests/dupHandle.tcl
new file mode 100755 (executable)
index 0000000..3fc73a5
--- /dev/null
@@ -0,0 +1,16 @@
+package require TclCurl
+
+set curlHandle1 [curl::init]
+
+$curlHandle1 configure -url 127.0.0.1
+
+set curlHandle2 [$curlHandle1 duphandle]
+
+$curlHandle1 configure -url 127.0.0.1/~andres/
+
+$curlHandle2 perform
+
+
+$curlHandle1 cleanup
+$curlHandle2 cleanup
+
diff --git a/tests/encoding.tcl b/tests/encoding.tcl
new file mode 100755 (executable)
index 0000000..4f6e842
--- /dev/null
@@ -0,0 +1,9 @@
+package require TclCurl
+
+curl::transfer -url "http://127.0.0.1" -encoding deflated -verbose 1
+
+curl::transfer -url "http://127.0.0.1" -encoding all      -verbose 1
+
+
+
+
diff --git a/tests/errorBuffer.tcl b/tests/errorBuffer.tcl
new file mode 100755 (executable)
index 0000000..e90896c
--- /dev/null
@@ -0,0 +1,23 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+$curlHandle configure -url "Shire.Asturias.com" -errorbuffer errorMsg
+
+if {[catch {$curlHandle perform}]} {
+       puts "The error message: $errorMsg"
+}
+
+$curlHandle configure -url "Shire.Asturias.com" -errorbuffer error(msg)
+
+if {[catch {$curlHandle perform}]} {
+       puts "The error message: $error(msg)"
+}
+
+$curlHandle cleanup
+
+unset error
+catch {curl::transfer -url "Shire.Asturias.com" -errorbuffer error(msg)}
+
+puts "Error: $error(msg)"
+
+
diff --git a/tests/escape.tcl b/tests/escape.tcl
new file mode 100755 (executable)
index 0000000..b4bb6d4
--- /dev/null
@@ -0,0 +1,6 @@
+package require TclCurl
+
+
+set escaped [curl::escape {What about this?}]
+puts "String to escape: What about this? - $escaped"
+puts "And the reverse: [curl::unescape $escaped]"
diff --git a/tests/failOnError.tcl b/tests/failOnError.tcl
new file mode 100755 (executable)
index 0000000..ed2ea67
--- /dev/null
@@ -0,0 +1,17 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+$curlHandle configure -url "127.0.0.1/cosa.html"
+
+$curlHandle configure -failonerror 0 ; # This is the default
+puts "With failonerror==0:"
+catch {$curlHandle perform}
+puts "\n\n\n\n\n"
+puts "With failonerror==1:"
+$curlHandle configure -failonerror 1
+catch {$curlHandle perform}
+
+$curlHandle cleanup
+
+
+
diff --git a/tests/file.tcl b/tests/file.tcl
new file mode 100755 (executable)
index 0000000..6643a12
--- /dev/null
@@ -0,0 +1,17 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+$curlHandle configure -url "127.0.0.1" -file "index.html"
+$curlHandle perform
+
+puts "First transfer finished\n"
+
+$curlHandle configure -header  1 -file cosa.html
+$curlHandle perform
+
+$curlHandle cleanup
+
+
+
+
+
diff --git a/tests/fileNoFile.tcl b/tests/fileNoFile.tcl
new file mode 100755 (executable)
index 0000000..27dae9f
--- /dev/null
@@ -0,0 +1,20 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+
+puts "First we save in 'index.html'"
+
+$curlHandle configure -noprogress  1 -url "127.0.0.1" -file "index.html"
+$curlHandle perform
+
+puts "And now in stdout"
+
+$curlHandle configure -file ""
+$curlHandle perform
+
+$curlHandle cleanup
+
+
+
+
+
diff --git a/tests/formGet.tcl b/tests/formGet.tcl
new file mode 100755 (executable)
index 0000000..9b74b02
--- /dev/null
@@ -0,0 +1,13 @@
+package require TclCurl
+
+curl::transfer -url "http://www.google.com/search?q=TclCurl&hl=en&btnG=Google+Search+&lr=" \
+        -file tclcurl.html -cookiejar [file join [file dirname [info script]] cookieJar.txt]
+puts "Transfer saved in 'tclcurl.html'"
+puts "Cookies en el fichero: [file join [file dirname [info script]] cookieJar.txt]"
+
+
+
+
+
+
+
diff --git a/tests/ftp.tcl b/tests/ftp.tcl
new file mode 100755 (executable)
index 0000000..e3f0533
--- /dev/null
@@ -0,0 +1,22 @@
+package require TclCurl
+
+puts "nobody==1 --- header==1"
+curl::transfer -url "ftp://127.0.0.1/pub/indust2.gif" -nobody 1 -header 1
+
+puts "nobody==0 --- header ignored"
+curl::transfer -url "ftp://127.0.0.1/pub/indust2.gif" -nobody 0 \
+        -file cosa.gif
+
+puts "nobody==1 --- HEADERS==0"
+curl::transfer -url "ftp://127.0.0.1/pub/indust2.gif" -nobody 1 \
+        -header 0 -postquote [list "mkdir nada"]
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/ftpList.tcl b/tests/ftpList.tcl
new file mode 100755 (executable)
index 0000000..04f2904
--- /dev/null
@@ -0,0 +1,9 @@
+package require TclCurl
+
+curl::transfer -url "ftp://127.0.0.1/pub/" -ftplistonly 1
+
+
+
+
+
+
diff --git a/tests/ftpUpload.tcl b/tests/ftpUpload.tcl
new file mode 100755 (executable)
index 0000000..b30f338
--- /dev/null
@@ -0,0 +1,25 @@
+package require TclCurl
+
+set buffer ""
+if {[catch {curl::transfer -url ftp://127.0.0.1/Test/cosa.tcl \
+        -userpwd "user:pwd" -verbose 1                        \
+        -infile ftpUpload.tcl -upload 1  -errorbuffer buffer  \
+        -quote [list "mkd Test"]                              \
+        -postquote [list "rnfr cosa.tcl" "rnto script.tcl"]   \
+      } buffer]} {
+    puts "Error: $buffer"
+} else {
+    puts "Upload complete"
+}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/getInfo.tcl b/tests/getInfo.tcl
new file mode 100755 (executable)
index 0000000..f19cf24
--- /dev/null
@@ -0,0 +1,52 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+$curlHandle configure -url "127.0.0.1" -filetime 1  -verbose 1             \
+         -cookielist "127.0.0.1\tFALSE\t/\tFALSE\t1262307600\tad_browser_id\t  18864635"
+$curlHandle perform
+
+puts "Url: [$curlHandle getinfo effectiveurl]"
+puts "Primary IP: [$curlHandle getinfo primaryip]"
+puts "Redirect url: [$curlHandle getinfo redirecturl]"
+puts "Http-code: [$curlHandle getinfo responsecode]"
+puts "Proxy response code: [$curlHandle getinfo httpconnectcode]"
+set fileTime [$curlHandle getinfo filetime]
+puts "Filetime: $fileTime - [clock format $fileTime]"
+puts "Total time: [$curlHandle getinfo totaltime]"
+puts "Name lookup time: [$curlHandle getinfo namelookuptime]"
+puts "Name connect time: [$curlHandle getinfo connecttime]"
+puts "Name pretransfer time: [$curlHandle getinfo pretransfertime]"
+puts "Name start transfer time: [$curlHandle getinfo starttransfertime]"
+puts "Name app connect time: [$curlHandle getinfo appconnecttime]"
+puts "Name size upload: [$curlHandle getinfo sizeupload]"
+puts "Name size download: [$curlHandle getinfo sizedownload]"
+puts "Name speed download: [$curlHandle getinfo speeddownload]"
+puts "Name speed upload: [$curlHandle getinfo speedupload]"
+puts "Name header size: [$curlHandle getinfo headersize]"
+puts "Name request size: [$curlHandle getinfo requestsize]"
+puts "Name ssl verifyresult: [$curlHandle getinfo sslverifyresult]"
+puts "SSL engines: [$curlHandle getinfo sslengines]"
+puts "Name length download: [$curlHandle getinfo contentlengthdownload]"
+puts "Name length upload: [$curlHandle getinfo contentlengthupload]"
+puts "Content-Type: [$curlHandle getinfo contenttype]"
+puts "Redirect time: [$curlHandle getinfo redirecttime]"
+puts "Redirect count: [$curlHandle getinfo redirectcount]"
+puts "Authentication methods available: [$curlHandle getinfo httpauthavail]"
+puts "Authentication methods at the proxy: [$curlHandle getinfo proxyauthavail]"
+puts "Operating System error number: [$curlHandle getinfo oserrno]"
+puts "Number of successful connects: [$curlHandle getinfo numconnects]"
+puts "Known cookies: [$curlHandle getinfo cookielist]"
+set certList [$curlHandle getinfo certinfo]
+set certNum  [lindex $certList 0]
+puts "Nº de certificados: $certNum"
+for {set i 1} {$i<=$certNum} {incr i} {
+    puts [lindex $certList $i]
+}
+
+$curlHandle cleanup
+
+
+
+
+
+
diff --git a/tests/headNoHead.tcl b/tests/headNoHead.tcl
new file mode 100755 (executable)
index 0000000..7947152
--- /dev/null
@@ -0,0 +1,21 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+
+puts "First we save the headers in 'header.txt'"
+
+$curlHandle configure -noprogress 1 -nobody 1 -url "127.0.0.1" \
+        -writeheader header.txt
+$curlHandle perform
+
+puts "And now we dump them to the console"
+
+$curlHandle configure -writeheader ""
+$curlHandle perform
+
+$curlHandle cleanup
+
+
+
+
+
diff --git a/tests/header.tcl b/tests/header.tcl
new file mode 100755 (executable)
index 0000000..d33b982
--- /dev/null
@@ -0,0 +1,8 @@
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -header 1 -nobody 1
+
+
+
+
+
diff --git a/tests/headerVar.tcl b/tests/headerVar.tcl
new file mode 100755 (executable)
index 0000000..2c42660
--- /dev/null
@@ -0,0 +1,13 @@
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -header 1 -nobody 1 -headervar headers
+
+puts "The received headers"
+foreach {key content} [array get headers] {
+    puts "headers($key): $content"
+}
+
+
+
+
+
diff --git a/tests/http200Aliases.tcl b/tests/http200Aliases.tcl
new file mode 100755 (executable)
index 0000000..07260fb
--- /dev/null
@@ -0,0 +1,12 @@
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -verbose 1 -nobody 1 -header 1     \
+        -http200aliases [list "yummy/4.5 200 OK" "great/1.3 350 WRONG"]
+
+        
+
+
+
+
+
+
diff --git a/tests/httpBufferPost.tcl b/tests/httpBufferPost.tcl
new file mode 100755 (executable)
index 0000000..b046a26
--- /dev/null
@@ -0,0 +1,14 @@
+package require TclCurl
+
+
+set fileContent "This is what we will send as if it was the content of a file"
+
+curl::transfer -url 127.0.0.1/cgi-bin/post1.tcl -verbose 1 -post 1                                                         \
+        -httppost [list name "firstName" contents "Andres" contenttype "text/plain" contentheader [list "adios: goodbye"]] \
+        -httppost [list name "lastName"  contents "Garcia"]                                                                \
+        -httppost [list name "nombre"    bufferName noFile.txt      buffer $fileContent contenttype "text/html"]           \
+        -httppost [list name "submit"    contents "send"] -verbose 1
+
+
+
+
diff --git a/tests/httpHeader.tcl b/tests/httpHeader.tcl
new file mode 100755 (executable)
index 0000000..b4a2533
--- /dev/null
@@ -0,0 +1,12 @@
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -verbose 1 -nobody 1 \
+        -httpheader [list "hola: hello" "adios: goodbye"]
+
+
+
+
+
+
+
+
diff --git a/tests/httpPost.tcl b/tests/httpPost.tcl
new file mode 100755 (executable)
index 0000000..ac2f882
--- /dev/null
@@ -0,0 +1,14 @@
+package require TclCurl
+
+
+curl::transfer -url 127.0.0.1/cgi-bin/post1.tcl -verbose 1 -post 1                   \
+        -httppost [list name "firstName" contents "Andres" contenttype "text/plain" contentheader [list "adios: goodbye"]]                                       \
+        -httppost [list name "lastName"  contents "Garcia"]                          \
+        -httppost [list name "file"      file     "httpPost.tcl" file "basico.tcl" contenttype text/plain filename "c:\\basico.tcl"]                            \
+        -httppost [list name "AnotherFile" filecontent "httpBufferPost.tcl"]         \
+        -httppost [list name "submit"    contents "send"] -verbose 1
+
+
+
+
+
diff --git a/tests/httpVersion.tcl b/tests/httpVersion.tcl
new file mode 100755 (executable)
index 0000000..963a2ba
--- /dev/null
@@ -0,0 +1,13 @@
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -httpversion none -verbose 1 -nobody 1
+
+curl::transfer -url "127.0.0.1" -httpversion 1.0  -verbose 1 -nobody 1
+
+curl::transfer -url "127.0.0.1" -httpversion 1.1  -verbose 1 -nobody 1
+
+
+
+
+
+
diff --git a/tests/https.tcl b/tests/https.tcl
new file mode 100755 (executable)
index 0000000..c9e85d4
--- /dev/null
@@ -0,0 +1,13 @@
+package require TclCurl
+
+if {$tcl_platform(platform)=="windows"} {
+    set certFile [file join $env(windir) curl-ca-bundle.crt]
+} else {
+    set certFile /usr/local/share/curl/curl-ca-bundle.crt
+}
+
+::curl::transfer -url https://www.paypal.com/ -cainfo $certFile \
+        -file paypal.html
+
+
+puts "https://www.paypal.com/ saved in 'paypal.html'"
diff --git a/tests/interface.tcl b/tests/interface.tcl
new file mode 100755 (executable)
index 0000000..81eede4
--- /dev/null
@@ -0,0 +1,11 @@
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -verbose 1 -interface 127.0.0.1 -nobody 1
+
+
+
+
+
+
+
+
diff --git a/tests/ipresolve.tcl b/tests/ipresolve.tcl
new file mode 100755 (executable)
index 0000000..68570fe
--- /dev/null
@@ -0,0 +1,14 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+$curlHandle configure -url "http://127.0.0.1" -filetime 1 -ipresolve v4 \
+        -verbose 1 -nobody 1
+$curlHandle perform
+
+$curlHandle cleanup
+
+
+
+
+
+
diff --git a/tests/multi/auto.tcl b/tests/multi/auto.tcl
new file mode 100755 (executable)
index 0000000..7c69cd8
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/local/bin/wish8.4
+
+package require TclCurl
+
+#wm withdraw .
+
+proc CleanUp {multiHandle easyHandle} {
+    puts "\n\nCleaning up\n\n"
+
+    $::multiHandle removehandle $::easyHandle
+    $::multiHandle cleanup
+    $::easyHandle  cleanup
+
+    puts "\n\nAll done\n\n"
+
+    exit
+}
+
+set multiHandle [curl::multiinit]
+set easyHandle  [curl::init]
+
+$easyHandle  configure -url http://127.0.0.1/~andres/HomePage.tar.gz -file home.tar.gz
+
+$multiHandle addhandle $easyHandle
+
+puts "Starting transfer..."
+
+$multiHandle auto -command "CleanUp $multiHandle $easyHandle"
+
+
+
diff --git a/tests/multi/autoGUI.tcl b/tests/multi/autoGUI.tcl
new file mode 100755 (executable)
index 0000000..ace2423
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/local/bin/wish8.4
+
+package require TclCurl
+
+proc CleanUp {multiHandle easyHandle} {
+    puts "\n\nCleaning up $multiHandle - $easyHandle\n\n"
+
+    $multiHandle removehandle $easyHandle
+    $multiHandle cleanup
+    $easyHandle  cleanup
+
+    puts "\n\nAll done\n\n"
+
+    exit
+}
+
+proc StartTransfer {} {
+    set multiHandle [curl::multiinit]
+    set easyHandle  [curl::init]
+
+    $easyHandle  configure -url http://127.0.0.1/~andres/HomePage.tar.gz -file home.tar.gz
+
+    $multiHandle addhandle $easyHandle
+
+    $multiHandle auto -command "CleanUp $multiHandle $easyHandle"
+}
+
+set start [button .start -text Start -command StartTransfer]
+set stop  [button .stop  -text Stop  -command StopTransfer]
+
+pack $start $stop -side left -padx 10 -pady 10
diff --git a/tests/multi/cancelTrans.tcl b/tests/multi/cancelTrans.tcl
new file mode 100755 (executable)
index 0000000..6dad215
--- /dev/null
@@ -0,0 +1,80 @@
+#!/usr/local/bin/wish8.4
+
+package require TclCurl
+
+proc ProgressCallback {dltotal dlnow ultotal ulnow} {
+
+    set dltotal [expr round($dltotal)]
+    set dlnow   [expr round($dlnow)]
+    set ultotal [expr round($ultotal)]
+    set ulnow   [expr round($ulnow)]
+
+    puts "Progress callback: $dltotal - $dlnow - $ultotal - $ulnow"
+
+    return
+}
+
+proc Perform {multiHandle} {
+    if {[catch {$multiHandle active} activeTransfers]} {
+        puts "Error checking active transfers: $activeTransfers"
+        return -1
+    }
+
+    if {[catch {$multiHandle perform} running]} {
+        puts "Error: $running"
+        return -1
+    }
+    return $running
+}
+
+proc Transfer {multiHandle easyHandle} {
+    global eventId
+    set runningTransfers [Perform $multiHandle]
+    if {$runningTransfers>0} {
+        set eventId [after 200 "Transfer $multiHandle $easyHandle"]
+    } else {
+        puts "Were are done, cleaning up..."
+        $multiHandle removehandle $easyHandle
+        $easyHandle  cleanup
+        $multiHandle cleanup
+        puts "All done"
+    }
+    return
+}
+
+proc StartTransfer {} {
+
+    set curlEasyHandle [curl::init]
+
+    $curlEasyHandle configure -url "127.0.0.1/~andres/cosa&co.tar"          \
+            -canceltransvarname cancel   -progressproc ProgressCallback\
+            -file cosa.tar -noprogress 0
+
+    set curlMultiHandle [curl::multiinit]
+    $curlMultiHandle addhandle $curlEasyHandle
+
+    after 100 "Transfer $curlMultiHandle $curlEasyHandle"
+
+    return
+}
+
+proc StopTransfer {} {
+    global cancel eventId
+
+    puts "The download has been cancelled"
+
+    set cancel 1
+
+    return
+}
+
+set start [button .start -text Start -command StartTransfer]
+set stop  [button .stop  -text Stop  -command StopTransfer]
+
+pack $start $stop -side left -padx 10 -pady 10
+
+
+
+
+
+
diff --git a/tests/multi/double.tcl b/tests/multi/double.tcl
new file mode 100755 (executable)
index 0000000..614782f
--- /dev/null
@@ -0,0 +1,57 @@
+package require TclCurl
+
+
+proc Perform {multiHandle} {
+    if {[catch {$multiHandle active} activeTransfers]} {
+        puts "Error checking active transfers: $activeTransfers"
+        return -1
+    }
+    if {[catch {$multiHandle perform} running]} {
+        puts "Error: $running"
+        return 1
+    }
+    return $running
+}
+
+proc StartTransfer {multiHandle} {
+    while {1==1} {
+        set runningTransfers [Perform $multiHandle]
+        if {$runningTransfers>0} {
+            after 500
+        } else {
+            break
+        }
+    }
+}
+
+puts "We create and configure the easy handles"
+
+set curlEasyHandle1 [curl::init]
+set curlEasyHandle2 [curl::init]
+
+$curlEasyHandle1 configure -url http://127.0.0.1/~andres/ -file index.html
+$curlEasyHandle2 configure -url http://127.0.0.1/ -file index2.html
+
+puts "Creating the multi handle"
+
+set curlMultiHandle [curl::multiinit]
+
+puts "Adding easy handles to the multi one"
+
+$curlMultiHandle addhandle $curlEasyHandle1
+$curlMultiHandle addhandle $curlEasyHandle2
+
+puts "We start the transfer"
+
+StartTransfer $curlMultiHandle
+
+puts "Transfer done, cleanning up"
+
+$curlMultiHandle removehandle $curlEasyHandle1
+$curlMultiHandle removehandle $curlEasyHandle2
+
+$curlMultiHandle cleanup
+$curlEasyHandle1 cleanup
+$curlEasyHandle2 cleanup
+
+
diff --git a/tests/multi/single.tcl b/tests/multi/single.tcl
new file mode 100755 (executable)
index 0000000..c07564f
--- /dev/null
@@ -0,0 +1,52 @@
+package require TclCurl
+
+proc Perform {multiHandle} {
+    if {[catch {$multiHandle active} activeTransfers]} {
+        puts "Error checking active transfers: $activeTransfers"
+        return -1
+    }
+
+    if {[catch {$multiHandle perform} running]} {
+        puts "Error: $running"
+        return 1
+    }
+    return $running
+}
+
+proc StartTransfer {multiHandle} {
+    while {1==1} {
+        set runningTransfers [Perform $multiHandle]
+        if {$runningTransfers>0} {
+            after 500
+        } else {
+            break
+        }
+    }
+}
+
+set curlEasyHandle [curl::init]
+
+$curlEasyHandle configure -url http://127.0.0.1/ -file index.html
+
+if {[catch {curl::multiinit} curlMultiHandle]} {
+    puts "Error with multi handle init"
+}
+
+puts "The multi handle: $curlMultiHandle"
+
+puts -nonewline "We add the easy handle: "
+puts [$curlMultiHandle addhandle $curlEasyHandle]
+
+StartTransfer $curlMultiHandle
+
+puts "Calling getinfo [$curlMultiHandle getinfo]"
+
+puts -nonewline "Removing the easy handle: "
+puts [$curlMultiHandle removehandle $curlEasyHandle]
+
+puts -nonewline "Cleanup the multi handle handle: "
+puts [$curlMultiHandle cleanup]
+
+$curlEasyHandle cleanup
+
+
diff --git a/tests/netrcfile.tcl b/tests/netrcfile.tcl
new file mode 100755 (executable)
index 0000000..1f1529c
--- /dev/null
@@ -0,0 +1,10 @@
+package require TclCurl
+
+curl::transfer -url "ftp://Strider.Asturias.es" -verbose 1           \
+        -netrc required -netrcfile "/home/andres/testnetrc"
+
+
+
+
+
+
diff --git a/tests/noProgress.tcl b/tests/noProgress.tcl
new file mode 100755 (executable)
index 0000000..f89d687
--- /dev/null
@@ -0,0 +1,12 @@
+package require TclCurl
+
+# The default is not to show the progress meter.
+
+curl::transfer -url 127.0.0.1 -noprogress 1
+
+
+
+
+
+
+
diff --git a/tests/nobody.tcl b/tests/nobody.tcl
new file mode 100755 (executable)
index 0000000..108d50c
--- /dev/null
@@ -0,0 +1,8 @@
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -header 1 -nobody 1
+
+
+
+
+
diff --git a/tests/ntlm.tcl b/tests/ntlm.tcl
new file mode 100755 (executable)
index 0000000..22eee78
--- /dev/null
@@ -0,0 +1,16 @@
+# Contributed by Jos Decoster
+
+set curlHandle [curl::init]
+
+$curlHandle configure                                        \
+        -verbose 1 -failonerror 1 -errorbuffer ::errorBuffer \
+        -url $::url -file $::file                            \
+        -proxy $::proxy_host -proxyport $::proxy_port        \
+        -proxyauth ntlm                                      \
+        -proxyuserpwd $::proxy_user:$::proxy_password
+
+if { [catch {$curlHandle perform} r] } {
+    return -code error "$r $::errorBuffer"
+}
+
+$curlHandle cleanup
diff --git a/tests/progressProc.tcl b/tests/progressProc.tcl
new file mode 100755 (executable)
index 0000000..e81d108
--- /dev/null
@@ -0,0 +1,27 @@
+package require TclCurl
+
+proc ProgressCallback {dltotal dlnow ultotal ulnow} {
+
+    set dltotal [expr int($dltotal)]
+    set dlnow   [expr int($dlnow)]
+    set ultotal [expr int($ultotal)]
+    set ulnow   [expr int($ulnow)]
+
+    puts "Progress callback: $dltotal - $dlnow - $ultotal - $ulnow"
+
+    return
+}
+
+
+set curlHandle [curl::init]
+
+$curlHandle configure -url "127.0.0.1/~andres/cosa&co.tar"  \
+        -progressproc ProgressCallback -file cosa.tar -noprogress 0
+$curlHandle perform
+
+$curlHandle cleanup
+
+
+
+
+
diff --git a/tests/progressProcPause.tcl b/tests/progressProcPause.tcl
new file mode 100755 (executable)
index 0000000..327c3b0
--- /dev/null
@@ -0,0 +1,39 @@
+package require TclCurl
+
+# Another one of my contrived but working examples.
+
+proc ProgressCallback {dltotal dlnow ultotal ulnow} {
+    global i curlHandle
+    
+    set dltotal [expr int($dltotal)]
+    set dlnow   [expr int($dlnow)]
+    set ultotal [expr int($ultotal)]
+    set ulnow   [expr int($ulnow)]
+
+    puts "$i Progress callback: $dlnow of $dltotal downloaded"
+
+    if {$i==10} {
+        $curlHandle pause
+    } elseif {$i==30} {
+        $curlHandle resume
+    }
+    incr i
+
+    return
+}
+
+
+set i 0
+
+set curlHandle [curl::init]
+
+$curlHandle configure -url "127.0.0.1/~andres/cosa&co.tar"  \
+        -progressproc ProgressCallback -file cosa.tar -noprogress 0
+$curlHandle perform
+
+$curlHandle cleanup
+
+
+
+
+
diff --git a/tests/proxy.tcl b/tests/proxy.tcl
new file mode 100755 (executable)
index 0000000..c05b3cc
--- /dev/null
@@ -0,0 +1,11 @@
+package require TclCurl
+
+curl::transfer -url http://curl.haxx.se -verbose 1  -proxy "192.168.0.0"
+
+
+
+
+
+
+
+
diff --git a/tests/proxyPort.tcl b/tests/proxyPort.tcl
new file mode 100755 (executable)
index 0000000..c777c95
--- /dev/null
@@ -0,0 +1,12 @@
+package require TclCurl
+
+curl::transfer -url http://curl.haxx.com -verbose 1    \
+        -proxy 192.168.0.0 -proxyport 8080
+
+
+
+
+
+
+
+
diff --git a/tests/proxyTunnel.tcl b/tests/proxyTunnel.tcl
new file mode 100755 (executable)
index 0000000..eca8742
--- /dev/null
@@ -0,0 +1,11 @@
+package require TclCurl
+
+curl::transfer -url http://curl.haxx.se -verbose 1 \
+        -proxy "192.168.0.0:8080" -httpproxytunnel 1
+
+
+
+
+
+
+
diff --git a/tests/range.tcl b/tests/range.tcl
new file mode 100755 (executable)
index 0000000..f40e239
--- /dev/null
@@ -0,0 +1,8 @@
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -range "100-500"
+
+
+
+
+
diff --git a/tests/readProc.tcl b/tests/readProc.tcl
new file mode 100755 (executable)
index 0000000..f517e8f
--- /dev/null
@@ -0,0 +1,23 @@
+package require TclCurl
+
+# As an example this is very contrived, but it works.
+
+proc readFile {size} {
+
+    set chunk [read $::inFile $size]
+
+    return $chunk
+}
+
+set inFile [open "cosa.tar" r]
+fconfigure $inFile -translation binary
+
+curl::transfer -url "ftp://127.0.0.1/cosa.tar" -verbose 1 \
+       -username user -password pass -readproc readFile -upload 1
+
+close $inFile
+
+
+
+
+
diff --git a/tests/referer.tcl b/tests/referer.tcl
new file mode 100755 (executable)
index 0000000..a87ca05
--- /dev/null
@@ -0,0 +1,9 @@
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -referer "127.0.0.1/cosa.html"   \
+        -verbose 1 -nobody 1
+
+
+
+
+
diff --git a/tests/reset.tcl b/tests/reset.tcl
new file mode 100755 (executable)
index 0000000..101c201
--- /dev/null
@@ -0,0 +1,21 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+
+puts "First we save in 'index.html'"
+
+$curlHandle configure -noprogress  1 -url "127.0.0.1" -file "index.html"
+$curlHandle perform
+
+puts "And now in stdout"
+
+$curlHandle reset
+$curlHandle configure -url "http://127.0.0.1/"
+$curlHandle perform
+
+$curlHandle cleanup
+
+
+
+
+
diff --git a/tests/resume.tcl b/tests/resume.tcl
new file mode 100755 (executable)
index 0000000..50db6b4
--- /dev/null
@@ -0,0 +1,8 @@
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -resumefrom 500
+
+
+
+
+
diff --git a/tests/share.tcl b/tests/share.tcl
new file mode 100755 (executable)
index 0000000..d46b32f
--- /dev/null
@@ -0,0 +1,23 @@
+# The share interface support is not yet completely done, since
+# you can't use it with the multi interface.
+
+package require TclCurl
+
+set sHandle [curl::shareinit]
+$sHandle share dns
+
+set easyHandle1 [curl::init]
+set easyHandle2 [curl::init]
+
+$easyHandle1 configure -url http://127.0.0.1/         -share $sHandle
+$easyHandle2 configure -url http://127.0.0.1/~andres/ -share $sHandle
+
+$easyHandle1 perform
+$easyHandle2 perform
+
+$easyHandle1 cleanup
+$easyHandle2 cleanup
+
+$sHandle unshare dns
+$sHandle cleanup
+
diff --git a/tests/stderrNoStderr.tcl b/tests/stderrNoStderr.tcl
new file mode 100755 (executable)
index 0000000..1a3cee7
--- /dev/null
@@ -0,0 +1,22 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+
+puts "First it goes into error.txt"
+$curlHandle configure -url  127.0.0.1/~andres/cosa&co.tar -stderr error.txt \
+        -noprogress 0 -file cosa.tar
+
+catch {$curlHandle perform}
+
+
+puts "And then to stderr:"
+$curlHandle configure -stderr ""
+
+catch {$curlHandle perform}
+
+$curlHandle cleanup
+
+
+
+
+
diff --git a/tests/strerror.tcl b/tests/strerror.tcl
new file mode 100755 (executable)
index 0000000..2cfb41d
--- /dev/null
@@ -0,0 +1,14 @@
+package require TclCurl
+
+puts "The error string for code 6 is '[curl::easystrerror 6]'"
+
+puts "If the number is too big: '[curl::easystrerror 2000]'"
+
+puts "It works the same way for the multi interface: '[curl::multistrerror 1]'"
+puts "And the share interface: '[curl::sharestrerror 1]'"
+
+catch {curl::easystrerror frelled} errorMsg
+puts "And if we use a nonsensical code: '$errorMsg'"
+
+catch {curl::sharestrerror} errorMsg
+puts "And if we forget the error code:\n    '$errorMsg'"
diff --git a/tests/timeout.tcl b/tests/timeout.tcl
new file mode 100755 (executable)
index 0000000..10f55f2
--- /dev/null
@@ -0,0 +1,8 @@
+package require TclCurl
+
+curl::transfer -timeout 0 -url 127.0.0.1
+
+
+
+
+
diff --git a/tests/transfer.tcl b/tests/transfer.tcl
new file mode 100755 (executable)
index 0000000..3a63b69
--- /dev/null
@@ -0,0 +1,47 @@
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -filetime 1                                  \
+        -infoeffectiveurl    effectiveUrl  -inforesponsecode    httpCode     \
+        -infofiletime        fileTime      -infototaltime       totalTime    \
+        -infonamelookuptime  nameLookUpTime                                  \
+        -infoconnecttime     connectTime   -infopretransfertime preTime      \
+        -infostarttransfertime startTransferTime                             \
+        -infosizeupload      sizeUpload    -infosizedownload    sizeDownload \
+        -infospeeddownload   speedDownload -infospeedupload     speedUpload  \
+        -infoheadersize      headerSize    -inforequestsize     requestSize  \
+        -infosslverifyresult sslVerifyResult                                 \
+        -infocontentlengthupload  contentLengthUpload                        \
+        -infocontentlengthdownload contentLengthDownload                     \
+        -infocontenttype     contentType                                     \
+        -inforedirecttime    redirectTime                                    \
+        -inforedirectcount   redirectCount
+
+
+puts "Url: $effectiveUrl"
+puts "Response code: $httpCode"
+puts "Filetime: $fileTime - [clock format $fileTime]"
+puts "Total time: $totalTime"
+puts "Name lookup time: $nameLookUpTime"
+puts "Name connect time: $connectTime"
+puts "Name pretransfer time: $preTime"
+puts "Name start transfer time: $startTransferTime"
+puts "Name size upload: $sizeUpload"
+puts "Name size download: $sizeDownload"
+puts "Name speed download: $speedDownload"
+puts "Name speed upload: $speedUpload"
+puts "Name header size: $headerSize"
+puts "Name request size: $requestSize"
+puts "Name ssl verifyresult: $sslVerifyResult"
+puts "Name length download: $contentLengthDownload"
+puts "Name length upload: $contentLengthUpload"
+puts "Content-Type: $contentType"
+puts "Redirect time: $redirectTime"
+puts "Redirect count: $redirectCount"
+
+
+
+
+
+
+
+
diff --git a/tests/upload.tcl b/tests/upload.tcl
new file mode 100755 (executable)
index 0000000..eebc2f0
--- /dev/null
@@ -0,0 +1,8 @@
+package require TclCurl
+
+
+curl::transfer -url ftp://andres:ciclope4@127.0.01/cosa.tcl                 \
+        -infilesize [file size writeProc.tcl] -infile writeProc.tcl -upload 1 \
+        -verbose 1
+
+
diff --git a/tests/userAgent.tcl b/tests/userAgent.tcl
new file mode 100755 (executable)
index 0000000..43f0a29
--- /dev/null
@@ -0,0 +1,11 @@
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -verbose 1 -nobody 1 \
+        -useragent "Mozilla 4.0 (compatible; Getleft 0.10.4)"
+
+
+
+
+
+
+
diff --git a/tests/verbose.tcl b/tests/verbose.tcl
new file mode 100755 (executable)
index 0000000..ab81457
--- /dev/null
@@ -0,0 +1,23 @@
+package require TclCurl
+
+set curlHandle [curl::init]
+
+$curlHandle configure -url 127.0.0.1 -verbose 1 -nobody 1
+
+
+puts "First one is verbose"
+$curlHandle perform
+
+puts "The second isn't"
+$curlHandle configure -verbose 0 
+$curlHandle perform
+
+
+$curlHandle cleanup
+
+
+
+
+
+
+
diff --git a/tests/version.tcl b/tests/version.tcl
new file mode 100755 (executable)
index 0000000..91f0826
--- /dev/null
@@ -0,0 +1,9 @@
+package require TclCurl
+
+puts "[curl::version]"
+
+
+
+
+
+
diff --git a/tests/versionInfo.tcl b/tests/versionInfo.tcl
new file mode 100755 (executable)
index 0000000..547392b
--- /dev/null
@@ -0,0 +1,13 @@
+package require TclCurl
+
+
+puts "Version [curl::versioninfo -version]"
+puts "Version (num): [curl::versioninfo -versionnum]"
+puts "Host: [curl::versioninfo -host]"
+puts "Features: [curl::versioninfo -features]"
+puts "SSL version: [curl::versioninfo -sslversion]"
+puts "SSL version (num): [curl::versioninfo -sslversionnum]"
+puts "libz version: [curl::versioninfo -libzversion]"
+puts "Protocols [curl::versioninfo -protocols]"
+
+
diff --git a/tests/writeHeader.tcl b/tests/writeHeader.tcl
new file mode 100755 (executable)
index 0000000..8de4dcc
--- /dev/null
@@ -0,0 +1,9 @@
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -header 1 -nobody 1 \
+        -writeheader header.txt
+
+
+
+
+
diff --git a/tests/writeProc.tcl b/tests/writeProc.tcl
new file mode 100755 (executable)
index 0000000..da6fb82
--- /dev/null
@@ -0,0 +1,23 @@
+package require TclCurl
+
+# This is one contrived example, but it works.
+
+proc writeToFile {readData} {
+    puts "writeToFile called [incr ::i]"
+    puts -nonewline $::inFile $readData
+
+    return
+}
+
+set i 0
+
+set inFile [open "cosa.tar" w+]
+fconfigure $inFile -translation binary
+
+curl::transfer -url "127.0.0.1/~andres/cosa&co.tar" -writeproc writeToFile
+
+close $inFile
+
+
+
+