sl@0: # sl@0: # Makefile for Borland C++ 5.5 (or C++ Builder 5), adapted from the makefile sl@0: # for Visual C++ that came with tcl 8.3.3 sl@0: # sl@0: # See the file "license.terms" for information on usage and redistribution sl@0: # of this file, and for a DISCLAIMER OF ALL WARRANTIES. sl@0: # sl@0: # Copyright (c) 1995-1996 Sun Microsystems, Inc. sl@0: # Copyright (c) 1998-1999 by Scriptics Corporation. sl@0: # sl@0: # Have a look at the complete description on how to build and test Tcl with sl@0: # the current Borland compilers at www.ratiosoft.com/tcl/borland. sl@0: # sl@0: # Usage: sl@0: # - Adapt the paths below to match your compiler's location sl@0: # - Make sure the compiler's bin directory is on your path sl@0: # - Open a console sl@0: # - To make a debug version enter sl@0: # make -fmakefile.bc -DNODEBUG=0 xxx sl@0: # where 'xxx' is the target you want (e.g. 'all', 'test', ...) sl@0: # Please note: I omitted the 'd' suffix for debug versions because Tcl sl@0: # will always call tclpip83.dll and not tclpip83d.dll, causing an error. sl@0: # ^ sl@0: # Besides, the debug version goes into a separate directory, so there sl@0: # should be no problem having DLLs and EXEs with the same name. sl@0: # If you prefer your debug version having the 'd' suffix just uncomment sl@0: # the line sl@0: # #DBGX = d sl@0: # sl@0: # - To make a 'normal' version enter sl@0: # make -fmakefile.bc xxx sl@0: # where 'xxx' is the target you want (e.g. 'all', 'test', ...) sl@0: # sl@0: # DISCLAIMER: sl@0: # This makefile has an experimental status - that is those targets which sl@0: # have been modified do in fact compile and link with Borland's C++ sl@0: # Builder 5 and with the free Borland compiler (Borland C++ 5.5). sl@0: # However the author assumes no responsiblity for any effect which the use of sl@0: # this makefile or of the resulting programs might have on your system. sl@0: # sl@0: # Not yet modified: sl@0: # - The 'plug-in-DLL' and the associated shell. sl@0: # - The programs to create the windows help files. sl@0: # sl@0: # Suggestions and / or improvements are always welcome. sl@0: # sl@0: # May 2001, H. Giese (hgiese@ratiosoft.com) sl@0: # sl@0: sl@0: # Does not depend on the presence of any environment variables in sl@0: # order to compile tcl; all needed information is derived from sl@0: # location of the compiler directories. sl@0: sl@0: # sl@0: # Project directories sl@0: # sl@0: # ROOT = top of source tree sl@0: # sl@0: # TOOLS32 = location of Borland development tools. sl@0: # sl@0: # INSTALLDIR = where the install-targets should copy the binaries and sl@0: # support files sl@0: # sl@0: sl@0: ROOT = .. sl@0: INSTALLDIR = c:\program files\tcl sl@0: sl@0: # If you have C++ Builder 5 or the free Borland C++ 5.5 compiler sl@0: # adapt the following paths as appropriate for your system sl@0: TOOLS32 = c:\dev\bcc55 sl@0: TOOLS32_rc = c:\dev\bcc55 sl@0: #TOOLS32 = c:\bc55 sl@0: #TOOLS32_rc = c:\bc55 sl@0: sl@0: cc32 = "$(TOOLS32)\bin\bcc32.exe" sl@0: link32 = "$(TOOLS32)\bin\ilink32.exe" sl@0: lib32 = "$(TOOLS32)\bin\tlib.exe" sl@0: rc32 = "$(TOOLS32_rc)\bin\brcc32.exe" sl@0: include32 = -I"$(TOOLS32)\include" sl@0: libpath32 = -L"$(TOOLS32)\lib" sl@0: sl@0: # Uncomment the following line to compile with thread support sl@0: #THREADDEFINES = -DTCL_THREADS=1 sl@0: sl@0: # Allow definition of NDEBUG via command line sl@0: # Set NODEBUG to 0 to compile with symbols sl@0: !if !defined(NODEBUG) sl@0: NODEBUG = 1 sl@0: !endif sl@0: sl@0: # The following defines can be used to control the amount of debugging sl@0: # code that is added to the compilation. sl@0: # sl@0: # -DTCL_MEM_DEBUG Enables the debugging memory allocator. sl@0: # -DTCL_COMPILE_DEBUG Enables byte compilation logging. sl@0: # -DTCL_COMPILE_STATS Enables byte compilation statistics gathering. sl@0: # -DUSE_TCLALLOC=0 Disables the Tcl memory allocator in favor sl@0: # of the native malloc implementation. This is sl@0: # needed when using Purify. sl@0: # sl@0: #DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS sl@0: #DEBUGDEFINES = -DUSE_TCLALLOC=0 sl@0: sl@0: ###################################################################### sl@0: # Do not modify below this line sl@0: ###################################################################### sl@0: sl@0: NAMEPREFIX = tcl sl@0: STUBPREFIX = $(NAMEPREFIX)stub sl@0: DOTVERSION = 8.4 sl@0: VERSION = 84 sl@0: sl@0: DDEVERSION = 12 sl@0: DDEDOTVERSION = 1.2 sl@0: sl@0: REGVERSION = 11 sl@0: REGDOTVERSION = 1.1 sl@0: sl@0: BINROOT = .. sl@0: !IF "$(NODEBUG)" == "1" sl@0: TMPDIRNAME = Release sl@0: DBGX = sl@0: !ELSE sl@0: TMPDIRNAME = Debug sl@0: #DBGX = d sl@0: DBGX = sl@0: !ENDIF sl@0: TMPDIR = $(BINROOT)\$(TMPDIRNAME) sl@0: OUTDIRNAME = $(TMPDIRNAME) sl@0: OUTDIR = $(TMPDIR) sl@0: sl@0: TCLLIB = $(OUTDIR)\$(NAMEPREFIX)$(VERSION)$(DBGX).lib sl@0: TCLDLLNAME = $(NAMEPREFIX)$(VERSION)$(DBGX).dll sl@0: TCLDLL = $(OUTDIR)\$(TCLDLLNAME) sl@0: sl@0: TCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION)$(DBGX).lib sl@0: TCLSTUBLIB = $(OUTDIR)\$(TCLSTUBLIBNAME) sl@0: sl@0: TCLPLUGINLIB = $(OUTDIR)\$(NAMEPREFIX)$(VERSION)p$(DBGX).lib sl@0: TCLPLUGINDLLNAME = $(NAMEPREFIX)$(VERSION)p$(DBGX).dll sl@0: TCLPLUGINDLL = $(OUTDIR)\$(TCLPLUGINDLLNAME) sl@0: TCLSH = $(OUTDIR)\$(NAMEPREFIX)sh$(VERSION)$(DBGX).exe sl@0: TCLSHP = $(OUTDIR)\$(NAMEPREFIX)shp$(VERSION)$(DBGX).exe sl@0: TCLPIPEDLLNAME = $(NAMEPREFIX)pip$(VERSION)$(DBGX).dll sl@0: TCLPIPEDLL = $(OUTDIR)\$(TCLPIPEDLLNAME) sl@0: TCLREGDLLNAME = $(NAMEPREFIX)reg$(REGVERSION)$(DBGX).dll sl@0: TCLREGDLL = $(OUTDIR)\$(TCLREGDLLNAME) sl@0: TCLDDEDLLNAME = $(NAMEPREFIX)dde$(DDEVERSION)$(DBGX).dll sl@0: TCLDDEDLL = $(OUTDIR)\$(TCLDDEDLLNAME) sl@0: TCLTEST = $(OUTDIR)\$(NAMEPREFIX)test.exe sl@0: CAT32 = $(TMPDIR)\cat32.exe sl@0: RMDIR = .\rmd.bat sl@0: MKDIR = .\mkd.bat sl@0: RM = del sl@0: sl@0: LIB_INSTALL_DIR = $(INSTALLDIR)\lib sl@0: BIN_INSTALL_DIR = $(INSTALLDIR)\bin sl@0: SCRIPT_INSTALL_DIR = $(INSTALLDIR)\lib\tcl$(DOTVERSION) sl@0: INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include sl@0: sl@0: TCLSHOBJS = \ sl@0: $(TMPDIR)\tclAppInit.obj sl@0: sl@0: TCLTESTOBJS = \ sl@0: $(TMPDIR)\tclTest.obj \ sl@0: $(TMPDIR)\tclTestObj.obj \ sl@0: $(TMPDIR)\tclTestProcBodyObj.obj \ sl@0: $(TMPDIR)\tclThreadTest.obj \ sl@0: $(TMPDIR)\tclWinTest.obj \ sl@0: $(TMPDIR)\testMain.obj sl@0: sl@0: TCLOBJS = \ sl@0: $(TMPDIR)\regcomp.obj \ sl@0: $(TMPDIR)\regexec.obj \ sl@0: $(TMPDIR)\regfree.obj \ sl@0: $(TMPDIR)\regerror.obj \ sl@0: $(TMPDIR)\strftime.obj \ sl@0: $(TMPDIR)\strtoll.obj \ sl@0: $(TMPDIR)\strtoull.obj \ sl@0: $(TMPDIR)\tclAlloc.obj \ sl@0: $(TMPDIR)\tclAsync.obj \ sl@0: $(TMPDIR)\tclBasic.obj \ sl@0: $(TMPDIR)\tclBinary.obj \ sl@0: $(TMPDIR)\tclCkalloc.obj \ sl@0: $(TMPDIR)\tclClock.obj \ sl@0: $(TMPDIR)\tclCmdAH.obj \ sl@0: $(TMPDIR)\tclCmdIL.obj \ sl@0: $(TMPDIR)\tclCmdMZ.obj \ sl@0: $(TMPDIR)\tclCompCmds.obj \ sl@0: $(TMPDIR)\tclCompExpr.obj \ sl@0: $(TMPDIR)\tclCompile.obj \ sl@0: $(TMPDIR)\tclDate.obj \ sl@0: $(TMPDIR)\tclEncoding.obj \ sl@0: $(TMPDIR)\tclEnv.obj \ sl@0: $(TMPDIR)\tclEvent.obj \ sl@0: $(TMPDIR)\tclExecute.obj \ sl@0: $(TMPDIR)\tclFCmd.obj \ sl@0: $(TMPDIR)\tclFileName.obj \ sl@0: $(TMPDIR)\tclGet.obj \ sl@0: $(TMPDIR)\tclHash.obj \ sl@0: $(TMPDIR)\tclHistory.obj \ sl@0: $(TMPDIR)\tclIndexObj.obj \ sl@0: $(TMPDIR)\tclInterp.obj \ sl@0: $(TMPDIR)\tclIO.obj \ sl@0: $(TMPDIR)\tclIOCmd.obj \ sl@0: $(TMPDIR)\tclIOGT.obj \ sl@0: $(TMPDIR)\tclIOSock.obj \ sl@0: $(TMPDIR)\tclIOUtil.obj \ sl@0: $(TMPDIR)\tclLink.obj \ sl@0: $(TMPDIR)\tclLiteral.obj \ sl@0: $(TMPDIR)\tclListObj.obj \ sl@0: $(TMPDIR)\tclLoad.obj \ sl@0: $(TMPDIR)\tclMain.obj \ sl@0: $(TMPDIR)\tclNamesp.obj \ sl@0: $(TMPDIR)\tclNotify.obj \ sl@0: $(TMPDIR)\tclObj.obj \ sl@0: $(TMPDIR)\tclPanic.obj \ sl@0: $(TMPDIR)\tclParse.obj \ sl@0: $(TMPDIR)\tclParseExpr.obj \ sl@0: $(TMPDIR)\tclPipe.obj \ sl@0: $(TMPDIR)\tclPkg.obj \ sl@0: $(TMPDIR)\tclPosixStr.obj \ sl@0: $(TMPDIR)\tclPreserve.obj \ sl@0: $(TMPDIR)\tclProc.obj \ sl@0: $(TMPDIR)\tclRegexp.obj \ sl@0: $(TMPDIR)\tclResolve.obj \ sl@0: $(TMPDIR)\tclResult.obj \ sl@0: $(TMPDIR)\tclScan.obj \ sl@0: $(TMPDIR)\tclStringObj.obj \ sl@0: $(TMPDIR)\tclStubInit.obj \ sl@0: $(TMPDIR)\tclStubLib.obj \ sl@0: $(TMPDIR)\tclThread.obj \ sl@0: $(TMPDIR)\tclThreadJoin.obj \ sl@0: $(TMPDIR)\tclTimer.obj \ sl@0: $(TMPDIR)\tclUtf.obj \ sl@0: $(TMPDIR)\tclUtil.obj \ sl@0: $(TMPDIR)\tclVar.obj \ sl@0: $(TMPDIR)\tclWin32Dll.obj \ sl@0: $(TMPDIR)\tclWinChan.obj \ sl@0: $(TMPDIR)\tclWinConsole.obj \ sl@0: $(TMPDIR)\tclWinSerial.obj \ sl@0: $(TMPDIR)\tclWinError.obj \ sl@0: $(TMPDIR)\tclWinFCmd.obj \ sl@0: $(TMPDIR)\tclWinFile.obj \ sl@0: $(TMPDIR)\tclWinInit.obj \ sl@0: $(TMPDIR)\tclWinLoad.obj \ sl@0: $(TMPDIR)\tclWinMtherr.obj \ sl@0: $(TMPDIR)\tclWinNotify.obj \ sl@0: $(TMPDIR)\tclWinPipe.obj \ sl@0: $(TMPDIR)\tclWinSock.obj \ sl@0: $(TMPDIR)\tclWinThrd.obj \ sl@0: $(TMPDIR)\tclWinTime.obj sl@0: sl@0: TCLSTUBOBJS = $(TMPDIR)\tclStubLib.obj sl@0: sl@0: WINDIR = $(ROOT)\win sl@0: GENERICDIR = $(ROOT)\generic sl@0: sl@0: TCL_INCLUDES = -I"$(WINDIR)" -I"$(GENERICDIR)" sl@0: TCL_DEFINES = $(DEBUGDEFINES) $(THREADDEFINES) sl@0: sl@0: ###################################################################### sl@0: # Compiler flags sl@0: ###################################################################### sl@0: sl@0: !IF "$(NODEBUG)" == "1" sl@0: # these macros cause maximum optimization and no symbols sl@0: cdebug = -v- -vi- -O2 -D_DEBUG sl@0: !ELSE sl@0: # these macros enable debugging sl@0: cdebug = -k -Od -r- -v -vi- -y sl@0: !ENDIF sl@0: sl@0: SYSDEFINES = _MT;NO_STRICT;_NO_VCL sl@0: sl@0: # declarations common to all compiler options sl@0: cbase = -c -q -3 -a4 -g0 -tWM -Ve -Vx -X- sl@0: WARNINGS = -w-rch -w-pch -w-par -w-dup -w-pro -w-dpu sl@0: sl@0: ccons = -tWC sl@0: sl@0: INCLUDEPATH = $(include32) $(TCL_INCLUDES) sl@0: sl@0: CFLAGS = $(cdebug) $(cbase) $(INCLUDEPATH) $(WARNINGS) -D$(SYSDEFINES) sl@0: TCL_CFLAGS = $(CFLAGS) $(TCL_DEFINES) sl@0: CONS_CFLAGS = $(CFLAGS) $(TCL_DEFINES) $(ccons) sl@0: sl@0: ###################################################################### sl@0: # Linker flags sl@0: ###################################################################### sl@0: sl@0: !IF "$(NODEBUG)" == "1" sl@0: ldebug = sl@0: !ELSE sl@0: ldebug = -v sl@0: !ENDIF sl@0: sl@0: # declarations common to all linker options sl@0: LNFLAGS = -D"" -Gn -I$(TMPDIR) -x $(ldebug) $(libpath32) sl@0: # -Gi: create lib file (is -Gl in doc) sl@0: # -aa: Windows app, -ap: Windows console app sl@0: LNFLAGS_DLL = -ap -Gi -Tpd sl@0: LNFLAGS_CONS = -ap -Tpe sl@0: sl@0: LNLIBS = import32 cw32mt sl@0: sl@0: sl@0: ###################################################################### sl@0: # Project specific targets sl@0: ###################################################################### sl@0: sl@0: release: setup $(TCLSH) dlls sl@0: dlls: setup $(TCLPIPEDLL) $(TCLREGDLL) $(TCLDDEDLL) sl@0: all: setup $(TCLSH) dlls $(CAT32) sl@0: tcltest: setup $(TCLTEST) dlls $(CAT32) sl@0: plugin: setup $(TCLPLUGINDLL) $(TCLSHP) sl@0: install: install-binaries install-libraries sl@0: sl@0: test: setup $(TCLTEST) dlls $(CAT32) sl@0: set TCL_LIBRARY=$(ROOT)/library sl@0: $(TCLTEST) $(ROOT)/tests/all.tcl sl@0: sl@0: setup: sl@0: @if not exist $(OUT_DIR)\nul mkdir $(OUT_DIR) &\ sl@0: echo *** Created directory '$(OUT_DIR)' sl@0: @if not exist $(TMP_DIR)\nul mkdir $(TMP_DIR) &\ sl@0: echo *** Created directory '$(TMP_DIR)' sl@0: sl@0: sl@0: $(TCLLIB): $(TCLDLL) sl@0: sl@0: $(TCLDLL): $(TCLOBJS) $(TMPDIR)\$(NAMEPREFIX).res sl@0: $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)\lib\c0d32 @&&! sl@0: $(TCLOBJS), $@, -x, $(LNLIBS),, $(TMPDIR)\$(NAMEPREFIX).res sl@0: ! sl@0: sl@0: $(TCLSTUBLIB): $(TCLSTUBOBJS) sl@0: $(lib32) /u $@ $(TCLSTUBOBJS) sl@0: sl@0: $(TCLPLUGINLIB): $(TCLPLUGINDLL) sl@0: sl@0: $(TCLPLUGINDLL): $(TCLOBJS) $(TMPDIR)\tcl.res sl@0: $(link32) $(ldebug) $(dlllflags) \ sl@0: -out:$@ $(TMPDIR)\tcl.res $(guilibsdll) @&&! sl@0: $(TCLOBJS) sl@0: ! sl@0: sl@0: $(TCLSH): $(TCLSHOBJS) $(TCLLIB) $(TMPDIR)\$(NAMEPREFIX)sh.res sl@0: $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 @&&! sl@0: $(TCLSHOBJS), $@, -x, $(LNLIBS) $(TCLLIB),, $(TMPDIR)\$(NAMEPREFIX)sh.res sl@0: ! sl@0: sl@0: $(TCLSHP): $(TCLSHOBJS) $(TCLPLUGINLIB) $(TMPDIR)\tclsh.res sl@0: $(link32) $(ldebug) $(conlflags) $(TMPDIR)\tclsh.res -stack:2300000 \ sl@0: -out:$@ $(conlibsdll) $(TCLPLUGINLIB) $(TCLSHOBJS) sl@0: sl@0: $(TCLTEST): $(TCLTESTOBJS) $(TCLLIB) $(TMPDIR)\$(NAMEPREFIX)sh.res sl@0: $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 @&&! sl@0: $(TCLTESTOBJS), $@, -x, $(LNLIBS) $(TCLLIB),, $(TMPDIR)\$(NAMEPREFIX)sh.res sl@0: ! sl@0: sl@0: $(TCLPIPEDLL): $(WINDIR)\stub16.c sl@0: $(cc32) $(CFLAGS) -o$(TMPDIR)\stub16.obj $(WINDIR)\stub16.c sl@0: $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 \ sl@0: $(TMPDIR)\stub16.obj, $@, -x, $(LNLIBS),, $(TMPDIR)\$(NAMEPREFIX).res sl@0: sl@0: $(TCLDDEDLL): $(TMPDIR)\tclWinDde.obj $(TCLSTUBLIB) sl@0: $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)\lib\c0d32 \ sl@0: $(TMPDIR)\tclWinDde.obj, $@, -x, $(LNLIBS) $(TCLSTUBLIB),, \ sl@0: $(TMPDIR)\$(NAMEPREFIX).res sl@0: sl@0: $(TCLREGDLL): $(TMPDIR)\tclWinReg.obj $(TCLSTUBLIB) sl@0: $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)\lib\c0d32 \ sl@0: $(TMPDIR)\tclWinReg.obj, $@, -x, $(LNLIBS) $(TCLSTUBLIB),, \ sl@0: $(TMPDIR)\$(NAMEPREFIX).res sl@0: sl@0: $(CAT32): $(WINDIR)\cat.c sl@0: $(cc32) $(CONS_CFLAGS) -o$(TMPDIR)\cat.obj $? sl@0: $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 \ sl@0: $(TMPDIR)\cat.obj, $@, -x, $(LNLIBS),, sl@0: sl@0: install-binaries: $(TCLSH) sl@0: $(MKDIR) "$(BIN_INSTALL_DIR)" sl@0: $(MKDIR) "$(LIB_INSTALL_DIR)" sl@0: @echo installing $(TCLDLLNAME) sl@0: @copy "$(TCLDLL)" "$(BIN_INSTALL_DIR)" sl@0: @copy "$(TCLLIB)" "$(LIB_INSTALL_DIR)" sl@0: @echo installing "$(TCLSH)" sl@0: @copy "$(TCLSH)" "$(BIN_INSTALL_DIR)" sl@0: @echo installing $(TCLPIPEDLLNAME) sl@0: @copy "$(TCLPIPEDLL)" "$(BIN_INSTALL_DIR)" sl@0: @echo installing $(TCLSTUBLIBNAME) sl@0: @copy "$(TCLSTUBLIB)" "$(LIB_INSTALL_DIR)" sl@0: sl@0: install-libraries: sl@0: -@$(MKDIR) "$(LIB_INSTALL_DIR)" sl@0: -@$(MKDIR) "$(INCLUDE_INSTALL_DIR)" sl@0: -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)" sl@0: @echo installing http1.0 sl@0: -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\http1.0" sl@0: -@copy "$(ROOT)\library\http1.0\http.tcl" "$(SCRIPT_INSTALL_DIR)\http1.0" sl@0: -@copy "$(ROOT)\library\http1.0\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\http1.0" sl@0: @echo installing http2.5 sl@0: -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\http2.5" sl@0: -@copy "$(ROOT)\library\http\http.tcl" "$(SCRIPT_INSTALL_DIR)\http2.5" sl@0: -@copy "$(ROOT)\library\http\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\http2.5" sl@0: @echo installing opt0.4 sl@0: -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\opt0.4" sl@0: -@copy "$(ROOT)\library\opt\optparse.tcl" "$(SCRIPT_INSTALL_DIR)\opt0.4" sl@0: -@copy "$(ROOT)\library\opt\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\opt0.4" sl@0: @echo installing msgcat1.3 sl@0: -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\msgcat1.3" sl@0: -@copy "$(ROOT)\library\msgcat\msgcat.tcl" "$(SCRIPT_INSTALL_DIR)\msgcat1.3" sl@0: -@copy "$(ROOT)\library\msgcat\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\msgcat1.3" sl@0: @echo installing tcltest2.2 sl@0: -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\tcltest2.2" sl@0: -@copy "$(ROOT)\library\tcltest\tcltest.tcl" "$(SCRIPT_INSTALL_DIR)\tcltest2.2" sl@0: -@copy "$(ROOT)\library\tcltest\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\tcltest2.2" sl@0: @echo installing $(TCLDDEDLLNAME) sl@0: -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\dde1.1" sl@0: -@copy "$(TCLDDEDLL)" "$(SCRIPT_INSTALL_DIR)\dde1.1" sl@0: -@copy "$(ROOT)\library\dde\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\dde1.1" sl@0: @echo installing $(TCLREGDLLNAME) sl@0: -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\reg1.1" sl@0: -@copy "$(TCLREGDLL)" "$(SCRIPT_INSTALL_DIR)\reg1.1" sl@0: -@copy "$(ROOT)\library\reg\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\reg1.1" sl@0: @echo installing encoding files sl@0: -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\encoding" sl@0: -@copy "$(ROOT)\library\encoding\*.enc" "$(SCRIPT_INSTALL_DIR)\encoding" sl@0: @echo installing library files sl@0: -@copy "$(GENERICDIR)\tcl.h" "$(INCLUDE_INSTALL_DIR)" sl@0: -@copy "$(GENERICDIR)\tclDecls.h" "$(INCLUDE_INSTALL_DIR)" sl@0: -@copy "$(GENERICDIR)\tclPlatDecls.h" "$(INCLUDE_INSTALL_DIR)" sl@0: -@copy "$(ROOT)\library\history.tcl" "$(SCRIPT_INSTALL_DIR)" sl@0: -@copy "$(ROOT)\library\init.tcl" "$(SCRIPT_INSTALL_DIR)" sl@0: -@copy "$(ROOT)\library\ldAout.tcl" "$(SCRIPT_INSTALL_DIR)" sl@0: -@copy "$(ROOT)\library\parray.tcl" "$(SCRIPT_INSTALL_DIR)" sl@0: -@copy "$(ROOT)\library\safe.tcl" "$(SCRIPT_INSTALL_DIR)" sl@0: -@copy "$(ROOT)\library\tclIndex" "$(SCRIPT_INSTALL_DIR)" sl@0: -@copy "$(ROOT)\library\package.tcl" "$(SCRIPT_INSTALL_DIR)" sl@0: -@copy "$(ROOT)\library\word.tcl" "$(SCRIPT_INSTALL_DIR)" sl@0: -@copy "$(ROOT)\library\auto.tcl" "$(SCRIPT_INSTALL_DIR)" sl@0: sl@0: # sl@0: # Regenerate the stubs files. sl@0: # sl@0: sl@0: genstubs: sl@0: tclsh$(VERSION) $(ROOT)\tools\genStubs.tcl $(GENERICDIR) \ sl@0: $(GENERICDIR)\tcl.decls $(GENERICDIR)\tclInt.decls sl@0: sl@0: # sl@0: # Regenerate the windows help files. sl@0: # sl@0: sl@0: TCLTOOLS = $(ROOT)/tools sl@0: MAN2TCL = $(TCLTOOLS)/man2tcl sl@0: TCLRTF = $(TCLTOOLS)/tcl.rtf sl@0: TCLHPJ = $(TCLTOOLS)/tcl.hpj sl@0: MAN2HELP = $(TCLTOOLS)/man2help.tcl sl@0: HCRTF = $(TOOLS32)/bin/hcrtf.exe sl@0: sl@0: winhelp: $(TCLRTF) sl@0: cd $(TCLTOOLS) sl@0: start /wait $(HCRTF) -xn $(TCLHPJ) sl@0: sl@0: $(MAN2TCL).exe: $(MAN2TCL).obj sl@0: cd $(TCLTOOLS) sl@0: $(cc32) /nologo /G4 /ML /O2 $(MAN2TCL).c sl@0: sl@0: $(TCLRTF): $(MAN2TCL).exe $(TCLSH) sl@0: cd $(TCLTOOLS) sl@0: ..\win\$(TCLSH) $(MAN2HELP) $(NAMEPREFIX) $(VERSION) $(ROOT)/doc ../../tk$(DOTVERSION)/doc sl@0: sl@0: # sl@0: # Special case object file targets sl@0: # sl@0: $(TMPDIR)\tclWinInit.obj: $(WINDIR)\tclWinInit.c sl@0: $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$(TMPDIR)\$@ $? sl@0: sl@0: $(TMPDIR)\testMain.obj: $(WINDIR)\tclAppInit.c sl@0: $(cc32) $(TCL_CFLAGS) -DTCL_TEST -o$(TMPDIR)\testMain.obj $? sl@0: sl@0: $(TMPDIR)\tclTest.obj: $(GENERICDIR)\tclTest.c sl@0: $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)\$@ $? sl@0: sl@0: $(TMPDIR)\tclTestObj.obj: $(GENERICDIR)\tclTestObj.c sl@0: $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)\$@ $? sl@0: sl@0: $(TMPDIR)\tclWinTest.obj: $(WINDIR)\tclWinTest.c sl@0: $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)\$@ $? sl@0: sl@0: $(TMPDIR)\tclAppInit.obj : $(WINDIR)\tclAppInit.c sl@0: $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)\$@ $? sl@0: sl@0: # The following objects should be built using the stub interfaces sl@0: sl@0: # tclWinReg: Produces errors in ANSI mode sl@0: $(TMPDIR)\tclWinReg.obj : $(WINDIR)\tclWinReg.c sl@0: $(cc32) $(TCL_CFLAGS) -DUSE_TCL_STUBS -o$(TMPDIR)\$@ $? sl@0: sl@0: # tclWinDde: Produces errors in ANSI mode sl@0: $(TMPDIR)\tclWinDde.obj : $(WINDIR)\tclWinDde.c sl@0: $(cc32) $(TCL_CFLAGS) -DUSE_TCL_STUBS -o$(TMPDIR)\$@ $? sl@0: sl@0: sl@0: # The following objects are part of the stub library and should not sl@0: # be built as DLL objects but none of the symbols should be exported sl@0: sl@0: $(TMPDIR)\tclStubLib.obj : $(GENERICDIR)\tclStubLib.c sl@0: $(cc32) $(TCL_CFLAGS) -DSTATIC_BUILD -o$(TMPDIR)\$@ $? sl@0: sl@0: sl@0: # Dedependency rules sl@0: sl@0: $(GENERICDIR)\regcomp.c: \ sl@0: $(GENERICDIR)\regguts.h \ sl@0: $(GENERICDIR)\regc_lex.c \ sl@0: $(GENERICDIR)\regc_color.c \ sl@0: $(GENERICDIR)\regc_nfa.c \ sl@0: $(GENERICDIR)\regc_cvec.c \ sl@0: $(GENERICDIR)\regc_locale.c sl@0: sl@0: $(GENERICDIR)\regcustom.h: \ sl@0: $(GENERICDIR)\tclInt.h \ sl@0: $(GENERICDIR)\tclPort.h \ sl@0: $(GENERICDIR)\regex.h sl@0: sl@0: $(GENERICDIR)\regexec.c: \ sl@0: $(GENERICDIR)\rege_dfa.c \ sl@0: $(GENERICDIR)\regguts.h sl@0: sl@0: $(GENERICDIR)\regerror.c: $(GENERICDIR)\regguts.h sl@0: $(GENERICDIR)\regfree.c: $(GENERICDIR)\regguts.h sl@0: $(GENERICDIR)\regfronts.c: $(GENERICDIR)\regguts.h sl@0: $(GENERICDIR)\regguts.h: $(GENERICDIR)\regcustom.h sl@0: sl@0: # sl@0: # Implicit rules sl@0: # sl@0: sl@0: {$(WINDIR)}.c{$(TMPDIR)}.obj: sl@0: $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$@ $< sl@0: sl@0: {$(GENERICDIR)}.c{$(TMPDIR)}.obj: sl@0: $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$@ $< sl@0: sl@0: {$(ROOT)\compat}.c{$(TMPDIR)}.obj: sl@0: $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$@ $< sl@0: sl@0: {$(WINDIR)}.rc{$(TMPDIR)}.res: sl@0: $(rc32) $(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -fo$@ $< sl@0: sl@0: clean: sl@0: -@$(RM) $(OUTDIR)\*.exp sl@0: -@$(RM) $(OUTDIR)\*.lib sl@0: -@$(RM) $(OUTDIR)\*.dll sl@0: -@$(RM) $(OUTDIR)\*.exe sl@0: -@$(RM) $(OUTDIR)\*.pdb sl@0: -@$(RM) $(TMPDIR)\*.pch sl@0: -@$(RM) $(TMPDIR)\*.obj sl@0: -@$(RM) $(TMPDIR)\*.res sl@0: -@$(RM) $(TMPDIR)\*.exe sl@0: -@$(RMDIR) $(OUTDIR) sl@0: -@$(RMDIR) $(TMPDIR) sl@0: