* tclconfig/*: Updated to TEA 3.5
authorpatthoyts <patthoyts>
Sat, 4 Mar 2006 00:05:43 +0000 (00:05 +0000)
committerpatthoyts <patthoyts>
Sat, 4 Mar 2006 00:05:43 +0000 (00:05 +0000)
* configure:          Regenerated.
* generic/udp_tcl.c:  Applied patch from bug #1245141 to use
                      socklen_t type correctly (Tru64 uses a
                      64bit long for socklen_t)
* generic/udp_tcl.c:  Included a Udp_SafeInit function. Some versions
                      of MacOSX are wierd about apps testing for
                      missing functions in shared libs. (#1439508)

ChangeLog
configure
configure.in
generic/udp_tcl.c
generic/udp_tcl.h
license.terms
tclconfig/ChangeLog [deleted file]
tclconfig/tcl.m4

index 82b94fcf5edc65dd0b282c99a85a33474b1fd6f0..c13e1e5cafb899cf3721cd881f7d8e68e79aa60a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2006-03-03  Pat Thoyts  <patthoyts@users.sourceforge.net>
+
+       * tclconfig/*:        Updated to TEA 3.5
+       * configure:          Regenerated.
+       * generic/udp_tcl.c:  Applied patch from bug #1245141 to use
+                             socklen_t type correctly (Tru64 uses a
+                             64bit long for socklen_t)
+       * generic/udp_tcl.c:  Included a Udp_SafeInit function. Some versions
+                             of MacOSX are wierd about apps testing for
+                             missing functions in shared libs. (#1439508)
+
 2005-11-27  Pat Thoyts  <patthoyts@users.sourceforge.net>
 
        * generic/udp_tcl.c:  bug #1240127 - handle possible missing IP_TTL
index 5de00d960bcba4d1bf2c95923458b1bd25da8692..d0a4a3da9508e03744502b0458e66de00173c91a 100755 (executable)
--- a/configure
+++ b/configure
@@ -308,7 +308,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CYGPATH EXEEXT PKG_LIB_FILE PKG_STUB_LIB_FILE PKG_STUB_SOURCES PKG_STUB_OBJECTS PKG_TCL_SOURCES PKG_HEADERS PKG_INCLUDES PKG_LIBS PKG_CFLAGS TCL_VERSION TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_LIBS TCL_DEFS TCL_EXTRA_CFLAGS TCL_LD_FLAGS TCL_SHLIB_LD_LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE RANLIB ac_ct_RANLIB EGREP MATH_LIBS PKG_SOURCES PKG_OBJECTS CLEANFILES TCL_INCLUDES TCL_THREADS SHARED_BUILD AR TCLSH_PROG CELIB_DIR LIBOBJS DL_LIBS CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING STLIB_LD SHLIB_LD SHLIB_CFLAGS SHLIB_LD_LIBS LDFLAGS_DEBUG LDFLAGS_OPTIMIZE LD_LIBRARY_PATH_VAR TCL_DBGX CFLAGS_DEFAULT LDFLAGS_DEFAULT MAKE_LIB MAKE_SHARED_LIB MAKE_STATIC_LIB MAKE_STUB_LIB RANLIB_STUB DTPLITE ac_pt_DTPLITE LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CYGPATH EXEEXT PKG_LIB_FILE PKG_STUB_LIB_FILE PKG_STUB_SOURCES PKG_STUB_OBJECTS PKG_TCL_SOURCES PKG_HEADERS PKG_INCLUDES PKG_LIBS PKG_CFLAGS TCL_VERSION TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_LIBS TCL_DEFS TCL_EXTRA_CFLAGS TCL_LD_FLAGS TCL_SHLIB_LD_LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE RANLIB ac_ct_RANLIB EGREP MATH_LIBS PKG_SOURCES PKG_OBJECTS CLEANFILES TCL_INCLUDES TCL_THREADS SHARED_BUILD AR CELIB_DIR LIBOBJS DL_LIBS CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING STLIB_LD SHLIB_LD SHLIB_LD_LIBS SHLIB_CFLAGS LD_LIBRARY_PATH_VAR TCL_DBGX CFLAGS_DEFAULT LDFLAGS_DEFAULT MAKE_LIB MAKE_SHARED_LIB MAKE_STATIC_LIB MAKE_STUB_LIB RANLIB_STUB TCLSH_PROG DTPLITE ac_pt_DTPLITE LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -842,17 +842,19 @@ Optional Features:
   --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 --enable-shared
-  --enable-64bit          enable 64bit support (where applicable)
-  --enable-64bit-vis      enable 64bit Sparc VIS support
+  --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)
   --enable-wince          enable Win/CE support (where applicable)
   --disable-load          disallow dynamic loading and "load" command
-  --enable-symbols        build with debugging symbols --disable-symbols
+                          (default: enabled)
+  --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-tcl              directory containing tcl configuration
+                          (tclConfig.sh)
   --with-tclinclude       directory containing the public Tcl header files
   --with-celib=DIR        use Windows/CE support library from DIR
 
@@ -1323,7 +1325,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
     # TEA extensions pass this us the version of TEA they think they
     # are compatible with.
-    TEA_VERSION="3.2"
+    TEA_VERSION="3.5"
 
     echo "$as_me:$LINENO: checking for correct TEA configuration" >&5
 echo $ECHO_N "checking for correct TEA configuration... $ECHO_C" >&6
@@ -1334,15 +1336,15 @@ 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.2" = x ; then
+    if test x"3.5" = x ; then
        { { echo "$as_me:$LINENO: error:
 TEA version not specified." >&5
 echo "$as_me: error:
 TEA version not specified." >&2;}
    { (exit 1); exit 1; }; }
-    elif test "3.2" != "${TEA_VERSION}" ; then
-       echo "$as_me:$LINENO: result: warning: requested TEA version \"3.2\", have \"${TEA_VERSION}\"" >&5
-echo "${ECHO_T}warning: requested TEA version \"3.2\", have \"${TEA_VERSION}\"" >&6
+    elif test "3.5" != "${TEA_VERSION}" ; then
+       echo "$as_me:$LINENO: result: warning: requested TEA version \"3.5\", have \"${TEA_VERSION}\"" >&5
+echo "${ECHO_T}warning: requested TEA version \"3.5\", have \"${TEA_VERSION}\"" >&6
     else
        echo "$as_me:$LINENO: result: ok (TEA ${TEA_VERSION})" >&5
 echo "${ECHO_T}ok (TEA ${TEA_VERSION})" >&6
@@ -1504,12 +1506,12 @@ echo "$as_me: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >
                        `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].[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].[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 -f "$i/unix/tclConfig.sh" ; then
                        ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
@@ -1518,9 +1520,37 @@ echo "$as_me: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >
                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
+
+           # 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 ${exec_prefix}/lib 2>/dev/null` \
+               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` \
@@ -1552,54 +1582,70 @@ fi
 
        if test x"${ac_cv_c_tclconfig}" = x ; then
            TCL_BIN_DIR="# no Tcl configs found"
-           { echo "$as_me:$LINENO: WARNING: \"Cannot find Tcl configuration definitions\"" >&5
-echo "$as_me: WARNING: \"Cannot find Tcl configuration definitions\"" >&2;}
+           { echo "$as_me:$LINENO: WARNING: Can't find Tcl configuration definitions" >&5
+echo "$as_me: WARNING: Can't find Tcl configuration definitions" >&2;}
            exit 0
        else
            no_tcl=
            TCL_BIN_DIR=${ac_cv_c_tclconfig}
-           echo "$as_me:$LINENO: result: found $TCL_BIN_DIR/tclConfig.sh" >&5
-echo "${ECHO_T}found $TCL_BIN_DIR/tclConfig.sh" >&6
+           echo "$as_me:$LINENO: result: found ${TCL_BIN_DIR}/tclConfig.sh" >&5
+echo "${ECHO_T}found ${TCL_BIN_DIR}/tclConfig.sh" >&6
        fi
     fi
 
 
-    echo "$as_me:$LINENO: checking for existence of $TCL_BIN_DIR/tclConfig.sh" >&5
-echo $ECHO_N "checking for existence of $TCL_BIN_DIR/tclConfig.sh... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for existence of ${TCL_BIN_DIR}/tclConfig.sh" >&5
+echo $ECHO_N "checking for existence of ${TCL_BIN_DIR}/tclConfig.sh... $ECHO_C" >&6
 
-    if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+    if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then
         echo "$as_me:$LINENO: result: loading" >&5
 echo "${ECHO_T}loading" >&6
-       . $TCL_BIN_DIR/tclConfig.sh
+       . ${TCL_BIN_DIR}/tclConfig.sh
     else
-        echo "$as_me:$LINENO: result: file not found" >&5
-echo "${ECHO_T}file not found" >&6
+        echo "$as_me:$LINENO: result: could not find ${TCL_BIN_DIR}/tclConfig.sh" >&5
+echo "${ECHO_T}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
+    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 arbitary 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_FILE=\"${TCL_LIB_FILE}\""
     eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
     eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
-
-    eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
     eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
     eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
 
@@ -1620,8 +1666,6 @@ echo "${ECHO_T}file not found" >&6
 
 
 
-    #AC_SUBST(TCL_BUILD_LIB_SPEC)
-    #AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
 
 
 #--------------------------------------------------------------------
@@ -4543,7 +4587,7 @@ fi
 
     echo "$as_me:$LINENO: checking dirent.h" >&5
 echo $ECHO_N "checking dirent.h... $ECHO_C" >&6
-    if test "${tcl_cv_dirent_h+set}" = set; then
+if test "${tcl_cv_dirent_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -4612,7 +4656,8 @@ fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-
+echo "$as_me:$LINENO: result: $tcl_cv_dirent_h" >&5
+echo "${ECHO_T}$tcl_cv_dirent_h" >&6
 
     if test $tcl_cv_dirent_h = no; then
 
@@ -4622,8 +4667,6 @@ _ACEOF
 
     fi
 
-    echo "$as_me:$LINENO: result: $tcl_ok" >&5
-echo "${ECHO_T}$tcl_ok" >&6
     if test "${ac_cv_header_errno_h+set}" = set; then
   echo "$as_me:$LINENO: checking for errno.h" >&5
 echo $ECHO_N "checking for errno.h... $ECHO_C" >&6
@@ -6061,7 +6104,6 @@ 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.
@@ -6375,26 +6417,43 @@ fi
 
 done
 
-    echo "$as_me:$LINENO: checking FIONBIO vs. O_NONBLOCK for nonblocking I/O" >&5
-echo $ECHO_N "checking FIONBIO vs. O_NONBLOCK for nonblocking I/O... $ECHO_C" >&6
-    if test -f /usr/lib/NextStep/software_version; then
-       system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
-    else
-       system=`uname -s`-`uname -r`
-       if test "$?" -ne 0 ; then
-           system=unknown
+
+    echo "$as_me:$LINENO: checking system version" >&5
+echo $ECHO_N "checking system version... $ECHO_C" >&6
+if test "${tcl_cv_sys_version+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+       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
-           # Special check for weird MP-RAS system (uname returns weird
-           # results, and the version is kept in special file).
+           tcl_cv_sys_version=`uname -s`-`uname -r`
+           if test "$?" -ne 0 ; then
+               { echo "$as_me:$LINENO: WARNING: can't find uname command" >&5
+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
-               system=MP-RAS-`awk '{print }' /etc/.relid'`
-           fi
-           if test "`uname -s`" = "AIX" ; then
-               system=AIX-`uname -v`.`uname -r`
+               if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+                   tcl_cv_sys_version=MP-RAS-`awk '{print }' /etc/.relid`
+               fi
+               if test "`uname -s`" = "AIX" ; then
+                   tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+               fi
            fi
        fi
-    fi
+
+fi
+echo "$as_me:$LINENO: result: $tcl_cv_sys_version" >&5
+echo "${ECHO_T}$tcl_cv_sys_version" >&6
+    system=$tcl_cv_sys_version
+
+    echo "$as_me:$LINENO: checking FIONBIO vs. O_NONBLOCK for nonblocking I/O" >&5
+echo $ECHO_N "checking FIONBIO vs. O_NONBLOCK for nonblocking I/O... $ECHO_C" >&6
     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
@@ -6412,15 +6471,6 @@ echo "${ECHO_T}FIONBIO" >&6
            ;;
        SunOS-4*)
 
-cat >>confdefs.h <<\_ACEOF
-#define USE_FIONBIO 1
-_ACEOF
-
-           echo "$as_me:$LINENO: result: FIONBIO" >&5
-echo "${ECHO_T}FIONBIO" >&6
-           ;;
-       ULTRIX-4.*)
-
 cat >>confdefs.h <<\_ACEOF
 #define USE_FIONBIO 1
 _ACEOF
@@ -6628,17 +6678,36 @@ echo "$as_me: error: ${with_tclinclude} directory does not contain tcl.h" >&2;}
    { (exit 1); exit 1; }; }
            fi
        else
+           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,
-           # directory of tclConfig.sh, and Tcl source directory.
-           # Looking in the source dir is not ideal, but OK.
+           # relative to directory of tclConfig.sh.
 
            eval "temp_includedir=${includedir}"
-           list="`ls -d ${temp_includedir}      2>/dev/null` \
+           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` \
-               `ls -d ${TCL_SRC_DIR}/generic    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
@@ -6687,14 +6756,24 @@ if test "${enable_threads+set}" = set; then
   enableval="$enable_threads"
   tcl_ok=$enableval
 else
-  tcl_ok=
+  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.
+           # 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
@@ -6705,6 +6784,13 @@ 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
@@ -6781,12 +6867,11 @@ else
 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]
+               # 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]
                echo "$as_me:$LINENO: checking for __pthread_mutex_init in -lpthread" >&5
 echo $ECHO_N "checking for __pthread_mutex_init in -lpthread... $ECHO_C" >&6
 if test "${ac_cv_lib_pthread___pthread_mutex_init+set}" = set; then
                            THREADS_LIBS=" -pthread"
                        else
                            TCL_THREADS=0
-                           { echo "$as_me:$LINENO: WARNING: \"Don t know how to find pthread lib on your system - thread support disabled\"" >&5
-echo "$as_me: WARNING: \"Don t know how to find pthread lib on your system - thread support disabled\"" >&2;}
+                           { echo "$as_me:$LINENO: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&5
+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
+    echo "$as_me:$LINENO: checking for building with threads" >&5
+echo $ECHO_N "checking for building with threads... $ECHO_C" >&6
+    if test "${TCL_THREADS}" = 1; then
+
+cat >>confdefs.h <<\_ACEOF
+#define TCL_THREADS 1
+_ACEOF
+
+       echo "$as_me:$LINENO: result: yes (default)" >&5
+echo "${ECHO_T}yes (default)" >&6
+    else
+       echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}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
+               { 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
+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
+               { 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
+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
 
-           # Does the pthread-implementation provide
-           # 'pthread_attr_setstacksize' ?
 
-           ac_saved_libs=$LIBS
-           LIBS="$LIBS $THREADS_LIBS"
 
-for ac_func in pthread_attr_setstacksize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+#--------------------------------------------------------------------
+# The statement below defines a collection of symbols related to
+# building as a shared library instead of a static library.
+#--------------------------------------------------------------------
+
+
+    echo "$as_me:$LINENO: checking how to build libraries" >&5
+echo $ECHO_N "checking how to build libraries... $ECHO_C" >&6
+    # Check whether --enable-shared or --disable-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
+       echo "$as_me:$LINENO: result: shared" >&5
+echo "${ECHO_T}shared" >&6
+       SHARED_BUILD=1
+    else
+       echo "$as_me:$LINENO: result: static" >&5
+echo "${ECHO_T}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?
+
+    echo "$as_me:$LINENO: checking if 64bit support is requested" >&5
+echo $ECHO_N "checking if 64bit support is requested... $ECHO_C" >&6
+    # Check whether --enable-64bit or --disable-64bit was given.
+if test "${enable_64bit+set}" = set; then
+  enableval="$enable_64bit"
+  do64bit=$enableval
+else
+  do64bit=no
+fi;
+    echo "$as_me:$LINENO: result: $do64bit" >&5
+echo "${ECHO_T}$do64bit" >&6
+
+    # Step 0.b: Enable Solaris 64 bit VIS support?
+
+    echo "$as_me:$LINENO: checking if 64bit Sparc VIS support is requested" >&5
+echo $ECHO_N "checking if 64bit Sparc VIS support is requested... $ECHO_C" >&6
+    # Check whether --enable-64bit-vis or --disable-64bit-vis was given.
+if test "${enable_64bit_vis+set}" = set; then
+  enableval="$enable_64bit_vis"
+  do64bitVIS=$enableval
+else
+  do64bitVIS=no
+fi;
+    echo "$as_me:$LINENO: result: $do64bitVIS" >&5
+echo "${ECHO_T}$do64bitVIS" >&6
+
+    if test "$do64bitVIS" = "yes"; then
+       # Force 64bit on with VIS
+       do64bit=yes
+    fi
+
+    # Step 0.c: Cross-compiling options for Windows/CE builds?
+
+    if test "${TEA_PLATFORM}" = "windows" ; then
+       echo "$as_me:$LINENO: checking if Windows/CE build is requested" >&5
+echo $ECHO_N "checking if Windows/CE build is requested... $ECHO_C" >&6
+       # Check whether --enable-wince or --disable-wince was given.
+if test "${enable_wince+set}" = set; then
+  enableval="$enable_wince"
+  doWince=$enableval
+else
+  doWince=no
+fi;
+       echo "$as_me:$LINENO: result: $doWince" >&5
+echo "${ECHO_T}$doWince" >&6
+    fi
+
+    # Step 1: set the variable "system" to hold the name and version number
+    # for the system.
+
+
+    echo "$as_me:$LINENO: checking system version" >&5
+echo $ECHO_N "checking system version... $ECHO_C" >&6
+if test "${tcl_cv_sys_version+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+
+       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
+               { echo "$as_me:$LINENO: WARNING: can't find uname command" >&5
+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 }' /etc/.relid`
+               fi
+               if test "`uname -s`" = "AIX" ; then
+                   tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+               fi
+           fi
+       fi
+
+fi
+echo "$as_me:$LINENO: result: $tcl_cv_sys_version" >&5
+echo "${ECHO_T}$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.
+
+    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&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.  */
-/* 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 gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
-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
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
+char dlopen ();
 int
 main ()
 {
-return f != $ac_func;
+dlopen ();
   ;
   return 0;
 }
@@ -7177,1516 +7413,582 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+  ac_cv_lib_dl_dlopen=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+ac_cv_lib_dl_dlopen=no
 fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  have_dl=yes
+else
+  have_dl=no
 fi
-done
-
-           LIBS=$ac_saved_libs
 
-for ac_func in readdir_r
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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.  */
+    # Require ranlib early so we can override it in special cases below.
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-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
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
+    # 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.
 
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+    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=""
+    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
+       CFLAGS_OPTIMIZE=-O2
+       CFLAGS_WARNING="-Wall -Wno-implicit-int"
+    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
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-done
-
-       fi
-    else
-       TCL_THREADS=0
-    fi
-    # Do checking message here to not mess up interleaved configure output
-    echo "$as_me:$LINENO: checking for building with threads" >&5
-echo $ECHO_N "checking for building with threads... $ECHO_C" >&6
-    if test "${TCL_THREADS}" = "1"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define TCL_THREADS 1
-_ACEOF
 
