--- /dev/null
+- 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
--- /dev/null
+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.
+
--- /dev/null
+
+
+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'.
--- /dev/null
+# 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:
--- /dev/null
+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.
--- /dev/null
+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
+
+
+
--- /dev/null
+
+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
--- /dev/null
+#
+# Include the TEA standard macro set
+#
+
+builtin(include,tclconfig/tcl.m4)
+
+#
+# Add here whatever m4 macros you want to define for your package
+#
--- /dev/null
+@%:@! /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
+
--- /dev/null
+# 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' )
+ );
+
--- /dev/null
+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])
--- /dev/null
+# 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
+
--- /dev/null
+#! /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
+
--- /dev/null
+#!/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])
--- /dev/null
+
+ 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.]
+ */
+
--- /dev/null
+.\" 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,
--- /dev/null
+.\" 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.
--- /dev/null
+.\" 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
--- /dev/null
+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
+ }
--- /dev/null
+<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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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 "100-continue" is received as a response to a POST/PUT and a 401
+or 407 is received immediately afterwards.
+<P>
+</DL>
+<A NAME="lbAJ"> </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 ("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
+<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 "" (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 "small packets" 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"> </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: "domain/user:password" or "domain\user:password". 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 "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.
+<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"> </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 "Expect: 100-continue" 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 "Transfer-Encoding: chunked" 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 "" 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 "Expect: 100-continue" 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 "shortcuts" 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 "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".
+<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: "name1=content1; name2=content2;"
+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 "-" 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 "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.
+<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 "ALL" will erase all known cookies while "FLUSH" 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"> </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 "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.
+<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 "use ssl failed" (64).
+<DT><B>all</B>
+
+<DD>
+Use SSL for all communication or fail with "use ssl failed" (64).
+</DL>
+</DL>
+
+<P>
+<DT><B>-ftpsslauth</B>
+
+<DD>
+<P>
+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 <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> "which won't work properly when "AUTH SSL" is issued
+(although the server responds fine and everything) but requires "AUTH TLS"
+instead".
+<P>
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>default</B>
+
+<DD>
+Allows TclCurl to decide.
+<DT><B>ssl</B>
+
+<DD>
+Try "AUTH SSL" first, and only if that fails try "AUTH TLS".
+<DT><B>tls</B>
+
+<DD>
+Try "AUTH TLS" first, and only if that fails try "AUTH SSL".
+</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 "" 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.
+<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 "normally".
+This is somewhat more standards compliant than 'nocwd' but without the full penalty of 'multicwd'.
+</DL>
+</DL>
+
+<P>
+</DL>
+<A NAME="lbAN"> </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 "Expect: 100-continue" 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 "Transfer-Encoding: chunked" 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"> </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"> </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 "PEM" 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 "PEM" and "DER".
+<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 "PEM" 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 "PEM", "DER" and "ENG"
+<P>
+<B>NOTE:</B>The format "ENG" 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 "DER"
+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>
+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>
+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>
+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> <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>
+You'll find more details about the NSS cipher lists on this URL:
+<BR> <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 "" to disable kerberos
+support for FTP.
+<P>
+</DL>
+<A NAME="lbAQ"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </A>
+<H2>curlHandle pause</H2>
+
+You can use this command from within a progress callback procedure
+to pause the transfer.
+<P>
+<A NAME="lbAZ"> </A>
+<H2>curlHandle resume</H2>
+
+Resumes a transfer paused with <B>curlhandle pause</B>
+<P>
+<A NAME="lbBA"> </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"> </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"> </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 "URL escaped" 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"> </A>
+<H2>curl::unescape url</H2>
+
+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.
+<DL COMPACT>
+<DT><B>RETURN VALUE</B>
+
+<DD>
+The string unencoded.
+<P>
+</DL>
+<A NAME="lbBE"> </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"> </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"> </A>
+<H2>curl::easystrerror errorCode</H2>
+
+This procedure returns a string describing the error code passed in the argument.
+<P>
+<A NAME="lbBH"> </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"> </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>
--- /dev/null
+.\" 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,
--- /dev/null
+<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"> </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"> </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"> </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 "pull" 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"> </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"> </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"> </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"> </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"> </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 "piped" 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"> </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 "running". 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"> </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"> </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 {"" 0 0 0}.<DD>
+<P>
+</DL>
+<A NAME="lbAM"> </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"> </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"> </A>
+<H2>curl::multistrerror errorCode</H2>
+
+This procedure returns a string describing the error code passed in the argument.
+<P>
+<A NAME="lbAP"> </A>
+<H2>SEE ALSO</H2>
+
+<I>tclcurl, curl.</I>
+
+<P>
+
+<HR>
+<A NAME="index"> </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>
--- /dev/null
+.\" 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.
--- /dev/null
+<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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </A>
+<H2>curl::sharestrerror errorCode</H2>
+
+Returns a string describing the error code passed in the argument.
+<P>
+<A NAME="lbAJ"> </A>
+<H2>SEE ALSO</H2>
+
+<I>curl, TclCurl</I>
+
+<P>
+
+<HR>
+<A NAME="index"> </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>
--- /dev/null
+.\" 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
--- /dev/null
+/*
+ * 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;
+}
+
+
--- /dev/null
+/*
+ * 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
--- /dev/null
+/*
+ * 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;
+}
--- /dev/null
+/*
+ * 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
--- /dev/null
+################################################################################
+################################################################################
+#### 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
+}
+
+}
--- /dev/null
+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.
--- /dev/null
+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
+
+
--- /dev/null
+# 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
--- /dev/null
+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
--- /dev/null
+#
+# Tcl package index file
+#
+package ifneeded @PACKAGE_NAME@ @PACKAGE_VERSION@ \
+ [list load [file join $dir @PKG_LIB_FILE@] @PACKAGE_NAME@]
--- /dev/null
+#!/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
--- /dev/null
+# 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:
--- /dev/null
+package require TclCurl
+
+set curlHandle [curl::init]
+
+$curlHandle configure -url "http://127.0.0.1" -protocols [list http https ftp]
+
+$curlHandle cleanup
+
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+set curlHandle [curl::init]
+
+$curlHandle configure -url "http://127.0.0.1" -ftpssl 1 -protocols [list http https ftp]
+
+$curlHandle cleanup
+
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url "127.0.0.1"
+
+
+
+
+
--- /dev/null
+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
+
+
--- /dev/null
+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
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -command "puts \"\nTransfer complete\n\""
+
+
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -cookie "name=andres;" -verbose 1
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
--- /dev/null
+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]"
+
--- /dev/null
+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
--- /dev/null
+package require TclCurl
+
+curl::transfer -url "dict://dict.org/m:curl"
+
+
+
+
--- /dev/null
+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
+
--- /dev/null
+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
+
+
+
+
--- /dev/null
+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)"
+
+
--- /dev/null
+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]"
--- /dev/null
+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
+
+
+
--- /dev/null
+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
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
--- /dev/null
+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]"
+
+
+
+
+
+
+
--- /dev/null
+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"]
+
+
+
+
+
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url "ftp://127.0.0.1/pub/" -ftplistonly 1
+
+
+
+
+
+
--- /dev/null
+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"
+}
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -header 1 -nobody 1
+
+
+
+
+
--- /dev/null
+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"
+}
+
+
+
+
+
--- /dev/null
+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"]
+
+
+
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -verbose 1 -nobody 1 \
+ -httpheader [list "hola: hello" "adios: goodbye"]
+
+
+
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
+
--- /dev/null
+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'"
--- /dev/null
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -verbose 1 -interface 127.0.0.1 -nobody 1
+
+
+
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
+
--- /dev/null
+#!/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"
+
+
+
--- /dev/null
+#!/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
--- /dev/null
+#!/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
+
+
+
+
+
+
--- /dev/null
+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
+
+
--- /dev/null
+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
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url "ftp://Strider.Asturias.es" -verbose 1 \
+ -netrc required -netrcfile "/home/andres/testnetrc"
+
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+# The default is not to show the progress meter.
+
+curl::transfer -url 127.0.0.1 -noprogress 1
+
+
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -header 1 -nobody 1
+
+
+
+
+
--- /dev/null
+# 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
--- /dev/null
+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
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url http://curl.haxx.se -verbose 1 -proxy "192.168.0.0"
+
+
+
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url http://curl.haxx.com -verbose 1 \
+ -proxy 192.168.0.0 -proxyport 8080
+
+
+
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url http://curl.haxx.se -verbose 1 \
+ -proxy "192.168.0.0:8080" -httpproxytunnel 1
+
+
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -range "100-500"
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -referer "127.0.0.1/cosa.html" \
+ -verbose 1 -nobody 1
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -resumefrom 500
+
+
+
+
+
--- /dev/null
+# 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
+
--- /dev/null
+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
+
+
+
+
+
--- /dev/null
+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'"
--- /dev/null
+package require TclCurl
+
+curl::transfer -timeout 0 -url 127.0.0.1
+
+
+
+
+
--- /dev/null
+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"
+
+
+
+
+
+
+
+
--- /dev/null
+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
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url "127.0.0.1" -verbose 1 -nobody 1 \
+ -useragent "Mozilla 4.0 (compatible; Getleft 0.10.4)"
+
+
+
+
+
+
+
--- /dev/null
+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
+
+
+
+
+
+
+
--- /dev/null
+package require TclCurl
+
+puts "[curl::version]"
+
+
+
+
+
+
--- /dev/null
+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]"
+
+
--- /dev/null
+package require TclCurl
+
+curl::transfer -url 127.0.0.1 -header 1 -nobody 1 \
+ -writeheader header.txt
+
+
+
+
+
--- /dev/null
+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
+
+
+
+