This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-rivet.git


The following commit(s) were added to refs/heads/master by this push:
     new 3da8430  Tcl channel version 5 support, tcl.m4 latest version, 
modernize old style function declaration in rivetList.c
3da8430 is described below

commit 3da84307e760e06bdca565dc41b3be4b8f285226
Author: Massimo Manghi <[email protected]>
AuthorDate: Sun Jan 4 14:57:04 2026 +0100

    Tcl channel version 5 support, tcl.m4 latest version, modernize old style 
function declaration in rivetList.c
---
 ChangeLog                       |   8 +
 doc/rivet.xml                   |   4 +-
 src/librivet/rivetList.c        |   6 +-
 src/mod_rivet_ng/rivetChannel.c |  21 +-
 src/mod_rivet_ng/rivet_types.h  |  10 +-
 tclconfig/install-sh            |   0
 tclconfig/tcl.m4                | 465 +++++++++++++++++++++++-----------------
 7 files changed, 302 insertions(+), 212 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6e9e89b..6903122 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2026-01-04 Massimo Manghi <[email protected]>
+    * src/librivet/rivetList.c: modernize old style function declaration as 
+    recent compiler complain about it and it doesn't mix with code profilers
+    * src/mod_rivet_ng/rivetChannel.c: support for channel version 5
+    * src/mod_rivet_ng/rivet_types.h: move here Tcl_Size compatibility 
definition
+    as actual typedef definition
+    * tclconfig/tcl.m4: update tcl.m4 to latest version
+
 2025-11-20 Massimo Manghi <[email protected]>
        * rivet/packages/dio/formatters.tcl: The Sqlite3 field formatter class
        must be named Sqlite3 likewise
diff --git a/doc/rivet.xml b/doc/rivet.xml
index a1c4ebc..7197894 100644
--- a/doc/rivet.xml
+++ b/doc/rivet.xml
@@ -35,8 +35,8 @@
     <!ENTITY asciiglyphs.xml       SYSTEM "xml/asciiglyphs.xml" >
     <!ENTITY lazybridge.xml        SYSTEM "xml/lazybridge.xml" >
     <!ENTITY formbroker.xml        SYSTEM "xml/formbroker.xml" >
-    <!ENTITY version               "3.2" >
-    <!ENTITY fullversion           "3.2.8" >
+    <!ENTITY version               "3.3" >
+    <!ENTITY fullversion           "3.3.0" >
     <!ENTITY version2-series       "2.0,2.1,2.2,2.3,2.4" >
     <!ENTITY version2-generic      "2.x" >
     <!ENTITY version3-generic      "3.x" >
diff --git a/src/librivet/rivetList.c b/src/librivet/rivetList.c
index b24d055..14457a9 100644
--- a/src/librivet/rivetList.c
+++ b/src/librivet/rivetList.c
@@ -207,11 +207,7 @@ TCL_CMD_HEADER(Rivet_LremoveObjCmd)
 }
 
 static void