-       #LIBS="$LIBS $THREADS_LIBS"
-       echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-    else
-       echo "$as_me:$LINENO: result: no (default)" >&5
-echo "${ECHO_T}no (default)" >&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
-               { echo "$as_me:$LINENO: WARNING:
-    Building ${PACKAGE_NAME} without threads enabled, but building against a Tcl
-    that IS thread-enabled." >&5
-echo "$as_me: WARNING:
-    Building ${PACKAGE_NAME} without threads enabled, but building against a Tcl
-    that IS thread-enabled." >&2;}
-           fi
-           ;;
-       *)
-           if test "${TCL_THREADS}" = "1"; then
-               { echo "$as_me:$LINENO: WARNING:
-    --enable-threads requested, but attempting building against a Tcl
-    that is NOT thread-enabled." >&5
-echo "$as_me: WARNING:
-    --enable-threads requested, but attempting building against a Tcl
-    that is NOT thread-enabled." >&2;}
+    STLIB_LD='${AR} cr'
+    LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"
+    case $system in
+       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
+                   { echo "$as_me:$LINENO: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5
+echo "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;}
+                   { echo "$as_me:$LINENO: WARNING: Ensure latest Platform SDK is installed" >&5
+echo "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;}
+                   do64bit="no"
+               else
+                   echo "$as_me:$LINENO: result:    Using 64-bit $MACHINE mode" >&5
+echo "${ECHO_T}   Using 64-bit $MACHINE mode" >&6
+                   do64bit_ok="yes"
+               fi
            fi
-           ;;
-    esac
-
 
+           if test "$doWince" != "no" ; then
+               if test "$do64bit" != "no" ; then
+                   { { echo "$as_me:$LINENO: error: Windows/CE and 64-bit builds incompatible" >&5
+echo "$as_me: error: Windows/CE and 64-bit builds incompatible" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+               if test "$GCC" = "yes" ; then
+                   { { echo "$as_me:$LINENO: error: Windows/CE and GCC builds incompatible" >&5
+echo "$as_me: error: Windows/CE and GCC builds incompatible" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
 
-#--------------------------------------------------------------------
-# The statement below defines a collection of symbols related to
-# building as a shared library instead of a static library.
-#--------------------------------------------------------------------
+    # 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
 
-    echo "$as_me:$LINENO: checking how to build libraries" >&5
-echo $ECHO_N "checking how to build libraries... $ECHO_C" >&6
-    # Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
-  enableval="$enable_shared"
-  tcl_ok=$enableval
-else
-  tcl_ok=yes
+# Check whether --with-celib or --without-celib was given.
+if test "${with_celib+set}" = set; then
+  withval="$with_celib"
+  with_celibconfig=${withval}
 fi;
+       echo "$as_me:$LINENO: checking for Windows/CE celib directory" >&5
+echo $ECHO_N "checking for Windows/CE celib directory... $ECHO_C" >&6
+       if test "${ac_cv_c_celibconfig+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-    if test "${enable_shared+set}" = set; then
-       enableval="$enable_shared"
-       tcl_ok=$enableval
-    else
-       tcl_ok=yes
-    fi
-
-    if test "$tcl_ok" = "yes" ; then
-       echo "$as_me:$LINENO: result: shared" >&5
-echo "${ECHO_T}shared" >&6
-       SHARED_BUILD=1
-    else
-       echo "$as_me:$LINENO: result: static" >&5
-echo "${ECHO_T}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.
-#--------------------------------------------------------------------
-
-
-    # Allow the user to provide this setting in the env
-    if test "x${TCLSH_PROG}" = "x" ; then
-       echo "$as_me:$LINENO: checking for tclsh" >&5
-echo $ECHO_N "checking for tclsh... $ECHO_C" >&6
-
-       if test "${ac_cv_path_tclsh+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
+                   { { echo "$as_me:$LINENO: error: ${with_celibconfig} directory doesn't contain inc directory" >&5
+echo "$as_me: error: ${with_celibconfig} directory doesn't contain inc directory" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+           fi
 
-       search_path=`echo ${PATH} | sed -e 's/:/ /g'`
-       if test "${TEA_PLATFORM}" != "windows" -o \
-               \( "$do64bit_ok" = "no" -a "$doWince" = "no" \) ; then
-           # Do not allow target tclsh in known cross-compile builds,
-           # as we need one we can run on this system
-           search_path="${TCL_BIN_DIR} ${TCL_BIN_DIR}/../bin ${exec_prefix}/bin ${prefix}/bin ${search_path}"
-       fi
-       for dir in $search_path ; do
-           for j in `ls -r $dir/tclsh[8-9]*${EXEEXT} 2> /dev/null` \
-                   `ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do
-               if test x"$ac_cv_path_tclsh" = x ; then
-                   if test -f "$j" ; then
-                       ac_cv_path_tclsh=$j
+           # 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
-               fi
-           done
-       done
+               done
+           fi
 
 fi
 
-
-       if test -f "$ac_cv_path_tclsh" ; then
-           TCLSH_PROG=$ac_cv_path_tclsh
-           echo "$as_me:$LINENO: result: $TCLSH_PROG" >&5
-echo "${ECHO_T}$TCLSH_PROG" >&6
-       else
-           { { echo "$as_me:$LINENO: error: No tclsh found in PATH: $search_path" >&5
-echo "$as_me: error: No tclsh found in PATH: $search_path" >&2;}
+       if test x"${ac_cv_c_celibconfig}" = x ; then
+           { { echo "$as_me:$LINENO: error: Cannot find celib support library directory" >&5
+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'`
+           echo "$as_me:$LINENO: result: found $CELIB_DIR" >&5
+echo "${ECHO_T}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
+                   { { echo "$as_me:$LINENO: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&5
+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
 
-    # Step 0: Enable 64 bit support?
-
-    echo "$as_me:$LINENO: checking if 64bit support is enabled" >&5
-echo $ECHO_N "checking if 64bit support is enabled... $ECHO_C" >&6
-    # Check whether --enable-64bit or --disable-64bit was given.
-if test "${enable_64bit+set}" = set; then
-  enableval="$enable_64bit"
-  do64bit=$enableval
-else
-  do64bit=no
-fi;
-    echo "$as_me:$LINENO: result: $do64bit" >&5
-echo "${ECHO_T}$do64bit" >&6
 
-    # Step 0.b: Enable Solaris 64 bit VIS support?
+               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
 
-    echo "$as_me:$LINENO: checking if 64bit Sparc VIS support is requested" >&5
-echo $ECHO_N "checking if 64bit Sparc VIS support is requested... $ECHO_C" >&6
-    # Check whether --enable-64bit-vis or --disable-64bit-vis was given.
-if test "${enable_64bit_vis+set}" = set; then
-  enableval="$enable_64bit_vis"
-  do64bitVIS=$enableval
-else
-  do64bitVIS=no
-fi;
-    echo "$as_me:$LINENO: result: $do64bitVIS" >&5
-echo "${ECHO_T}$do64bitVIS" >&6
+cat >>confdefs.h <<_ACEOF
+#define $i 1
+_ACEOF
 
-    if test "$do64bitVIS" = "yes"; then
-       # Force 64bit on with VIS
-       do64bit=yes
-    fi
+                   done
 
-    # Step 0.c: Cross-compiling options for Windows/CE builds?
+cat >>confdefs.h <<_ACEOF
+#define _WIN32_WCE $CEVERSION
+_ACEOF
 
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       echo "$as_me:$LINENO: checking if Windows/CE build is requested" >&5
-echo $ECHO_N "checking if Windows/CE build is requested... $ECHO_C" >&6
-       # Check whether --enable-wince or --disable-wince was given.
-if test "${enable_wince+set}" = set; then
-  enableval="$enable_wince"
-  doWince=$enableval
-else
-  doWince=no
-fi;
-       echo "$as_me:$LINENO: result: $doWince" >&5
-echo "${ECHO_T}$doWince" >&6
-    fi
 
-    # Step 1: set the variable "system" to hold the name and version number
-    # for the system.  This can usually be done via the "uname" command, but
-    # there are a few systems, like Next, where this doesn't work.
+cat >>confdefs.h <<_ACEOF
+#define UNDER_CE $CEVERSION
+_ACEOF
 
-    echo "$as_me:$LINENO: checking system version (for dynamic loading)" >&5
-echo $ECHO_N "checking system version (for dynamic loading)... $ECHO_C" >&6
-    if test -f /usr/lib/NextStep/software_version; then
-       system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
-    else
-       system=`uname -s`-`uname -r`
-       if test "$?" -ne 0 ; then
-           echo "$as_me:$LINENO: result: unknown (can't find uname command)" >&5
-echo "${ECHO_T}unknown (can't find uname command)" >&6
-           system=unknown
-       else
-           # Special check for weird MP-RAS system (uname returns weird
-           # results, and the version is kept in special file).
+                   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\""
 
-           if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
-               system=MP-RAS-`awk '{print }' /etc/.relid'`
-           fi
-           if test "`uname -s`" = "AIX" ; then
-               system=AIX-`uname -v`.`uname -r`
-           fi
-           if test "${TEA_PLATFORM}" = "windows" ; then
-               system=windows
+               else
+                   RC="rc"
+                   lflags="-nologo"
+                   LINKBIN="link"
+                   CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d"
+                   CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+               fi
            fi
-           echo "$as_me:$LINENO: result: $system" >&5
-echo "${ECHO_T}$system" >&6
-       fi
-    fi
-
-    # Step 2: check for existence of -ldl library.  This is needed because
-    # Linux can use either -ldl or -ldld for dynamic loading.
-
-    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  have_dl=yes
-else
-  have_dl=no
-fi
-
-
-    # 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 and CC_SEARCH_FLAGS becomes LD_SEARCH_FLAGS for us
-    # (and we have no CC_SEARCH_FLAGS).
-
-    do64bit_ok=no
-    LDFLAGS_ORIG="$LDFLAGS"
-    TCL_EXPORT_FILE_SUFFIX=""
-    UNSHARED_LIB_SUFFIX=""
-    TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`'
-    ECHO_VERSION='`echo ${PACKAGE_VERSION}`'
-    TCL_LIB_VERSIONS_OK=ok
-    CFLAGS_DEBUG=-g
-    if test "$GCC" = "yes" ; then
-       CFLAGS_OPTIMIZE=-O2
-       CFLAGS_WARNING="-Wall -Wno-implicit-int"
-    else
-       CFLAGS_OPTIMIZE=-O
-       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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AR="ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    STLIB_LD='${AR} cr'
-    LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"
-    case $system in
-       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.
-           if test "$do64bit" = "yes" ; then
-               if test "x${MSSDK}x" = "xx" ; then
-                   MSSDK="C:/Progra~1/Microsoft SDK"
-               fi
-               # Ensure that this path has no spaces to work in autoconf
-
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # we need TCLSH_PROG defined to get Windows short pathnames
-
-
-       echo "$as_me:$LINENO: checking short pathname for MSSDK (${MSSDK})" >&5
-echo $ECHO_N "checking short pathname for MSSDK (${MSSDK})... $ECHO_C" >&6
-
-       shortpath=
-       case "${MSSDK}" in
-           *\ *)
-               # Only do this if we need to.
-               shortpath=`echo "puts [file attributes {${MSSDK}} -shortname] ; exit" | ${TCLSH_PROG} 2>/dev/null`
-               ;;
-       esac
-       if test "x${shortpath}" = "x" ; then
-           echo "$as_me:$LINENO: result: not changed" >&5
-echo "${ECHO_T}not changed" >&6
-       else
-           MSSDK=$shortpath
-           echo "$as_me:$LINENO: result: ${MSSDK}" >&5
-echo "${ECHO_T}${MSSDK}" >&6
-       fi
-    fi
-
-               if test ! -d "${MSSDK}/bin/win64" ; then
-                   { echo "$as_me:$LINENO: WARNING: could not find 64-bit SDK to enable 64bit mode" >&5
-echo "$as_me: WARNING: could not find 64-bit SDK to enable 64bit mode" >&2;}
-                   do64bit="no"
-               else
-                   do64bit_ok="yes"
-               fi
-           fi
-
-           if test "$doWince" != "no" ; then
-               if test "$do64bit" = "yes" ; then
-                   { { echo "$as_me:$LINENO: error: Windows/CE and 64-bit builds incompatible" >&5
-echo "$as_me: error: Windows/CE and 64-bit builds incompatible" >&2;}
-   { (exit 1); exit 1; }; }
-               fi
-               if test "$GCC" = "yes" ; then
-                   { { echo "$as_me:$LINENO: error: Windows/CE and GCC builds incompatible" >&5
-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 or --without-celib was given.
-if test "${with_celib+set}" = set; then
-  withval="$with_celib"
-  with_celibconfig=${withval}
-fi;
-       echo "$as_me:$LINENO: checking for Windows/CE celib directory" >&5
-echo $ECHO_N "checking for Windows/CE celib directory... $ECHO_C" >&6
-       if test "${ac_cv_c_celibconfig+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-                   { { echo "$as_me:$LINENO: error: ${with_celibconfig} directory doesn't contain inc directory" >&5
-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
-           { { echo "$as_me:$LINENO: error: Cannot find celib support library directory" >&5
-echo "$as_me: error: Cannot find celib support library directory" >&2;}
-   { (exit 1); exit 1; }; }
-       else
-           no_celib=
-           CELIB_DIR=${ac_cv_c_celibconfig}
-           echo "$as_me:$LINENO: result: found $CELIB_DIR" >&5
-echo "${ECHO_T}found $CELIB_DIR" >&6
-
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # we need TCLSH_PROG defined to get Windows short pathnames
-
-
-       echo "$as_me:$LINENO: checking short pathname for CELIB_DIR (${ac_cv_c_celibconfig})" >&5
-echo $ECHO_N "checking short pathname for CELIB_DIR (${ac_cv_c_celibconfig})... $ECHO_C" >&6
-
-       shortpath=
-       case "${ac_cv_c_celibconfig}" in
-           *\ *)
-               # Only do this if we need to.
-               shortpath=`echo "puts [file attributes {${ac_cv_c_celibconfig}} -shortname] ; exit" | ${TCLSH_PROG} 2>/dev/null`
-               ;;
-       esac
-       if test "x${shortpath}" = "x" ; then
-           echo "$as_me:$LINENO: result: not changed" >&5
-echo "${ECHO_T}not changed" >&6
-       else
-           CELIB_DIR=$shortpath
-           echo "$as_me:$LINENO: result: ${CELIB_DIR}" >&5
-echo "${ECHO_T}${CELIB_DIR}" >&6
-       fi
-    fi
-
-       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
-               # Ensure that this path has no spaces to work in autoconf
-
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # we need TCLSH_PROG defined to get Windows short pathnames
-
-
-       echo "$as_me:$LINENO: checking short pathname for WCEROOT (${WCEROOT})" >&5
-echo $ECHO_N "checking short pathname for WCEROOT (${WCEROOT})... $ECHO_C" >&6
-
-       shortpath=
-       case "${WCEROOT}" in
-           *\ *)
-               # Only do this if we need to.
-               shortpath=`echo "puts [file attributes {${WCEROOT}} -shortname] ; exit" | ${TCLSH_PROG} 2>/dev/null`
-               ;;
-       esac
-       if test "x${shortpath}" = "x" ; then
-           echo "$as_me:$LINENO: result: not changed" >&5
-echo "${ECHO_T}not changed" >&6
-       else
-           WCEROOT=$shortpath
-           echo "$as_me:$LINENO: result: ${WCEROOT}" >&5
-echo "${ECHO_T}${WCEROOT}" >&6
-       fi
-    fi
-
-
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # we need TCLSH_PROG defined to get Windows short pathnames
-
-
-       echo "$as_me:$LINENO: checking short pathname for SDKROOT (${SDKROOT})" >&5
-echo $ECHO_N "checking short pathname for SDKROOT (${SDKROOT})... $ECHO_C" >&6
-
-       shortpath=
-       case "${SDKROOT}" in
-           *\ *)
-               # Only do this if we need to.
-               shortpath=`echo "puts [file attributes {${SDKROOT}} -shortname] ; exit" | ${TCLSH_PROG} 2>/dev/null`
-               ;;
-       esac
-       if test "x${shortpath}" = "x" ; then
-           echo "$as_me:$LINENO: result: not changed" >&5
-echo "${ECHO_T}not changed" >&6
-       else
-           SDKROOT=$shortpath
-           echo "$as_me:$LINENO: result: ${SDKROOT}" >&5
-echo "${ECHO_T}${SDKROOT}" >&6
-       fi
-    fi
-
-               if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \
-                   -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then
-                   { { echo "$as_me:$LINENO: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&5
-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" = "yes" ; then
-                   # All this magic is necessary for the Win64 SDK RC1 - hobbs
-                   CC="${MSSDK}/Bin/Win64/cl.exe"
-                   CFLAGS="${CFLAGS} -I${MSSDK}/Include/prerelease \
-                       -I${MSSDK}/Include/Win64/crt \
-                       -I${MSSDK}/Include"
-                   RC="${MSSDK}/bin/rc.exe"
-                   lflags="-MACHINE:IA64 -LIBPATH:${MSSDK}/Lib/IA64 \
-                       -LIBPATH:${MSSDK}/Lib/Prerelease/IA64 -nologo"
-                   LINKBIN="${MSSDK}/bin/win64/link.exe"
-                   CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"
-                   CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
-               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
-               # This essentially turns it all on.
-               LDFLAGS_DEBUG="-debug:full -debugtype:both -warn:2"
-               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
-               if test "${CC}" != "cc_r" ; then
-                   CC=${CC}_r
-               fi
-               echo "$as_me:$LINENO: result: Using $CC for compiling with threads" >&5
-echo "${ECHO_T}Using $CC for compiling with threads" >&6
-           fi
-           LIBS="$LIBS -lc"
-           SHLIB_CFLAGS=""
-           SHLIB_SUFFIX=".so"
-           SHLIB_LD_LIBS='${LIBS}'
-
-           DL_OBJS="tclLoadDl.o"
-           LD_LIBRARY_PATH_VAR="LIBPATH"
-
-           # AIX v<=4.1 has some different flags than 4.2+
-           if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then
-               #LIBOBJS="$LIBOBJS tclLoadAix.o"
-               case $LIBOBJS in
-    "tclLoadAix.$ac_objext"   | \
-  *" tclLoadAix.$ac_objext"   | \
-    "tclLoadAix.$ac_objext "* | \
-  *" tclLoadAix.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS tclLoadAix.$ac_objext" ;;
-esac
-
-               DL_LIBS="-lld"
-           fi
-
-           # 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
-                   { echo "$as_me:$LINENO: WARNING: \"64bit mode not supported with GCC on $system\"" >&5
-echo "$as_me: WARNING: \"64bit mode not supported with GCC on $system\"" >&2;}
-               else
-                   do64bit_ok=yes
-                   CFLAGS="$CFLAGS -q64"
-                   LDFLAGS="$LDFLAGS -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
-                   LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
-               else
-                   LD_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
-               fi
-           else
-               if test "$GCC" = "yes" ; then
-                   SHLIB_LD="gcc -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"
-               LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-               TCL_NEEDS_EXP_FILE=1
-               TCL_EXPORT_FILE_SUFFIX='${PACKAGE_VERSION}.exp'
-           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.
-
-           echo "$as_me:$LINENO: checking for gettimeofday in -lbsd" >&5
-echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
-if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char gettimeofday ();
-int
-main ()
-{
-gettimeofday ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_bsd_gettimeofday=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_bsd_gettimeofday=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gettimeofday" >&5
-echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
-if test $ac_cv_lib_bsd_gettimeofday = 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"
-           ;;
-       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"
-           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"
-           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"
-           LD_SEARCH_FLAGS=""
-           ;;
-       HP-UX-*.11.*)
-           # Use updated header definitions where possible
-
-cat >>confdefs.h <<\_ACEOF
-#define _XOPEN_SOURCE_EXTENDED 1
-_ACEOF
-
-
-           SHLIB_SUFFIX=".sl"
-           echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-int
-main ()
-{
-shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
-if test $ac_cv_lib_dld_shl_load = 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='${LIBS}'
-               DL_OBJS="tclLoadShl.o"
-               DL_LIBS="-ldld"
-               LDFLAGS="$LDFLAGS -Wl,-E"
-               LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
-               LD_LIBRARY_PATH_VAR="SHLIB_PATH"
-           fi
-           if test "$GCC" = "yes" ; then
-               SHLIB_LD="gcc -shared"
-               SHLIB_LD_LIBS='${LIBS}'
-               LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
-           fi
-
-           # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc
-           #CFLAGS="$CFLAGS +DAportable"
-
-           # Check to enable 64-bit flags for compiler/linker
-           if test "$do64bit" = "yes" ; then
-               if test "$GCC" = "yes" ; then
-                   hpux_arch=`${CC} -dumpmachine`
-                   case $hpux_arch in
-                       hppa64*)
-                           # 64-bit gcc in use.  Fix flags for GNU ld.
-                           do64bit_ok=yes
-                           SHLIB_LD="${CC} -shared"
-                           SHLIB_LD_LIBS='${LIBS}'
-                           ;;
-                       *)
-                           { echo "$as_me:$LINENO: WARNING: \"64bit mode not supported with GCC on $system\"" >&5
-echo "$as_me: WARNING: \"64bit mode not supported with GCC on $system\"" >&2;}
-                           ;;
-                   esac
-               else
-                   do64bit_ok=yes
-                   CFLAGS="$CFLAGS +DD64"
-                   LDFLAGS="$LDFLAGS +DD64"
-               fi
-           fi
-           ;;
-       HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*)
-           SHLIB_SUFFIX=".sl"
-           echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-int
-main ()
-{
-shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
-if test $ac_cv_lib_dld_shl_load = 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"
-               LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+           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
+               # This essentially turns it all on.
+               LDFLAGS_DEBUG="-debug:full -debugtype:both -warn:2"
+               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
-           LD_LIBRARY_PATH_VAR="SHLIB_PATH"
-           ;;
-       IRIX-4.*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_SUFFIX=".a"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           SHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a'
-           ;;
-       IRIX-5.*)
-           SHLIB_CFLAGS=""
-           SHLIB_LD="ld -shared -rdata_shared"
-           SHLIB_LD_LIBS='${LIBS}'
-           SHLIB_SUFFIX=".so"
-           DL_OBJS="tclLoadDl.o"
-           DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
-           ;;
-       IRIX-6.*|IRIX64-6.5*)
-           SHLIB_CFLAGS=""
-           SHLIB_LD="ld -n32 -shared -rdata_shared"
+
            SHLIB_LD_LIBS='${LIBS}'
-           SHLIB_SUFFIX=".so"
-           DL_OBJS="tclLoadDl.o"
-           DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
-           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"
+           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)
+                       # ok ...
                        ;;
                    *)
-                       CFLAGS="$CFLAGS -n32"
+                       CC=${CC}_r
                        ;;
                esac
-               LDFLAGS="$LDFLAGS -n32"
+               echo "$as_me:$LINENO: result: Using $CC for compiling with threads" >&5
+echo "${ECHO_T}Using $CC for compiling with threads" >&6
            fi
-           ;;
-       IRIX64-6.*)
+           LIBS="$LIBS -lc"
            SHLIB_CFLAGS=""
-           SHLIB_LD="ld -n32 -shared -rdata_shared"
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
+
            DL_OBJS="tclLoadDl.o"
-           DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_LIBRARY_PATH_VAR="LIBPATH"
 
-           # Check to enable 64-bit flags for compiler/linker
+           # 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
+                   { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+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 "$do64bit" = "yes" ; then
-               if test "$GCC" = "yes" ; then
-                   { echo "$as_me:$LINENO: WARNING: 64bit mode not supported by gcc" >&5
-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="$LDFLAGS -64"
-               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="gcc -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
+               TCL_EXPORT_FILE_SUFFIX='${PACKAGE_VERSION}.exp'
            fi
-           ;;
-       Linux*)
-           SHLIB_CFLAGS="-fPIC"
-           SHLIB_LD_LIBS='${LIBS}'
-           SHLIB_SUFFIX=".so"
 
-           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.
+           # 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"   | \
+  *" tclLoadAix.$ac_objext"   | \
+    "tclLoadAix.$ac_objext "* | \
+  *" tclLoadAix.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS tclLoadAix.$ac_objext" ;;
+esac
 
-           #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+               DL_LIBS="-lld"
+           fi
 
-           if test "$have_dl" = yes; then
-               SHLIB_LD="${CC} -shared"
-               DL_OBJS="tclLoadDl.o"
-               DL_LIBS="-ldl"
-               LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
-               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
-           else
-               if test "${ac_cv_header_dld_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for dld.h" >&5
-echo $ECHO_N "checking for dld.h... $ECHO_C" >&6
-if test "${ac_cv_header_dld_h+set}" = set; then
+           # 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.
+
+           echo "$as_me:$LINENO: checking for gettimeofday in -lbsd" >&5
+echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
+if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dld_h" >&5
-echo "${ECHO_T}$ac_cv_header_dld_h" >&6
 else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking dld.h usability" >&5
-echo $ECHO_N "checking dld.h usability... $ECHO_C" >&6
+  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.  */
-$ac_includes_default
-#include <dld.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking dld.h presence" >&5
-echo $ECHO_N "checking dld.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <dld.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char gettimeofday ();
+int
+main ()
+{
+gettimeofday ();
+  ;
+  return 0;
+}
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  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
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: dld.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: dld.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: dld.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: dld.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: dld.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: dld.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: dld.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: dld.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: dld.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: dld.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to the udp lists.  ##
-## ------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for dld.h" >&5
-echo $ECHO_N "checking for dld.h... $ECHO_C" >&6
-if test "${ac_cv_header_dld_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_bsd_gettimeofday=yes
 else
-  ac_cv_header_dld_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dld_h" >&5
-echo "${ECHO_T}$ac_cv_header_dld_h" >&6
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_bsd_gettimeofday=no
 fi
-if test $ac_cv_header_dld_h = yes; then
-
-                   SHLIB_LD="ld -shared"
-                   DL_OBJS="tclLoadDld.o"
-                   DL_LIBS="-ldld"
-                   LD_SEARCH_FLAGS=""
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gettimeofday" >&5
+echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
+if test $ac_cv_lib_bsd_gettimeofday = yes; then
+  libbsd=yes
+else
+  libbsd=no
 fi
 
+           if test $libbsd = yes; then
+               MATH_LIBS="$MATH_LIBS -lbsd"
 
-           fi
-           if test "`uname -m`" = "alpha" ; then
-               CFLAGS="$CFLAGS -mieee"
-           fi
+cat >>confdefs.h <<\_ACEOF
+#define USE_DELTA_FOR_TZ 1
+_ACEOF
 
-           # 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*)
+       BeOS*)
            SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="${CC} -nostart"
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
 
-           if test "$have_dl" = yes; then
-               SHLIB_LD="${CC} -shared"
-               DL_OBJS=""
-               DL_LIBS="-ldl"
-               LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
-               LD_SEARCH_FLAGS=""
-           else
-               if test "${ac_cv_header_dld_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for dld.h" >&5
-echo $ECHO_N "checking for dld.h... $ECHO_C" >&6
-if test "${ac_cv_header_dld_h+set}" = set; then
+           #-----------------------------------------------------------
+           # 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.
+           #-----------------------------------------------------------
+           echo "$as_me:$LINENO: checking for inet_ntoa in -lbind" >&5
+echo $ECHO_N "checking for inet_ntoa in -lbind... $ECHO_C" >&6
+if test "${ac_cv_lib_bind_inet_ntoa+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dld_h" >&5
-echo "${ECHO_T}$ac_cv_header_dld_h" >&6
 else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking dld.h usability" >&5
-echo $ECHO_N "checking dld.h usability... $ECHO_C" >&6
+  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.  */
-$ac_includes_default
-#include <dld.h>
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char inet_ntoa ();
+int
+main ()
+{
+inet_ntoa ();
+  ;
+  return 0;
+}
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -8700,165 +8002,222 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
+        { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_header_compiler=yes
+  ac_cv_lib_bind_inet_ntoa=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+ac_cv_lib_bind_inet_ntoa=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_bind_inet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_bind_inet_ntoa" >&6
+if test $ac_cv_lib_bind_inet_ntoa = yes; then
+  LIBS="$LIBS -lbind -lsocket"
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
 
-# Is the header present?
-echo "$as_me:$LINENO: checking dld.h presence" >&5
-echo $ECHO_N "checking dld.h presence... $ECHO_C" >&6
+           ;;
+       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
+
+           # 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
+
+           SHLIB_SUFFIX=".sl"
+           echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&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.  */
-#include <dld.h>
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_shl_load=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
+ac_cv_lib_dld_shl_load=no
 fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: dld.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: dld.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: dld.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: dld.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: dld.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: dld.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: dld.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: dld.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: dld.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: dld.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to the udp lists.  ##
-## ------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for dld.h" >&5
-echo $ECHO_N "checking for dld.h... $ECHO_C" >&6
-if test "${ac_cv_header_dld_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_dld_h=$ac_header_preproc
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dld_h" >&5
-echo "${ECHO_T}$ac_cv_header_dld_h" >&6
-
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+  tcl_ok=yes
+else
+  tcl_ok=no
 fi
-if test $ac_cv_header_dld_h = yes; then
 
-                   SHLIB_LD="ld -shared"
-                   DL_OBJS=""
-                   DL_LIBS="-ldld"
-                   LD_SEARCH_FLAGS=""
-fi
+           if test "$tcl_ok" = yes; then
+               SHLIB_CFLAGS="+z"
+               SHLIB_LD="ld -b"
+               SHLIB_LD_LIBS='${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
+           if test "$GCC" = "yes" ; then
+               SHLIB_LD="gcc -shared"
+               SHLIB_LD_LIBS='${LIBS}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           fi
 
+           # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc
+           #CFLAGS="$CFLAGS +DAportable"
 
+           # Check to enable 64-bit flags for compiler/linker
+           if test "$do64bit" = "yes" ; then
+               if test "$GCC" = "yes" ; then
+                   hpux_arch=`${CC} -dumpmachine`
+                   case $hpux_arch in
+                       hppa64*)
+                           # 64-bit gcc in use.  Fix flags for GNU ld.
+                           do64bit_ok=yes
+                           SHLIB_LD="${CC} -shared"
+                           SHLIB_LD_LIBS='${LIBS}'
+                           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+                           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+                           ;;
+                       *)
+                           { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+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
-           if test "`uname -m`" = "alpha" ; then
-               CFLAGS="$CFLAGS -mieee"
-           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"
-           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"
-           LD_SEARCH_FLAGS=""
            ;;
-       NetBSD-*|FreeBSD-[1-2].*)
-           # Not available on all versions:  check for include file.
-           if test "${ac_cv_header_dlfcn_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for dlfcn.h" >&5
-echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6
-if test "${ac_cv_header_dlfcn_h+set}" = set; then
+       HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*)
+           SHLIB_SUFFIX=".sl"
+           echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5
-echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6
 else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking dlfcn.h usability" >&5
-echo $ECHO_N "checking dlfcn.h usability... $ECHO_C" >&6
+  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.  */
-$ac_includes_default
-#include <dlfcn.h>
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -8872,118 +8231,199 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
+        { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_header_compiler=yes
+  ac_cv_lib_dld_shl_load=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+ac_cv_lib_dld_shl_load=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking dlfcn.h presence" >&5
-echo $ECHO_N "checking dlfcn.h presence... $ECHO_C" >&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 { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&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
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+  tcl_ok=yes
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  tcl_ok=no
 fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: dlfcn.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: dlfcn.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: dlfcn.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: dlfcn.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: dlfcn.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to the udp lists.  ##
-## ------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for dlfcn.h" >&5
-echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6
-if test "${ac_cv_header_dlfcn_h+set}" = set; then
+           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=""
+           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=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+           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=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+
+           # Check to enable 64-bit flags for compiler/linker
+
+           if test "$do64bit" = "yes" ; then
+               if test "$GCC" = "yes" ; then
+                   { echo "$as_me:$LINENO: WARNING: 64bit mode not supported by gcc" >&5
+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"
+
+           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"
+
+           SHLIB_LD="${CC} -shared"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           if test "`uname -m`" = "alpha" ; then
+               CFLAGS="$CFLAGS -mieee"
+           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"
+           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-*|FreeBSD-[1-2].*)
+           # NetBSD/SPARC needs -fPIC, -fpic will not do.
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+           echo "$as_me:$LINENO: checking for ELF" >&5
+echo $ECHO_N "checking for ELF... $ECHO_C" >&6
+if test "${tcl_cv_ld_elf+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_header_dlfcn_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5
-echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6
-
-fi
-if test $ac_cv_header_dlfcn_h = yes; then
 
-               # NetBSD/SPARC needs -fPIC, -fpic will not do.
-               SHLIB_CFLAGS="-fPIC"
-               SHLIB_LD="ld -Bshareable -x"
-               SHLIB_LD_LIBS=""
-               SHLIB_SUFFIX=".so"
-               DL_OBJS="tclLoadDl.o"
-               DL_LIBS=""
-               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
-               echo "$as_me:$LINENO: checking for ELF" >&5
-echo $ECHO_N "checking for ELF... $ECHO_C" >&6
                cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8998,48 +8438,49 @@ cat >>conftest.$ac_ext <<_ACEOF
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "yes" >/dev/null 2>&1; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-                   SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+  tcl_cv_ld_elf=yes
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-                   SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
-
+  tcl_cv_ld_elf=no
 fi
 rm -f conftest*
 
-
-else
-
-               SHLIB_CFLAGS=""
-               SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r"
-               SHLIB_LD_LIBS='${LIBS}'
-               SHLIB_SUFFIX=".a"
-               DL_OBJS="tclLoadAout.o"
-               DL_LIBS=""
-               LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
-
 fi
+echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5
+echo "${ECHO_T}$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.1.0'
+           fi
 
-
-
-           # FreeBSD doesn't handle version numbers with dots.
+           # Ancient FreeBSD doesn't handle version numbers with dots.
 
            UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
            TCL_LIB_VERSIONS_OK=nodots
            ;;
        OpenBSD-*)
-           SHLIB_LD="${CC} -shared"
+           # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do.
+           case `machine` in
+           sparc|sparc64)
+               SHLIB_CFLAGS="-fPIC";;
+           *)
+               SHLIB_CFLAGS="-fpic";;
+           esac
+           SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}"
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
            echo "$as_me:$LINENO: checking for ELF" >&5
 echo $ECHO_N "checking for ELF... $ECHO_C" >&6
-           cat >conftest.$ac_ext <<_ACEOF
+if test "${tcl_cv_ld_elf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+               cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -9053,17 +8494,20 @@ cat >>conftest.$ac_ext <<_ACEOF
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "yes" >/dev/null 2>&1; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
+  tcl_cv_ld_elf=yes
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
-
+  tcl_cv_ld_elf=no
 fi
 rm -f conftest*
 
+fi
+echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5
+echo "${ECHO_T}$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'
@@ -9078,7 +8522,8 @@ rm -f conftest*
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
            LDFLAGS="$LDFLAGS -export-dynamic"
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "${TCL_THREADS}" = "1" ; then
                # The -pthread needs to go in the CFLAGS, not LIBS
                LIBS=`echo $LIBS | sed s/-pthread//`
@@ -9097,7 +8542,12 @@ rm -f conftest*
        Darwin-*)
            CFLAGS_OPTIMIZE="-Os"
            SHLIB_CFLAGS="-fno-common"
-           SHLIB_LD="cc -dynamiclib \${LDFLAGS}"
+           if test $do64bit = yes; then
+               do64bit_ok=yes
+               CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
+           fi
+           # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS here:
+           SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}'
            echo "$as_me:$LINENO: checking if ld accepts -single_module flag" >&5
 echo $ECHO_N "checking if ld accepts -single_module flag... $ECHO_C" >&6
 if test "${tcl_cv_ld_single_module+set}" = set; then
@@ -9163,7 +8613,11 @@ echo "${ECHO_T}$tcl_cv_ld_single_module" >&6
            SHLIB_SUFFIX=".dylib"
            DL_OBJS="tclLoadDyld.o"
            DL_LIBS=""
-           LDFLAGS="$LDFLAGS -prebind"
+           # Don't use -prebind when building for Mac OS X 10.4 or later only:
+           test -z "${MACOSX_DEPLOYMENT_TARGET}" || \
+               test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F. '{print $2}'`" -lt 4 && \
+               LDFLAGS="$LDFLAGS -prebind"
+           LDFLAGS="$LDFLAGS -headerpad_max_install_names"
            echo "$as_me:$LINENO: checking if ld accepts -search_paths_first flag" >&5
 echo $ECHO_N "checking if ld accepts -search_paths_first flag... $ECHO_C" >&6
 if test "${tcl_cv_ld_search_paths_first+set}" = set; then
@@ -9225,8 +8679,15 @@ echo "${ECHO_T}$tcl_cv_ld_search_paths_first" >&6
            if test $tcl_cv_ld_search_paths_first = yes; then
                LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
            fi
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
+
+           # TEA specific: for Tk extensions, remove -arch ppc64 from CFLAGS
+           # for fat builds, as neither TkAqua nor TkX11 can be built for 64bit
+           # at present (no 64bit GUI libraries).
+           test $do64bit_ok = no && test -n "${TK_BIN_DIR}" && \
+               CFLAGS="`echo "$CFLAGS" | sed -e 's/-arch ppc64/-arch ppc/g'`"
            ;;
        NEXTSTEP-*)
            SHLIB_CFLAGS=""
@@ -9235,6 +8696,7 @@ echo "${ECHO_T}$tcl_cv_ld_search_paths_first" >&6
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadNext.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OS/390-*)
@@ -9254,6 +8716,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadOSF.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-1.*)
@@ -9268,6 +8731,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-V*)
@@ -9282,6 +8746,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
            LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "$GCC" = "yes" ; then
                CFLAGS="$CFLAGS -mieee"
@@ -9312,18 +8777,9 @@ _ACEOF
            DL_OBJS="tclLoadDl.o"
            # dlopen is in -lc on QNX
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
-       RISCos-*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           SHLIB_SUFFIX=".a"
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           ;;
        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
@@ -9340,6 +8796,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        SINIX*5.4*)
@@ -9349,6 +8806,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        SunOS-4*)
@@ -9358,7 +8816,8 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           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
@@ -9369,7 +8828,8 @@ _ACEOF
            UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
            TCL_LIB_VERSIONS_OK=nodots
            ;;
-       SunOS-5.[0-6]*)
+       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.
@@ -9396,14 +8856,15 @@ _ACEOF
            DL_LIBS="-ldl"
            if test "$GCC" = "yes" ; then
                SHLIB_LD="$CC -shared"
-               LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            else
                SHLIB_LD="/usr/ccs/bin/ld -G -z text"
-               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+               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.
 
@@ -9425,7 +8886,7 @@ _ACEOF
                arch=`isainfo`
                if test "$arch" = "sparcv9 sparc" ; then
                        if test "$GCC" = "yes" ; then
-                           if test "`gcc -dumpversion` | awk -F. '{print }'" -lt "3" ; then
+                           if test "`gcc -dumpversion | awk -F. '{print $1}'`" -lt "3" ; then
                                { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5
 echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;}
                            else
@@ -9438,15 +8899,26 @@ echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;}
                            do64bit_ok=yes
                            if test "$do64bitVIS" = "yes" ; then
                                CFLAGS="$CFLAGS -xarch=v9a"
-                               LDFLAGS="$LDFLAGS -xarch=v9a"
+                               LDFLAGS_ARCH="-xarch=v9a"
                            else
                                CFLAGS="$CFLAGS -xarch=v9"
-                               LDFLAGS="$LDFLAGS -xarch=v9"
+                               LDFLAGS_ARCH="-xarch=v9"
                            fi
+                           # Solaris 64 uses this as well
+                           #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64"
                        fi
+               elif test "$arch" = "amd64 i386" ; then
+                   if test "$GCC" = "yes" ; then
+                       { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;}
+                   else
+                       do64bit_ok=yes
+                       CFLAGS="$CFLAGS -xarch=amd64"
+                       LDFLAGS="$LDFLAGS -xarch=amd64"
+                   fi
                else
-                   { echo "$as_me:$LINENO: WARNING: \"64bit mode only supported sparcv9 system\"" >&5
-echo "$as_me: WARNING: \"64bit mode only supported sparcv9 system\"" >&2;}
+                   { echo "$as_me:$LINENO: WARNING: 64bit mode not supported for $arch" >&5
+echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;}
                fi
            fi
 
@@ -9459,8 +8931,9 @@ echo "$as_me: WARNING: \"64bit mode only supported sparcv9 system\"" >&2;}
            DL_LIBS="-ldl"
            if test "$GCC" = "yes" ; then
                SHLIB_LD="$CC -shared"
-               LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
-               if test "$do64bit" = "yes" ; then
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+               if test "$do64bit_ok" = "yes" ; 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
@@ -9469,26 +8942,14 @@ echo "$as_me: WARNING: \"64bit mode only supported sparcv9 system\"" >&2;}
                    # for finding sparcv9 libgcc, get the regular libgcc
                    # path, remove so name and append 'sparcv9'
                    #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
-                   #LD_SEARCH_FLAGS="${LD_SEARCH_FLAGS},-R,$v9gcclibdir"
+                   #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir"
                fi
            else
                SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
                LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
            fi
            ;;
-       ULTRIX-4.*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_SUFFIX=".a"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           if test "$GCC" != "yes" ; then
-               CFLAGS="$CFLAGS -DHAVE_TZSET -std1"
-           fi
-           ;;
        UNIX_SV* | UnixWare-5*)
            SHLIB_CFLAGS="-KPIC"
            SHLIB_LD="cc -G"
@@ -9498,252 +8959,32 @@ echo "$as_me: WARNING: \"64bit mode only supported sparcv9 system\"" >&2;}
            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.
-           hold_ldflags=$LDFLAGS
            echo "$as_me:$LINENO: checking for ld accepts -Bexport flag" >&5
 echo $ECHO_N "checking for ld accepts -Bexport flag... $ECHO_C" >&6
-           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 { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  found=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-LDFLAGS=$hold_ldflags found=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-           echo "$as_me:$LINENO: result: $found" >&5
-echo "${ECHO_T}$found" >&6
-           LD_SEARCH_FLAGS=""
-           ;;
-    esac
-
-    if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then
-    { echo "$as_me:$LINENO: WARNING: \"64bit support being disabled -- don\'t know magic for this platform\"" >&5
-echo "$as_me: WARNING: \"64bit support being disabled -- don\'t know magic for this platform\"" >&2;}
-    fi
-
-    # Step 4: If pseudo-static linking is in use (see K. B. Kenny, "Dynamic
-    # Loading for Tcl -- What Became of It?".  Proc. 2nd Tcl/Tk Workshop,
-    # New Orleans, LA, Computerized Processes Unlimited, 1994), then we need
-    # to determine which of several header files defines the a.out file
-    # format (a.out.h, sys/exec.h, or sys/exec_aout.h).  At present, we
-    # support only a file format that is more or less version-7-compatible.
-    # In particular,
-    #  - a.out files must begin with `struct exec'.
-    #  - the N_TXTOFF on the `struct exec' must compute the seek address
-    #    of the text segment
-    #  - The `struct exec' must contain a_magic, a_text, a_data, a_bss
-    #    and a_entry fields.
-    # The following compilation should succeed if and only if either sys/exec.h
-    # or a.out.h is usable for the purpose.
-    #
-    # Note that the modified COFF format used on MIPS Ultrix 4.x is usable; the
-    # `struct exec' includes a second header that contains information that
-    # duplicates the v7 fields that are needed.
-
-    if test "x$DL_OBJS" = "xtclLoadAout.o" ; then
-       echo "$as_me:$LINENO: checking sys/exec.h" >&5
-echo $ECHO_N "checking sys/exec.h... $ECHO_C" >&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/exec.h>
-int
-main ()
-{
-
-           struct exec foo;
-           unsigned long seek;
-           int flag;
-#if defined(__mips) || defined(mips)
-           seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-           seek = N_TXTOFF (foo);
-#endif
-           flag = (foo.a_magic == OMAGIC);
-           return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  tcl_ok=usable
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-tcl_ok=unusable
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-       echo "$as_me:$LINENO: result: $tcl_ok" >&5
-echo "${ECHO_T}$tcl_ok" >&6
-       if test $tcl_ok = usable; then
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_SYS_EXEC_H 1
-_ACEOF
-
-       else
-           echo "$as_me:$LINENO: checking a.out.h" >&5
-echo $ECHO_N "checking a.out.h... $ECHO_C" >&6
-           cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <a.out.h>
-int
-main ()
-{
-
-               struct exec foo;
-               unsigned long seek;
-               int flag;
-#if defined(__mips) || defined(mips)
-               seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-               seek = N_TXTOFF (foo);
-#endif
-               flag = (foo.a_magic == OMAGIC);
-               return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  tcl_ok=usable
+if test "${tcl_cv_ld_Bexport+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-tcl_ok=unusable
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-           echo "$as_me:$LINENO: result: $tcl_ok" >&5
-echo "${ECHO_T}$tcl_ok" >&6
-           if test $tcl_ok = usable; then
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_A_OUT_H 1
-_ACEOF
 
-           else
-               echo "$as_me:$LINENO: checking sys/exec_aout.h" >&5
-echo $ECHO_N "checking sys/exec_aout.h... $ECHO_C" >&6
+               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.  */
-#include <sys/exec_aout.h>
+
 int
 main ()
 {
-
-                   struct exec foo;
-                   unsigned long seek;
-                   int flag;
-#if defined(__mips) || defined(mips)
-                   seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-                   seek = N_TXTOFF (foo);
-#endif
-                   flag = (foo.a_midmag == OMAGIC);
-                   return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-
+int i;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -9757,36 +8998,39 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
+        { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  tcl_ok=usable
+  tcl_cv_ld_Bexport=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-tcl_ok=unusable
+tcl_cv_ld_Bexport=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-               echo "$as_me:$LINENO: result: $tcl_ok" >&5
-echo "${ECHO_T}$tcl_ok" >&6
-               if test $tcl_ok = usable; then
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_SYS_EXEC_AOUT_H 1
-_ACEOF
-
-               else
-                   DL_OBJS=""
-               fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+               LDFLAGS=$hold_ldflags
+fi
+echo "$as_me:$LINENO: result: $tcl_cv_ld_Bexport" >&5
+echo "${ECHO_T}$tcl_cv_ld_Bexport" >&6
+           if test $tcl_cv_ld_Bexport = yes; then
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
            fi
-       fi
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+    esac
+
+    if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then
+       { echo "$as_me:$LINENO: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5
+echo "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;}
     fi
 
-    # Step 5: disable dynamic loading if requested via a command-line switch.
+    # Step 4: disable dynamic loading if requested via a command-line switch.
 
     # Check whether --enable-load or --disable-load was given.
 if test "${enable_load+set}" = set; then
@@ -9810,9 +9054,11 @@ fi;
        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
@@ -9831,12 +9077,8 @@ fi;
                    ;;
                Darwin-*)
                    ;;
-               RISCos-*)
-                   ;;
                SCO_SV-3.2*)
                    ;;
-               ULTRIX-4.*)
-                   ;;
                windows)
                    ;;
                *)
@@ -9866,6 +9108,7 @@ fi;
 
 
 
+
     # These must be called after we do the basic CFLAGS checks and
     # verify any possible 64-bit or similar switches are necessary
 
@@ -10082,6 +9325,111 @@ _ACEOF
        tcl_flags="$tcl_flags _LARGEFILE64_SOURCE"
     fi
 
+
+    if test "${tcl_cv_flag__largefile_source64+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&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 { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  tcl_cv_flag__largefile_source64=no
+else
+  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 { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  tcl_cv_flag__largefile_source64=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+tcl_cv_flag__largefile_source64=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f 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
        echo "$as_me:$LINENO: result: none" >&5
 echo "${ECHO_T}none" >&6
@@ -10221,7 +9569,7 @@ echo "${ECHO_T}${tcl_cv_type_64bit}" >&6
        # Now check for auxiliary declarations
        echo "$as_me:$LINENO: checking for struct dirent64" >&5
 echo $ECHO_N "checking for struct dirent64... $ECHO_C" >&6
-       if test "${tcl_cv_struct_dirent64+set}" = set; then
+if test "${tcl_cv_struct_dirent64+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
@@ -10272,7 +9620,8 @@ tcl_cv_struct_dirent64=no
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
+echo "$as_me:$LINENO: result: $tcl_cv_struct_dirent64" >&5
+echo "${ECHO_T}$tcl_cv_struct_dirent64" >&6
        if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -10280,12 +9629,10 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
        fi
-       echo "$as_me:$LINENO: result: ${tcl_cv_struct_dirent64}" >&5
-echo "${ECHO_T}${tcl_cv_struct_dirent64}" >&6
 
        echo "$as_me:$LINENO: checking for struct stat64" >&5
 echo $ECHO_N "checking for struct stat64... $ECHO_C" >&6
-       if test "${tcl_cv_struct_stat64+set}" = set; then
+if test "${tcl_cv_struct_stat64+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
@@ -10336,7 +9683,8 @@ tcl_cv_struct_stat64=no
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
+echo "$as_me:$LINENO: result: $tcl_cv_struct_stat64" >&5
+echo "${ECHO_T}$tcl_cv_struct_stat64" >&6
        if test "x${tcl_cv_struct_stat64}" = "xyes" ; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -10344,8 +9692,109 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
        fi
-       echo "$as_me:$LINENO: result: ${tcl_cv_struct_stat64}" >&5
-echo "${ECHO_T}${tcl_cv_struct_stat64}" >&6
+
+
+
+for ac_func in open64 lseek64
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&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 gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+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
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
 
        echo "$as_me:$LINENO: checking for off64_t" >&5
 echo $ECHO_N "checking for off64_t... $ECHO_C" >&6
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
-       if test "x${tcl_cv_type_off64_t}" = "xyes" ; then
+                       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
 
+           echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+           echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
        fi
-       echo "$as_me:$LINENO: result: ${tcl_cv_type_off64_t}" >&5
-echo "${ECHO_T}${tcl_cv_type_off64_t}" >&6
     fi
 
 
@@ -10420,9 +9874,6 @@ echo "${ECHO_T}${tcl_cv_type_off64_t}" >&6
 
 
 
-
-    DBGX=""
-
     echo "$as_me:$LINENO: checking for build with symbols" >&5
 echo $ECHO_N "checking for build with symbols... $ECHO_C" >&6
     # Check whether --enable-symbols or --disable-symbols was given.
@@ -10432,6 +9883,7 @@ if test "${enable_symbols+set}" = set; then
 else
   tcl_ok=no
 fi;
+    DBGX=""
     if test "$tcl_ok" = "no"; then
        CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
        LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
@@ -10526,7 +9978,7 @@ _ACEOF
        else
            eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
        fi
-       # Some packages build there own stubs libraries
+       # Some packages build their own stubs libraries
        eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
        # These aren't needed on Windows (either MSVC or gcc)
        RANLIB=:
@@ -10543,7 +9995,7 @@ _ACEOF
        else
            eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
        fi
-       # Some packages build there own stubs libraries
+       # Some packages build their own stubs libraries
        eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
     fi
 
@@ -10571,47 +10023,35 @@ _ACEOF
 #--------------------------------------------------------------------
 
 
-    # Allow the user to provide this setting in the env
-    if test "x${TCLSH_PROG}" = "x" ; then
-       echo "$as_me:$LINENO: checking for tclsh" >&5
+    echo "$as_me:$LINENO: checking for tclsh" >&5
 echo $ECHO_N "checking for tclsh... $ECHO_C" >&6
-
-       if test "${ac_cv_path_tclsh+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-       search_path=`echo ${PATH} | sed -e 's/:/ /g'`
-       if test "${TEA_PLATFORM}" != "windows" -o \
-               \( "$do64bit_ok" = "no" -a "$doWince" = "no" \) ; then
-           # Do not allow target tclsh in known cross-compile builds,
-           # as we need one we can run on this system
-           search_path="${TCL_BIN_DIR} ${TCL_BIN_DIR}/../bin ${exec_prefix}/bin ${prefix}/bin ${search_path}"
-       fi
-       for dir in $search_path ; do
-           for j in `ls -r $dir/tclsh[8-9]*${EXEEXT} 2> /dev/null` \
-                   `ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do
-               if test x"$ac_cv_path_tclsh" = x ; then
-                   if test -f "$j" ; then
-                       ac_cv_path_tclsh=$j
-                       break
-                   fi
-               fi
-           done
-       done
-
-fi
-
-
-       if test -f "$ac_cv_path_tclsh" ; then
-           TCLSH_PROG=$ac_cv_path_tclsh
-           echo "$as_me:$LINENO: result: $TCLSH_PROG" >&5
-echo "${ECHO_T}$TCLSH_PROG" >&6
-       else
-           { { echo "$as_me:$LINENO: error: No tclsh found in PATH: $search_path" >&5
-echo "$as_me: error: No tclsh found in PATH: $search_path" >&2;}
-   { (exit 1); exit 1; }; }
-       fi
+    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
+    echo "$as_me:$LINENO: result: ${TCLSH_PROG}" >&5
+echo "${ECHO_T}${TCLSH_PROG}" >&6
 
 
 #TEA_PROG_WISH
@@ -11400,7 +10840,6 @@ s,@TCL_INCLUDES@,$TCL_INCLUDES,;t t
 s,@TCL_THREADS@,$TCL_THREADS,;t t
 s,@SHARED_BUILD@,$SHARED_BUILD,;t t
 s,@AR@,$AR,;t t
-s,@TCLSH_PROG@,$TCLSH_PROG,;t t
 s,@CELIB_DIR@,$CELIB_DIR,;t t
 s,@LIBOBJS@,$LIBOBJS,;t t
 s,@DL_LIBS@,$DL_LIBS,;t t
@@ -11409,10 +10848,8 @@ s,@CFLAGS_OPTIMIZE@,$CFLAGS_OPTIMIZE,;t t
 s,@CFLAGS_WARNING@,$CFLAGS_WARNING,;t t
 s,@STLIB_LD@,$STLIB_LD,;t t
 s,@SHLIB_LD@,$SHLIB_LD,;t t
-s,@SHLIB_CFLAGS@,$SHLIB_CFLAGS,;t t
 s,@SHLIB_LD_LIBS@,$SHLIB_LD_LIBS,;t t
-s,@LDFLAGS_DEBUG@,$LDFLAGS_DEBUG,;t t
-s,@LDFLAGS_OPTIMIZE@,$LDFLAGS_OPTIMIZE,;t t
+s,@SHLIB_CFLAGS@,$SHLIB_CFLAGS,;t t
 s,@LD_LIBRARY_PATH_VAR@,$LD_LIBRARY_PATH_VAR,;t t
 s,@TCL_DBGX@,$TCL_DBGX,;t t
 s,@CFLAGS_DEFAULT@,$CFLAGS_DEFAULT,;t t
@@ -11422,6 +10859,7 @@ s,@MAKE_SHARED_LIB@,$MAKE_SHARED_LIB,;t t
 s,@MAKE_STATIC_LIB@,$MAKE_STATIC_LIB,;t t
 s,@MAKE_STUB_LIB@,$MAKE_STUB_LIB,;t t
 s,@RANLIB_STUB@,$RANLIB_STUB,;t t
+s,@TCLSH_PROG@,$TCLSH_PROG,;t t
 s,@DTPLITE@,$DTPLITE,;t t
 s,@ac_pt_DTPLITE@,$ac_pt_DTPLITE,;t t
 s,@LTLIBOBJS@,$LTLIBOBJS,;t t
index a38619b09f8b016ffb8c9238330fbda98fd1ed38..aaf607eca924e16a3c1c76371a3f5fa11104f4fb 100644 (file)
@@ -27,7 +27,7 @@ AC_INIT([udp], [1.0.8])
 # as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE.
 #--------------------------------------------------------------------
 
-TEA_INIT([3.2])
+TEA_INIT([3.5])
 
 AC_CONFIG_AUX_DIR(tclconfig)
 
index 815a7f41a086d3818701536378c6de2480656971..0f0ead13a5d02fd7e279d097e1acb9d4fc9e34da 100644 (file)
@@ -162,6 +162,13 @@ Udp_Init(Tcl_Interp *interp)
     return r;
 }
 
+int
+Udp_SafeInit(Tcl_Interp *interp)
+{
+    Tcl_SetResult(interp, "permission denied", TCL_STATIC);
+    return TCL_ERROR;
+}
+
 /*
  * ----------------------------------------------------------------------
  * Udp_CmdProc --
@@ -211,7 +218,7 @@ udpOpen(ClientData clientData, Tcl_Interp *interp,
     struct sockaddr_in  addr, sockaddr;
 #endif
     unsigned long status = 1;
-    int len;
+    socklen_t len;
     
     if (argc >= 2) {
         if (udpGetService(interp, argv[1], &localport) != TCL_OK)
@@ -405,7 +412,8 @@ udpPeek(ClientData clientData, Tcl_Interp *interp,
 {
 #ifndef WIN32
     int buffer_size = 16;
-    int actual_size, socksize;
+    int actual_size;
+    socklen_t socksize;
     int sock;
     char message[17];
     /*struct hostent *name;*/
@@ -515,7 +523,8 @@ UDP_CheckProc(ClientData data, int flags)
 {
     UdpState *statePtr;
     UdpEvent *evPtr;
-    int actual_size, socksize;
+    int actual_size;
+    socklen_t socksize;
     int buffer_size = MAXBUFFERSIZE;
     char *message;
 #ifdef SIPC_IPV6
@@ -981,7 +990,7 @@ udpInput(ClientData instanceData, char *buf, int bufSize, int *errorCode)
 #ifdef WIN32
     PacketList *packets;
 #else /* ! WIN32 */
-    int socksize;
+    socklen_t socksize;
     int port;
     int buffer_size = MAXBUFFERSIZE;
     char *remotehost;
index 7759b8537dda4da99bfad59f8e581c156dfec178..8ed57e3943c1560b515226707dcc336dbbc22e29 100644 (file)
@@ -96,5 +96,6 @@ typedef struct UdpState {
 
 
 EXTERN int Udp_Init(Tcl_Interp *interp);
+EXTERN int Udp_SafeInit(Tcl_Interp *interp);
 
 #endif
index 01e55ebc81b0a80d6822b7aee3778db4911def0c..9a2890bfade3ed18ed4d9cda5afb3ca841527310 100644 (file)
@@ -1,4 +1,5 @@
 Copyright (c) 2003 Columbia University
+Copyright (c) 2003-2006 Patrick Thoyts
 
 Permission is hereby granted, free of charge, to any person obtaining a copy 
 of this software and associated documentation files (the "Software"), to deal 
diff --git a/tclconfig/ChangeLog b/tclconfig/ChangeLog
deleted file mode 100644 (file)
index d5d10b1..0000000
+++ /dev/null
@@ -1,406 +0,0 @@
-2005-04-25  Daniel Steffen  <das@users.sourceforge.net>
-
-       * tcl.m4: added AC_DEFINE* descriptions (from core tcl.m4) to allow
-       use with autoheader.
-       (Darwin): added configure checks for recently added linker flags
-       -single_module and -search_paths_first to allow building with older
-       tools (and on Mac OS X 10.1), use -single_module in SHLIB_LD.
-       (TEA_MISSING_POSIX_HEADERS): added caching of dirent.h check.
-       (TEA_BUGGY_STRTOD): added caching (sync with core tcl.m4).
-
-2005-03-24  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_TCL_64BIT_FLAGS): use Tcl header defaults for wide
-       int type only on Windows when __int64 is detected as valid.
-
-2005-03-24  Don Porter  <dgp@users.sf.net>
-
-       * README.txt:   Update reference to "SC_* macros" to "TEA_* macros".
-       * tcl.m4:       Incorporated recent improvements in SC_PATH_TCLCONFIG
-       and SC_PATH_TKCONFIG into TEA_PATH_TCLCONFIG and TEA_PATH_TKCONFIG.
-       Corrected search path in TEA_PATH_CONFIG and added
-       AC_SUBST($1_BIN_DIR) to TEA_LOAD_CONFIG so that packages that load
-       the configuration of another package can know where they loaded
-       it from.
-
-2005-03-18  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_CONFIG_CFLAGS): correct 2005-03-17 change to have
-       variant LD_SEARCH_FLAGS for gcc and cc builds.
-
-       * tcl.m4 (TEA_PROG_TCLSH, TEA_PROG_WISH): correct x-compile check.
-
-2005-03-17  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: Correct gcc build and HP-UX-11.
-
-2005-02-08  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_ADD_LIBS): don't touch lib args starting with -.
-       (TEA_CONFIG_CFLAGS): only define _DLL for CE in shared build.
-       (TEA_MAKE_LIB): set RANLIB* to : on Windows (it's not needed).
-
-2005-02-01  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: redo of 2005-01-27 changes to correctly handle paths
-       with spaces.  Win/CE and Win/64 builds now require a prebuilt
-       tclsh to handle conversion to short pathnames.  This is done in
-       the new TEA_PATH_NOSPACE macro.  For Win/CE|64, make CC just the
-       compiler and move the necessary includes to CFLAGS.
-       (TEA_CONFIG_CFLAGS): Add Solaris 64-bit gcc build support.
-       (TEA_PROG_TCLSH, TEA_PROG_WISH): Allow TCLSH_PROG and WISH_PROG to
-       be set in the env and prevent resetting.
-       (TEA_ADD_LIBS): On Windows using GCC (mingw), convert foo.lib
-       args to -lfoo, for use with mingw.
-               *** POTENTIAL INCOMPATABILITY ***
-       (TEA_CONFIG_CFLAGS): Fix AIX gcc builds to work out-of-box.
-       Bumped TEA to 3.2.
-
-2005-01-27  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: remove cygpath calls to support msys.
-       Update base CE build assumption to "420,ARMV4,ARM,Pocket PC 2003".
-       Make STLIB_LD use $LINKBIN -lib.
-
-2005-01-25  Daniel Steffen  <das@users.sourceforge.net>
-
-       * tcl.m4 (Darwin): fixed bug with static build linking to dynamic
-       library in /usr/lib etc instead of linking to static library earlier
-       in search path. [Tcl Bug 956908]
-       Removed obsolete references to Rhapsody. 
-       
-2004-12-29  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: Updates for VC7 compatibility, fixing CFLAGS and LDFLAGS
-       options, using better default -O levels. [Bug 1092952, 1091967]
-
-2004-12-29  Joe English  <jenglish@users.sourceforge.net>
-
-       * tcl.m4: Do not use ${DBGX} suffix when building
-       shared libraries [patch #1081595, TIP #34]
-
-2004-09-07  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_CONFIG_CFLAGS): support eVC4 Win/CE builds
-
-2004-08-10  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_INIT, TEA_PREFIX): update handling of exec_prefix to
-       work around subdir configures since autoconf only propagates the
-       prefix (not exec_prefix).
-
-2004-07-23  Daniel Steffen  <das@users.sourceforge.net>
-
-       * tcl.m4 (TEA_CONFIG_CFLAGS): Darwin section: brought inline with
-       Tcl 8.5 HEAD config, removed core specific & obsolete settings.
-
-2004-07-22  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_PATH_X): check in TK_DEFS for MAC_OSX_TK to see if
-       we are compiling on Aqua.  Add TEA_WINDOWINGSYSTEM var that
-       reflects 'tk windowingsystem' value.
-
-2004-07-16  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_ENABLE_THREADS): force a threaded build when
-       building against a threaded core.
-       (CFLAGS_WARNING): Remove -Wconversion for gcc builds
-       (TEA_CONFIG_CFLAGS): Reorder configure.in for better 64-bit build
-       configuration, replacing EXTRA_CFLAGS with CFLAGS.  [Bug #874058]
-       Update to latest Tcl 8.5 head config settings.
-       Call this TEA version 3.1.
-
-2004-04-29  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_TCL_64BIT_FLAGS): replace AC_TRY_RUN test with
-       AC_TRY_COMPILE for the long vs. long long check. (kenny)
-
-2004-04-26  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_TCL_64BIT_FLAGS): update against core tcl.m4 to
-       define TCL_WIDE_INT_IS_LONG if 'using long'.
-
-2004-03-19  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: correct Windows builds getting LDFLAGS info in MAKE_LIB
-
-2004-02-11  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: correct TCL_INCLUDES for private headers on Windows - it
-       doesn't need the eval.
-
-2004-02-10  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: don't require TK_INCLUDES and TCL_INCLUDES to have the
-       DIR_NATIVE vars defined when using private headers on unix.
-       Allow $... to TEA_ADD_SOURCES for constructs like
-       TEA_ADD_SOURCES([\$(WIN_OBJECTS)]), that allow the developer to
-       place more in the Makefile.in.
-       tkUnixPort.h checks for HAVE_LIMITS_H, so do both HAVE and
-       CHECK on limits.h
-
-2003-12-10  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * Makefile.in:      added TEA_ADD_LIBS, TEA_ADD_INCLUDES and
-       * configure:        TEA_ADD_CFLAGS to configurable parameters with
-       * configure.in:     PKG_* equivs in the Makefile.  This allows the
-       * tclconfig/tcl.m4: user to worry less about actual magic VAR names.
-       Corrected Makefile.in to note that TEA_ADD_TCL_SOURCES requires
-       exact file names.
-
-2003-12-09  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: updated OpenBSD support based on [Patch #775246] (cassoff)
-
-2003-12-05  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * configure:
-       * configure.in:
-       * Makefile.in (VPATH): readd $(srcdir) to front of VPATH as the
-       first part of VPATH can get chopped off.
-       Change .c.$(OBJEXT) rule to .c.@OBJEXT@ to support more makes.
-       * tclconfig/tcl.m4: add TEA_ADD_STUB_SOURCES to support libstub
-       generation and TEA_ADD_TCL_SOURCES to replace RUNTIME_SOURCES as
-       the way the user specifies library files.
-
-2003-12-03  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * configure:           Update of TEA spec to (hopefully) simplify
-       * configure.in:        some aspects of TEA by making use of more
-       * Makefile.in:         AC 2.5x features.  Use PACKAGE_NAME (instead
-       * generic/tclsample.c: of PACKAGE) and PACKAGE_VERSION (instead of
-       * tclconfig/tcl.m4:    VERSION) arguments to AC_INIT as the TEA
-       package name and version.
-       Provide a version argument to TEA_INIT - starting with 3.0.
-       Drop all use of interior shell substs that older makefiles didn't
-       like.  Use PKG_* naming convention instead.
-       Move specification of source files and public headers into
-       configure.in with TEA_ADD_SOURCES and TEA_ADD_HEADERS.  These will
-       be munged during ./configure into the right obj file names (no
-       $(SOURCES:.c=.obj) needed).
-       There is almost nothing that should be touched in Makefile.in now
-       for the developer.  May want to add a TEA_ADD_TCL_SOURCES for the
-       RUNTIME_SOURCES that remains.
-       Use SHLID_LD_FLAGS (instead of SHLID_LDFLAGS) as Tcl does.
-       Only specify the user requested LDFLAGS/CFLAGS in the Makefile,
-       don't mention the _OPTIMIZE/_DEBUG variants.
-
-2003-10-15  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: create a TEA_SETUP_COMPILER_CC the precedes the
-       TEA_SETUP_COMPILER macro.  They are split so the check for CC
-       occurs before any use of CC.  Also add AC_PROG_CPP to the compiler
-       checks.
-
-2003-10-06  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: Updated for autoconf 2.5x prereq.
-       Where TCL_WIDE_INT_TYPE would be __int64, defer to the code checks
-       in tcl.h, which also handles TCL_LL_MODIFIER* properly.
-
-2003-04-22  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: correct default setting of ARCH for WinCE builds.
-       Correct \ escaping for CE sed macros.
-
-2003-04-10  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: replace $(syscal) construct with older `syscall` for
-       systems where sh != bash.
-
-2003-04-09  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_WITH_CELIB): add --enable-wince and --with-celib
-       options for Windows/CE compilation support.  Requires the
-       Microsoft eMbedded SDK and Keuchel's celib emulation layer.
-
-2003-02-18  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_ENABLE_THREADS): Make sure -lpthread gets passed on
-       the link line when checking for the pthread_attr_setstacksize
-       symbol. (dejong)
-
-       * tcl.m4 (TEA_SETUP_COMPILER): added default calls to
-       TEA_TCL_EARLY_FLAGS, TEA_TCL_64BIT_FLAGS,
-       TEA_MISSING_POSIX_HEADERS and TEA_BUGGY_STRTOD.
-
-2003-02-14  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: correct HP-UX ia64 --enable-64bit build flags
-
-2003-01-29  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: check $prefix/lib as well as $exec_prefix/lib when
-       looking for tcl|tkConfig.sh, as this check is done before we would
-       set exec_prefix when the user does not define it.
-
-2003-01-21  Mo DeJong  <mdejong@users.sourceforge.net>
-
-       * tcl.m4 (TEA_CONFIG_CFLAGS): Fix build support
-       for mingw, the previous implementation would
-       use VC++ when compiling with mingw gcc. Don't
-       pass -fPIC since gcc always compiles pic code
-       under win32. Change some hard coded cases
-       of gcc to ${CC}.
-
-2002-10-15  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: move the CFLAGS definition from TEA_ENABLE_SHARED to
-       TEA_MAKE_LIB because setting too early confuses other AC_* macros.
-       Correct the HP-11 SHLIB_LD_LIBS setting.
-       
-       * tcl.m4: add the CFLAGS definition into TEA_ENABLE_SHARED and
-       make it pick up the env CFLAGS at configure time.
-
-2002-10-09  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: add --enable-symbols=mem option to enable TCL_MEM_DEBUG.
-       Improved AIX 64-bit build support, allow it on AIX-4 as well.
-       Enable 64-bit HP-11 compilation with gcc.
-       Enable 64-bit IRIX64-6 cc build support.
-       Correct FreeBSD thread library linkage.
-       Add OSF1 static build support.
-       Improve SunOS-5 shared build SHLIB_LD macro.
-
-2002-07-20  Zoran Vasiljevic  <zoran@archiware.com>
-
-       * tcl.m4: Added MINGW32 to list of systems checked for Windows build.
-       Also, fixes some indentation issues with "--with-XXX" options.
-
-2002-04-23  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_ENABLE_THREADS): added USE_THREAD_ALLOC define to
-       use new threaded allocatory by default on Unix for Tcl 8.4.
-       (TEA_CONFIG_CFLAGS): corrected LD_SEARCH_FLAGS for FreeBSD-3+.
-
-2002-04-22  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4 (TEA_SETUP_COMPILER): removed call to AC_CYGWIN so that
-       we can use autoconf 2.5x as well as 2.13.  This prevents us from
-       being able to warn against the use of cygwin gcc at configure
-       time, but allows autoconf 2.5x, which is what is shipped with most
-       newer systems.
-
-2002-04-11  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: Enabled COFF as well as CV style debug info with
-       --enable-symbols to allow Dr. Watson users to see function info.
-       More info on debugging levels can be obtained at:
-       http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp
-
-2002-04-03  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: change all SC_* macros to TEA_*.  The SC_ was for
-       Scriptics, which is no more.  TEA represents a better, independent
-       prefix that won't need changing.
-       Added preliminary mingw gcc support. [Patch #538772]
-       Added TEA_PREFIX macro that handles defaulting the prefix and
-       exec_prefix vars to those used by Tcl if none were specified.
-       Added TEA_SETUP_COMPILER macro that encompasses the AC_PROG_CC
-       check and several other basic AC_PROG checks needed for making
-       executables.  This greatly simplifies user's configure.in files.
-       Collapsed AIX-5 defines into AIX-* with extra checks for doing the
-       ELF stuff on AIX-5-ia64.
-       Updated TEA_ENABLE_THREADS to take an optional arg to allow
-       switching it on by default (for Thread) and add sanity checking to
-       warn the user if configuring threads incompatibly.
-
-2002-03-29  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: made sure that SHLIB_LDFLAGS was set to LDFLAGS_DEFAULT.
-       Removed --enable-64bit support for AIX-4 because it wasn't correct.
-       Added -MT or -MD Windows linker switches to properly support
-       symbols-enabled builds.
-
-2002-03-28  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: called AC_MSG_ERROR when SC_TEA_INIT wasn't called first
-       instead of calling it as that inlines it each time in shell code.
-       Changed Windows CFLAGS_OPTIMIZE to use -O2 instead of -Oti.
-       Noted TCL_LIB_VERSIONS_OK=nodots for Windows builds.
-       A few changes to support itcl (and perhaps others):
-       Added support for making your own stub libraries to SC_MAKE_LIB.
-       New SC_PATH_CONFIG and SC_LOAD_CONFIG that take a package name arg
-       and find that ${pkg}Config.sh file.  itk uses this for itcl.
-
-2002-03-27  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: made SC_LOAD_TKCONFIG recognize when working with a Tk
-       build dir setup.
-       Added EXTRA_CFLAGS and SHLIB_LD_LIBS substs to SC_CONFIG_CFLAGS.
-       Added XLIBSW onto LIBS when it is defined.
-       Remove TCL_LIBS from MAKE_LIB and correctly use SHLIB_LD_LIBS
-       instead to not rely as much on tclConfig.sh cached info.
-       Add TK_BIN_DIR to paths to find wish in SC_PROG_WISH.
-       These move towards making TEA much more independent of *Config.sh.
-
-2002-03-19  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: corrected forgotten (UN)SHARED_LIB_SUFFIX and
-       SHLIB_SUFFIX defines for Win.
-       (SC_PATH_X): made this only do the check on unix platforms. 
-
-2002-03-12  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * README.txt: updated to reflect fewer files
-
-2002-03-06  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * config.guess (removed):
-       * config.sub (removed): removed unnecessary files
-
-       * installFile.tcl (removed):
-       * mkinstalldirs (removed): these aren't really necessary for
-       making TEA work
-
-       * tcl.m4 (SC_PUBLIC_TCL_HEADERS, SC_PUBLIC_TK_HEADERS): don't
-       check /usr(/local)/include for includes on Windows when not using
-       gcc
-
-2002-03-05  Jeff Hobbs  <jeffh@ActiveState.com>
-
-       * tcl.m4: added warnings on Windows, removed RELPATH define and
-       added TCL_LIBS to MAKE_LIB macro.
-
-       This import represents 2.0.0, or a new start at attempting to
-       make TEA much easier for C extension developers.
-
-       **** moved from tclpro project to core tcl project, ****
-       **** renamed to 'tclconfig'                         ****
-
-2001-03-15    Karl Lehenbauer <karl@procplace.com>
-
-       * installFile.tcl: Added updating of the modification time of
-         the target file whether we overwrote it or decided that it
-         hadn't changed.  This was necessary for us to be able to
-         determine whether or not a module install touched the file.
-
-2001-03-08    Karl Lehenbauer <karl@procplace.com>
-
-       * installFile.tcl: Added support for converting new-style (1.1+) 
-         Cygnus drive paths to Tcl-style.
-
-2001-01-15    <brent.welch@interwoven.com>
-
-       * tcl.m4: Added FreeBSD clause.
-
-2001-01-03    <brent.welch@interwoven.com>
-
-       * tcl.m4: Fixed typo in SC_LIB_SPEC where it is checking
-       for exec-prefix.
-
-2000-12-01    <brent.welch@interwoven.com>
-
-       * tcl.m4: Concatenated most of the Ajuba acsite.m4 file
-       so we don't need to modify the autoconf installation.
-       * config.guess:
-       * config.sub:
-       * installFile.tcl:
-       Added files from the itcl config subdirectory,
-       which should go away.
-
-2000-7-29    <welch@ajubasolutions.com>
-
-       * Fixed the use of TCL_SRC_DIR and TK_SRC_DIR within
-       TCL_PRIVATE_INCLUDES and TK_PRIVATE_INCLUDES to match their recent
-       change from $(srcdir) to $(srcdir)/..
index 3af2ae859b7c6ca25e5e4e2d835081f9f721349a..2dc36fdda2179010db08205aca2849618f377e57 100644 (file)
 
 AC_PREREQ(2.50)
 
+dnl TEA extensions pass this us the version of TEA they think they
+dnl are compatible with (must be set in TEA_INIT below)
+dnl TEA_VERSION="3.5"
+
+# Possible values for key variables defined:
+#
+# TEA_WINDOWINGSYSTEM - win32 aqua x11 (mirrors 'tk windowingsystem')
+# TEA_PLATFORM        - windows unix
+#
+
 #------------------------------------------------------------------------
 # TEA_PATH_TCLCONFIG --
 #
@@ -44,7 +54,10 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
     if test x"${no_tcl}" = x ; then
        # we reset no_tcl in case something fails here
        no_tcl=true
-       AC_ARG_WITH(tcl, [  --with-tcl              directory containing tcl configuration (tclConfig.sh)], with_tclconfig=${withval})
+       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,[
 
@@ -72,12 +85,12 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
                        `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]].[[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]].[[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 -f "$i/unix/tclConfig.sh" ; then
                        ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
@@ -86,9 +99,37 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
                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
+
+           # 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 ${exec_prefix}/lib 2>/dev/null` \
+               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` \
@@ -118,12 +159,12 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
 
        if test x"${ac_cv_c_tclconfig}" = x ; then
            TCL_BIN_DIR="# no Tcl configs found"
-           AC_MSG_WARN("Cannot find Tcl configuration definitions")
+           AC_MSG_WARN([Can't find Tcl configuration definitions])
            exit 0
        else
            no_tcl=
            TCL_BIN_DIR=${ac_cv_c_tclconfig}
-           AC_MSG_RESULT([found $TCL_BIN_DIR/tclConfig.sh])
+           AC_MSG_RESULT([found ${TCL_BIN_DIR}/tclConfig.sh])
        fi
     fi
 ])
@@ -156,7 +197,10 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
     if test x"${no_tk}" = x ; then
        # we reset no_tk in case something fails here
        no_tk=true
-       AC_ARG_WITH(tk, [  --with-tk               directory containing tk configuration (tkConfig.sh)], with_tkconfig=${withval})
+       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,[
 
@@ -197,9 +241,25 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
                    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 ${exec_prefix}/lib 2>/dev/null` \
+               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` \
@@ -211,6 +271,20 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
                    fi
                done
            fi
+
+           # 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 other private locations
            if test x"${ac_cv_c_tkconfig}" = x ; then
                for i in \
@@ -225,17 +299,17 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
                done
            fi
        ])
+
        if test x"${ac_cv_c_tkconfig}" = x ; then
            TK_BIN_DIR="# no Tk configs found"
-           AC_MSG_WARN("Cannot find Tk configuration definitions")
+           AC_MSG_WARN([Can't find Tk configuration definitions])
            exit 0
        else
            no_tk=
            TK_BIN_DIR=${ac_cv_c_tkconfig}
-           AC_MSG_RESULT([found $TK_BIN_DIR/tkConfig.sh])
+           AC_MSG_RESULT([found ${TK_BIN_DIR}/tkConfig.sh])
        fi
     fi
-
 ])
 
 #------------------------------------------------------------------------
@@ -258,39 +332,55 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
 #------------------------------------------------------------------------
 
 AC_DEFUN(TEA_LOAD_TCLCONFIG, [
-    AC_MSG_CHECKING([for existence of $TCL_BIN_DIR/tclConfig.sh])
+    AC_MSG_CHECKING([for existence of ${TCL_BIN_DIR}/tclConfig.sh])
 
-    if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+    if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then
         AC_MSG_RESULT([loading])
-       . $TCL_BIN_DIR/tclConfig.sh
+       . ${TCL_BIN_DIR}/tclConfig.sh
     else
-        AC_MSG_RESULT([file not found])
+        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
+    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 arbitary 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_FILE=\"${TCL_LIB_FILE}\""
     eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
     eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
-
-    eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
     eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
     eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
 
@@ -311,8 +401,6 @@ AC_DEFUN(TEA_LOAD_TCLCONFIG, [
     AC_SUBST(TCL_EXTRA_CFLAGS)
     AC_SUBST(TCL_LD_FLAGS)
     AC_SUBST(TCL_SHLIB_LD_LIBS)
-    #AC_SUBST(TCL_BUILD_LIB_SPEC)
-    #AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
 ])
 
 #------------------------------------------------------------------------
@@ -336,38 +424,69 @@ AC_DEFUN(TEA_LOAD_TKCONFIG, [
 
     if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then
         AC_MSG_RESULT([loading])
-       . $TK_BIN_DIR/tkConfig.sh
+       . ${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
+    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 arbitary 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_FILE=\"${TK_LIB_FILE}\""
     eval "TK_LIB_FLAG=\"${TK_LIB_FLAG}\""
     eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\""
-
-    eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\""
     eval "TK_STUB_LIB_FLAG=\"${TK_STUB_LIB_FLAG}\""
     eval "TK_STUB_LIB_SPEC=\"${TK_STUB_LIB_SPEC}\""
 
+    # 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)
@@ -408,7 +527,8 @@ AC_DEFUN(TEA_LOAD_TKCONFIG, [
 AC_DEFUN(TEA_ENABLE_SHARED, [
     AC_MSG_CHECKING([how to build libraries])
     AC_ARG_ENABLE(shared,
-       [  --enable-shared         build and link with shared libraries [--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
@@ -432,12 +552,18 @@ AC_DEFUN(TEA_ENABLE_SHARED, [
 #------------------------------------------------------------------------
 # TEA_ENABLE_THREADS --
 #
-#      Specify if thread support should be enabled.  If "yes" is
-#      specified as an arg (optional), threads are enabled by default.
+#      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
 #      
@@ -452,34 +578,50 @@ AC_DEFUN(TEA_ENABLE_SHARED, [
 #      Defines the following vars:
 #              TCL_THREADS
 #              _REENTRANT
+#              _THREAD_SAFE
 #
 #------------------------------------------------------------------------
 
 AC_DEFUN(TEA_ENABLE_THREADS, [
-    AC_ARG_ENABLE(threads, [  --enable-threads        build with threads],
-       [tcl_ok=$enableval], [tcl_ok=$1])
+    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.
-            AC_DEFINE(USE_THREAD_ALLOC, 1,
-                [Do we want to use the threaded memory allocator?])
+           # 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]
+               # 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"
@@ -500,32 +642,22 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
                            THREADS_LIBS=" -pthread"
                        else
                            TCL_THREADS=0
-                           AC_MSG_WARN("Don t know how to find pthread lib on your system - thread support disabled")
+                           AC_MSG_WARN([Do not know how to find pthread lib on your system - thread support disabled])
                        fi
                    fi
                fi
            fi
-
-           # Does the pthread-implementation provide
-           # 'pthread_attr_setstacksize' ?
-
-           ac_saved_libs=$LIBS
-           LIBS="$LIBS $THREADS_LIBS"
-           AC_CHECK_FUNCS(pthread_attr_setstacksize)
-           LIBS=$ac_saved_libs
-           AC_CHECK_FUNCS(readdir_r)
        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
+    if test "${TCL_THREADS}" = 1; then
        AC_DEFINE(TCL_THREADS, 1, [Are we building with threads enabled?])
-       #LIBS="$LIBS $THREADS_LIBS"
-       AC_MSG_RESULT([yes])
+       AC_MSG_RESULT([yes (default)])
     else
-       AC_MSG_RESULT([no (default)])
+       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.
@@ -533,15 +665,16 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
        *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.])
+    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 attempting building against a Tcl
-    that is NOT thread-enabled.])
+    --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
@@ -551,17 +684,17 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
 #------------------------------------------------------------------------
 # TEA_ENABLE_SYMBOLS --
 #
-#      Specify if debugging symbols should be used
+#      Specify if debugging symbols should be used.
 #      Memory (TCL_MEM_DEBUG) debugging can also be enabled.
 #
 # Arguments:
 #      none
 #      
-#      Requires the following vars to be set:
-#              CFLAGS_DEBUG
-#              CFLAGS_OPTIMIZE
-#              LDFLAGS_DEBUG
-#              LDFLAGS_OPTIMIZE
+#      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:
 #
@@ -569,10 +702,10 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
 #              --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
+#              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.
 #
@@ -581,11 +714,12 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
 AC_DEFUN(TEA_ENABLE_SYMBOLS, [
     dnl Make sure we are initialized
     AC_REQUIRE([TEA_CONFIG_CFLAGS])
-
-    DBGX=""
-
     AC_MSG_CHECKING([for build with symbols])
-    AC_ARG_ENABLE(symbols, [  --enable-symbols        build with debugging symbols [--disable-symbols]],    [tcl_ok=$enableval], [tcl_ok=no])
+    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}"
@@ -639,28 +773,71 @@ AC_DEFUN(TEA_ENABLE_SYMBOLS, [
 
 AC_DEFUN(TEA_ENABLE_LANGINFO, [
     AC_ARG_ENABLE(langinfo,
-       [  --enable-langinfo      use nl_langinfo if possible to determine
-                         encoding at startup, otherwise use old heuristic],
+       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
-       if test "$langinfo_ok" = "yes"; then
-           AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no])
-       fi
+       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_TRY_COMPILE([#include <langinfo.h>],
-               [nl_langinfo(CODESET);],[langinfo_ok=yes],[langinfo_ok=no])
-       if test "$langinfo_ok" = "no"; then
-           langinfo_ok="no (could not compile with nl_langinfo)";
-       fi
-       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
-    AC_MSG_RESULT([$langinfo_ok])
+])
+
+#--------------------------------------------------------------------
+# 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, [
+       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
 ])
 
 #--------------------------------------------------------------------
@@ -674,7 +851,7 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
 #
 # Results:
 #
-#      Defines the following vars:
+#      Defines and substitutes the following vars:
 #
 #       DL_OBJS -       Name of the object file that implements dynamic
 #                       loading for Tcl on this system.
@@ -686,6 +863,11 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
 #       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
@@ -706,20 +888,16 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
 #       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.
-#       TCL_LIB_FILE -  Name of the file that contains the Tcl library, such
-#                       as libtcl7.8.so or libtcl7.8.a.
-#       TCL_LIB_SUFFIX -Specifies everything that comes after the "libtcl"
-#                       in the shared library name, using the
-#                       ${PACKAGE_VERSION} variable to put the version in
-#                       the right place.  This is used by platforms that
-#                       need non-standard library names.
-#                       Examples:  ${PACKAGE_VERSION}.so.1.1 on NetBSD,
-#                       since it needs to have a version after the .so, and
-#                       ${PACKAGE_VERSION}.a on AIX, since the Tcl shared
-#                       library needs to have a .a extension whereas shared
-#                       objects for loadable extensions have a .so
-#                       extension.  Defaults to
-#                       ${PACKAGE_VERSION}${SHLIB_SUFFIX}.
+#       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.
@@ -734,35 +912,30 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
 #                      Flags used when running the compiler in debug mode
 #      CFLAGS_OPTIMIZE -
 #                      Flags used when running the compiler in optimize mode
-#      CFLAGS -        We add CFLAGS to pass to the compiler
+#      CFLAGS -        Additional CFLAGS added as necessary (usually 64-bit)
 #
-#      Subst's the following vars:
-#              DL_LIBS
-#              CFLAGS_DEBUG
-#              CFLAGS_OPTIMIZE
-#              CFLAGS_WARNING
-#
-#              STLIB_LD
-#              SHLIB_LD
-#              SHLIB_CFLAGS
-#              LDFLAGS_DEBUG
-#              LDFLAGS_OPTIMIZE
 #--------------------------------------------------------------------
 
 AC_DEFUN(TEA_CONFIG_CFLAGS, [
     dnl Make sure we are initialized
     AC_REQUIRE([TEA_INIT])
 
-    # Step 0: Enable 64 bit support?
+    # Step 0.a: Enable 64 bit support?
 
-    AC_MSG_CHECKING([if 64bit support is enabled])
-    AC_ARG_ENABLE(64bit,[  --enable-64bit          enable 64bit support (where applicable)], [do64bit=$enableval], [do64bit=no])
+    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,[  --enable-64bit-vis      enable 64bit Sparc VIS support], [do64bitVIS=$enableval], [do64bitVIS=no])
+    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])
 
     if test "$do64bitVIS" = "yes"; then
@@ -775,68 +948,51 @@ AC_DEFUN(TEA_CONFIG_CFLAGS, [
     if test "${TEA_PLATFORM}" = "windows" ; then
        AC_MSG_CHECKING([if Windows/CE build is requested])
        AC_ARG_ENABLE(wince,[  --enable-wince          enable Win/CE support (where applicable)], [doWince=$enableval], [doWince=no])
-       AC_MSG_RESULT($doWince)
+       AC_MSG_RESULT([$doWince])
     fi
 
     # Step 1: set the variable "system" to hold the name and version number
-    # for the system.  This can usually be done via the "uname" command, but
-    # there are a few systems, like Next, where this doesn't work.
+    # for the system.
 
-    AC_MSG_CHECKING([system version (for dynamic loading)])
-    if test -f /usr/lib/NextStep/software_version; then
-       system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
-    else
-       system=`uname -s`-`uname -r`
-       if test "$?" -ne 0 ; then
-           AC_MSG_RESULT([unknown (can't find uname command)])
-           system=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
-               system=MP-RAS-`awk '{print $3}' /etc/.relid'`
-           fi
-           if test "`uname -s`" = "AIX" ; then
-               system=AIX-`uname -v`.`uname -r`
-           fi
-           if test "${TEA_PLATFORM}" = "windows" ; then
-               system=windows
-           fi
-           AC_MSG_RESULT([$system])
-       fi
-    fi
+    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 and CC_SEARCH_FLAGS becomes LD_SEARCH_FLAGS for us
-    # (and we have no CC_SEARCH_FLAGS).
+    # "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=""
     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
        CFLAGS_OPTIMIZE=-O2
        CFLAGS_WARNING="-Wall -Wno-implicit-int"
     else
-       CFLAGS_OPTIMIZE=-O
        CFLAGS_WARNING=""
     fi
     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, :)
+dnl AC_CHECK_TOOL(AR, ar)
     AC_CHECK_PROG(AR, ar, ar)
     STLIB_LD='${AR} cr'
     LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"
@@ -844,22 +1000,38 @@ dnl AC_CHECK_TOOL(AR, ar, :)
        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.
-           if test "$do64bit" = "yes" ; then
+           # 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 SDK"
+                   MSSDK="C:/Progra~1/Microsoft Platform SDK"
                fi
-               # Ensure that this path has no spaces to work in autoconf
-               TEA_PATH_NOSPACE(MSSDK, ${MSSDK})
-               if test ! -d "${MSSDK}/bin/win64" ; then
-                   AC_MSG_WARN([could not find 64-bit SDK to enable 64bit mode])
+               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" = "yes" ; then
+               if test "$do64bit" != "no" ; then
                    AC_MSG_ERROR([Windows/CE and 64-bit builds incompatible])
                fi
                if test "$GCC" = "yes" ; then
@@ -900,9 +1072,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                        SDKROOT="C:/Windows CE Tools"
                    fi
                fi
-               # Ensure that this path has no spaces to work in autoconf
-               TEA_PATH_NOSPACE(WCEROOT, ${WCEROOT})
-               TEA_PATH_NOSPACE(SDKROOT, ${SDKROOT})
+               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]])
@@ -925,27 +1096,27 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    runtime=-MD
                fi
 
-                if test "$do64bit" = "yes" ; then
+                if test "$do64bit" != "no" ; then
                    # All this magic is necessary for the Win64 SDK RC1 - hobbs
-                   CC="${MSSDK}/Bin/Win64/cl.exe"
-                   CFLAGS="${CFLAGS} -I${MSSDK}/Include/prerelease \
-                       -I${MSSDK}/Include/Win64/crt \
-                       -I${MSSDK}/Include"
-                   RC="${MSSDK}/bin/rc.exe"
-                   lflags="-MACHINE:IA64 -LIBPATH:${MSSDK}/Lib/IA64 \
-                       -LIBPATH:${MSSDK}/Lib/Prerelease/IA64 -nologo"
-                   LINKBIN="${MSSDK}/bin/win64/link.exe"
+                   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"
+                       CC="\"${CEBINROOT}/cl.exe\""
                    else
-                       CC="${CEBINROOT}/cl${ARCH}.exe"
+                       CC="\"${CEBINROOT}/cl${ARCH}.exe\""
                    fi
                    CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\""
-                   RC="${WCEROOT}/Common/EVC/bin/rc.exe"
+                   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
@@ -961,7 +1132,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    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"
+                   LINKBIN="\"${CEBINROOT}/link.exe\""
                    AC_SUBST(CELIB_DIR)
                else
                    RC="rc"
@@ -1012,34 +1183,32 @@ dnl AC_CHECK_TOOL(AR, ar, :)
        AIX-*)
            if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes" ; then
                # AIX requires the _r compiler when gcc isn't being used
-               if test "${CC}" != "cc_r" ; then
-                   CC=${CC}_r
-               fi
+               case "${CC}" in
+                   *_r)
+                       # ok ...
+                       ;;
+                   *)
+                       CC=${CC}_r
+                       ;;
+               esac
                AC_MSG_RESULT([Using $CC for compiling with threads])
            fi
            LIBS="$LIBS -lc"
            SHLIB_CFLAGS=""
-           SHLIB_SUFFIX=".so"
            SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
 
            DL_OBJS="tclLoadDl.o"
            LD_LIBRARY_PATH_VAR="LIBPATH"
 
-           # AIX v<=4.1 has some different flags than 4.2+
-           if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then
-               #LIBOBJS="$LIBOBJS tclLoadAix.o"
-               AC_LIBOBJ([tclLoadAix])
-               DL_LIBS="-lld"
-           fi
-
            # 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
-                   AC_MSG_WARN("64bit mode not supported with GCC on $system")
+                   AC_MSG_WARN([64bit mode not supported with GCC on $system])
                else 
                    do64bit_ok=yes
                    CFLAGS="$CFLAGS -q64"
-                   LDFLAGS="$LDFLAGS -q64"
+                   LDFLAGS_ARCH="-q64"
                    RANLIB="${RANLIB} -X64"
                    AR="${AR} -X64"
                    SHLIB_LD_FLAGS="-b64"
@@ -1052,10 +1221,11 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                # AIX-5 has dl* in libc.so
                DL_LIBS=""
                if test "$GCC" = "yes" ; then
-                   LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+                   CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
                else
-                   LD_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
+                   CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
                fi
+               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
            else
                if test "$GCC" = "yes" ; then
                    SHLIB_LD="gcc -shared"
@@ -1064,11 +1234,18 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                fi
                SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}"
                DL_LIBS="-ldl"
-               LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+               CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
                TCL_NEEDS_EXP_FILE=1
                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
+               AC_LIBOBJ([tclLoadAix])
+               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
@@ -1094,6 +1271,13 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            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=""
@@ -1102,6 +1286,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        BSD/OS-4.*)
@@ -1112,6 +1297,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
            LDFLAGS="$LDFLAGS -export-dynamic"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        dgux*)
