-# Visual C++ 2.x and 4.0 makefile
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# Copyright (c) 1995-1996 Sun Microsystems, Inc.
-# Copyright (c) 1998-1999 by Scriptics Corporation.
-#
-# RCS: @(#) $Id$
-
-# Does not depend on the presence of any environment variables in
-# order to compile tcl; all needed information is derived from
-# location of the compiler directories.
-
-#
-# Project directories
-#
-# ROOT = top of source tree
-#
-# TOOLS32 = location of VC++ 32-bit development tools. Note that the
-# VC++ 2.0 header files are broken, so you need to use the
-# ones that come with the developer network CD's, or later
-# versions of VC++.
-#
-# INSTALLDIR = where the install- targets should copy the binaries and
-# support files
-#
-
-# Set this to the appropriate value of /MACHINE: for your platform
-MACHINE = IX86
-
-ROOT = ..
-INSTALLDIR = c:\Progra~1\Tcl
-
-!IF "$(MACHINE)" == "IA64"
-TOOLS32 = c:\ia64sdk17
-TOOLS32_rc = c:\ia64sdk17
-!ELSE
-TOOLS32 = c:\Progra~1\devstudio\vc
-TOOLS32_rc = c:\Progra~1\devstudio\sharedide
-!ENDIF
-
-# Uncomment the following line to compile with thread support
-#THREADDEFINES = -DTCL_THREADS=1
-
-# Set NODEBUG to 0 to compile with symbols
-NODEBUG = 1
-
-# The following defines can be used to control the amount of debugging
-# code that is added to the compilation.
-#
-# -DTCL_MEM_DEBUG Enables the debugging memory allocator.
-# -DTCL_COMPILE_DEBUG Enables byte compilation logging.
-# -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.
-#
-#DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
-#DEBUGDEFINES = -DUSE_TCLALLOC=0
-
-######################################################################
-# Do not modify below this line
-######################################################################
-
-NAMEPREFIX = tcl
-STUBPREFIX = $(NAMEPREFIX)stub
-DOTVERSION = 8.3
-VERSION = 83
-
-BINROOT = .
-!IF "$(NODEBUG)" == "1"
-TMPDIRNAME = Release
-DBGX =
-!ELSE
-TMPDIRNAME = Debug
-DBGX = d
-!ENDIF
-TMPDIR = $(BINROOT)\$(TMPDIRNAME)
-OUTDIRNAME = $(TMPDIRNAME)
-OUTDIR = $(TMPDIR)
-
-TCLLIB = $(OUTDIR)\$(NAMEPREFIX)$(VERSION)$(DBGX).lib
-TCLDLLNAME = $(NAMEPREFIX)$(VERSION)$(DBGX).dll
-TCLDLL = $(OUTDIR)\$(TCLDLLNAME)
-
-TCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION)$(DBGX).lib
-TCLSTUBLIB = $(OUTDIR)\$(TCLSTUBLIBNAME)
-
-TCLPLUGINLIB = $(OUTDIR)\$(NAMEPREFIX)$(VERSION)p$(DBGX).lib
-TCLPLUGINDLLNAME= $(NAMEPREFIX)$(VERSION)p$(DBGX).dll
-TCLPLUGINDLL = $(OUTDIR)\$(TCLPLUGINDLLNAME)
-TCLSH = $(OUTDIR)\$(NAMEPREFIX)sh$(VERSION)$(DBGX).exe
-TCLSHP = $(OUTDIR)\$(NAMEPREFIX)shp$(VERSION)$(DBGX).exe
-TCLPIPEDLLNAME = $(NAMEPREFIX)pip$(VERSION)$(DBGX).dll
-TCLPIPEDLL = $(OUTDIR)\$(TCLPIPEDLLNAME)
-TCLREGDLLNAME = $(NAMEPREFIX)reg$(VERSION)$(DBGX).dll
-TCLREGDLL = $(OUTDIR)\$(TCLREGDLLNAME)
-TCLDDEDLLNAME = $(NAMEPREFIX)dde$(VERSION)$(DBGX).dll
-TCLDDEDLL = $(OUTDIR)\$(TCLDDEDLLNAME)
-TCLTEST = $(OUTDIR)\$(NAMEPREFIX)test.exe
-CAT32 = $(TMPDIR)\cat32.exe
-RMDIR = .\rmd.bat
-MKDIR = .\mkd.bat
-RM = del
-
-LIB_INSTALL_DIR = $(INSTALLDIR)\lib
-BIN_INSTALL_DIR = $(INSTALLDIR)\bin
-SCRIPT_INSTALL_DIR = $(INSTALLDIR)\lib\tcl$(DOTVERSION)
-INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include
-
-TCLSHOBJS = \
- $(TMPDIR)\tclAppInit.obj
-
-TCLTESTOBJS = \
- $(TMPDIR)\tclTest.obj \
- $(TMPDIR)\tclTestObj.obj \
- $(TMPDIR)\tclTestProcBodyObj.obj \
- $(TMPDIR)\tclThreadTest.obj \
- $(TMPDIR)\tclWinTest.obj \
- $(TMPDIR)\testMain.obj
-
-TCLOBJS = \
- $(TMPDIR)\regcomp.obj \
- $(TMPDIR)\regexec.obj \
- $(TMPDIR)\regfree.obj \
- $(TMPDIR)\regerror.obj \
- $(TMPDIR)\strftime.obj \
- $(TMPDIR)\tclAlloc.obj \
- $(TMPDIR)\tclAsync.obj \
- $(TMPDIR)\tclBasic.obj \
- $(TMPDIR)\tclBinary.obj \
- $(TMPDIR)\tclCkalloc.obj \
- $(TMPDIR)\tclClock.obj \
- $(TMPDIR)\tclCmdAH.obj \
- $(TMPDIR)\tclCmdIL.obj \
- $(TMPDIR)\tclCmdMZ.obj \
- $(TMPDIR)\tclCompCmds.obj \
- $(TMPDIR)\tclCompExpr.obj \
- $(TMPDIR)\tclCompile.obj \
- $(TMPDIR)\tclDate.obj \
- $(TMPDIR)\tclEncoding.obj \
- $(TMPDIR)\tclEnv.obj \
- $(TMPDIR)\tclEvent.obj \
- $(TMPDIR)\tclExecute.obj \
- $(TMPDIR)\tclFCmd.obj \
- $(TMPDIR)\tclFileName.obj \
- $(TMPDIR)\tclGet.obj \
- $(TMPDIR)\tclHash.obj \
- $(TMPDIR)\tclHistory.obj \
- $(TMPDIR)\tclIndexObj.obj \
- $(TMPDIR)\tclInterp.obj \
- $(TMPDIR)\tclIO.obj \
- $(TMPDIR)\tclIOCmd.obj \
- $(TMPDIR)\tclIOGT.obj \
- $(TMPDIR)\tclIOSock.obj \
- $(TMPDIR)\tclIOUtil.obj \
- $(TMPDIR)\tclLink.obj \
- $(TMPDIR)\tclLiteral.obj \
- $(TMPDIR)\tclListObj.obj \
- $(TMPDIR)\tclLoad.obj \
- $(TMPDIR)\tclMain.obj \
- $(TMPDIR)\tclNamesp.obj \
- $(TMPDIR)\tclNotify.obj \
- $(TMPDIR)\tclObj.obj \
- $(TMPDIR)\tclPanic.obj \
- $(TMPDIR)\tclParse.obj \
- $(TMPDIR)\tclParseExpr.obj \
- $(TMPDIR)\tclPipe.obj \
- $(TMPDIR)\tclPkg.obj \
- $(TMPDIR)\tclPosixStr.obj \
- $(TMPDIR)\tclPreserve.obj \
- $(TMPDIR)\tclProc.obj \
- $(TMPDIR)\tclRegexp.obj \
- $(TMPDIR)\tclResolve.obj \
- $(TMPDIR)\tclResult.obj \
- $(TMPDIR)\tclScan.obj \
- $(TMPDIR)\tclStringObj.obj \
- $(TMPDIR)\tclStubInit.obj \
- $(TMPDIR)\tclStubLib.obj \
- $(TMPDIR)\tclThread.obj \
- $(TMPDIR)\tclTimer.obj \
- $(TMPDIR)\tclUtf.obj \
- $(TMPDIR)\tclUtil.obj \
- $(TMPDIR)\tclVar.obj \
- $(TMPDIR)\tclWin32Dll.obj \
- $(TMPDIR)\tclWinChan.obj \
- $(TMPDIR)\tclWinConsole.obj \
- $(TMPDIR)\tclWinSerial.obj \
- $(TMPDIR)\tclWinError.obj \
- $(TMPDIR)\tclWinFCmd.obj \
- $(TMPDIR)\tclWinFile.obj \
- $(TMPDIR)\tclWinInit.obj \
- $(TMPDIR)\tclWinLoad.obj \
- $(TMPDIR)\tclWinMtherr.obj \
- $(TMPDIR)\tclWinNotify.obj \
- $(TMPDIR)\tclWinPipe.obj \
- $(TMPDIR)\tclWinSock.obj \
- $(TMPDIR)\tclWinThrd.obj \
- $(TMPDIR)\tclWinTime.obj
-
-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
-
-TCL_INCLUDES = -I"$(WINDIR)" -I"$(GENERICDIR)"
-TCL_DEFINES = $(DEBUGDEFINES) $(THREADDEFINES)
-
-######################################################################
-# Compile flags
-######################################################################
-
-!IF "$(NODEBUG)" == "1"
-# This cranks the optimization level to maximize speed
-cdebug = -O2 -Gs -GD
-!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
-cvarsdll = -MD$(DBGX)
-
-TCL_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) \
- $(TCL_INCLUDES) $(TCL_DEFINES)
-CON_CFLAGS = $(cdebug) $(cflags) $(include32) -DCONSOLE
-
-######################################################################
-# Link flags
-######################################################################
-
-!IF "$(NODEBUG)" == "1"
-ldebug = /RELEASE
-!ELSE
-ldebug = -debug:full -debugtype:cv
-!ENDIF
-
-# declarations common to all linker options
-lflags = /NODEFAULTLIB /NOLOGO /MACHINE:$(MACHINE) $(libpath32)
-
-# declarations for use on Intel i386, i486, and Pentium systems
-!IF "$(MACHINE)" == "IX86"
-DLLENTRY = @12
-dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
-!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
-
-!IF "$(MACHINE)" == "PPC"
-libc = libc$(DBGX).lib
-libcdll = crtdll$(DBGX).lib
-!ELSE
-libc = libc$(DBGX).lib oldnames.lib
-libcdll = msvcrt$(DBGX).lib oldnames.lib
-!ENDIF
-
-baselibs = kernel32.lib $(optlibs) advapi32.lib user32.lib
-winlibs = $(baselibs) gdi32.lib comdlg32.lib winspool.lib
-
-guilibs = $(libc) $(winlibs)
-conlibs = $(libc) $(baselibs)
-guilibsdll = $(libcdll) $(winlibs)
-conlibsdll = $(libcdll) $(baselibs)
-
-######################################################################
-# Project specific targets
-######################################################################
-
-release: setup $(TCLSH) dlls
-dlls: setup $(TCLPIPEDLL) $(TCLREGDLL) $(TCLDDEDLL)
-all: setup $(TCLSH) dlls $(CAT32)
-tcltest: setup $(TCLTEST) dlls $(CAT32)
-plugin: setup $(TCLPLUGINDLL) $(TCLSHP)
-install: install-binaries install-libraries
-test: setup $(TCLTEST) dlls $(CAT32)
- set TCL_LIBRARY=$(ROOT)/library
- $(TCLTEST) $(ROOT)/tests/all.tcl
-
-setup:
- @$(MKDIR) $(TMPDIR)
- @$(MKDIR) $(OUTDIR)
-
-$(TCLLIB): $(TCLDLL)
-
-$(TCLDLL): $(TCLOBJS) $(TMPDIR)\tcl.res
- $(link32) $(ldebug) $(dlllflags) \
- -out:$@ $(TMPDIR)\tcl.res $(guilibsdll) @<<
-$(TCLOBJS)
-<<
-
-$(TCLSTUBLIB): $(TCLSTUBOBJS)
- $(lib32) /out:$@ $(TCLSTUBOBJS)
-
-$(TCLPLUGINLIB): $(TCLPLUGINDLL)
-
-$(TCLPLUGINDLL): $(TCLOBJS) $(TMPDIR)\tcl.res
- $(link32) $(ldebug) $(dlllflags) \
- -out:$@ $(TMPDIR)\tcl.res $(guilibsdll) @<<
-$(TCLOBJS)
-<<
-
-$(TCLSH): $(TCLSHOBJS) $(TCLLIB) $(TMPDIR)\tclsh.res
- $(link32) $(ldebug) $(conlflags) $(TMPDIR)\tclsh.res -stack:2300000 \
- -out:$@ $(conlibsdll) $(TCLLIB) $(TCLSHOBJS)
-
-$(TCLSHP): $(TCLSHOBJS) $(TCLPLUGINLIB) $(TMPDIR)\tclsh.res
- $(link32) $(ldebug) $(conlflags) $(TMPDIR)\tclsh.res -stack:2300000 \
- -out:$@ $(conlibsdll) $(TCLPLUGINLIB) $(TCLSHOBJS)
-
-$(TCLTEST): $(TCLTESTOBJS) $(TCLLIB) $(TMPDIR)\tclsh.res
- $(link32) $(ldebug) $(conlflags) $(TMPDIR)\tclsh.res -stack:2300000 \
- -out:$@ $(conlibsdll) $(TCLLIB) $(TCLTESTOBJS)
-
-$(TCLPIPEDLL): $(WINDIR)\stub16.c
- $(cc32) $(CON_CFLAGS) -Fo$(TMPDIR)\ $(WINDIR)\stub16.c
- $(link32) $(ldebug) $(conlflags) -out:$@ $(TMPDIR)\stub16.obj $(guilibs)
-
-$(TCLDDEDLL): $(TMPDIR)\tclWinDde.obj $(TCLSTUBLIB)
- $(link32) $(ldebug) $(dlllflags) -out:$@ $(TMPDIR)\tclWinDde.obj \
- $(conlibsdll) $(TCLSTUBLIB)
-
-$(TCLREGDLL): $(TMPDIR)\tclWinReg.obj $(TCLSTUBLIB)
- $(link32) $(ldebug) $(dlllflags) -out:$@ $(TMPDIR)\tclWinReg.obj \
- $(conlibsdll) $(TCLSTUBLIB)
-
-$(CAT32): $(WINDIR)\cat.c
- $(cc32) $(CON_CFLAGS) -Fo$(TMPDIR)\ $?
- $(link32) $(conlflags) -out:$@ -stack:16384 $(TMPDIR)\cat.obj $(conlibs)
-
-install-binaries: $(TCLSH)
- $(MKDIR) "$(BIN_INSTALL_DIR)"
- $(MKDIR) "$(LIB_INSTALL_DIR)"
- @echo installing $(TCLDLLNAME)
- @copy "$(TCLDLL)" "$(BIN_INSTALL_DIR)"
- @copy "$(TCLLIB)" "$(LIB_INSTALL_DIR)"
- @echo installing "$(TCLSH)"
- @copy "$(TCLSH)" "$(BIN_INSTALL_DIR)"
- @echo installing $(TCLPIPEDLLNAME)
- @copy "$(TCLPIPEDLL)" "$(BIN_INSTALL_DIR)"
- @echo installing $(TCLSTUBLIBNAME)
- @copy "$(TCLSTUBLIB)" "$(LIB_INSTALL_DIR)"
-
-install-libraries:
- -@$(MKDIR) "$(LIB_INSTALL_DIR)"
- -@$(MKDIR) "$(INCLUDE_INSTALL_DIR)"
- -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)"
- @echo installing http1.0
- -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\http1.0"
- -@copy "$(ROOT)\library\http1.0\http.tcl" "$(SCRIPT_INSTALL_DIR)\http1.0"
- -@copy "$(ROOT)\library\http1.0\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\http1.0"
- @echo installing http2.3
- -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\http2.3"
- -@copy "$(ROOT)\library\http2.3\http.tcl" "$(SCRIPT_INSTALL_DIR)\http2.3"
- -@copy "$(ROOT)\library\http2.3\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\http2.3"
- @echo installing opt0.4
- -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\opt0.4"
- -@copy "$(ROOT)\library\opt0.4\optparse.tcl" "$(SCRIPT_INSTALL_DIR)\opt0.4"
- -@copy "$(ROOT)\library\opt0.4\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\opt0.4"
- @echo installing msgcat1.0
- -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\msgcat1.0"
- -@copy "$(ROOT)\library\msgcat1.0\msgcat.tcl" "$(SCRIPT_INSTALL_DIR)\msgcat1.0"
- -@copy "$(ROOT)\library\msgcat1.0\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\msgcat1.0"
- @echo installing $(TCLDDEDLLNAME)
- -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\dde1.1"
- -@copy "$(TCLDDEDLL)" "$(SCRIPT_INSTALL_DIR)\dde1.1"
- -@copy "$(ROOT)\library\dde1.1\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\dde1.1"
- @echo installing $(TCLREGDLLNAME)
- -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\reg1.0"
- -@copy "$(TCLREGDLL)" "$(SCRIPT_INSTALL_DIR)\reg1.0"
- -@copy "$(ROOT)\library\reg1.0\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\reg1.0"
- @echo installing encoding files
- -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\encoding"
- -@copy "$(ROOT)\library\encoding\*.enc" "$(SCRIPT_INSTALL_DIR)\encoding"
- @echo installing library files
- -@copy "$(GENERICDIR)\tcl.h" "$(INCLUDE_INSTALL_DIR)"
- -@copy "$(GENERICDIR)\tclDecls.h" "$(INCLUDE_INSTALL_DIR)"
- -@copy "$(ROOT)\library\history.tcl" "$(SCRIPT_INSTALL_DIR)"
- -@copy "$(ROOT)\library\init.tcl" "$(SCRIPT_INSTALL_DIR)"
- -@copy "$(ROOT)\library\ldAout.tcl" "$(SCRIPT_INSTALL_DIR)"
- -@copy "$(ROOT)\library\parray.tcl" "$(SCRIPT_INSTALL_DIR)"
- -@copy "$(ROOT)\library\safe.tcl" "$(SCRIPT_INSTALL_DIR)"
- -@copy "$(ROOT)\library\tclIndex" "$(SCRIPT_INSTALL_DIR)"
- -@copy "$(ROOT)\library\package.tcl" "$(SCRIPT_INSTALL_DIR)"
- -@copy "$(ROOT)\library\word.tcl" "$(SCRIPT_INSTALL_DIR)"
- -@copy "$(ROOT)\library\auto.tcl" "$(SCRIPT_INSTALL_DIR)"
-
-#
-# Regenerate the stubs files.
-#
-
-genstubs:
- tclsh$(VERSION) $(ROOT)\tools\genStubs.tcl $(GENERICDIR) \
- $(GENERICDIR)\tcl.decls $(GENERICDIR)\tclInt.decls
-
-#
-# Regenerate the windows help files.
-#
-
-TCLTOOLS = $(ROOT)/tools
-MAN2TCL = $(TCLTOOLS)/man2tcl
-TCLRTF = $(TCLTOOLS)/tcl.rtf
-TCLHPJ = $(TCLTOOLS)/tcl.hpj
-MAN2HELP = $(TCLTOOLS)/man2help.tcl
-HCRTF = $(TOOLS32)/bin/hcrtf.exe
-
-winhelp: $(TCLRTF)
- cd $(TCLTOOLS)
- start /wait $(HCRTF) -xn $(TCLHPJ)
-
-$(MAN2TCL).exe: $(MAN2TCL).obj
- cd $(TCLTOOLS)
- $(cc32) /nologo /G4 /ML /O2 $(MAN2TCL).c
-
-$(TCLRTF): $(MAN2TCL).exe $(TCLSH)
- cd $(TCLTOOLS)
- ..\win\$(TCLSH) $(MAN2HELP) $(NAMEPREFIX) $(VERSION) $(ROOT)/doc ../../tk$(DOTVERSION)/doc
-
-#
-# Special case object file targets
-#
-
-$(TMPDIR)\tclWinInit.obj: $(WINDIR)\tclWinInit.c
- $(cc32) -DBUILD_tcl $(TCL_CFLAGS) $(EXTFLAGS) -Fo$(TMPDIR)\ $?
-
-$(TMPDIR)\testMain.obj: $(WINDIR)\tclAppInit.c
- $(cc32) $(TCL_CFLAGS) -DTCL_TEST -Fo$(TMPDIR)\testMain.obj $?
-
-$(TMPDIR)\tclTest.obj: $(GENERICDIR)\tclTest.c
- $(cc32) $(TCL_CFLAGS) -Fo$@ $?
-
-$(TMPDIR)\tclTestObj.obj: $(GENERICDIR)\tclTestObj.c
- $(cc32) $(TCL_CFLAGS) -Fo$@ $?
-
-$(TMPDIR)\tclWinTest.obj: $(WINDIR)\tclWinTest.c
- $(cc32) $(TCL_CFLAGS) -Fo$@ $?
-
-$(TMPDIR)\tclAppInit.obj : $(WINDIR)\tclAppInit.c
- $(cc32) $(TCL_CFLAGS) -Fo$@ $?
-
-# The following objects should be built using the stub interfaces
-
-$(TMPDIR)\tclWinReg.obj : $(WINDIR)\tclWinReg.c
- $(cc32) $(TCL_CFLAGS) -DUSE_TCL_STUBS -Fo$@ $?
-
-$(TMPDIR)\tclWinDde.obj : $(WINDIR)\tclWinDde.c
- $(cc32) $(TCL_CFLAGS) -DUSE_TCL_STUBS -Fo$@ $?
-
-# The following objects are part of the stub library and should not
-# be built as DLL objects but none of the symbols should be exported
-
-$(TMPDIR)\tclStubLib.obj : $(GENERICDIR)\tclStubLib.c
- $(cc32) $(TCL_CFLAGS) -DSTATIC_BUILD -Fo$@ $?
-
-
-# Dedependency rules
-
-$(GENERICDIR)\regcomp.c: \
- $(GENERICDIR)\regguts.h \
- $(GENERICDIR)\regc_lex.c \
- $(GENERICDIR)\regc_color.c \
- $(GENERICDIR)\regc_nfa.c \
- $(GENERICDIR)\regc_cvec.c \
- $(GENERICDIR)\regc_locale.c
-$(GENERICDIR)\regcustom.h: \
- $(GENERICDIR)\tclInt.h \
- $(GENERICDIR)\tclPort.h \
- $(GENERICDIR)\regex.h
-$(GENERICDIR)\regexec.c: \
- $(GENERICDIR)\rege_dfa.c \
- $(GENERICDIR)\regguts.h
-$(GENERICDIR)\regerror.c: $(GENERICDIR)\regguts.h
-$(GENERICDIR)\regfree.c: $(GENERICDIR)\regguts.h
-$(GENERICDIR)\regfronts.c: $(GENERICDIR)\regguts.h
-$(GENERICDIR)\regguts.h: $(GENERICDIR)\regcustom.h
-
-#
-# Implicit rules
-#
-
-{$(WINDIR)}.c{$(TMPDIR)}.obj:
- $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
-
-{$(GENERICDIR)}.c{$(TMPDIR)}.obj:
- $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
-
-{$(ROOT)\compat}.c{$(TMPDIR)}.obj:
- $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
-
-{$(WINDIR)}.rc{$(TMPDIR)}.res:
- $(rc32) -fo $@ -r -i $(GENERICDIR) -i $(WINDIR) -D__WIN32__ \
- $(TCL_DEFINES) $<
-
-clean:
- -@$(RM) $(OUTDIR)\*.exp
- -@$(RM) $(OUTDIR)\*.lib
- -@$(RM) $(OUTDIR)\*.dll
- -@$(RM) $(OUTDIR)\*.exe
- -@$(RM) $(OUTDIR)\*.pdb
- -@$(RM) $(TMPDIR)\*.pch
- -@$(RM) $(TMPDIR)\*.obj
- -@$(RM) $(TMPDIR)\*.res
- -@$(RM) $(TMPDIR)\*.exe
- -@$(RMDIR) $(OUTDIR)
- -@$(RMDIR) $(TMPDIR)
-
-
-
+#------------------------------------------------------------------------------\r
+# makefile.vc --\r
+#\r
+# Microsoft Visual C++ makefile for use with nmake.exe v1.62+ (VC++ 5.0+)\r
+#\r
+# See the file "license.terms" for information on usage and redistribution\r
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.\r
+# \r
+# Copyright (c) 1995-1996 Sun Microsystems, Inc.\r
+# Copyright (c) 1998-2000 Ajuba Solutions.\r
+# Copyright (c) 2001 ActiveState Corporation.\r
+# Copyright (c) 2001-2002 David Gravereaux.\r
+#\r
+#------------------------------------------------------------------------------\r
+# RCS: @(#) $Id$\r
+#------------------------------------------------------------------------------\r
+\r
+!if "$(MSVCDIR)" == ""\r
+MSG = ^\r
+You'll need to run vcvars32.bat from Developer Studio, first, to setup^\r
+the environment. Jump to this line to read the new instructions.\r
+!error $(MSG)\r
+!endif\r
+\r
+#------------------------------------------------------------------------------\r
+# HOW TO USE this makefile:\r
+#\r
+# 1) It is now necessary to have MSVCDir set in the environment. This is used\r
+# as a check to see if vcvars32.bat had been run prior to running nmake or\r
+# during the installation of Microsoft Visual C++, MSVCDir had been set\r
+# globally and the PATH adjusted. Either way is valid.\r
+#\r
+# You'll need to run vcvars32.bat contained in the MsDev's vc(98)/bin\r
+# directory to setup the proper environment, if needed, for your current\r
+# setup. This is a needed bootstrap requirement and allows the swapping of\r
+# different environments to be easier.\r
+#\r
+# 2) To use the Platform SDK (not expressly needed), run setenv.bat after\r
+# vcvars32.bat according to the instructions for it. This can also turn on\r
+# the 64-bit compiler, if your SDK has it.\r
+#\r
+# 3) Targets are:\r
+# release -- Builds the core, the shell and the dlls. (default)\r
+# dlls -- Just builds the windows extensions and the 16-bit DOS\r
+# pipe/thunk helper app.\r
+# shell -- Just builds the shell and the core.\r
+# core -- Only builds the core [tclXX.(dll|lib)].\r
+# all -- Builds everything.\r
+# test -- Builds and runs the test suite.\r
+# tcltest -- Just builds the test shell.\r
+# install -- Installs the built binaries and libraries to $(INSTALLDIR)\r
+# as the root of the install tree.\r
+# tidy/clean/hose -- varying levels of cleaning.\r
+# genstubs -- Rebuilds the Stubs table and support files (dev only).\r
+# depend -- Generates an accurate set of source dependancies for this\r
+# makefile. Helpful to avoid problems when the sources are\r
+# refreshed and you rebuild, but can "overbuild" when common\r
+# headers like tclInt.h just get small changes.\r
+# winhelp -- Builds the windows .hlp file for Tcl from the troff man\r
+# files found in $(ROOT)\doc .\r
+#\r
+# 4) Macros usable on the commandline:\r
+# INSTALLDIR=<path>\r
+# Sets where to install Tcl from the built binaries.\r
+# C:\Progra~1\Tcl is assumed when not specified.\r
+#\r
+# OPTS=static,msvcrt,linkexten,threads,symbols,profile,loimpact,none\r
+# Sets special options for the core. The default is for none.\r
+# Any combination of the above may be used (comma separated).\r
+# 'none' will over-ride everything to nothing.\r
+#\r
+# static = Builds a static library of the core instead of a\r
+# dll. The shell will be static (and large), as well.\r
+# msvcrt = Effects the static option only to switch it from\r
+# using libcmt(d) as the C runtime [by default] to\r
+# msvcrt(d). This is useful for static embedding\r
+# support.\r
+# linkexten = Effects the static option only to switch\r
+# tclshXX.exe to have the dde and reg extension linked\r
+# inside it.\r
+# threads = Turns on full multithreading support.\r
+# symbols = Adds symbols for step debugging.\r
+# profile = Adds profiling hooks. Map file is assumed.\r
+# loimpact = Adds a flag for how NT treats the heap to keep memory\r
+# in use, low. This is said to impact alloc performance.\r
+#\r
+# STATS=memdbg,compdbg,none\r
+# Sets optional memory and bytecode compiler debugging code added\r
+# to the core. The default is for none. Any combination of the\r
+# above may be used (comma separated). 'none' will over-ride\r
+# everything to nothing.\r
+#\r
+# memdbg = Enables the debugging memory allocator.\r
+# compdbg = Enables byte compilation logging.\r
+#\r
+# MACHINE=(IX86|IA64|ALPHA)\r
+# Set the machine type used for the compiler, linker, and\r
+# resource compiler. This hook is needed to tell the tools\r
+# when alternate platforms are requested. IX86 is the default\r
+# when not specified.\r
+#\r
+# TMP_DIR=<path>\r
+# OUT_DIR=<path>\r
+# Hooks to allow the intermediate and output directories to be\r
+# changed. $(OUT_DIR) is assumed to be \r
+# $(BINROOT)\(Release|Debug) based on if symbols are requested.\r
+# $(TMP_DIR) will de $(OUT_DIR)\<buildtype> by default.\r
+#\r
+# TESTPAT=<file>\r
+# Reads the tests requested to be run from this file.\r
+#\r
+# 5) Examples:\r
+#\r
+# Basic syntax of calling nmake looks like this:\r
+# nmake [-nologo] -f makefile.vc [target|macrodef [target|macrodef] [...]]\r
+#\r
+# Standard (no frills)\r
+# c:\tcl_src\win\>c:\progra~1\micros~1\vc98\bin\vcvars32.bat\r
+# Setting environment for using Microsoft Visual C++ tools.\r
+# c:\tcl_src\win\>nmake -f makefile.vc release\r
+# c:\tcl_src\win\>nmake -f makefile.vc install INSTALLDIR=c:\progra~1\tcl\r
+#\r
+# Building for Win64\r
+# c:\tcl_src\win\>c:\progra~1\micros~1\vc98\bin\vcvars32.bat\r
+# Setting environment for using Microsoft Visual C++ tools.\r
+# c:\tcl_src\win\>c:\progra~1\platfo~1\setenv.bat /pre64 /RETAIL\r
+# Targeting Windows pre64 RETAIL\r
+# c:\tcl_src\win\>nmake -f makefile.vc MACHINE=IA64\r
+#\r
+#------------------------------------------------------------------------------\r
+#==============================================================================\r
+###############################################################################\r
+\r
+\r
+# //==================================================================\\\r
+# >>[ -> Do not modify below this line. <- ]<<\r
+# >>[ Please, use the commandline macros to modify how Tcl is built. ]<<\r
+# >>[ If you need more features, send us a patch for more macros. ]<<\r
+# \\==================================================================//\r
+\r
+\r
+###############################################################################\r
+#==============================================================================\r
+#------------------------------------------------------------------------------\r
+\r
+!if !exist("makefile.vc")\r
+MSG = ^\r
+You must run this makefile only from the directory it is in.^\r
+Please `cd` to its location first.\r
+!error $(MSG)\r
+!endif\r
+\r
+PROJECT = tcl\r
+!include "rules.vc"\r
+\r
+STUBPREFIX = $(PROJECT)stub\r
+DOTVERSION = 8.4\r
+VERSION = $(DOTVERSION:.=)\r
+\r
+DDEDOTVERSION = 1.2\r
+DDEVERSION = $(DDEDOTVERSION:.=)\r
+\r
+REGDOTVERSION = 1.1\r
+REGVERSION = $(REGDOTVERSION:.=)\r
+\r
+BINROOT = .\r
+ROOT = ..\r
+\r
+TCLIMPLIB = $(OUT_DIR)\$(PROJECT)$(VERSION)$(SUFX).lib\r
+TCLLIBNAME = $(PROJECT)$(VERSION)$(SUFX).$(EXT)\r
+TCLLIB = $(OUT_DIR)\$(TCLLIBNAME)\r
+\r
+TCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION).lib\r
+TCLSTUBLIB = $(OUT_DIR)\$(TCLSTUBLIBNAME)\r
+\r
+TCLSHNAME = $(PROJECT)sh$(VERSION)$(SUFX).exe\r
+TCLSH = $(OUT_DIR)\$(TCLSHNAME)\r
+TCLPIPEDLLNAME = $(PROJECT)pip$(VERSION).dll\r
+TCLPIPEDLL = $(OUT_DIR)\$(TCLPIPEDLLNAME)\r
+\r
+TCLREGLIBNAME = $(PROJECT)reg$(REGVERSION)$(SUFX:t=).$(EXT)\r
+TCLREGLIB = $(OUT_DIR)\$(TCLREGLIBNAME)\r
+\r
+TCLDDELIBNAME = $(PROJECT)dde$(DDEVERSION)$(SUFX:t=).$(EXT)\r
+TCLDDELIB = $(OUT_DIR)\$(TCLDDELIBNAME)\r
+\r
+TCLTEST = $(OUT_DIR)\$(PROJECT)test.exe\r
+CAT32 = $(OUT_DIR)\cat32.exe\r
+\r
+### Make sure we use backslash only.\r
+_INSTALLDIR = $(INSTALLDIR:/=\)\r
+LIB_INSTALL_DIR = $(_INSTALLDIR)\lib\r
+BIN_INSTALL_DIR = $(_INSTALLDIR)\bin\r
+DOC_INSTALL_DIR = $(_INSTALLDIR)\doc\r
+SCRIPT_INSTALL_DIR = $(_INSTALLDIR)\lib\tcl$(DOTVERSION)\r
+INCLUDE_INSTALL_DIR = $(_INSTALLDIR)\include\r
+\r
+TCLSHOBJS = \\r
+ $(TMP_DIR)\tclAppInit.obj \\r
+!if $(TCL_LINKWITHEXTENSIONS)\r
+ $(TMP_DIR)\tclWinReg.obj \\r
+ $(TMP_DIR)\tclWinDde.obj \\r
+!endif\r
+ $(TMP_DIR)\tclsh.res\r
+\r
+TCLTESTOBJS = \\r
+ $(TMP_DIR)\tclTest.obj \\r
+ $(TMP_DIR)\tclTestObj.obj \\r
+ $(TMP_DIR)\tclTestProcBodyObj.obj \\r
+ $(TMP_DIR)\tclThreadTest.obj \\r
+ $(TMP_DIR)\tclWinTest.obj \\r
+!if $(TCL_LINKWITHEXTENSIONS)\r
+ $(TMP_DIR)\tclWinReg.obj \\r
+ $(TMP_DIR)\tclWinDde.obj \\r
+!endif\r
+ $(TMP_DIR)\testMain.obj\r
+\r
+TCLOBJS = \\r
+ $(TMP_DIR)\regcomp.obj \\r
+ $(TMP_DIR)\regerror.obj \\r
+ $(TMP_DIR)\regexec.obj \\r
+ $(TMP_DIR)\regfree.obj \\r
+ $(TMP_DIR)\strftime.obj \\r
+ $(TMP_DIR)\strtoll.obj \\r
+ $(TMP_DIR)\strtoull.obj \\r
+ $(TMP_DIR)\tclAlloc.obj \\r
+ $(TMP_DIR)\tclAsync.obj \\r
+ $(TMP_DIR)\tclBasic.obj \\r
+ $(TMP_DIR)\tclBinary.obj \\r
+ $(TMP_DIR)\tclCkalloc.obj \\r
+ $(TMP_DIR)\tclClock.obj \\r
+ $(TMP_DIR)\tclCmdAH.obj \\r
+ $(TMP_DIR)\tclCmdIL.obj \\r
+ $(TMP_DIR)\tclCmdMZ.obj \\r
+ $(TMP_DIR)\tclCompCmds.obj \\r
+ $(TMP_DIR)\tclCompExpr.obj \\r
+ $(TMP_DIR)\tclCompile.obj \\r
+ $(TMP_DIR)\tclDate.obj \\r
+ $(TMP_DIR)\tclEncoding.obj \\r
+ $(TMP_DIR)\tclEnv.obj \\r
+ $(TMP_DIR)\tclEvent.obj \\r
+ $(TMP_DIR)\tclExecute.obj \\r
+ $(TMP_DIR)\tclFCmd.obj \\r
+ $(TMP_DIR)\tclFileName.obj \\r
+ $(TMP_DIR)\tclGet.obj \\r
+ $(TMP_DIR)\tclHash.obj \\r
+ $(TMP_DIR)\tclHistory.obj \\r
+ $(TMP_DIR)\tclIndexObj.obj \\r
+ $(TMP_DIR)\tclInterp.obj \\r
+ $(TMP_DIR)\tclIO.obj \\r
+ $(TMP_DIR)\tclIOCmd.obj \\r
+ $(TMP_DIR)\tclIOGT.obj \\r
+ $(TMP_DIR)\tclIOSock.obj \\r
+ $(TMP_DIR)\tclIOUtil.obj \\r
+ $(TMP_DIR)\tclLink.obj \\r
+ $(TMP_DIR)\tclListObj.obj \\r
+ $(TMP_DIR)\tclLiteral.obj \\r
+ $(TMP_DIR)\tclLoad.obj \\r
+ $(TMP_DIR)\tclMain.obj \\r
+ $(TMP_DIR)\tclNamesp.obj \\r
+ $(TMP_DIR)\tclNotify.obj \\r
+ $(TMP_DIR)\tclObj.obj \\r
+ $(TMP_DIR)\tclPanic.obj \\r
+ $(TMP_DIR)\tclParse.obj \\r
+ $(TMP_DIR)\tclParseExpr.obj \\r
+ $(TMP_DIR)\tclPipe.obj \\r
+ $(TMP_DIR)\tclPkg.obj \\r
+ $(TMP_DIR)\tclPosixStr.obj \\r
+ $(TMP_DIR)\tclPreserve.obj \\r
+ $(TMP_DIR)\tclProc.obj \\r
+ $(TMP_DIR)\tclRegexp.obj \\r
+ $(TMP_DIR)\tclResolve.obj \\r
+ $(TMP_DIR)\tclResult.obj \\r
+ $(TMP_DIR)\tclScan.obj \\r
+ $(TMP_DIR)\tclStringObj.obj \\r
+ $(TMP_DIR)\tclStubInit.obj \\r
+ $(TMP_DIR)\tclStubLib.obj \\r
+ $(TMP_DIR)\tclThread.obj \\r
+ $(TMP_DIR)\tclThreadAlloc.obj \\r
+ $(TMP_DIR)\tclThreadJoin.obj \\r
+ $(TMP_DIR)\tclTimer.obj \\r
+ $(TMP_DIR)\tclUtf.obj \\r
+ $(TMP_DIR)\tclUtil.obj \\r
+ $(TMP_DIR)\tclVar.obj \\r
+ $(TMP_DIR)\tclWin32Dll.obj \\r
+ $(TMP_DIR)\tclWinChan.obj \\r
+ $(TMP_DIR)\tclWinConsole.obj \\r
+ $(TMP_DIR)\tclWinSerial.obj \\r
+ $(TMP_DIR)\tclWinError.obj \\r
+ $(TMP_DIR)\tclWinFCmd.obj \\r
+ $(TMP_DIR)\tclWinFile.obj \\r
+ $(TMP_DIR)\tclWinInit.obj \\r
+ $(TMP_DIR)\tclWinLoad.obj \\r
+ $(TMP_DIR)\tclWinMtherr.obj \\r
+ $(TMP_DIR)\tclWinNotify.obj \\r
+ $(TMP_DIR)\tclWinPipe.obj \\r
+ $(TMP_DIR)\tclWinSock.obj \\r
+ $(TMP_DIR)\tclWinThrd.obj \\r
+ $(TMP_DIR)\tclWinTime.obj \\r
+!if !$(STATIC_BUILD)\r
+ $(TMP_DIR)\tcl.res\r
+!endif\r
+\r
+TCLSTUBOBJS = $(TMP_DIR)\tclStubLib.obj\r
+\r
+### The following paths CANNOT have spaces in them.\r
+COMPATDIR = $(ROOT)\compat\r
+DOCDIR = $(ROOT)\doc\r
+GENERICDIR = $(ROOT)\generic\r
+TOOLSDIR = $(ROOT)\tools\r
+WINDIR = $(ROOT)\win\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Compile flags\r
+#---------------------------------------------------------------------\r
+\r
+!if !$(DEBUG)\r
+!if $(OPTIMIZING)\r
+### This cranks the optimization level to maximize speed\r
+cdebug = -O2 -Op -Gs\r
+!else\r
+cdebug =\r
+!endif\r
+!else if "$(MACHINE)" == "IA64"\r
+### Warnings are too many, can't support warnings into errors.\r
+cdebug = -Z7 -Od\r
+!else\r
+cdebug = -Z7 -WX -Od\r
+!endif\r
+\r
+### Declarations common to all compiler options\r
+cflags = -nologo -c -W3 -YX -Fp$(TMP_DIR)^\\r
+\r
+!if $(PENT_0F_ERRATA)\r
+cflags = $(cflags) -QI0f\r
+!endif\r
+\r
+!if $(ITAN_B_ERRATA)\r
+cflags = $(cflags) -QIA64_Bx\r
+!endif\r
+\r
+### Turn on the thread allocator, too.\r
+!if $(TCL_THREADS)\r
+cflags = $(cflags) -DUSE_THREAD_ALLOC=1\r
+!endif\r
+\r
+!if $(MSVCRT)\r
+crt = -MD$(DBGX)\r
+!else\r
+crt = -MT$(DBGX)\r
+!endif\r
+\r
+TCL_INCLUDES = -I"$(WINDIR)" -I"$(GENERICDIR)"\r
+BASE_CLFAGS = $(cflags) $(cdebug) $(crt) $(TCL_INCLUDES)\r
+CON_CFLAGS = $(cflags) $(cdebug) $(crt) -DCONSOLE\r
+TCL_CFLAGS = $(BASE_CLFAGS) $(OPTDEFINES)\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Link flags\r
+#---------------------------------------------------------------------\r
+\r
+!if $(DEBUG)\r
+ldebug = -debug:full -debugtype:cv\r
+!else\r
+ldebug = -release -opt:ref -opt:icf,3\r
+!endif\r
+\r
+### Declarations common to all linker options\r
+lflags = -nologo -machine:$(MACHINE) $(ldebug)\r
+\r
+!if $(PROFILE)\r
+lflags = $(lflags) -profile\r
+!endif\r
+\r
+!if $(ALIGN98_HACK) && !$(STATIC_BUILD)\r
+### Align sections for PE size savings.\r
+lflags = $(lflags) -opt:nowin98\r
+!else if !$(ALIGN98_HACK) && $(STATIC_BUILD)\r
+### Align sections for speed in loading by choosing the virtual page size.\r
+lflags = $(lflags) -align:4096\r
+!endif\r
+\r
+!if $(LOIMPACT)\r
+lflags = $(lflags) -ws:aggressive\r
+!endif\r
+\r
+dlllflags = $(lflags) -dll\r
+conlflags = $(lflags) -subsystem:console\r
+guilflags = $(lflags) -subsystem:windows\r
+\r
+baselibs = kernel32.lib advapi32.lib user32.lib\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# TclTest flags\r
+#---------------------------------------------------------------------\r
+\r
+!IF "$(TESTPAT)" != ""\r
+TESTFLAGS = -file $(TESTPAT)\r
+!ENDIF\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Project specific targets\r
+#---------------------------------------------------------------------\r
+\r
+release: setup $(TCLSH) $(TCLSTUBLIB) dlls\r
+core: setup $(TCLLIB) $(TCLSTUBLIB)\r
+shell: setup $(TCLSH)\r
+dlls: setup $(TCLPIPEDLL) $(TCLREGLIB) $(TCLDDELIB)\r
+all: setup $(TCLSH) $(TCLSTUBLIB) dlls $(CAT32) \r
+tcltest: setup $(TCLTEST) dlls $(CAT32)\r
+install: install-binaries install-libraries install-docs\r
+\r
+\r
+test: setup $(TCLTEST) dlls $(CAT32)\r
+ set TCL_LIBRARY=$(ROOT)/library\r
+!if "$(OS)" == "Windows_NT" || "$(MSVCDIR)" == "IDE"\r
+ $(TCLTEST) $(ROOT)/tests/all.tcl $(TESTFLAGS)\r
+!else\r
+ $(TCLTEST) $(ROOT)/tests/all.tcl $(TESTFLAGS) > tests.log\r
+ type tests.log | more\r
+!endif\r
+\r
+runtest: setup $(TCLTEST) dlls $(CAT32)\r
+ set TCL_LIBRARY=$(ROOT)/library\r
+ $(TCLTEST)\r
+\r
+setup:\r
+ @if not exist $(OUT_DIR)\nul mkdir $(OUT_DIR)\r
+ @if not exist $(TMP_DIR)\nul mkdir $(TMP_DIR)\r
+\r
+!if !$(STATIC_BUILD)\r
+$(TCLIMPLIB): $(TCLLIB)\r
+!endif\r
+\r
+$(TCLLIB): $(TCLOBJS)\r
+!if $(STATIC_BUILD)\r
+ $(lib32) -nologo -out:$@ @<<\r
+$**\r
+<<\r
+!else\r
+ $(link32) $(dlllflags) -base:@$(WINDIR)\coffbase.txt,tcl -out:$@ \\r
+ $(baselibs) @<<\r
+$**\r
+<<\r
+ -@del $*.exp\r
+!endif\r
+\r
+$(TCLSTUBLIB): $(TCLSTUBOBJS)\r
+ $(lib32) -nologo -out:$@ $(TCLSTUBOBJS)\r
+\r
+$(TCLSH): $(TCLSHOBJS) $(TCLIMPLIB)\r
+ $(link32) $(conlflags) -stack:2300000 -out:$@ $(baselibs) $**\r
+\r
+$(TCLTEST): $(TCLTESTOBJS) $(TCLIMPLIB)\r
+ $(link32) $(conlflags) -stack:2300000 -out:$@ $(baselibs) $**\r
+\r
+$(TCLPIPEDLL): $(WINDIR)\stub16.c\r
+ $(cc32) $(CON_CFLAGS) -Fo$(TMP_DIR)\ $(WINDIR)\stub16.c\r
+ $(link32) $(conlflags) -out:$@ $(TMP_DIR)\stub16.obj $(baselibs)\r
+\r
+!if $(STATIC_BUILD)\r
+$(TCLDDELIB): $(TMP_DIR)\tclWinDde.obj\r
+ $(lib32) -nologo -out:$@ $(TMP_DIR)\tclWinDde.obj\r
+!else\r
+$(TCLDDELIB): $(TMP_DIR)\tclWinDde.obj $(TCLSTUBLIB)\r
+ $(link32) $(dlllflags) -base:@$(WINDIR)\coffbase.txt,tcldde -out:$@ \\r
+ $** $(baselibs)\r
+ -@del $*.exp\r
+ -@del $*.lib\r
+!endif\r
+\r
+!if $(STATIC_BUILD)\r
+$(TCLREGLIB): $(TMP_DIR)\tclWinReg.obj\r
+ $(lib32) -nologo -out:$@ $(TMP_DIR)\tclWinReg.obj\r
+!else\r
+$(TCLREGLIB): $(TMP_DIR)\tclWinReg.obj $(TCLSTUBLIB)\r
+ $(link32) $(dlllflags) -base:@$(WINDIR)\coffbase.txt,tclreg -out:$@ \\r
+ $** $(baselibs)\r
+ -@del $*.exp\r
+ -@del $*.lib\r
+!endif\r
+\r
+$(CAT32): $(WINDIR)\cat.c\r
+ $(cc32) $(CON_CFLAGS) -Fo$(TMP_DIR)\ $?\r
+ $(link32) $(conlflags) -out:$@ -stack:16384 $(TMP_DIR)\cat.obj \\r
+ $(baselibs)\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Regenerate the stubs files. [Development use only]\r
+#---------------------------------------------------------------------\r
+\r
+genstubs:\r
+!if !exist($(TCLSH))\r
+ @echo Build tclsh first!\r
+!else\r
+ $(TCLSH) $(TOOLSDIR:\=/)\genStubs.tcl $(GENERICDIR:\=/) \\r
+ $(GENERICDIR:\=/)/tcl.decls $(GENERICDIR:\=/)/tclInt.decls\r
+!endif\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Generate the makefile depedancies.\r
+#---------------------------------------------------------------------\r
+\r
+depend:\r
+!if !exist($(TCLSH))\r
+ @echo Build tclsh first!\r
+!else\r
+ $(TCLSH) $(TOOLSDIR:\=/)/mkdepend.tcl -vc32 -out:"$(OUT_DIR)\depend.mk" \\r
+ -passthru:"-DBUILD_tcl $(TCL_INCLUDES:"="")" $(GENERICDIR) \\r
+ $(COMPATDIR) $(WINDIR) @<<\r
+$(TCLOBJS)\r
+<<\r
+!endif\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Build the windows help file.\r
+#---------------------------------------------------------------------\r
+\r
+TCLHLPBASE = $(PROJECT)$(VERSION)\r
+HELPFILE = $(OUT_DIR)\$(TCLHLPBASE).hlp\r
+HELPCNT = $(OUT_DIR)\$(TCLHLPBASE).cnt\r
+DOCTMP_DIR = $(OUT_DIR)\$(PROJECT)_docs\r
+HELPRTF = $(DOCTMP_DIR)\$(PROJECT).rtf\r
+MAN2HELP = $(DOCTMP_DIR)\man2help.tcl\r
+MAN2HELP2 = $(DOCTMP_DIR)\man2help2.tcl\r
+INDEX = $(DOCTMP_DIR)\index.tcl\r
+BMP = $(DOCTMP_DIR)\feather.bmp\r
+BMP_NOPATH = feather.bmp\r
+MAN2TCL = $(DOCTMP_DIR)\man2tcl.exe\r
+\r
+winhelp: docsetup $(HELPFILE)\r
+\r
+docsetup:\r
+ @if not exist $(DOCTMP_DIR)\nul mkdir $(DOCTMP_DIR)\r
+\r
+$(MAN2HELP) $(MAN2HELP2) $(INDEX) $(BMP): $(TOOLSDIR)\$$(@F)\r
+ copy $(TOOLSDIR)\$(@F) $(@D)\r
+\r
+$(HELPFILE): $(HELPRTF) $(BMP)\r
+ cd $(DOCTMP_DIR)\r
+ start /wait hcrtf.exe -x <<$(PROJECT).hpj\r
+[OPTIONS]\r
+COMPRESS=12 Hall Zeck\r
+LCID=0x409 0x0 0x0 ; English (United States)\r
+TITLE=Tcl/Tk Reference Manual\r
+BMROOT=.\r
+CNT=$(@B).cnt\r
+HLP=$(@B).hlp\r
+\r
+[FILES]\r
+$(PROJECT).rtf\r
+\r
+[WINDOWS]\r
+main="Tcl/Tk Reference Manual",,27648,(r15263976),(r65535)\r
+\r
+[CONFIG]\r
+BrowseButtons()\r
+CreateButton(1, "Web", ExecFile("http://www.tcl.tk"))\r
+CreateButton(2, "SF", ExecFile("http://sf.net/projects/tcl"))\r
+CreateButton(3, "Wiki", ExecFile("http://wiki.tcl.tk"))\r
+CreateButton(4, "FAQ", ExecFile("http://www.purl.org/NET/Tcl-FAQ/"))\r
+<<\r
+ cd $(MAKEDIR)\r
+ copy "$(DOCTMP_DIR)\$(@B).hlp" "$(OUT_DIR)"\r
+ copy "$(DOCTMP_DIR)\$(@B).cnt" "$(OUT_DIR)"\r
+\r
+$(MAN2TCL): $(TOOLSDIR)\$$(@B).c\r
+ $(cc32) -nologo -G4 -ML -O2 -Fo$(@D)\ $(TOOLSDIR)\$(@B).c -link -out:$@\r
+\r
+$(HELPRTF): $(MAN2TCL) $(MAN2HELP) $(MAN2HELP2) $(INDEX) $(DOCDIR)\*\r
+ $(TCLSH) $(MAN2HELP:\=/) -bitmap $(BMP_NOPATH) $(PROJECT) $(VERSION) $(DOCDIR:\=/)\r
+\r
+install-docs:\r
+!if exist($(HELPFILE))\r
+ @xcopy /i /y "$(HELPFILE)" "$(DOC_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(HELPCNT)" "$(DOC_INSTALL_DIR)\"\r
+!endif\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Special case object file targets\r
+#---------------------------------------------------------------------\r
+\r
+$(TMP_DIR)\testMain.obj: $(WINDIR)\tclAppInit.c\r
+!if $(TCL_LINKWITHEXTENSIONS)\r
+ $(cc32) $(TCL_CFLAGS) -DTCL_TEST -DTCL_LINKWITHEXTENSIONS -Fo$@ $?\r
+!else\r
+ $(cc32) $(TCL_CFLAGS) -DTCL_TEST -Fo$@ $?\r
+!endif\r
+\r
+$(TMP_DIR)\tclTest.obj: $(GENERICDIR)\tclTest.c\r
+ $(cc32) $(TCL_CFLAGS) -Fo$@ $?\r
+\r
+$(TMP_DIR)\tclTestObj.obj: $(GENERICDIR)\tclTestObj.c\r
+ $(cc32) $(TCL_CFLAGS) -Fo$@ $?\r
+\r
+$(TMP_DIR)\tclWinTest.obj: $(WINDIR)\tclWinTest.c\r
+ $(cc32) $(TCL_CFLAGS) -Fo$@ $?\r
+\r
+$(TMP_DIR)\tclAppInit.obj: $(WINDIR)\tclAppInit.c\r
+!if $(TCL_LINKWITHEXTENSIONS)\r
+ $(cc32) $(TCL_CFLAGS) -DTCL_LINKWITHEXTENSIONS -Fo$@ $?\r
+!else\r
+ $(cc32) $(TCL_CFLAGS) -Fo$@ $?\r
+!endif\r
+\r
+### The following objects should be built using the stub interfaces\r
+\r
+$(TMP_DIR)\tclWinReg.obj: $(WINDIR)\tclWinReg.c\r
+!if $(STATIC_BUILD)\r
+ $(cc32) $(BASE_CLFAGS) -DTCL_THREADS=1 -DSTATIC_BUILD -Fo$@ $?\r
+!else\r
+ $(cc32) $(BASE_CLFAGS) -DTCL_THREADS=1 -DUSE_TCL_STUBS -Fo$@ $?\r
+!endif\r
+\r
+\r
+$(TMP_DIR)\tclWinDde.obj: $(WINDIR)\tclWinDde.c\r
+!if $(STATIC_BUILD)\r
+ $(cc32) $(BASE_CLFAGS) -DTCL_THREADS=1 -DSTATIC_BUILD -Fo$@ $?\r
+!else\r
+ $(cc32) $(BASE_CLFAGS) -DTCL_THREADS=1 -DUSE_TCL_STUBS -Fo$@ $?\r
+!endif\r
+\r
+\r
+### The following objects are part of the stub library and should not\r
+### be built as DLL objects but none of the symbols should be exported\r
+\r
+$(TMP_DIR)\tclStubLib.obj: $(GENERICDIR)\tclStubLib.c\r
+ $(cc32) $(cdebug) $(cflags) -Zl -DSTATIC_BUILD $(TCL_INCLUDES) -Fo$@ $?\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Dedependency rules\r
+#---------------------------------------------------------------------\r
+\r
+$(GENERICDIR)\regcomp.c: \\r
+ $(GENERICDIR)\regguts.h \\r
+ $(GENERICDIR)\regc_lex.c \\r
+ $(GENERICDIR)\regc_color.c \\r
+ $(GENERICDIR)\regc_nfa.c \\r
+ $(GENERICDIR)\regc_cvec.c \\r
+ $(GENERICDIR)\regc_locale.c\r
+$(GENERICDIR)\regcustom.h: \\r
+ $(GENERICDIR)\tclInt.h \\r
+ $(GENERICDIR)\tclPort.h \\r
+ $(GENERICDIR)\regex.h\r
+$(GENERICDIR)\regexec.c: \\r
+ $(GENERICDIR)\rege_dfa.c \\r
+ $(GENERICDIR)\regguts.h\r
+$(GENERICDIR)\regerror.c: $(GENERICDIR)\regguts.h\r
+$(GENERICDIR)\regfree.c: $(GENERICDIR)\regguts.h\r
+$(GENERICDIR)\regfronts.c: $(GENERICDIR)\regguts.h\r
+$(GENERICDIR)\regguts.h: $(GENERICDIR)\regcustom.h\r
+\r
+!if exist("$(OUT_DIR)\depend.mk")\r
+!include "$(OUT_DIR)\depend.mk"\r
+!message *** Dependency rules in effect.\r
+!else\r
+!message *** Dependency rules are not being used.\r
+!endif\r
+\r
+### add a spacer in the output\r
+!message\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Implicit rules\r
+#---------------------------------------------------------------------\r
+\r
+{$(WINDIR)}.c{$(TMP_DIR)}.obj::\r
+ $(cc32) $(TCL_CFLAGS) -DBUILD_tcl -Fo$(TMP_DIR)\ @<<\r
+$<\r
+<<\r
+\r
+{$(GENERICDIR)}.c{$(TMP_DIR)}.obj::\r
+ $(cc32) $(TCL_CFLAGS) -DBUILD_tcl -Fo$(TMP_DIR)\ @<<\r
+$<\r
+<<\r
+\r
+{$(COMPATDIR)}.c{$(TMP_DIR)}.obj::\r
+ $(cc32) $(TCL_CFLAGS) -DBUILD_tcl -Fo$(TMP_DIR)\ @<<\r
+$<\r
+<<\r
+\r
+{$(WINDIR)}.rc{$(TMP_DIR)}.res:\r
+ $(rc32) -fo $@ -r -i "$(GENERICDIR)" -D__WIN32__ \\r
+!if $(DEBUG)\r
+ -d DEBUG \\r
+!endif\r
+!if $(TCL_THREADS)\r
+ -d TCL_THREADS \\r
+!endif\r
+!if $(STATIC_BUILD)\r
+ -d STATIC_BUILD \\r
+!endif\r
+ $<\r
+\r
+.SUFFIXES:\r
+.SUFFIXES:.c .rc\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Installation.\r
+#---------------------------------------------------------------------\r
+\r
+install-binaries:\r
+ @echo installing $(TCLLIBNAME)\r
+!if "$(TCLLIB)" != "$(TCLIMPLIB)"\r
+ @xcopy /i /y "$(TCLLIB)" "$(BIN_INSTALL_DIR)\"\r
+!endif\r
+ @xcopy /i /y "$(TCLIMPLIB)" "$(LIB_INSTALL_DIR)\"\r
+!if exist($(TCLSH))\r
+ @echo installing $(TCLSHNAME)\r
+ @xcopy /i /y "$(TCLSH)" "$(BIN_INSTALL_DIR)\"\r
+!endif\r
+!if exist($(TCLPIPEDLL))\r
+ @echo installing $(TCLPIPEDLLNAME)\r
+ @xcopy /i /y "$(TCLPIPEDLL)" "$(BIN_INSTALL_DIR)\"\r
+!endif\r
+ @echo installing $(TCLSTUBLIBNAME)\r
+ @xcopy /i /y "$(TCLSTUBLIB)" "$(LIB_INSTALL_DIR)\"\r
+\r
+install-libraries:\r
+ @echo installing http1.0\r
+ @xcopy /i /y "$(ROOT)\library\http1.0\*.tcl" \\r
+ "$(SCRIPT_INSTALL_DIR)\http1.0\"\r
+ @echo installing http2.4\r
+ @xcopy /i /y "$(ROOT)\library\http\*.tcl" \\r
+ "$(SCRIPT_INSTALL_DIR)\http2.4\"\r
+ @echo installing opt0.4\r
+ @xcopy /i /y "$(ROOT)\library\opt\*.tcl" \\r
+ "$(SCRIPT_INSTALL_DIR)\opt0.4\"\r
+ @echo installing msgcat1.3\r
+ @xcopy /i /y "$(ROOT)\library\msgcat\*.tcl" \\r
+ "$(SCRIPT_INSTALL_DIR)\msgcat1.3\"\r
+ @echo installing tcltest2.2 \r
+ @xcopy /i /y "$(ROOT)\library\tcltest\*.tcl" \\r
+ "$(SCRIPT_INSTALL_DIR)\tcltest2.2\"\r
+ @echo installing $(TCLDDELIBNAME)\r
+!if $(STATIC_BUILD)\r
+ @xcopy /i /y "$(TCLDDELIB)" "$(LIB_INSTALL_DIR)\"\r
+!else\r
+ @xcopy /i /y "$(TCLDDELIB)" "$(LIB_INSTALL_DIR)\dde$(DDEDOTVERSION)\"\r
+ @xcopy /i /y "$(ROOT)\library\dde\pkgIndex.tcl" \\r
+ "$(LIB_INSTALL_DIR)\dde$(DDEDOTVERSION)\"\r
+!endif\r
+ @echo installing $(TCLREGLIBNAME)\r
+!if $(STATIC_BUILD)\r
+ @xcopy /i /y "$(TCLREGLIB)" "$(LIB_INSTALL_DIR)\"\r
+!else\r
+ @xcopy /i /y "$(TCLREGLIB)" "$(LIB_INSTALL_DIR)\reg$(REGDOTVERSION)\"\r
+ @xcopy /i /y "$(ROOT)\library\reg\pkgIndex.tcl" \\r
+ "$(LIB_INSTALL_DIR)\reg$(REGDOTVERSION)\"\r
+!endif\r
+ @echo installing encoding files\r
+ @xcopy /i /y "$(ROOT)\library\encoding\*.enc" \\r
+ "$(SCRIPT_INSTALL_DIR)\encoding\"\r
+ @echo installing library files\r
+ @xcopy /i /y "$(GENERICDIR)\tcl.h" "$(INCLUDE_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(GENERICDIR)\tclDecls.h" "$(INCLUDE_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(GENERICDIR)\tclPlatDecls.h" "$(INCLUDE_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(ROOT)\library\history.tcl" "$(SCRIPT_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(ROOT)\library\init.tcl" "$(SCRIPT_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(ROOT)\library\ldAout.tcl" "$(SCRIPT_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(ROOT)\library\parray.tcl" "$(SCRIPT_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(ROOT)\library\safe.tcl" "$(SCRIPT_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(ROOT)\library\tclIndex" "$(SCRIPT_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(ROOT)\library\package.tcl" "$(SCRIPT_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(ROOT)\library\word.tcl" "$(SCRIPT_INSTALL_DIR)\"\r
+ @xcopy /i /y "$(ROOT)\library\auto.tcl" "$(SCRIPT_INSTALL_DIR)\"\r
+\r
+\r
+#---------------------------------------------------------------------\r
+# Clean up\r
+#---------------------------------------------------------------------\r
+\r
+!if "$(OS)" == "Windows_NT"\r
+RMDIR = rmdir /S /Q\r
+!else\r
+RMDIR = deltree /Y\r
+!endif\r
+\r
+tidy:\r
+ if exist $(TCLLIB) del $(TCLLIB)\r
+ if exist $(TCLSH) del $(TCLSH)\r
+ if exist $(TCLTEST) del $(TCLTEST)\r
+ if exist $(TCLDDELIB) del $(TCLDDELIB)\r
+ if exist $(TCLREGLIB) del $(TCLREGLIB)\r
+\r
+clean:\r
+ if exist $(TMP_DIR)\nul $(RMDIR) $(TMP_DIR)\r
+\r
+hose:\r
+ if exist $(OUT_DIR)\nul $(RMDIR) $(OUT_DIR)\r
+\r