summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhobbs <hobbs>2000-11-02 09:21:07 (GMT)
committerhobbs <hobbs>2000-11-02 09:21:07 (GMT)
commit863ebe289ab5900e21e35b641e21297abac820e5 (patch)
treed5eda400f57050fb3863faee3c82b92d92b13712
parentc088dfb737ad729c5f46e0c680ee535ef181cb97 (diff)
downloadtcl-863ebe289ab5900e21e35b641e21297abac820e5.zip
tcl-863ebe289ab5900e21e35b641e21297abac820e5.tar.gz
tcl-863ebe289ab5900e21e35b641e21297abac820e5.tar.bz2
makefile fixes for Win64 support
-rw-r--r--win/makefile.vc65
-rw-r--r--win/tcl.m414
2 files changed, 57 insertions, 22 deletions
diff --git a/win/makefile.vc b/win/makefile.vc
index 7672f2d..858873c 100644
--- a/win/makefile.vc
+++ b/win/makefile.vc
@@ -4,9 +4,9 @@
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# Copyright (c) 1995-1996 Sun Microsystems, Inc.
-# Copyright (c) 1998-1999 by Scriptics Corporation.
+# Copyright (c) 1998-2000 Ajuba Solutions.
#
-# RCS: @(#) $Id: makefile.vc,v 1.56 2000/10/31 01:20:09 davidg Exp $
+# RCS: @(#) $Id: makefile.vc,v 1.57 2000/11/02 09:21:07 hobbs Exp $
# Does not depend on the presence of any environment variables in
# order to compile tcl; all needed information is derived from
@@ -27,23 +27,50 @@
#
# Set this to the appropriate value of /MACHINE: for your platform
+# Choices: IX86, IA64, ALPHA
MACHINE = IX86
-#MACHINE = ALPHA
ROOT = ..
-INSTALLDIR = c:\Progra~1\Tcl
+INSTALLDIR = C:\Progra~1\Tcl
!IF "$(MACHINE)" == "IA64"
-TOOLS32 = c:\ia64sdk17
-TOOLS32_rc = c:\ia64sdk17
+
+# IA64 support is based on the standard setup with v2 of the
+# Microsoft Platform SDK for Whistler, build 2267
+
+TOOLS32 = C:\Progra~1\Microsoft Platform SDK
+TOOLS32_rc = C:\Progra~1\Microsoft Platform SDK
+
+cc32 = "$(TOOLS32)\bin\Win64\cl.exe"
+link32 = "$(TOOLS32)\bin\Win64\link.exe"
+libpath32 = /LIBPATH:"$(TOOLS32)\lib\IA64"
+lib32 = "$(TOOLS32)\bin\Win64\lib.exe"
+
!ELSE IF "$(MACHINE)" == "ALPHA"
+
TOOLS32 = C:\Progra~1\Micros~2\vc98
TOOLS32_rc = C:\Progra~1\Micros~2\common\MSDev98
+
+cc32 = "$(TOOLS32)\bin\cl.exe"
+link32 = "$(TOOLS32)\bin\link.exe"
+libpath32 = /LIBPATH:"$(TOOLS32)\lib"
+lib32 = "$(TOOLS32)\bin\lib.exe"
+
!ELSE
-TOOLS32 = c:\Progra~1\devstudio\vc
-TOOLS32_rc = c:\Progra~1\devstudio\sharedide
+
+TOOLS32 = C:\Progra~1\devstudio\vc
+TOOLS32_rc = C:\Progra~1\devstudio\sharedide
+
+cc32 = "$(TOOLS32)\bin\cl.exe"
+link32 = "$(TOOLS32)\bin\link.exe"
+libpath32 = /LIBPATH:"$(TOOLS32)\lib"
+lib32 = "$(TOOLS32)\bin\lib.exe"
+
!ENDIF
+rc32 = "$(TOOLS32_rc)\bin\rc.exe"
+include32 = -I"$(TOOLS32)\include"
+
# Uncomment the following line to compile with thread support
#THREADDEFINES = -DTCL_THREADS=1
@@ -58,10 +85,15 @@ NODEBUG = 1
# -DTCL_COMPILE_STATS Enables byte compilation statistics gathering.
# -DUSE_TCLALLOC=0 Disables the Tcl memory allocator in favor
# of the native malloc implementation. This is
-# needed when using Purify.
+# needed when using Purify. For IA64, we do
+# want to use the native allocator.
#
#DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
+!IF "$(MACHINE)" == "IA64"
+DEBUGDEFINES = -DUSE_TCLALLOC=0
+!ELSE
#DEBUGDEFINES = -DUSE_TCLALLOC=0
+!ENDIF
######################################################################
# Do not modify below this line
@@ -206,13 +238,6 @@ TCLOBJS = \
TCLSTUBOBJS = $(TMPDIR)\tclStubLib.obj \
-cc32 = "$(TOOLS32)\bin\cl.exe"
-link32 = "$(TOOLS32)\bin\link.exe"
-rc32 = "$(TOOLS32_rc)\bin\rc.exe"
-include32 = -I"$(TOOLS32)\include"
-libpath32 = /LIBPATH:"$(TOOLS32)\lib"
-lib32 = "$(TOOLS32)\bin\lib.exe"
-
WINDIR = $(ROOT)\win
GENERICDIR = $(ROOT)\generic
@@ -226,13 +251,11 @@ TCL_DEFINES = $(DEBUGDEFINES) $(THREADDEFINES)
!IF "$(NODEBUG)" == "1"
# This cranks the optimization level to maximize speed
cdebug = -O2 -Gs -GD
-!ELSE
-!IF "$(MACHINE)" == "IA64"
+!ELSE IF "$(MACHINE)" == "IA64"
cdebug = -Od -Zi
!ELSE
cdebug = -Z7 -Od -WX
!ENDIF
-!ENDIF
# declarations common to all compiler options
cflags = -c -W3 -nologo -Fp$(TMPDIR)\ -YX
@@ -259,14 +282,12 @@ lflags = /NODEFAULTLIB /NOLOGO /MACHINE:$(MACHINE) $(libpath32)
!IF "$(MACHINE)" == "IX86"
DLLENTRY = @12
dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
-!ELSE
-!IF "$(MACHINE)" == "IA64"
+!ELSE IF "$(MACHINE)" == "IA64"
DLLENTRY = @12
dlllflags = $(lflags) -dll
!ELSE
dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
!ENDIF
-!ENDIF
conlflags = $(lflags) -subsystem:console -entry:mainCRTStartup
guilflags = $(lflags) -subsystem:windows -entry:WinMainCRTStartup
diff --git a/win/tcl.m4 b/win/tcl.m4
index 906e4ff..b791c46 100644
--- a/win/tcl.m4
+++ b/win/tcl.m4
@@ -319,6 +319,13 @@ AC_DEFUN(SC_ENABLE_SYMBOLS, [
#--------------------------------------------------------------------
AC_DEFUN(SC_CONFIG_CFLAGS, [
+
+ # Step 0: Enable 64 bit support?
+
+ AC_MSG_CHECKING([if 64bit support is requested])
+ AC_ARG_ENABLE(64bit,[ --enable-64bit enable 64bit support (where applicable)], [do64bit=$enableval], [do64bit=no])
+ AC_MSG_RESULT($do64bit)
+
AC_MSG_CHECKING([compiler flags])
# Set some defaults (may get changed below)
@@ -330,6 +337,9 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
# set various compiler flags depending on whether we are using gcc or cl
if test "${GCC}" = "yes" ; then
+ if test "$do64bit" = "yes" ; then
+ AC_MSG_WARN("64bit mode not supported with GCC on Windows")
+ fi
SHLIB_LD=""
SHLIB_LD_LIBS=""
LIBS=""
@@ -482,6 +492,10 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
# built -- Console vs. Window.
LDFLAGS_CONSOLE="-link -subsystem:console"
LDFLAGS_WINDOW="-link -subsystem:windows"
+
+ if test "$do64bit" = "yes" ; then
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -DUSE_TCLALLOC=0"
+ fi
fi
])