@@ -1121,11 +1307,15 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            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?])
+           # 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
 
            SHLIB_SUFFIX=".sl"
            AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no)
@@ -1136,13 +1326,14 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                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
            if test "$GCC" = "yes" ; then
                SHLIB_LD="gcc -shared"
                SHLIB_LD_LIBS='${LIBS}'
-               LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            fi
 
            # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc
@@ -1158,15 +1349,17 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                            do64bit_ok=yes
                            SHLIB_LD="${CC} -shared"
                            SHLIB_LD_LIBS='${LIBS}'
+                           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")
+                           AC_MSG_WARN([64bit mode not supported with GCC on $system])
                            ;;
                    esac
                else
                    do64bit_ok=yes
                    CFLAGS="$CFLAGS +DD64"
-                   LDFLAGS="$LDFLAGS +DD64"
+                   LDFLAGS_ARCH="+DD64"
                fi
            fi
            ;;
@@ -1180,20 +1373,10 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                DL_OBJS="tclLoadShl.o"
                DL_LIBS="-ldld"
                LDFLAGS="$LDFLAGS -Wl,-E"
-               LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
+               LD_LIBRARY_PATH_VAR="SHLIB_PATH"
            fi
-           LD_LIBRARY_PATH_VAR="SHLIB_PATH"
-           ;;
-       IRIX-4.*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_SUFFIX=".a"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           SHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a'
            ;;
        IRIX-5.*)
            SHLIB_CFLAGS=""
