summaryrefslogtreecommitdiff
path: root/itcl/itcl/win/makefile.vc
diff options
context:
space:
mode:
Diffstat (limited to 'itcl/itcl/win/makefile.vc')
-rw-r--r--itcl/itcl/win/makefile.vc598
1 files changed, 297 insertions, 301 deletions
diff --git a/itcl/itcl/win/makefile.vc b/itcl/itcl/win/makefile.vc
index 92a0827d0cb..92fb39c2eaf 100644
--- a/itcl/itcl/win/makefile.vc
+++ b/itcl/itcl/win/makefile.vc
@@ -1,301 +1,297 @@
-# 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) 1993-1998 Lucent Technologies, Inc.
-# RCS: $Id$
-
-# Does not depend on the presence of any environment variables in
-# order to compile itcl; all needed information is derived from
-# location of the compiler directories.
-#
-# NOTE: Be sure to modify the "makefile.vc" file in the toplevel directory
-# for the itcl distribution. Include the location of your VC++ development
-# tools and the installation directory.
-
-!include "..\..\makefile.vc"
-
-
-# ROOT = top of source tree
-# TMPDIR = location where .obj files should be stored during build
-
-ROOT = ..
-
-######################################################################
-# Do not modify below this line
-######################################################################
-
-NAMEPREFIX = itcl
-DOTVERSION = 3.1
-VERSION = 31
-STUBPREFIX = $(NAMEPREFIX)stub
-
-BINROOT = .
-!IF "$(NODEBUG)" == "1"
-TMPNAME = Release
-DBGX =
-!ELSE
-TMPNAME = Debug
-DBGX = d
-!ENDIF
-TMPDIR = $(BINROOT)\$(TMPNAME)
-OUTDIR = $(TMPDIR)
-
-PKGINDEX = $(TMPDIR)\pkgIndex.tcl
-
-ITCLLIB = $(OUTDIR)\$(NAMEPREFIX)$(VERSION)$(DBGX).lib
-ITCLDLLNAME = $(NAMEPREFIX)$(VERSION)$(DBGX).dll
-ITCLDLL = $(OUTDIR)\$(ITCLDLLNAME)
-ITCLSH = $(OUTDIR)\$(NAMEPREFIX)sh$(VERSION)$(DBGX).exe
-DUMPEXTS = $(TMPDIR)\dumpexts.exe
-
-TCLLIB = $(TCLDIR)\win\$(OUTDIR)\tcl81$(DBGX).lib
-TCLSTUBLIB = $(TCLDIR)\win\$(OUTDIR)\tclstub81$(DBGX).lib
-TCLDLL = $(TCLDIR)\win\$(OUTDIR)\tcl81$(DBGX).dll
-
-ITCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION)$(DBGX).lib
-ITCLSTUBLIB = $(OUTDIR)\$(ITCLSTUBLIBNAME)
-
-LIB_INSTALL_DIR = $(INSTALLDIR)\lib
-BIN_INSTALL_DIR = $(INSTALLDIR)\bin
-SCRIPT_INSTALL_DIR = $(INSTALLDIR)\lib\itcl$(DOTVERSION)
-INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include
-
-ITCLSHOBJS = \
- $(TMPDIR)\tclAppInit.obj
-
-ITCLOBJS = \
- $(TMPDIR)\itclStubInit.obj \
- $(TMPDIR)\itcl_bicmds.obj \
- $(TMPDIR)\itcl_class.obj \
- $(TMPDIR)\itcl_cmds.obj \
- $(TMPDIR)\itcl_ensemble.obj \
- $(TMPDIR)\itcl_linkage.obj \
- $(TMPDIR)\itcl_migrate.obj \
- $(TMPDIR)\itcl_methods.obj \
- $(TMPDIR)\itcl_objects.obj \
- $(TMPDIR)\itcl_obsolete.obj \
- $(TMPDIR)\itcl_parse.obj \
- $(TMPDIR)\itcl_util.obj \
- $(TMPDIR)\dllEntryPoint.obj
-
-ITCLSTUBOBJS = \
- $(TMPDIR)\itclStubLib.obj
-
-cc32 = $(TOOLS32)\bin\cl.exe
-link32 = $(TOOLS32)\bin\link.exe
-rc32 = $(TOOLS32_rc)\bin\rc.exe
-include32 = -I$(TOOLS32)\include
-lib32 = "$(TOOLS32)\bin\lib.exe"
-
-WINDIR = $(ROOT)\win
-GENERICDIR = $(ROOT)\generic
-
-ITCL_INCLUDES = -I$(WINDIR) -I$(GENERICDIR) -I$(TCLDIR)\generic
-ITCL_DEFINES = -D__WIN32__ -DBUILD_itcl $(DEBUGDEFINES)
-
-ITCL_EXE_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) \
- $(ITCL_INCLUDES) $(ITCL_DEFINES)
-
-ITCL_CFLAGS = $(ITCL_EXE_CFLAGS) -DUSE_TCL_STUBS
-
-######################################################################
-# Link flags
-######################################################################
-
-!IF "$(NODEBUG)" == "1"
-ldebug = /RELEASE
-!ELSE
-ldebug = -debug:full -debugtype:cv
-!ENDIF
-
-# declarations common to all linker options
-lcommon = /NODEFAULTLIB /RELEASE /NOLOGO
-
-# declarations for use on Intel i386, i486, and Pentium systems
-!IF "$(MACHINE)" == "IX86"
-DLLENTRY = @12
-lflags = $(lcommon) /MACHINE:$(MACHINE)
-!ELSE
-lflags = $(lcommon) /MACHINE:$(MACHINE)
-!ENDIF
-
-conlflags = $(lflags) -subsystem:console -entry:mainCRTStartup
-guilflags = $(lflags) -subsystem:windows -entry:WinMainCRTStartup
-dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
-
-!IF "$(MACHINE)" == "PPC"
-libc = libc.lib
-libcdll = crtdll.lib
-!ELSE
-libc = libc.lib oldnames.lib
-libcdll = msvcrt.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)
-
-######################################################################
-# Compile flags
-######################################################################
-
-!IF "$(NODEBUG)" == "1"
-!IF "$(MACHINE)" == "ALPHA"
-# MSVC on Alpha doesn't understand -Ot
-cdebug = -O2i -Gs -GD
-!ELSE
-cdebug = -Oti -Gs -GD
-!ENDIF
-!ELSE
-cdebug = -Z7 -Od -WX
-!ENDIF
-
-# declarations common to all compiler options
-ccommon = -c -W3 -nologo -YX -Fp$(TMPDIR)\ -Dtry=__try -Dexcept=__except
-
-!IF "$(MACHINE)" == "IX86"
-cflags = $(ccommon) -D_X86_=1
-!ELSE
-!IF "$(MACHINE)" == "MIPS"
-cflags = $(ccommon) -D_MIPS_=1
-!ELSE
-!IF "$(MACHINE)" == "PPC"
-cflags = $(ccommon) -D_PPC_=1
-!ELSE
-!IF "$(MACHINE)" == "ALPHA"
-cflags = $(ccommon) -D_ALPHA_=1
-!ENDIF
-!ENDIF
-!ENDIF
-!ENDIF
-
-cvars = -DWIN32 -D_WIN32
-cvarsmt = $(cvars) -D_MT
-cvarsdll = $(cvarsmt) -D_DLL
-
-!IF "$(NODEBUG)" == "1"
-cvarsdll = $(cvars) -MD
-!ELSE
-cvarsdll = $(cvars) -MDd
-!ENDIF
-
-CON_CFLAGS = $(cdebug) $(cflags) $(cvars) $(include32) -DCONSOLE
-
-######################################################################
-# Project specific targets
-######################################################################
-
-release: setup $(ITCLDLL) $(ITCLSTUBLIB) $(ITCLSH)
-all: setup $(ITCLDLL) $(ITCLSTUBLIB) $(ITCLSH)
-test: setup $(ITCLDLL) $(ITCLSTUBLIB) $(PKGINDEX)
- -@copy $(TCLDLL) $(TMPDIR)
- $(TCLSH) <<
- cd ../tests
- lappend auto_path ../win/$(TMPNAME)
- set env(ITCL_LIBRARY) ../library
- source all
-<<
-
-$(PKGINDEX):
- -@copy pkgIndex.tcl $@
-
-setup:
- if not exist $(TMPDIR) mkdir $(TMPDIR)
- if not exist $(OUTDIR) mkdir $(OUTDIR)
-
-$(ITCLLIB): $(ITCLDLL)
-
-$(ITCLDLL): $(ITCLOBJS) $(TMPDIR)\itclvc.def $(TMPDIR)\itcl.res
- set LIB=$(TOOLS32)\lib
- $(link32) $(ldebug) $(dlllflags) -def:$(TMPDIR)\itclvc.def \
- -out:$@ $(TMPDIR)\itcl.res $(guilibsdll) $(TCLSTUBLIB) @<<
- $(ITCLOBJS)
-<<
-
-$(ITCLSTUBLIB): $(ITCLSTUBOBJS)
- $(lib32) -nologo -out:$@ $(ITCLSTUBOBJS)
-
-$(ITCLSH): $(ITCLSHOBJS) $(ITCLSTUBLIB) $(TCLSTUBLIB) $(TMPDIR)\itclsh.res
- set LIB=$(TOOLS32)\lib
- $(link32) $(ldebug) $(conlflags) $(TMPDIR)\itclsh.res -stack:2300000 \
- -out:$@ $(conlibsdll) $(ITCLLIB) $(TCLLIB) $(ITCLSHOBJS)
-
-$(TMPDIR)\itclvc.def: $(DUMPEXTS) $(ITCLOBJS)
- $(DUMPEXTS) -o $@ $(ITCLDLLNAME) @<<
-$(ITCLOBJS)
-<<
-
-$(DUMPEXTS): $(TCLDIR)\win\winDumpExts.c
- $(cc32) $(CON_CFLAGS) -Fo$(TMPDIR)\ $?
- set LIB=$(TOOLS32)\lib
- $(link32) $(ldebug) $(conlflags) $(guilibs) -out:$@ \
- $(TMPDIR)\winDumpExts.obj
-
-install: all
- if not exist $(INSTALLDIR) mkdir $(INSTALLDIR)
- if not exist $(BIN_INSTALL_DIR) mkdir $(BIN_INSTALL_DIR)
- if not exist $(LIB_INSTALL_DIR) mkdir $(LIB_INSTALL_DIR)
- if not exist $(SCRIPT_INSTALL_DIR) mkdir $(SCRIPT_INSTALL_DIR)
- if not exist $(INCLUDE_INSTALL_DIR) mkdir $(INCLUDE_INSTALL_DIR)
- copy $(ITCLSH) "$(BIN_INSTALL_DIR)"
- copy $(ITCLDLL) "$(BIN_INSTALL_DIR)"
- copy $(ROOT)\generic\itcl.h "$(INCLUDE_INSTALL_DIR)"
- copy $(ROOT)\library\*.* "$(SCRIPT_INSTALL_DIR)"
- copy $(ROOT)\win\*.tcl "$(SCRIPT_INSTALL_DIR)"
-
-#
-# Regenerate the stubs files.
-#
-genstubs:
- $(TCLSH) $(TCLDIR)\tools\genStubs.tcl $(GENERICDIR) \
- $(GENERICDIR)\itcl.decls $(GENERICDIR)\itclInt.decls
-
-#
-# Special case object file targets
-#
-
-$(TMPDIR)\tclAppInit.obj : $(WINDIR)\tclAppInit.c
- $(cc32) $(ITCL_EXE_CFLAGS) -Fo$@ $?
-
-# The following object is part of the stub library and should not
-# be built as DLL objects but none of the symbols should be exported
-
-$(TMPDIR)\itclStubLib.obj : $(GENERICDIR)\itclStubLib.c
- $(cc32) -DSTATIC_BUILD $(ITCL_CFLAGS) -Fo$@ $?
-
-#
-# Implicit rules
-#
-
-{$(WINDIR)}.c{$(TMPDIR)}.obj:
- $(cc32) -DDLL_BUILD $(ITCL_CFLAGS) -Fo$(TMPDIR)\ $<
-
-{$(GENERICDIR)}.c{$(TMPDIR)}.obj:
- $(cc32) -DDLL_BUILD $(ITCL_CFLAGS) -Fo$(TMPDIR)\ $<
-
-{$(ROOT)\compat}.c{$(TMPDIR)}.obj:
- $(cc32) -DDLL_BUILD $(ITCL_CFLAGS) -Fo$(TMPDIR)\ $<
-
-{$(WINDIR)}.rc{$(TMPDIR)}.res:
- $(rc32) -fo $@ -r -i $(GENERICDIR) -i $(WINDIR) -i $(TCLDIR)\generic -D__WIN32__ \
- $(ITCL_DEFINES) $<
-
-clean:
- -@del $(OUTDIR)\*.exp
- -@del $(OUTDIR)\*.lib
- -@del $(OUTDIR)\*.dll
- -@del $(OUTDIR)\*.exe
- -@del $(OUTDIR)\*.pdb
- -@del $(TMPDIR)\*.pch
- -@del $(TMPDIR)\*.obj
- -@del $(TMPDIR)\*.res
- -@del $(TMPDIR)\*.def
- -@del $(TMPDIR)\*.exe
- -@rmdir $(OUTDIR)
- -@rmdir $(TMPDIR)
+######################################################################
+# Visual C++ 5.0+ makefile for [Incr Tcl]
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# Copyright (c) 1993-1998 Lucent Technologies, Inc.
+# RCS: $Id$
+######################################################################
+# All needed information is derived from running vcvars32.bat
+#
+# NOTE: Be sure to modify the "config.vc" file in the toplevel directory
+# before running this makefile.
+######################################################################
+# Do not modify this file! modify config.vc to effect the build.
+######################################################################
+
+!include "..\..\rules.vc"
+!include "..\..\config.vc"
+!include "..\..\pkg.vc"
+
+BINROOT = .
+ROOT = ..
+NAMEPREFIX = itcl
+STUBPREFIX = $(NAMEPREFIX)stub
+
+!if $(DEBUG)
+TMPNAME = Debug
+DBGX = d
+!else
+TMPNAME = Release
+DBGX =
+!endif
+
+TMP_DIR = $(BINROOT)\$(TMPNAME)
+
+!ifndef OUT_DIR
+OUT_DIR = $(TMP_DIR)
+!endif
+
+PKGINDEX = "$(TMP_DIR)\pkgIndex.tcl"
+
+!if $(STATIC_BUILD)
+ITCLOUTNAME = $(NAMEPREFIX)$(ITCL_VERSION)s$(DBGX)
+ITCLTARGET = "$(OUT_DIR)\$(ITCLOUTNAME).lib"
+!else
+ITCLOUTNAME = $(NAMEPREFIX)$(ITCL_VERSION)$(DBGX)
+ITCLIMPLIB = "$(OUT_DIR)\$(ITCLOUTNAME).lib"
+ITCLTARGET = "$(OUT_DIR)\$(ITCLOUTNAME).dll"
+!endif
+
+!if $(ISTCLINSTALL)
+TCLSTUBLIB = "$(TCLROOT)\lib\tclstub$(TCL_VERSION).lib"
+TCLIMPLIB = "$(TCLROOT)\lib\tcl$(TCL_VERSION)$(DBGX).lib"
+TCLSH = "$(TCLROOT)\bin\tclsh$(TCL_VERSION)$(DBGX).exe"
+!else
+TCLSTUBLIB = "$(TCLROOT)\win\Release\tclstub$(TCL_VERSION).lib"
+TCLIMPLIB = "$(TCLROOT)\win\$(OUT_DIR)\tcl$(TCL_VERSION)$(DBGX).lib"
+TCLSH = "$(TCLROOT)\win\$(OUT_DIR)\tclsh$(TCL_VERSION)$(DBGX).exe"
+!endif
+
+ITCLSTUBLIBNAME = $(STUBPREFIX)$(ITCL_VERSION)$(DBGX).lib
+ITCLSTUBLIB = "$(OUT_DIR)\$(ITCLSTUBLIBNAME)"
+
+LIB_INSTALL_DIR = $(INSTALLDIR)\lib
+BIN_INSTALL_DIR = $(INSTALLDIR)\bin
+SCRIPT_INSTALL_DIR = $(INSTALLDIR)\lib\itcl$(ITCL_DOTVERSION)
+INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include
+
+ITCLSHOBJS = \
+ $(TMP_DIR)\tclAppInit.obj
+
+ITCLOBJS = \
+ $(TMP_DIR)\itcl_bicmds.obj \
+ $(TMP_DIR)\itcl_class.obj \
+ $(TMP_DIR)\itcl_cmds.obj \
+ $(TMP_DIR)\itcl_ensemble.obj \
+ $(TMP_DIR)\itcl_linkage.obj \
+ $(TMP_DIR)\itcl_migrate.obj \
+ $(TMP_DIR)\itcl_methods.obj \
+ $(TMP_DIR)\itcl_objects.obj \
+ $(TMP_DIR)\itcl_obsolete.obj \
+ $(TMP_DIR)\itcl_parse.obj \
+ $(TMP_DIR)\itcl_util.obj \
+!if $(STATIC_BUILD) == 0
+ $(TMP_DIR)\dllEntryPoint.obj \
+ $(TMP_DIR)\dllResource.obj \
+!endif
+ $(TMP_DIR)\itclStubInit.obj
+
+ITCLSTUBOBJS = \
+ $(TMP_DIR)\itclStubLib.obj
+
+WINDIR = $(ROOT)\win
+GENERICDIR = $(ROOT)\generic
+RCDIR = $(ROOT)\win\rc
+
+######################################################################
+# Link flags
+######################################################################
+
+!if $(DEBUG)
+ldebug = -debug:full -debugtype:cv -pdb:none
+!else
+ldebug = -release -opt:ref
+!endif
+
+# declarations common to all linker options
+lcommon = -nologo -link50compat -machine:$(MACHINE)
+
+ITCL_LFLAGS = $(lcommon) -subsystem:windows -dll
+
+!if $(USE_TCL_STUBS) == 0
+ITCL_LLIBS = $(TCLIMPLIB)
+!else
+ITCL_LLIBS = $(TCLSTUBLIB)
+!endif
+
+######################################################################
+# Compile flags
+######################################################################
+
+!IF $(DEBUG) == 0
+!IF "$(MACHINE)" == "ALPHA"
+# MSVC on Alpha doesn't understand -Ot
+cdebug = -O2i
+!ELSE
+cdebug = -Ox
+!ENDIF
+!ELSE
+!if $(MSDEV_VER) < 6
+cdebug = -Zi -Od -WX
+!else
+cdebug = -ZI -Od -WX
+!endif
+!ENDIF
+
+!if $(STATIC_BUILD)
+cdll =
+!else
+cdll = -GD
+!endif
+
+# declarations common to all compiler options
+ccommon = -nologo -c -W3 -YX -Fp$(TMP_DIR)\
+
+!if $(STATIC_BUILD) && $(NOMSVCRT)
+crt = -MT$(DBGX)
+!else
+crt = -MD$(DBGX)
+!endif
+
+!if $(ISTCLINSTALL)
+TCL_INCLUDES = -I"$(TCLROOT)\include"
+!else
+TCL_INCLUDES = -I"$(TCLROOT)\generic"
+!endif
+
+ITCL_INCLUDES = -I$(WINDIR) -I$(GENERICDIR)
+ITCL_DEFINES = -DBUILD_itcl -DTCL_THREADS=1
+ITCL_EXE_CFLAGS = $(ccommon) $(cdebug) $(crt) $(cdll) $(ITCL_INCLUDES) \
+ $(ITCL_DEFINES) $(TCL_INCLUDES)
+
+!if $(USE_TCL_STUBS)
+ITCL_CFLAGS = $(ITCL_EXE_CFLAGS) -DUSE_TCL_STUBS
+!else
+ITCL_CFLAGS = $(ITCL_EXE_CFLAGS)
+!endif
+
+######################################################################
+# Project specific targets
+######################################################################
+
+all : setup $(ITCLTARGET) $(ITCLSTUBLIB)
+release : setup $(ITCLTARGET) $(ITCLSTUBLIB)
+
+!if $(STATIC_BUILD)
+test :
+ @echo test target not supported for a static library.
+!else
+#test : setup $(ITCLTARGET) $(ITCLSTUBLIB) $(PKGINDEX)
+# -@copy $(TCLDLL) $(TMP_DIR)
+# $(TCLSH) <<
+#cd ../tests
+#lappend auto_path ../win/$(TMP_DIR)
+#set env(ITCL_LIBRARY) ../library
+#source all
+#<<
+!endif
+
+$(PKGINDEX) :
+ -@copy pkgIndex.tcl $@
+
+setup :
+ @$(vcvars) > nul
+ @if not exist $(TMP_DIR)\nul mkdir $(TMP_DIR) &\
+ echo Created directory '$(TMP_DIR)'
+ @if not exist $(OUT_DIR)\nul mkdir $(OUT_DIR) &\
+ echo Created directory '$(OUT_DIR)'
+
+$(ITCLTARGET): $(ITCLOBJS)
+!if $(STATIC_BUILD)
+ $(lib32) -nologo -machine:$(MACHINE) -out:$@ @<<
+!else
+ $(link32) $(ITCL_LFLAGS) -out:$@ $(ITCL_LLIBS) @<<
+!endif
+ $(ITCLOBJS)
+<<
+
+!if $(DEBUG) == 0
+$(ITCLSTUBLIB) : $(ITCLSTUBOBJS)
+ $(lib32) -nologo -out:$@ $(ITCLSTUBOBJS)
+!else
+$(ITCLSTUBLIB) :
+!endif
+
+install : all
+ if not exist "$(INSTALLDIR)" mkdir "$(INSTALLDIR)"
+ if not exist "$(BIN_INSTALL_DIR)" mkdir "$(BIN_INSTALL_DIR)"
+ if not exist "$(LIB_INSTALL_DIR)" mkdir "$(LIB_INSTALL_DIR)"
+ if not exist "$(SCRIPT_INSTALL_DIR)" mkdir "$(SCRIPT_INSTALL_DIR)"
+ if not exist "$(INCLUDE_INSTALL_DIR)" mkdir "$(INCLUDE_INSTALL_DIR)"
+ copy $(ITCLTARGET) "$(SCRIPT_INSTALL_DIR)"
+ -copy $(ITCLSTUBLIB) "$(LIB_INSTALL_DIR)"
+ copy $(ROOT)\generic\itcl.h "$(INCLUDE_INSTALL_DIR)"
+ copy $(ROOT)\generic\itclDecls.h "$(INCLUDE_INSTALL_DIR)"
+ copy $(ROOT)\library\*.* "$(SCRIPT_INSTALL_DIR)"
+ echo package ifneeded Itcl $(ITCL_DOTVERSION) [list load [file join $$dir $(ITCLOUTNAME).dll] Itcl] > \
+ "$(SCRIPT_INSTALL_DIR)\pkgIndex.tcl"
+
+######################################################################
+# Regenerate the stubs files.
+######################################################################
+
+!if $(ISTCLINSTALL) == 0
+# Only from the sources of Tcl does genStubs.tcl exist.
+genstubs:
+ $(TCLSH) $(TCLROOT)\tools\genStubs.tcl $(GENERICDIR) \
+ $(GENERICDIR)\itcl.decls $(GENERICDIR)\itclInt.decls
+!endif
+
+######################################################################
+# Special case object file targets
+######################################################################
+
+# The following object is part of the stub library and should not
+# be built as DLL objects but none of the symbols should be exported
+
+$(TMP_DIR)\itclStubLib.obj : $(GENERICDIR)\itclStubLib.c
+ $(cc32) -DSTATIC_BUILD $(ITCL_EXE_CFLAGS) -Zl -Fo$@ $?
+
+$(TMP_DIR)\dllResource.obj : $(TMP_DIR)\itcl.res
+ $(cvtres32) -nologo -machine:$(MACHINE) -out:$@ $?
+
+######################################################################
+# Inference rules. Use batch-mode when supported.
+######################################################################
+
+!if $(_NMAKE_VER) < 162
+{$(WINDIR)}.c{$(TMP_DIR)}.obj :
+!else
+{$(WINDIR)}.c{$(TMP_DIR)}.obj ::
+!endif
+ $(cc32) -DDLL_BUILD $(ITCL_CFLAGS) -Fo$(TMP_DIR)\ @<<
+$<
+<<
+
+!if $(_NMAKE_VER) < 162
+{$(GENERICDIR)}.c{$(TMP_DIR)}.obj :
+!else
+{$(GENERICDIR)}.c{$(TMP_DIR)}.obj ::
+!endif
+ $(cc32) -DDLL_BUILD $(ITCL_CFLAGS) -Fo$(TMP_DIR)\ @<<
+$<
+<<
+
+{$(RCDIR)}.rc{$(TMP_DIR)}.res :
+ $(rc32) -fo $@ -DDEBUG=$(DEBUG) $(ITCL_INCLUDES) $(TCL_INCLUDES) $(ITCL_DEFINES) $<
+
+######################################################################
+# Clean up
+######################################################################
+
+tidy :
+ -del $(TMP_DIR)\*.pch
+ -del $(TMP_DIR)\*.obj
+ -del $(TMP_DIR)\*.res
+
+clean : tidy
+ -del $(OUT_DIR)\*.exp
+ -del $(OUT_DIR)\*.lib
+ -del $(OUT_DIR)\*.dll
+
+hose : clean
+ -rmdir $(OUT_DIR)
+ -rmdir $(TMP_DIR)
+