-Rivet_ListObjAppendString (interp, targetList, string, length)
-    Tcl_Interp *interp;
-    Tcl_Obj    *targetList;
-    char       *string;
-    int         length;
+Rivet_ListObjAppendString (Tcl_Interp* interp,Tcl_Obj* targetList,char* 
string,int length)
 {
     Tcl_Obj    *elementObj;
 
diff --git a/src/mod_rivet_ng/rivetChannel.c b/src/mod_rivet_ng/rivetChannel.c
index a1e80b8..363e770 100644
--- a/src/mod_rivet_ng/rivetChannel.c
+++ b/src/mod_rivet_ng/rivetChannel.c
@@ -38,6 +38,16 @@
 #include "mod_rivet.h"
 #include "TclWeb.h"
 
+
+/* In case of Tcl8.6 build we assign the sentinel value to
+   the field closeProc, which redirects the call to close2Proc */
+
+#if TCL_MAJOR_VERSION >= 9
+#  define TCL_CLOSEPROC  NULL
+#else
+#  define TCL_CLOSEPROC  TCL_CLOSE2PROC
+#endif
+
 static int
 RivetChan_InputProc(ClientData instancedata, char *buf, int toRead, int 
*errorCodePtr)
 {
@@ -65,22 +75,15 @@ RivetChan_OutputProc(ClientData instancedata, const char 
*buf, int toWrite, int
     return toWrite;
 }
 
-static int
-RivetChan_CloseProc(ClientData instancedata, Tcl_Interp *interp)
-{
-    return 0;
-}
-
 static int
 RivetChan_Close2Proc(ClientData instancedata, Tcl_Interp *interp, int flags)
 {
     return 0;
 }
 
-
 static int
 RivetChan_SetOptionProc(ClientData instancedata,Tcl_Interp *interp,
-             const char *optionname,const char *value)
+                           const char *optionname,const char *value)
 {
     return TCL_OK;
 }
@@ -101,7 +104,7 @@ RivetChan_GetHandleProc(ClientData instancedata, int 
direction, ClientData *hand
 Tcl_ChannelType RivetChan = {
     "apache_channel",           /* typeName */
     TCL_CHANNEL_VERSION_5,      /* channel type version */
-    RivetChan_CloseProc,        /* close proc */
+    TCL_CLOSEPROC,              /* close proc */
     RivetChan_InputProc,        /* input proc */
     RivetChan_OutputProc,       /* output proc */
     NULL,                       /* seek proc - can be null */
diff --git a/src/mod_rivet_ng/rivet_types.h b/src/mod_rivet_ng/rivet_types.h
index 6c84aab..52d090d 100644
--- a/src/mod_rivet_ng/rivet_types.h
+++ b/src/mod_rivet_ng/rivet_types.h
@@ -27,11 +27,15 @@
 #include <httpd.h>
 #include <tcl.h>
 
-#if TCL_MAJOR_VERSION == 8
-#define Tcl_Size int
+#ifndef TCL_SIZE_MAX
+# define Tcl_GetSizeIntFromObj Tcl_GetIntFromObj
+# define TCL_SIZE_MAX      INT_MAX
+# ifndef Tcl_Size
+    typedef int Tcl_Size;
+# endif
+# define TCL_SIZE_MODIFIER ""
 #endif
 
-
 /* Definition suggested in
  *
  * 
https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Particular-Headers.html
diff --git a/tclconfig/install-sh b/tclconfig/install-sh
old mode 100755
new mode 100644
diff --git a/tclconfig/tcl.m4 b/tclconfig/tcl.m4
index 0514ee0..1b7fb44 100644
--- a/tclconfig/tcl.m4
+++ b/tclconfig/tcl.m4
@@ -53,6 +53,10 @@ AC_DEFUN([TEA_PATH_TCLCONFIG], [
            AS_HELP_STRING([--with-tcl],
                [directory containing tcl configuration (tclConfig.sh)]),
            [with_tclconfig="${withval}"])
+       AC_ARG_WITH(tcl8,
+           AS_HELP_STRING([--with-tcl8],
+               [Compile for Tcl8 in Tcl9 environment]),
+           [with_tcl8="${withval}"])
        AC_MSG_CHECKING([for Tcl configuration])
        AC_CACHE_VAL(ac_cv_c_tclconfig,[
 
@@ -138,10 +142,16 @@ AC_DEFUN([TEA_PATH_TCLCONFIG], [
                        `ls -d /usr/pkg/lib 2>/dev/null` \
                        `ls -d /usr/lib 2>/dev/null` \
                        `ls -d /usr/lib64 2>/dev/null` \
+                       `ls -d /usr/lib/tcl9.1 2>/dev/null` \
+                       `ls -d /usr/lib/tcl9.0 2>/dev/null` \
                        `ls -d /usr/lib/tcl8.6 2>/dev/null` \
                        `ls -d /usr/lib/tcl8.5 2>/dev/null` \
+                       `ls -d /usr/local/lib/tcl9.1 2>/dev/null` \
+                       `ls -d /usr/local/lib/tcl9.0 2>/dev/null` \
                        `ls -d /usr/local/lib/tcl8.6 2>/dev/null` \
                        `ls -d /usr/local/lib/tcl8.5 2>/dev/null` \
+                       `ls -d /usr/local/lib/tcl/tcl9.1 2>/dev/null` \
+                       `ls -d /usr/local/lib/tcl/tcl9.0 2>/dev/null` \
                        `ls -d /usr/local/lib/tcl/tcl8.6 2>/dev/null` \
                        `ls -d /usr/local/lib/tcl/tcl8.5 2>/dev/null` \
                        ; do
@@ -282,12 +292,18 @@ AC_DEFUN([TEA_PATH_TKCONFIG], [
                        `ls -d /usr/local/lib 2>/dev/null` \
                        `ls -d /usr/contrib/lib 2>/dev/null` \
                        `ls -d /usr/pkg/lib 2>/dev/null` \
+                       `ls -d /usr/lib/tk9.1 2>/dev/null` \
+                       `ls -d /usr/lib/tk9.0 2>/dev/null` \
                        `ls -d /usr/lib/tk8.6 2>/dev/null` \
                        `ls -d /usr/lib/tk8.5 2>/dev/null` \
                        `ls -d /usr/lib 2>/dev/null` \
                        `ls -d /usr/lib64 2>/dev/null` \
+                       `ls -d /usr/local/lib/tk9.1 2>/dev/null` \
+                       `ls -d /usr/local/lib/tk9.0 2>/dev/null` \
                        `ls -d /usr/local/lib/tk8.6 2>/dev/null` \
                        `ls -d /usr/local/lib/tk8.5 2>/dev/null` \
+                       `ls -d /usr/local/lib/tcl/tk9.1 2>/dev/null` \
+                       `ls -d /usr/local/lib/tcl/tk9.0 2>/dev/null` \
                        `ls -d /usr/local/lib/tcl/tk8.6 2>/dev/null` \
                        `ls -d /usr/local/lib/tcl/tk8.5 2>/dev/null` \
                        ; do
@@ -366,10 +382,10 @@ AC_DEFUN([TEA_LOAD_TCLCONFIG], [
     AC_MSG_CHECKING([for existence of ${TCL_BIN_DIR}/tclConfig.sh])
 
     if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then
-        AC_MSG_RESULT([loading])
+       AC_MSG_RESULT([loading])
        . "${TCL_BIN_DIR}/tclConfig.sh"
     else
-        AC_MSG_RESULT([could not find ${TCL_BIN_DIR}/tclConfig.sh])
+       AC_MSG_RESULT([could not find ${TCL_BIN_DIR}/tclConfig.sh])
     fi
 
     # If the TCL_BIN_DIR is the build directory (not the install directory),
@@ -379,9 +395,9 @@ AC_DEFUN([TEA_LOAD_TCLCONFIG], [
     # instead of TCL_BUILD_LIB_SPEC since it will work with both an
     # installed and uninstalled version of Tcl.
     if test -f "${TCL_BIN_DIR}/Makefile" ; then
-        TCL_LIB_SPEC="${TCL_BUILD_LIB_SPEC}"
-        TCL_STUB_LIB_SPEC="${TCL_BUILD_STUB_LIB_SPEC}"
-        TCL_STUB_LIB_PATH="${TCL_BUILD_STUB_LIB_PATH}"
+       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
@@ -437,7 +453,10 @@ AC_DEFUN([TEA_LOAD_TCLCONFIG], [
 
     # The BUILD_$pkg is to define the correct extern storage class
     # handling when making this package
-    AC_DEFINE_UNQUOTED(BUILD_${PACKAGE_NAME}, [],
+    # To be able to sefely use the package name in a #define, it must not
+    # contain anything other than alphanumeric characters and underscores
+    SAFE_PKG_NAME=patsubst(AC_PACKAGE_NAME, [[^A-Za-z0-9_]], [_])
+    AC_DEFINE_UNQUOTED(BUILD_${SAFE_PKG_NAME}, [],
            [Building extension source?])
     # Do this here as we have fully defined TEA_PLATFORM now
     if test "${TEA_PLATFORM}" = "windows" ; then
@@ -474,10 +493,10 @@ AC_DEFUN([TEA_LOAD_TKCONFIG], [
     AC_MSG_CHECKING([for existence of ${TK_BIN_DIR}/tkConfig.sh])
 
     if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then
-        AC_MSG_RESULT([loading])
+       AC_MSG_RESULT([loading])
        . "${TK_BIN_DIR}/tkConfig.sh"
     else
-        AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh])
+       AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh])
     fi
 
     # If the TK_BIN_DIR is the build directory (not the install directory),
@@ -487,9 +506,9 @@ AC_DEFUN([TEA_LOAD_TKCONFIG], [
     # instead of TK_BUILD_LIB_SPEC since it will work with both an
     # installed and uninstalled version of Tcl.
     if test -f "${TK_BIN_DIR}/Makefile" ; then
-        TK_LIB_SPEC="${TK_BUILD_LIB_SPEC}"
-        TK_STUB_LIB_SPEC="${TK_BUILD_STUB_LIB_SPEC}"
-        TK_STUB_LIB_PATH="${TK_BUILD_STUB_LIB_PATH}"
+       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
@@ -567,37 +586,37 @@ AC_DEFUN([TEA_LOAD_TKCONFIG], [
 AC_DEFUN([TEA_PROG_TCLSH], [
     AC_MSG_CHECKING([for tclsh])
     if test -f "${TCL_BIN_DIR}/Makefile" ; then
-        # tclConfig.sh is in Tcl build directory
-        if test "${TEA_PLATFORM}" = "windows"; then
-          if test -f 
"${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${EXEEXT}" ; then
-            
TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${EXEEXT}"
-          elif test -f 
"${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}s${EXEEXT}" ; then
-            
TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}s${EXEEXT}"
-          elif test -f 
"${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}t${EXEEXT}" ; then
-            
TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}t${EXEEXT}"
-          elif test -f 
"${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}st${EXEEXT}" ; then
-            
TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}st${EXEEXT}"
-          fi
-        else
-            TCLSH_PROG="${TCL_BIN_DIR}/tclsh"
-        fi
+       # tclConfig.sh is in Tcl build directory
+       if test "${TEA_PLATFORM}" = "windows"; then
+         if test -f 
"${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${EXEEXT}" ; then
+           
TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${EXEEXT}"
+         elif test -f 
"${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}s${EXEEXT}" ; then
+           
TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}s${EXEEXT}"
+         elif test -f 
"${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}t${EXEEXT}" ; then
+           
TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}t${EXEEXT}"
+         elif test -f 
"${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}st${EXEEXT}" ; then
+           
TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}st${EXEEXT}"
+         fi
+       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}${EXEEXT}"
-        else
-            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}"
-        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}"
+       # tclConfig.sh is in install location
+       if test "${TEA_PLATFORM}" = "windows"; then
+           TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${EXEEXT}"
+       else
+           TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}"
+       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)
@@ -625,37 +644,37 @@ AC_DEFUN([TEA_PROG_TCLSH], [
 AC_DEFUN([TEA_PROG_WISH], [
     AC_MSG_CHECKING([for wish])
     if test -f "${TK_BIN_DIR}/Makefile" ; then
-        # tkConfig.sh is in Tk build directory
-        if test "${TEA_PLATFORM}" = "windows"; then
-          if test -f 
"${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${EXEEXT}" ; then
-            
WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${EXEEXT}"
-          elif test -f 
"${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}s${EXEEXT}" ; then
-            
WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}$s{EXEEXT}"
-          elif test -f 
"${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}t${EXEEXT}" ; then
-            
WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}t${EXEEXT}"
-          elif test -f 
"${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}st${EXEEXT}" ; then
-            
WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}st${EXEEXT}"
-          fi
-        else
-            WISH_PROG="${TK_BIN_DIR}/wish"
-        fi
+       # tkConfig.sh is in Tk build directory
+       if test "${TEA_PLATFORM}" = "windows"; then
+         if test -f 
"${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${EXEEXT}" ; then
+           
WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${EXEEXT}"
+         elif test -f 
"${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}s${EXEEXT}" ; then
+           
WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}$s{EXEEXT}"
+         elif test -f 
"${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}t${EXEEXT}" ; then
+           
WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}t${EXEEXT}"
+         elif test -f 
"${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}st${EXEEXT}" ; then
+           
WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}st${EXEEXT}"
+         fi
+       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}${EXEEXT}"
-        else
-            WISH_PROG="wish${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}"
-        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}"
+       # tkConfig.sh is in install location
+       if test "${TEA_PLATFORM}" = "windows"; then
+           WISH_PROG="wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${EXEEXT}"
+       else
+           WISH_PROG="wish${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}"
+       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)
@@ -717,22 +736,22 @@ AC_DEFUN([TEA_ENABLE_SHARED], [
     if test "$shared_ok" = "yes" ; then
        AC_MSG_RESULT([shared])
        SHARED_BUILD=1
-        STUBS_BUILD=1
+       STUBS_BUILD=1
     else
        AC_MSG_RESULT([static])
        SHARED_BUILD=0
        AC_DEFINE(STATIC_BUILD, 1, [This a static build])
-        if test "$stubs_ok" = "yes" ; then
-          STUBS_BUILD=1
-        else
-          STUBS_BUILD=0
-        fi
+       if test "$stubs_ok" = "yes" ; then
+         STUBS_BUILD=1
+       else
+         STUBS_BUILD=0
+       fi
     fi
     if test "${STUBS_BUILD}" = "1" ; then
       AC_DEFINE(USE_TCL_STUBS, 1, [Use Tcl stubs])
       AC_DEFINE(USE_TCLOO_STUBS, 1, [Use TclOO stubs])
       if test "${TEA_WINDOWINGSYSTEM}" != ""; then
-        AC_DEFINE(USE_TK_STUBS, 1, [Use Tk stubs])
+       AC_DEFINE(USE_TK_STUBS, 1, [Use Tk stubs])
       fi
     fi
 
@@ -1167,28 +1186,32 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
                    amd64|x64|yes)
                        MACHINE="AMD64" ; # default to AMD64 64-bit build
                        ;;
+                   arm64|aarch64)
+                       MACHINE="ARM64"
+                       ;;
                    ia64)
                        MACHINE="IA64"
                        ;;
                esac
+               do64bit_ok=yes
            fi
 
            if test "$GCC" != "yes" ; then
-               if test "${SHARED_BUILD}" = "0" ; then
+               if test "${SHARED_BUILD}" = "0" ; then
                    runtime=-MT
-               else
+               else
                    runtime=-MD
-               fi
-               case "x`echo \${VisualStudioVersion}`" in
-                   x1[[4-9]]*)
-                       lflags="${lflags} -nodefaultlib:libucrt.lib"
-                       TEA_ADD_LIBS([ucrt.lib])
-                   ;;
-                   *)
-                   ;;
-               esac
-
-                if test "$do64bit" != "no" ; then
+               fi
+               case "x`echo \${VisualStudioVersion}`" in
+                   x1[[4-9]]*)
+                       lflags="${lflags} -nodefaultlib:ucrt.lib"
+                       TEA_ADD_LIBS([ucrt.lib])
+                   ;;
+                   *)
+                   ;;
+               esac
+
+               if test "$do64bit" != "no" ; then
                    CC="cl.exe"
                    RC="rc.exe"
                    lflags="${lflags} -nologo -MACHINE:${MACHINE} "
@@ -1236,6 +1259,13 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
                                RANLIB="x86_64-w64-mingw32-ranlib"
                                RC="x86_64-w64-mingw32-windres"
                            ;;
+                           arm64|aarch64)
+                               CC="aarch64-w64-mingw32-clang"
+                               LD="aarch64-w64-mingw32-ld"
+                               AR="aarch64-w64-mingw32-ar"
+                               RANLIB="aarch64-w64-mingw32-ranlib"
+                               RC="aarch64-w64-mingw32-windres"
+                           ;;
                            *)
                                CC="i686-w64-mingw32-${CC}"
                                LD="i686-w64-mingw32-ld"
@@ -1267,7 +1297,7 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
            SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll'
 
            TCL_LIB_VERSIONS_OK=nodots
-           ;;
+           ;;
        AIX-*)
            AS_IF([test "$GCC" != "yes"], [
                # AIX requires the _r compiler when gcc isn't being used
@@ -1277,7 +1307,7 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
                        ;;
                    *)
                        # Make sure only first arg gets _r
-                       CC=`echo "$CC" | sed -e 's/^\([[^ ]]*\)/\1_r/'`
+                       CC=`echo "$CC" | sed -e 's/^\([[^ ]]*\)/\1_r/'`
                        ;;
                esac
                AC_MSG_RESULT([Using $CC for compiling with threads])
@@ -1350,11 +1380,15 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
            CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
-       CYGWIN_*)
+       CYGWIN_*|MINGW32_*|MINGW64_*|MSYS_*)
            SHLIB_CFLAGS=""
            SHLIB_LD='${CC} -shared'
            SHLIB_SUFFIX=".dll"
-           SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$[@].a"
+           if test "${TEA_PLATFORM}" = "unix" -a  "${TCL_MAJOR_VERSION}" -gt 8 
-a x"${with_tcl8}" = x; then
+               SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$(patsubst 
cyg%.dll,lib%.dll,\$[@]).a"
+           else
+               SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$[@].a"
+           fi
            EXEEXT=".exe"
            do64bit_ok=yes
            CC_SEARCH_FLAGS=""
@@ -1480,14 +1514,14 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
            # Check to enable 64-bit flags for compiler/linker
 
            AS_IF([test "$do64bit" = yes], [
-               AS_IF([test "$GCC" = yes], [
-                   AC_MSG_WARN([64bit mode not supported by gcc])
-               ], [
-                   do64bit_ok=yes
-                   SHLIB_LD="ld -64 -shared -rdata_shared"
-                   CFLAGS="$CFLAGS -64"
-                   LDFLAGS_ARCH="-64"
-               ])
+               AS_IF([test "$GCC" = yes], [
+                   AC_MSG_WARN([64bit mode not supported by gcc])
+               ], [
+                   do64bit_ok=yes
+                   SHLIB_LD="ld -64 -shared -rdata_shared"
+                   CFLAGS="$CFLAGS -64"
+                   LDFLAGS_ARCH="-64"
+               ])
            ])
            ;;
        Linux*|GNU*|NetBSD-Debian|DragonFly-*|FreeBSD-*)
@@ -1509,7 +1543,7 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
                    CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
                    LDFLAGS="$LDFLAGS $PTHREAD_LIBS"])
            ;;
-            esac
+           esac
 
            AS_IF([test $doRpath = yes], [
                CC_SEARCH_FLAGS='"-Wl,-rpath,${LIB_RUNTIME_DIR}"'])
@@ -1635,15 +1669,6 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
            ])
            # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
            SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}'
-           AC_CACHE_CHECK([if ld accepts -single_module flag], 
tcl_cv_ld_single_module, [
-               hold_ldflags=$LDFLAGS
-               LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module"
-               AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int i;]])],
-                       
[tcl_cv_ld_single_module=yes],[tcl_cv_ld_single_module=no])
-               LDFLAGS=$hold_ldflags])
-           AS_IF([test $tcl_cv_ld_single_module = yes], [
-               SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
-           ])
            # TEA specific: link shlib with current and compatibility version 
flags
            vers=`echo ${PACKAGE_VERSION} | sed -e 
's/^\([[0-9]]\{1,5\}\)\(\(\.[[0-9]]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d`
            SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} 
-compatibility_version ${vers:-0}"
@@ -1714,9 +1739,9 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
            # Digital OSF/1
            SHLIB_CFLAGS=""
            AS_IF([test "$SHARED_BUILD" = 1], [
-               SHLIB_LD='ld -shared -expect_unresolved "*"'
+               SHLIB_LD='ld -shared -expect_unresolved "*"'
            ], [
-               SHLIB_LD='ld -non_shared -expect_unresolved "*"'
+               SHLIB_LD='ld -non_shared -expect_unresolved "*"'
            ])
            SHLIB_SUFFIX=".so"
            AS_IF([test $doRpath = yes], [
@@ -1886,7 +1911,7 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
                LDFLAGS="$LDFLAGS -Wl,-Bexport"
                AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int i;]])],
                        [tcl_cv_ld_Bexport=yes],[tcl_cv_ld_Bexport=no])
-               LDFLAGS=$hold_ldflags])
+               LDFLAGS=$hold_ldflags])
            AS_IF([test $tcl_cv_ld_Bexport = yes], [
                LDFLAGS="$LDFLAGS -Wl,-Bexport"
            ])
@@ -2005,8 +2030,8 @@ dnl # preprocessing tests use only CPPFLAGS.
                SHORT s;
                LONG l;
            ]])],
-        [tcl_cv_winnt_ignore_void=yes],
-        [tcl_cv_winnt_ignore_void=no])
+       [tcl_cv_winnt_ignore_void=yes],
+       [tcl_cv_winnt_ignore_void=no])
        )
        if test "$tcl_cv_winnt_ignore_void" = "yes" ; then
            AC_DEFINE(HAVE_WINNT_IGNORE_VOID, 1,
@@ -2519,20 +2544,19 @@ AC_DEFUN([TEA_TCL_LINK_LIBS], [
 #
 #      Might define the following vars:
 #              _ISOC99_SOURCE
-#              _LARGEFILE64_SOURCE
-#              _LARGEFILE_SOURCE64
+#              _FILE_OFFSET_BITS
 #
 #--------------------------------------------------------------------
 
 AC_DEFUN([TEA_TCL_EARLY_FLAG],[
     AC_CACHE_VAL([tcl_cv_flag_]translit($1,[A-Z],[a-z]),
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$2]], [[$3]])],
-           
[tcl_cv_flag_]translit($1,[A-Z],[a-z])=no,[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[[#define
 ]$1[ 1
+           
[tcl_cv_flag_]translit($1,[A-Z],[a-z])=no,[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[[#define
 ]$1[ ]m4_default([$4],[1])[
 ]$2]], [[$3]])],
        [tcl_cv_flag_]translit($1,[A-Z],[a-z])=yes,
        [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no)]))
     if test ["x${tcl_cv_flag_]translit($1,[A-Z],[a-z])[}" = "xyes"] ; then
-       AC_DEFINE($1, 1, [Add the ]$1[ flag when building])
+       AC_DEFINE($1, m4_default([$4],[1]), [Add the ]$1[ flag when building])
        tcl_flags="$tcl_flags $1"
     fi
 ])
@@ -2542,10 +2566,10 @@ AC_DEFUN([TEA_TCL_EARLY_FLAGS],[
     tcl_flags=""
     TEA_TCL_EARLY_FLAG(_ISOC99_SOURCE,[#include <stdlib.h>],
        [char *p = (char *)strtoll; char *q = (char *)strtoull;])
-    TEA_TCL_EARLY_FLAG(_LARGEFILE64_SOURCE,[#include <sys/stat.h>],
-       [struct stat64 buf; int i = stat64("/", &buf);])
-    TEA_TCL_EARLY_FLAG(_LARGEFILE_SOURCE64,[#include <sys/stat.h>],
-       [char *p = (char *)open64;])
+    if test "${TCL_MAJOR_VERSION}" -ne 8 ; then
+       TEA_TCL_EARLY_FLAG(_FILE_OFFSET_BITS,[#include <sys/stat.h>],
+           [switch (0) { case 0: case (sizeof(off_t)==sizeof(long long)): ; 
}],64)
+    fi
     if test "x${tcl_flags}" = "x" ; then
        AC_MSG_RESULT([none])
     else
@@ -2569,6 +2593,7 @@ AC_DEFUN([TEA_TCL_EARLY_FLAGS],[
 #              HAVE_STRUCT_DIRENT64, HAVE_DIR64
 #              HAVE_STRUCT_STAT64
 #              HAVE_TYPE_OFF64_T
+#              _TIME_BITS
 #
 #--------------------------------------------------------------------
 
@@ -2582,9 +2607,9 @@ AC_DEFUN([TEA_TCL_64BIT_FLAGS], [
        # See if we could use long anyway  Note that we substitute in the
        # type that is our current guess for a 64-bit type inside this check
        # program, so it should be modified only carefully...
-        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[switch (0) {
-            case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ;
-        }]])],[tcl_cv_type_64bit=${tcl_type_64bit}],[])])
+       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[switch (0) {
+           case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ;
+       }]])],[tcl_cv_type_64bit=${tcl_type_64bit}],[])])
     if test "${tcl_cv_type_64bit}" = none ; then
        AC_DEFINE(TCL_WIDE_INT_IS_LONG, 1, [Do 'long' and 'long long' have the 
same size (64-bit)?])
        AC_MSG_RESULT([yes])
@@ -2599,6 +2624,25 @@ AC_DEFUN([TEA_TCL_64BIT_FLAGS], [
        AC_MSG_RESULT([${tcl_cv_type_64bit}])
 
        # Now check for auxiliary declarations
+    if test "${TCL_MAJOR_VERSION}" -ne 8 ; then
+           AC_CACHE_CHECK([for 64-bit time_t], tcl_cv_time_t_64,[
+               AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]],
+                   [[switch (0) {case 0: case (sizeof(time_t)==sizeof(long 
long)): ;}]])],
+                   [tcl_cv_time_t_64=yes],[tcl_cv_time_t_64=no])])
+           if test "x${tcl_cv_time_t_64}" = "xno" ; then
+               # Note that _TIME_BITS=64 requires _FILE_OFFSET_BITS=64
+               # which SC_TCL_EARLY_FLAGS has defined if necessary.
+               AC_CACHE_CHECK([if _TIME_BITS=64 enables 64-bit time_t], 
tcl_cv__time_bits,[
+                   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _TIME_BITS 64
+#include <sys/types.h>]],
+                       [[switch (0) {case 0: case (sizeof(time_t)==sizeof(long 
long)): ;}]])],
+                       [tcl_cv__time_bits=yes],[tcl_cv__time_bits=no])])
+               if test "x${tcl_cv__time_bits}" = "xyes" ; then
+                   AC_DEFINE(_TIME_BITS, 64, [_TIME_BITS=64 enables 64-bit 
time_t.])
+               fi
+           fi
+       fi
+
        AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[
            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
 #include <dirent.h>]], [[struct dirent64 p;]])],
@@ -2610,7 +2654,7 @@ AC_DEFUN([TEA_TCL_64BIT_FLAGS], [
        AC_CACHE_CHECK([for DIR64], tcl_cv_DIR64,[
            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
 #include <dirent.h>]], [[struct dirent64 *p; DIR64 d = opendir64(".");
-            p = readdir64(d); rewinddir64(d); closedir64(d);]])],
+           p = readdir64(d); rewinddir64(d); closedir64(d);]])],
                [tcl_cv_DIR64=yes], [tcl_cv_DIR64=no])])
        if test "x${tcl_cv_DIR64}" = "xyes" ; then
            AC_DEFINE(HAVE_DIR64, 1, [Is 'DIR64' in <sys/types.h>?])
@@ -2633,8 +2677,8 @@ AC_DEFUN([TEA_TCL_64BIT_FLAGS], [
        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
+               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
@@ -2737,8 +2781,6 @@ The PACKAGE_NAME variable must be defined by your TEA 
configure.ac])
     AC_SUBST(PKG_LIB_FILE)
     AC_SUBST(PKG_LIB_FILE8)
     AC_SUBST(PKG_LIB_FILE9)
-    # Substitute STUB_LIB_FILE in case package creates a stub library too.
-    AC_SUBST(PKG_STUB_LIB_FILE)
 
     # We AC_SUBST these here to ensure they are subst'ed,
     # in case the user doesn't call TEA_ADD_...
@@ -3096,11 +3138,15 @@ AC_DEFUN([TEA_SETUP_COMPILER], [
        fi
     fi
 
+    if test "${TCL_MAJOR_VERSION}" -lt 9 -a "${TCL_MINOR_VERSION}" -lt 7; then
+           AC_DEFINE(Tcl_Size, int, [Is 'Tcl_Size' in <tcl.h>?])
+       fi
+
     #--------------------------------------------------------------------
     # Common compiler flag setup
     #--------------------------------------------------------------------
 
-    AC_C_BIGENDIAN
+    AC_C_BIGENDIAN(,,,[#])
 ])
 
 #------------------------------------------------------------------------
@@ -3162,12 +3208,23 @@ print("manifest needed")
     # substituted. (@@@ Might not be necessary anymore)
     #--------------------------------------------------------------------
 
-    PACKAGE_LIB_PREFIX8="${PACKAGE_LIB_PREFIX}"
-    PACKAGE_LIB_PREFIX9="${PACKAGE_LIB_PREFIX}tcl9"
-    if test "${TCL_MAJOR_VERSION}" -gt 8 ; then
+    if test "$TEA_PLATFORM" = "unix"; then
+       PACKAGE_LIB_PREFIX8="lib"
+       if test "$EXEEXT" = ".exe" -a "$SHARED_BUILD" != "0"; then
+           PACKAGE_LIB_PREFIX9="cygtcl9"
+       else
+           PACKAGE_LIB_PREFIX9="libtcl9"
+       fi
+    else
+       PACKAGE_LIB_PREFIX8=""
+       PACKAGE_LIB_PREFIX9="tcl9"
+    fi
+    if test "${TCL_MAJOR_VERSION}" -gt 8 -a x"${with_tcl8}" = x; then
        PACKAGE_LIB_PREFIX="${PACKAGE_LIB_PREFIX9}"
     else
        PACKAGE_LIB_PREFIX="${PACKAGE_LIB_PREFIX8}"
+       AC_DEFINE(TCL_MAJOR_VERSION, 8, [Compile for Tcl8?])
+       AC_DEFINE(TK_MAJOR_VERSION, 8, [Compile for Tk8?])
     fi
     if test "${TEA_PLATFORM}" = "windows" ; then
        if test "${SHARED_BUILD}" = "1" ; then
@@ -3180,6 +3237,14 @@ print("manifest needed")
            if test "$GCC" = "yes"; then
                SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc"
            fi
+           AC_CACHE_CHECK([if the linker understands 
--disable-high-entropy-va],
+               tcl_cv_ld_high_entropy, [
+               hold_cflags=$CFLAGS; CFLAGS="$CFLAGS 
-Wl,--disable-high-entropy-va"
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], 
[[]])],[tcl_cv_ld_high_entropy=yes],[tcl_cv_ld_high_entropy=no])
+               CFLAGS=$hold_cflags])
+           if test $tcl_cv_ld_high_entropy = yes; then
+               SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--disable-high-entropy-va"
+           fi
            eval eval 
"PKG_LIB_FILE8=${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
            eval eval 
"PKG_LIB_FILE9=${PACKAGE_LIB_PREFIX9}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
            eval eval 
"PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
@@ -3192,7 +3257,11 @@ print("manifest needed")
            eval eval 
"PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
        fi
        # Some packages build their own stubs libraries
-       eval eval 
"PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+       if test "${TCL_MAJOR_VERSION}" -gt 8 -a x"${with_tcl8}" = x; then
+           eval eval 
"PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}stub.a"
+       else
+           eval eval 
"PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+       fi
        if test "$GCC" = "yes"; then
            PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE}
        fi
@@ -3206,17 +3275,21 @@ print("manifest needed")
            if test x"${TK_BIN_DIR}" != x ; then
                SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}"
            fi
-           eval eval 
"PKG_LIB_FILE8=lib${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
-           eval eval 
"PKG_LIB_FILE9=lib${PACKAGE_LIB_PREFIX9}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
-           eval eval 
"PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+           eval eval 
"PKG_LIB_FILE8=${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+           eval eval 
"PKG_LIB_FILE9=${PACKAGE_LIB_PREFIX9}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+           eval eval 
"PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
            RANLIB=:
        else
-           eval eval 
"PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
-           eval eval 
"PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX9}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
-           eval eval 
"PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+           eval eval 
"PKG_LIB_FILE8=${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+           eval eval 
"PKG_LIB_FILE9=${PACKAGE_LIB_PREFIX9}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+           eval eval 
"PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
        fi
        # Some packages build their own stubs libraries
-       eval eval 
"PKG_STUB_LIB_FILE=lib${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+       if test "${TCL_MAJOR_VERSION}" -gt 8 -a x"${with_tcl8}" = x; then
+           eval eval 
"PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}stub.a"
+       else
+           eval eval 
"PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+       fi
     fi
 
     # These are escaped so that only CFLAGS is picked up at configure time.
@@ -3230,6 +3303,8 @@ print("manifest needed")
     AC_SUBST(MAKE_SHARED_LIB)
     AC_SUBST(MAKE_STATIC_LIB)
     AC_SUBST(MAKE_STUB_LIB)
+    # Substitute STUB_LIB_FILE in case package creates a stub library too.
+    AC_SUBST(PKG_STUB_LIB_FILE)
     AC_SUBST(RANLIB_STUB)
     AC_SUBST(VC_MANIFEST_EMBED_DLL)
     AC_SUBST(VC_MANIFEST_EMBED_EXE)
@@ -3356,17 +3431,17 @@ AC_DEFUN([TEA_PRIVATE_TCL_HEADERS], [
        # 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 Tcl was built as a framework, attempt to use
+           # the framework's Headers and PrivateHeaders directories
+           case ${TCL_DEFS} in
+               *TCL_FRAMEWORK*)
                    if test -d "${TCL_BIN_DIR}/Headers" -a \
                            -d "${TCL_BIN_DIR}/PrivateHeaders"; then
                        TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" 
-I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}"
                    else
                        TCL_INCLUDES="${TCL_INCLUDES} ${TCL_INCLUDE_SPEC} `echo 
"${TCL_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`"
                    fi
-                   ;;
+                   ;;
            esac
            result="Using ${TCL_INCLUDES}"
        else
@@ -3807,10 +3882,10 @@ AC_DEFUN([TEA_LOAD_CONFIG], [
     AC_MSG_CHECKING([for existence of ${$1_BIN_DIR}/$1Config.sh])
 
     if test -f "${$1_BIN_DIR}/$1Config.sh" ; then
-        AC_MSG_RESULT([loading])
+       AC_MSG_RESULT([loading])
        . "${$1_BIN_DIR}/$1Config.sh"
     else
-        AC_MSG_RESULT([file not found])
+       AC_MSG_RESULT([file not found])
     fi
 
     #
@@ -3824,11 +3899,11 @@ AC_DEFUN([TEA_LOAD_CONFIG], [
 
     if test -f "${$1_BIN_DIR}/Makefile" ; then
        AC_MSG_WARN([Found Makefile - using build library specs for $1])
-        $1_LIB_SPEC=${$1_BUILD_LIB_SPEC}
-        $1_STUB_LIB_SPEC=${$1_BUILD_STUB_LIB_SPEC}
-        $1_STUB_LIB_PATH=${$1_BUILD_STUB_LIB_PATH}
-        $1_INCLUDE_SPEC=${$1_BUILD_INCLUDE_SPEC}
-        $1_LIBRARY_PATH=${$1_LIBRARY_PATH}
+       $1_LIB_SPEC=${$1_BUILD_LIB_SPEC}
+       $1_STUB_LIB_SPEC=${$1_BUILD_STUB_LIB_SPEC}
+       $1_STUB_LIB_PATH=${$1_BUILD_STUB_LIB_PATH}
+       $1_INCLUDE_SPEC=${$1_BUILD_INCLUDE_SPEC}
+       $1_LIBRARY_PATH=${$1_LIBRARY_PATH}
     fi
 
     AC_SUBST($1_VERSION)
@@ -3909,6 +3984,10 @@ AC_DEFUN([TEA_EXPORT_CONFIG], [
        eval $1_LIB_FLAG="-l$1`echo ${PACKAGE_VERSION} | tr -d .`"
        eval $1_STUB_LIB_FLAG="-l$1stub`echo ${PACKAGE_VERSION} | tr -d .`"
     fi
+    if test "${TCL_MAJOR_VERSION}" -gt 8 -a x"${with_tcl8}" = x; then
+       eval $1_STUB_LIB_FLAG="-l$1stub"
+    fi
+
     $1_BUILD_LIB_SPEC="-L`$CYGPATH $(pwd)` ${$1_LIB_FLAG}"
     $1_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` ${$1_LIB_FLAG}"
     $1_BUILD_STUB_LIB_SPEC="-L`$CYGPATH $(pwd)` [$]{$1_STUB_LIB_FLAG}"
@@ -3948,7 +4027,7 @@ AC_DEFUN([TEA_EXPORT_CONFIG], [
 #------------------------------------------------------------------------
 
 AC_DEFUN([TEA_INSTALLER], [
-    INSTALL='$(SHELL) $(top_srcdir)/tclconfig/install-sh -c'
+    INSTALL='$(SHELL) $(srcdir)/tclconfig/install-sh -c'
     INSTALL_DATA_DIR='${INSTALL} -d -m 755'
     INSTALL_DATA='${INSTALL} -m 644'
     INSTALL_PROGRAM='${INSTALL} -m 755'
@@ -3998,52 +4077,52 @@ AC_DEFUN([TEA_ZIPFS_SUPPORT], [
     AC_CACHE_VAL(ac_cv_path_macher, [
     search_path=`echo ${PATH} | sed -e 's/:/ /g'`
     for dir in $search_path ; do
-        for j in `ls -r $dir/macher 2> /dev/null` \
-            `ls -r $dir/macher 2> /dev/null` ; do
-        if test x"$ac_cv_path_macher" = x ; then
-            if test -f "$j" ; then
-            ac_cv_path_macher=$j
-            break
-            fi
-        fi
-        done
+       for j in `ls -r $dir/macher 2> /dev/null` \
+           `ls -r $dir/macher 2> /dev/null` ; do
+       if test x"$ac_cv_path_macher" = x ; then
+           if test -f "$j" ; then
+           ac_cv_path_macher=$j
+           break
+           fi
+       fi
+       done
     done
     ])
     if test -f "$ac_cv_path_macher" ; then
-        MACHER_PROG="$ac_cv_path_macher"
-        AC_MSG_RESULT([$MACHER_PROG])
-        AC_MSG_RESULT([Found macher in environment])
+       MACHER_PROG="$ac_cv_path_macher"
+       AC_MSG_RESULT([$MACHER_PROG])
+       AC_MSG_RESULT([Found macher in environment])
     fi
     AC_MSG_CHECKING([for zip])
     AC_CACHE_VAL(ac_cv_path_zip, [
     search_path=`echo ${PATH} | sed -e 's/:/ /g'`
     for dir in $search_path ; do
-        for j in `ls -r $dir/zip 2> /dev/null` \
-            `ls -r $dir/zip 2> /dev/null` ; do
-        if test x"$ac_cv_path_zip" = x ; then
-            if test -f "$j" ; then
-            ac_cv_path_zip=$j
-            break
-            fi
-        fi
-        done
+       for j in `ls -r $dir/zip 2> /dev/null` \
+           `ls -r $dir/zip 2> /dev/null` ; do
+       if test x"$ac_cv_path_zip" = x ; then
+           if test -f "$j" ; then
+           ac_cv_path_zip=$j
+           break
+           fi
+       fi
+       done
     done
     ])
     if test -f "$ac_cv_path_zip" ; then
-        ZIP_PROG="$ac_cv_path_zip"
-        AC_MSG_RESULT([$ZIP_PROG])
-        ZIP_PROG_OPTIONS="-rq"
-        ZIP_PROG_VFSSEARCH="*"
-        AC_MSG_RESULT([Found INFO Zip in environment])
-        # Use standard arguments for zip
+       ZIP_PROG="$ac_cv_path_zip"
+       AC_MSG_RESULT([$ZIP_PROG])
+       ZIP_PROG_OPTIONS="-rq"
+       ZIP_PROG_VFSSEARCH="*"
+       AC_MSG_RESULT([Found INFO Zip in environment])
+       # Use standard arguments for zip
     else
-        # It is not an error if an installed version of Zip can't be located.
-        # We can use the locally distributed minizip instead
-        ZIP_PROG="./minizip${EXEEXT_FOR_BUILD}"
-        ZIP_PROG_OPTIONS="-o -r"
-        ZIP_PROG_VFSSEARCH="*"
-        ZIP_INSTALL_OBJS="minizip${EXEEXT_FOR_BUILD}"
-        AC_MSG_RESULT([No zip found on PATH. Building minizip])
+       # It is not an error if an installed version of Zip can't be located.
+       # We can use the locally distributed minizip instead
+       ZIP_PROG="./minizip${EXEEXT_FOR_BUILD}"
+       ZIP_PROG_OPTIONS="-o -r"
+       ZIP_PROG_VFSSEARCH="*"
+       ZIP_INSTALL_OBJS="minizip${EXEEXT_FOR_BUILD}"
+       AC_MSG_RESULT([No zip found on PATH. Building minizip])
     fi
     AC_SUBST(MACHER_PROG)
     AC_SUBST(ZIP_PROG)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to