@@ -1202,16 +1385,18 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            ;;
-       IRIX-6.*|IRIX64-6.5*)
+       IRIX-6.*)
            SHLIB_CFLAGS=""
            SHLIB_LD="ld -n32 -shared -rdata_shared"
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "$GCC" = "yes" ; then
                CFLAGS="$CFLAGS -mabi=n32"
                LDFLAGS="$LDFLAGS -mabi=n32"
@@ -1235,7 +1420,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
 
            # Check to enable 64-bit flags for compiler/linker
 
@@ -1246,7 +1432,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    do64bit_ok=yes
                    SHLIB_LD="ld -64 -shared -rdata_shared"
                    CFLAGS="$CFLAGS -64"
-                   LDFLAGS="$LDFLAGS -64"
+                   LDFLAGS_ARCH="-64"
                fi
            fi
            ;;
@@ -1259,22 +1445,14 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            # 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"
 
-           if test "$have_dl" = yes; then
-               SHLIB_LD="${CC} -shared"
-               DL_OBJS="tclLoadDl.o"
-               DL_LIBS="-ldl"
-               LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
-               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
-           else
-               AC_CHECK_HEADER(dld.h, [
-                   SHLIB_LD="ld -shared"
-                   DL_OBJS="tclLoadDld.o"
-                   DL_LIBS="-ldld"
-                   LD_SEARCH_FLAGS=""])
-           fi
+           SHLIB_LD="${CC} -shared"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            if test "`uname -m`" = "alpha" ; then
                CFLAGS="$CFLAGS -mieee"
            fi
@@ -1296,23 +1474,28 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
 
-           if test "$have_dl" = yes; then
-               SHLIB_LD="${CC} -shared"
-               DL_OBJS=""
-               DL_LIBS="-ldl"
-               LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
-               LD_SEARCH_FLAGS=""
-           else
-               AC_CHECK_HEADER(dld.h, [
-                   SHLIB_LD="ld -shared"
-                   DL_OBJS=""
-                   DL_LIBS="-ldld"
-                   LD_SEARCH_FLAGS=""])
-           fi
+           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"
+           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"
@@ -1320,6 +1503,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        MP-RAS-*)
@@ -1330,64 +1514,63 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
            LDFLAGS="$LDFLAGS -Wl,-Bexport"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        NetBSD-*|FreeBSD-[[1-2]].*)
-           # Not available on all versions:  check for include file.
-           AC_CHECK_HEADER(dlfcn.h, [
-               # NetBSD/SPARC needs -fPIC, -fpic will not do.
-               SHLIB_CFLAGS="-fPIC"
-               SHLIB_LD="ld -Bshareable -x"
-               SHLIB_LD_LIBS=""
-               SHLIB_SUFFIX=".so"
-               DL_OBJS="tclLoadDl.o"
-               DL_LIBS=""
-               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
-               AC_MSG_CHECKING([for ELF])
+           # NetBSD/SPARC needs -fPIC, -fpic will not do.
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           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
-               ],
-                   AC_MSG_RESULT([yes])
-                   SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so',
-                   AC_MSG_RESULT([no])
-                   SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
-               )
-           ], [
-               SHLIB_CFLAGS=""
-               SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r"
-               SHLIB_LD_LIBS='${LIBS}'
-               SHLIB_SUFFIX=".a"
-               DL_OBJS="tclLoadAout.o"
-               DL_LIBS=""
-               LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
-           ])
+               ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)])
+           if test $tcl_cv_ld_elf = yes; then
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+           else
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
+           fi
 
-           # FreeBSD doesn't handle version numbers with dots.
+           # Ancient FreeBSD doesn't handle version numbers with dots.
 
            UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
            TCL_LIB_VERSIONS_OK=nodots
            ;;
        OpenBSD-*)
-           SHLIB_LD="${CC} -shared"
+           # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do.
+           case `machine` in
+           sparc|sparc64)
+               SHLIB_CFLAGS="-fPIC";;
+           *)
+               SHLIB_CFLAGS="-fpic";;
+           esac
+           SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}"
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS=""
-           AC_MSG_CHECKING(for ELF)
-           AC_EGREP_CPP(yes, [
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
+           AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [
+               AC_EGREP_CPP(yes, [
 #ifdef __ELF__
        yes
 #endif
-           ],
-               [AC_MSG_RESULT(yes)
-               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'],
-               [AC_MSG_RESULT(no)
-               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0']
-           )
+               ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)])
+           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'
@@ -1402,7 +1585,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
            LDFLAGS="$LDFLAGS -export-dynamic"
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "${TCL_THREADS}" = "1" ; then
                # The -pthread needs to go in the CFLAGS, not LIBS
                LIBS=`echo $LIBS | sed s/-pthread//`
@@ -1421,7 +1605,12 @@ dnl AC_CHECK_TOOL(AR, ar, :)
        Darwin-*)
            CFLAGS_OPTIMIZE="-Os"
            SHLIB_CFLAGS="-fno-common"
-           SHLIB_LD="cc -dynamiclib \${LDFLAGS}"
+           if test $do64bit = yes; then
+               do64bit_ok=yes
+               CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
+           fi
+           # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS here:
+           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"
@@ -1434,7 +1623,11 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".dylib"
            DL_OBJS="tclLoadDyld.o"
            DL_LIBS=""
-           LDFLAGS="$LDFLAGS -prebind"
+           # Don't use -prebind when building for Mac OS X 10.4 or later only:
+           test -z "${MACOSX_DEPLOYMENT_TARGET}" || \
+               test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F. '{print [$]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"
@@ -1443,8 +1636,15 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            if test $tcl_cv_ld_search_paths_first = yes; then
                LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
            fi
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
+
+           # TEA specific: for Tk extensions, remove -arch ppc64 from CFLAGS
+           # for fat builds, as neither TkAqua nor TkX11 can be built for 64bit
+           # at present (no 64bit GUI libraries).
+           test $do64bit_ok = no && test -n "${TK_BIN_DIR}" && \
+               CFLAGS="`echo "$CFLAGS" | sed -e 's/-arch ppc64/-arch ppc/g'`"
            ;;
        NEXTSTEP-*)
            SHLIB_CFLAGS=""
@@ -1453,6 +1653,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadNext.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OS/390-*)
@@ -1469,6 +1670,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadOSF.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-1.*)
@@ -1483,6 +1685,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-V*)
@@ -1497,6 +1700,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
            LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "$GCC" = "yes" ; then
                CFLAGS="$CFLAGS -mieee"
@@ -1527,18 +1731,9 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_OBJS="tclLoadDl.o"
            # dlopen is in -lc on QNX
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
-       RISCos-*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           SHLIB_SUFFIX=".a"
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           ;;
        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
@@ -1555,6 +1750,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        SINIX*5.4*)
@@ -1564,6 +1760,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        SunOS-4*)
@@ -1573,7 +1770,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           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
@@ -1584,7 +1782,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
            TCL_LIB_VERSIONS_OK=nodots
            ;;
-       SunOS-5.[[0-6]]*)
+       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.
@@ -1604,14 +1803,15 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_LIBS="-ldl"
            if test "$GCC" = "yes" ; then
                SHLIB_LD="$CC -shared"
-               LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            else
                SHLIB_LD="/usr/ccs/bin/ld -G -z text"
-               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+               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.
 
@@ -1620,13 +1820,13 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                [Do we really want to follow the standard? Yes we do!])
 
            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 "`gcc -dumpversion` | awk -F. '{print $1}'" -lt "3" ; then
+                           if test "`gcc -dumpversion | awk -F. '{print [$]1}'`" -lt "3" ; then
                                AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system])
                            else
                                do64bit_ok=yes
@@ -1638,14 +1838,24 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                            do64bit_ok=yes
                            if test "$do64bitVIS" = "yes" ; then
                                CFLAGS="$CFLAGS -xarch=v9a"
-                               LDFLAGS="$LDFLAGS -xarch=v9a"
+                               LDFLAGS_ARCH="-xarch=v9a"
                            else
                                CFLAGS="$CFLAGS -xarch=v9"
-                               LDFLAGS="$LDFLAGS -xarch=v9"
+                               LDFLAGS_ARCH="-xarch=v9"
                            fi
+                           # Solaris 64 uses this as well
+                           #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64"
                        fi
+               elif test "$arch" = "amd64 i386" ; then
+                   if test "$GCC" = "yes" ; then
+                       AC_MSG_WARN([64bit mode not supported with GCC on $system])
+                   else
+                       do64bit_ok=yes
+                       CFLAGS="$CFLAGS -xarch=amd64"
+                       LDFLAGS="$LDFLAGS -xarch=amd64"
+                   fi
                else
-                   AC_MSG_WARN("64bit mode only supported sparcv9 system")
+                   AC_MSG_WARN([64bit mode not supported for $arch])
                fi
            fi
            
@@ -1658,8 +1868,9 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_LIBS="-ldl"
            if test "$GCC" = "yes" ; then
                SHLIB_LD="$CC -shared"
-               LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
-               if test "$do64bit" = "yes" ; then
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+               if test "$do64bit_ok" = "yes" ; 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
@@ -1668,26 +1879,14 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    # for finding sparcv9 libgcc, get the regular libgcc
                    # path, remove so name and append 'sparcv9'
                    #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
-                   #LD_SEARCH_FLAGS="${LD_SEARCH_FLAGS},-R,$v9gcclibdir"
+                   #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir"
                fi
            else
                SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
                LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
            fi
            ;;
-       ULTRIX-4.*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_SUFFIX=".a"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           if test "$GCC" != "yes" ; then
-               CFLAGS="$CFLAGS -DHAVE_TZSET -std1"
-           fi
-           ;;
        UNIX_SV* | UnixWare-5*)
            SHLIB_CFLAGS="-KPIC"
            SHLIB_LD="cc -G"
@@ -1697,103 +1896,28 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            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.
-           hold_ldflags=$LDFLAGS
-           AC_MSG_CHECKING(for ld accepts -Bexport flag)
-           LDFLAGS="$LDFLAGS -Wl,-Bexport"
-           AC_TRY_LINK(, [int i;], [found=yes],
-                       [LDFLAGS=$hold_ldflags found=no])
-           AC_MSG_RESULT([$found])
+           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])
+           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
-    AC_MSG_WARN("64bit support being disabled -- don\'t know magic for this platform")
-    fi
-
-    # Step 4: If pseudo-static linking is in use (see K. B. Kenny, "Dynamic
-    # Loading for Tcl -- What Became of It?".  Proc. 2nd Tcl/Tk Workshop,
-    # New Orleans, LA, Computerized Processes Unlimited, 1994), then we need
-    # to determine which of several header files defines the a.out file
-    # format (a.out.h, sys/exec.h, or sys/exec_aout.h).  At present, we
-    # support only a file format that is more or less version-7-compatible. 
-    # In particular,
-    #  - a.out files must begin with `struct exec'.
-    #  - the N_TXTOFF on the `struct exec' must compute the seek address
-    #    of the text segment
-    #  - The `struct exec' must contain a_magic, a_text, a_data, a_bss
-    #    and a_entry fields.
-    # The following compilation should succeed if and only if either sys/exec.h
-    # or a.out.h is usable for the purpose.
-    #
-    # Note that the modified COFF format used on MIPS Ultrix 4.x is usable; the
-    # `struct exec' includes a second header that contains information that
-    # duplicates the v7 fields that are needed.
-
-    if test "x$DL_OBJS" = "xtclLoadAout.o" ; then
-       AC_MSG_CHECKING([sys/exec.h])
-       AC_TRY_COMPILE([#include <sys/exec.h>],[
-           struct exec foo;
-           unsigned long seek;
-           int flag;
-#if defined(__mips) || defined(mips)
-           seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-           seek = N_TXTOFF (foo);
-#endif
-           flag = (foo.a_magic == OMAGIC);
-           return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-    ], tcl_ok=usable, tcl_ok=unusable)
-       AC_MSG_RESULT([$tcl_ok])
-       if test $tcl_ok = usable; then
-           AC_DEFINE(USE_SYS_EXEC_H, 1,
-               [Should we use <sys/exec.h> when doing dynamic loading?])
-       else
-           AC_MSG_CHECKING([a.out.h])
-           AC_TRY_COMPILE([#include <a.out.h>],[
-               struct exec foo;
-               unsigned long seek;
-               int flag;
-#if defined(__mips) || defined(mips)
-               seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-               seek = N_TXTOFF (foo);
-#endif
-               flag = (foo.a_magic == OMAGIC);
-               return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-           ], tcl_ok=usable, tcl_ok=unusable)
-           AC_MSG_RESULT([$tcl_ok])
-           if test $tcl_ok = usable; then
-               AC_DEFINE(USE_A_OUT_H, 1,
-                   [Should we use <a.out.h> when doing dynamic loading?])
-           else
-               AC_MSG_CHECKING([sys/exec_aout.h])
-               AC_TRY_COMPILE([#include <sys/exec_aout.h>],[
-                   struct exec foo;
-                   unsigned long seek;
-                   int flag;
-#if defined(__mips) || defined(mips)
-                   seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-                   seek = N_TXTOFF (foo);
-#endif
-                   flag = (foo.a_midmag == OMAGIC);
-                   return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-               ], tcl_ok=usable, tcl_ok=unusable)
-               AC_MSG_RESULT([$tcl_ok])
-               if test $tcl_ok = usable; then
-                   AC_DEFINE(USE_SYS_EXEC_AOUT_H, 1,
-                       [Should we use <sys/exec_aout.h> when doing dynamic loading?])
-               else
-                   DL_OBJS=""
-               fi
-           fi
-       fi
+       AC_MSG_WARN([64bit support being disabled -- don't know magic for this platform])
     fi
 
-    # Step 5: disable dynamic loading if requested via a command-line switch.
+    # Step 4: disable dynamic loading if requested via a command-line switch.
 
-    AC_ARG_ENABLE(load, [  --disable-load          disallow dynamic loading and "load" command],
+    AC_ARG_ENABLE(load,
+       AC_HELP_STRING([--disable-load],
+           [disallow dynamic loading and "load" command (default: enabled)]),
        [tcl_ok=$enableval], [tcl_ok=yes])
     if test "$tcl_ok" = "no"; then
        DL_OBJS=""
@@ -1810,9 +1934,11 @@ dnl AC_CHECK_TOOL(AR, ar, :)
        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
@@ -1831,12 +1957,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    ;;
                Darwin-*)
                    ;;
-               RISCos-*)
-                   ;;
                SCO_SV-3.2*)
                    ;;
-               ULTRIX-4.*)
-                   ;;
                windows)
                    ;;
                *)
@@ -1854,16 +1976,17 @@ dnl AC_CHECK_TOOL(AR, ar, :)
     fi
 
     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_CFLAGS)
+
     AC_SUBST(SHLIB_LD_LIBS)
-    AC_SUBST(LDFLAGS_DEBUG)
-    AC_SUBST(LDFLAGS_OPTIMIZE)
+    AC_SUBST(SHLIB_CFLAGS)
+
     AC_SUBST(LD_LIBRARY_PATH_VAR)
 
     # These must be called after we do the basic CFLAGS checks and
@@ -1896,8 +2019,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
 
 AC_DEFUN(TEA_SERIAL_PORT, [
     AC_CHECK_HEADERS(sys/modem.h)
-    AC_MSG_CHECKING([termios vs. termio vs. sgtty])
-    AC_CACHE_VAL(tcl_cv_api_serial, [
+    AC_CACHE_CHECK([termios vs. termio vs. sgtty], tcl_cv_api_serial, [
     AC_TRY_RUN([
 #include <termios.h>
 
@@ -1935,7 +2057,7 @@ int main() {
        return 0;
     }
     return 1;
-}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=none, tcl_cv_api_serial=none)
+}], 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([
@@ -1989,7 +2111,6 @@ int main() {
        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
-    AC_MSG_RESULT([$tcl_cv_api_serial])
 ])
 
 #--------------------------------------------------------------------
@@ -2025,8 +2146,7 @@ int main() {
 #--------------------------------------------------------------------
 
 AC_DEFUN(TEA_MISSING_POSIX_HEADERS, [
-    AC_MSG_CHECKING([dirent.h])
-    AC_CACHE_VAL(tcl_cv_dirent_h,
+    AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h,
     AC_TRY_LINK([#include <sys/types.h>
 #include <dirent.h>], [
 #ifndef _POSIX_SOURCE
@@ -2052,7 +2172,6 @@ closedir(d);
        AC_DEFINE(NO_DIRENT_H, 1, [Do we have <dirent.h>?])
     fi
 
-    AC_MSG_RESULT([$tcl_ok])
     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>?])])
@@ -2082,7 +2201,6 @@ closedir(d);
 
     # OS/390 lacks sys/param.h (and doesn't need it, by chance).
     AC_HAVE_HEADERS(sys/param.h)
-
 ])
 
 #--------------------------------------------------------------------
@@ -2106,25 +2224,13 @@ closedir(d);
 #      Sets the following vars:
 #              XINCLUDES
 #              XLIBSW
-#              LIBS (appends to)
-#              TEA_WINDOWINGSYSTEM
+#              PKG_LIBS (appends to)
 #
 #--------------------------------------------------------------------
 
 AC_DEFUN(TEA_PATH_X, [
-    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_PATH_UNIX_X
-               TEA_WINDOWINGSYSTEM="x11"
-               ;;
-       esac
-    elif test "${TEA_PLATFORM}" = "windows" ; then
-       TEA_WINDOWINGSYSTEM="windows"
+    if test "${TEA_WINDOWINGSYSTEM}" = "x11" ; then
+       TEA_PATH_UNIX_X
     fi
 ])
 
@@ -2142,28 +2248,27 @@ AC_DEFUN(TEA_PATH_UNIX_X, [
     fi
     if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
        AC_MSG_CHECKING([for X11 header files])
-       XINCLUDES="# no special path needed"
-       AC_TRY_CPP([#include <X11/Intrinsic.h>], , XINCLUDES="nope")
-       if test "$XINCLUDES" = nope; then
+       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
-       else
-           XINCLUDES="# no special path needed"
+           XINCLUDES="-I$x_includes"
+           found_xincludes="yes"
        fi
     fi
-    if test "$XINCLUDES" = nope; then
-       AC_MSG_RESULT([could not find any!])
-       XINCLUDES="# no include files found"
+    if test found_xincludes = "no"; then
+       AC_MSG_RESULT([couldn't find any!])
     fi
 
     if test "$no_x" = yes; then
@@ -2221,25 +2326,8 @@ AC_DEFUN(TEA_PATH_UNIX_X, [
 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])
-    if test -f /usr/lib/NextStep/software_version; then
-       system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
-    else
-       system=`uname -s`-`uname -r`
-       if test "$?" -ne 0 ; then
-           system=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
-               system=MP-RAS-`awk '{print $3}' /etc/.relid'`
-           fi
-           if test "`uname -s`" = "AIX" ; then
-               system=AIX-`uname -v`.`uname -r`
-           fi
-       fi
-    fi
     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
@@ -2254,10 +2342,6 @@ AC_DEFUN(TEA_BLOCKING_STYLE, [
            AC_DEFINE(USE_FIONBIO, 1, [Should we use FIONBIO?])
            AC_MSG_RESULT([FIONBIO])
            ;;
-       ULTRIX-4.*)
-           AC_DEFINE(USE_FIONBIO, 1, [Should we use FIONBIO?])
-           AC_MSG_RESULT([FIONBIO])
-           ;;
        *)
            AC_MSG_RESULT([O_NONBLOCK])
            ;;
@@ -2290,20 +2374,16 @@ AC_DEFUN(TEA_TIME_HANDLER, [
 
     AC_CHECK_FUNCS(gmtime_r localtime_r)
 
-    AC_MSG_CHECKING([tm_tzadj in struct tm])
-    AC_CACHE_VAL(tcl_cv_member_tm_tzadj,
+    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))
-    AC_MSG_RESULT([$tcl_cv_member_tm_tzadj])
     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_MSG_CHECKING([tm_gmtoff in struct tm])
-    AC_CACHE_VAL(tcl_cv_member_tm_gmtoff,
+    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))
-    AC_MSG_RESULT([$tcl_cv_member_tm_gmtoff])
     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
@@ -2312,28 +2392,24 @@ AC_DEFUN(TEA_TIME_HANDLER, [
     # Its important to include time.h in this check, as some systems
     # (like convex) have timezone functions, etc.
     #
-    AC_MSG_CHECKING([long timezone variable])
-    AC_CACHE_VAL(tcl_cv_var_timezone,
+    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))
-    AC_MSG_RESULT([$tcl_cv_timezone_long])
     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_MSG_CHECKING([time_t timezone variable])
-       AC_CACHE_VAL(tcl_cv_timezone_time,
+       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))
-       AC_MSG_RESULT([$tcl_cv_timezone_time])
        if test $tcl_cv_timezone_time = yes ; then
            AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
        fi
@@ -2363,30 +2439,29 @@ AC_DEFUN(TEA_TIME_HANDLER, [
 AC_DEFUN(TEA_BUGGY_STRTOD, [
     AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0)
     if test "$tcl_strtod" = 1; then
-       AC_MSG_CHECKING([for Solaris2.4/Tru64 strtod bugs])
-       AC_CACHE_VAL(tcl_cv_strtod_buggy,[
-       AC_TRY_RUN([
-           extern double strtod();
-           int main()
-           {
-               char *string = "NaN", *spaceString = " ";
-               char *term;
-               double value;
-               value = strtod(string, &term);
-               if ((term != string) && (term[-1] == 0)) {
-                   exit(1);
-               }
-               value = strtod(spaceString, &term);
-               if (term == (spaceString+1)) {
-                   exit(1);
-               }
-               exit(0);
-           }], tcl_cv_strtod_buggy=1, tcl_cv_strtod_buggy=0, tcl_cv_strtod_buggy=0)])
-       if test "$tcl_cv_strtod_buggy" = 1; then
-           AC_MSG_RESULT([ok])
-       else
-           AC_MSG_RESULT([buggy])
-           #LIBOBJS="$LIBOBJS fixstrtod.o"
+       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?])
@@ -2495,6 +2570,7 @@ AC_DEFUN(TEA_TCL_LINK_LIBS, [
 #      Might define the following vars:
 #              _ISOC99_SOURCE
 #              _LARGEFILE64_SOURCE
+#              _LARGEFILE_SOURCE64
 #
 #--------------------------------------------------------------------
 
@@ -2518,6 +2594,8 @@ AC_DEFUN(TEA_TCL_EARLY_FLAGS,[
        [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
@@ -2571,35 +2649,38 @@ AC_DEFUN(TEA_TCL_64BIT_FLAGS, [
        AC_MSG_RESULT([${tcl_cv_type_64bit}])
 
        # Now check for auxiliary declarations
-       AC_MSG_CHECKING([for struct dirent64])
-       AC_CACHE_VAL(tcl_cv_struct_dirent64,[
+       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_MSG_RESULT([${tcl_cv_struct_dirent64}])
 
-       AC_MSG_CHECKING([for struct stat64])
-       AC_CACHE_VAL(tcl_cv_struct_stat64,[
+       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_MSG_RESULT([${tcl_cv_struct_stat64}])
 
+       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)])
-       if test "x${tcl_cv_type_off64_t}" = "xyes" ; then
+       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
-       AC_MSG_RESULT([${tcl_cv_type_off64_t}])
     fi
 ])
 
@@ -2623,6 +2704,7 @@ AC_DEFUN(TEA_TCL_64BIT_FLAGS, [
 #              CYGPATH
 #              EXEEXT
 #      Defines only:
+#              TEA_VERSION
 #              TEA_INITED
 #              TEA_PLATFORM (windows or unix)
 #
@@ -2639,7 +2721,7 @@ AC_DEFUN(TEA_TCL_64BIT_FLAGS, [
 AC_DEFUN(TEA_INIT, [
     # TEA extensions pass this us the version of TEA they think they
     # are compatible with.
-    TEA_VERSION="3.2"
+    TEA_VERSION="3.5"
 
     AC_MSG_CHECKING([for correct TEA configuration])
     if test x"${PACKAGE_NAME}" = x ; then
@@ -3095,7 +3177,7 @@ AC_DEFUN(TEA_MAKE_LIB, [
        else
            eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
        fi
-       # Some packages build there own stubs libraries
+       # Some packages build their own stubs libraries
        eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
        # These aren't needed on Windows (either MSVC or gcc)
        RANLIB=:
@@ -3112,7 +3194,7 @@ AC_DEFUN(TEA_MAKE_LIB, [
        else
            eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
        fi
-       # Some packages build there own stubs libraries
+       # Some packages build their own stubs libraries
        eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
     fi
 
@@ -3229,30 +3311,33 @@ AC_DEFUN(TEA_LIB_SPEC, [
 AC_DEFUN(TEA_PRIVATE_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}\"
+    TCL_GENERIC_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/generic\"
+    TCL_UNIX_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/unix\"
+    TCL_WIN_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/win\"
+    TCL_BMAP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/bitmaps\"
+    TCL_TOOL_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/tools\"
+    TCL_COMPAT_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/compat\"
+
     if test "${TEA_PLATFORM}" = "windows"; then
-       TCL_TOP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}`\"
-       TCL_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/generic`\"
-       TCL_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/unix`\"
-       TCL_WIN_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/win`\"
-       TCL_BMAP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/bitmaps`\"
-       TCL_TOOL_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/tools`\"
-       TCL_COMPAT_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/compat`\"
        TCL_PLATFORM_DIR_NATIVE=${TCL_WIN_DIR_NATIVE}
-
-       TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
     else
-       TCL_TOP_DIR_NATIVE='$(TCL_SRC_DIR)'
-       TCL_GENERIC_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/generic'
-       TCL_UNIX_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/unix'
-       TCL_WIN_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/win'
-       TCL_BMAP_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/bitmaps'
-       TCL_TOOL_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/tools'
-       TCL_COMPAT_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/compat'
        TCL_PLATFORM_DIR_NATIVE=${TCL_UNIX_DIR_NATIVE}
-
-       # substitute these in "relaxed" so that TCL_INCLUDES still works
-       # without requiring the other vars to be defined in the Makefile
-       eval "TCL_INCLUDES=\"-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}\""
+    fi
+    # 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
     fi
 
     AC_SUBST(TCL_TOP_DIR_NATIVE)
@@ -3302,17 +3387,36 @@ AC_DEFUN(TEA_PUBLIC_TCL_HEADERS, [
                AC_MSG_ERROR([${with_tclinclude} directory does not contain tcl.h])
            fi
        else
+           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,
-           # directory of tclConfig.sh, and Tcl source directory.
-           # Looking in the source dir is not ideal, but OK.
+           # relative to directory of tclConfig.sh.
 
            eval "temp_includedir=${includedir}"
-           list="`ls -d ${temp_includedir}      2>/dev/null` \
+           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` \
-               `ls -d ${TCL_SRC_DIR}/generic    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
@@ -3360,25 +3464,36 @@ AC_DEFUN(TEA_PUBLIC_TCL_HEADERS, [
 AC_DEFUN(TEA_PRIVATE_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}\"
+    TK_UNIX_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/unix\"
+    TK_WIN_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/win\"
+    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_TOP_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}`\"
-       TK_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/unix`\"
-       TK_WIN_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/win`\"
-       TK_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/generic`\"
-       TK_XLIB_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/xlib`\"
        TK_PLATFORM_DIR_NATIVE=${TK_WIN_DIR_NATIVE}
-
-       TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE} -I${TK_XLIB_DIR_NATIVE}"
     else
-       TK_TOP_DIR_NATIVE='${TK_SRC_DIR}'
-       TK_GENERIC_DIR_NATIVE='${TK_TOP_DIR_NATIVE}/generic'
-       TK_UNIX_DIR_NATIVE='${TK_TOP_DIR_NATIVE}/unix'
-       TK_WIN_DIR_NATIVE='${TK_TOP_DIR_NATIVE}/win'
        TK_PLATFORM_DIR_NATIVE=${TK_UNIX_DIR_NATIVE}
-
-       # substitute these in "relaxed" so that TK_INCLUDES still works
-       # without requiring the other vars to be defined in the Makefile
-       eval "TK_INCLUDES=\"-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}\""
+    fi
+    # 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}"
+    if test "${TEA_WINDOWINGSYSTEM}" = "win32" \
+       -o "${TEA_WINDOWINGSYSTEM}" = "aqua"; 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}"; fi
+               ;;
+       esac
     fi
 
     AC_SUBST(TK_TOP_DIR_NATIVE)
@@ -3427,16 +3542,33 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
                AC_MSG_ERROR([${with_tkinclude} directory does not contain tk.h])
            fi
        else
-           # Check order: pkg --prefix location, Tcl's --prefix location,
-           # directory of tclConfig.sh, and Tcl source directory.
-           # Looking in the source dir is not ideal, but OK.
+           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="`ls -d ${temp_includedir}      2>/dev/null` \
+           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` \
-               `ls -d ${TK_SRC_DIR}/generic     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"
            fi
@@ -3465,8 +3597,9 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
 
     AC_SUBST(TK_INCLUDES)
 
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # On Windows, we need the X compat headers
+    if test "${TEA_WINDOWINGSYSTEM}" = "win32" \
+       -o "${TEA_WINDOWINGSYSTEM}" = "aqua"; 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`"
@@ -3479,10 +3612,14 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
 
 #------------------------------------------------------------------------
 # TEA_PROG_TCLSH
-#      Locate a tclsh shell in the following directories:
-#              ${TCL_BIN_DIR}          ${TCL_BIN_DIR}/../bin
-#              ${exec_prefix}/bin      ${prefix}/bin
-#              ${PATH}
+#      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
@@ -3493,48 +3630,46 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
 #------------------------------------------------------------------------
 
 AC_DEFUN(TEA_PROG_TCLSH, [
-    # Allow the user to provide this setting in the env
-    if test "x${TCLSH_PROG}" = "x" ; then
-       AC_MSG_CHECKING([for tclsh])
-
-       AC_CACHE_VAL(ac_cv_path_tclsh, [
-       search_path=`echo ${PATH} | sed -e 's/:/ /g'`
-       if test "${TEA_PLATFORM}" != "windows" -o \
-               \( "$do64bit_ok" = "no" -a "$doWince" = "no" \) ; then
-           # Do not allow target tclsh in known cross-compile builds,
-           # as we need one we can run on this system
-           search_path="${TCL_BIN_DIR} ${TCL_BIN_DIR}/../bin ${exec_prefix}/bin ${prefix}/bin ${search_path}"
-       fi
-       for dir in $search_path ; do
-           for j in `ls -r $dir/tclsh[[8-9]]*${EXEEXT} 2> /dev/null` \
-                   `ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do
-               if test x"$ac_cv_path_tclsh" = x ; then
-                   if test -f "$j" ; then
-                       ac_cv_path_tclsh=$j
-                       break
-                   fi
-               fi
-           done
-       done
-       ])
-
-       if test -f "$ac_cv_path_tclsh" ; then
-           TCLSH_PROG=$ac_cv_path_tclsh
-           AC_MSG_RESULT([$TCLSH_PROG])
-       else
-           AC_MSG_ERROR([No tclsh found in PATH: $search_path])
-       fi
-    fi
+    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
-#      Locate a wish shell in the following directories:
-#              ${TK_BIN_DIR}           ${TK_BIN_DIR}/../bin
-#              ${TCL_BIN_DIR}          ${TCL_BIN_DIR}/../bin
-#              ${exec_prefix}/bin      ${prefix}/bin
-#              ${PATH}
+#      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
@@ -3545,38 +3680,33 @@ AC_DEFUN(TEA_PROG_TCLSH, [
 #------------------------------------------------------------------------
 
 AC_DEFUN(TEA_PROG_WISH, [
-    # Allow the user to provide this setting in the env
-    if test "x${WISH_PROG}" = "x" ; then
-       AC_MSG_CHECKING([for wish])
-
-       AC_CACHE_VAL(ac_cv_path_wish, [
-       search_path=`echo ${PATH} | sed -e 's/:/ /g'`
-       if test "${TEA_PLATFORM}" != "windows" -o \
-               \( "$do64bit_ok" = "no" -a "$doWince" = "no" \) ; then
-           # Do not allow target wish in known cross-compile builds,
-           # as we need one we can run on this system
-           search_path="${TK_BIN_DIR} ${TK_BIN_DIR}/../bin ${TCL_BIN_DIR} ${TCL_BIN_DIR}/../bin ${exec_prefix}/bin ${prefix}/bin ${search_path}"
-       fi
-       for dir in $search_path ; do
-           for j in `ls -r $dir/wish[[8-9]]*${EXEEXT} 2> /dev/null` \
-                   `ls -r $dir/wish*${EXEEXT} 2> /dev/null` ; do
-               if test x"$ac_cv_path_wish" = x ; then
-                   if test -f "$j" ; then
-                       ac_cv_path_wish=$j
-                       break
-                   fi
-               fi
-           done
-       done
-       ])
-
-       if test -f "$ac_cv_path_wish" ; then
-       WISH_PROG=$ac_cv_path_wish
-           AC_MSG_RESULT([$WISH_PROG])
-       else
-           AC_MSG_ERROR([No wish found in PATH: $search_path])
-       fi
-    fi
+    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)
 ])
 
@@ -3667,7 +3797,8 @@ AC_DEFUN(TEA_PATH_CONFIG, [
 
            # check in a few common install locations
            if test x"${ac_cv_c_$1config}" = x ; then
-               for i in `ls -d ${exec_prefix}/lib 2>/dev/null` \
+               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` \
@@ -3683,7 +3814,7 @@ AC_DEFUN(TEA_PATH_CONFIG, [
 
        if test x"${ac_cv_c_$1config}" = x ; then
            $1_BIN_DIR="# no $1 configs found"
-           AC_MSG_WARN("Cannot find $1 configuration definitions")
+           AC_MSG_WARN([Cannot find $1 configuration definitions])
            exit 0
        else
            no_$1=
@@ -3811,45 +3942,13 @@ AC_DEFUN(TEA_PATH_CELIB, [
        else
            no_celib=
            CELIB_DIR=${ac_cv_c_celibconfig}
+           CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'`
            AC_MSG_RESULT([found $CELIB_DIR])
-           TEA_PATH_NOSPACE(CELIB_DIR, ${ac_cv_c_celibconfig})
        fi
     fi
 ])
 
-#------------------------------------------------------------------------
-# TEA_PATH_NOSPACE
-#      Ensure that the given path has no spaces.  This is necessary for
-#      CC (and consitutuent vars that build it up) to work in the
-#      tortured autoconf environment.  Currently only for Windows use.
-#
-# Arguments
-#      VAR  - name of the variable to set
-#      PATH - path to ensure no spaces in
-#
-# Results
-#      Sets $VAR to short path of $PATH if it can be found.
-#------------------------------------------------------------------------
-
-AC_DEFUN([TEA_PATH_NOSPACE], [
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # we need TCLSH_PROG defined to get Windows short pathnames
-       AC_REQUIRE([TEA_PROG_TCLSH])
 
-       AC_MSG_CHECKING([short pathname for $1 ($2)])
-
-       shortpath=
-       case "$2" in
-           *\ *)
-               # Only do this if we need to.
-               shortpath=`echo "puts [[file attributes {$2} -shortname]] ; exit" | ${TCLSH_PROG} 2>/dev/null`
-               ;;
-       esac
-       if test "x${shortpath}" = "x" ; then
-           AC_MSG_RESULT([not changed])
-       else
-           $1=$shortpath
-           AC_MSG_RESULT([${$1}])
-       fi
-    fi
-])
+# Local Variables:
+# mode: autoconf
+# End: