📄 makefile.vc
字号:
# 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.# SCCS: @(#) makefile.vc 1.82 97/11/20 15:14:01# 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## TMPDIR = location where .obj files should be stored during build## 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++.## TOOLS16 = location of VC++ 1.5 16-bit tools, needed to build thunking# library. This information is optional; if the 16-bit compiler# is not available, then the 16-bit code will not be built. # Tcl will still run without the 16-bit code, but...# A. Under Windows 3.X you will any calls to the exec command# will return an error.# B. A 16-bit program to test the behavior of the exec# command under NT and 95 will not be built.# INSTALLDIR = where the install- targets should copy the binaries and# support files#ROOT = ..TOOLS32 = c:\progra~1\devstudio\vcTOOLS32_rc = c:\progra~1\devstudio\sharedideTOOLS16 = c:\msvcINSTALLDIR = c:\progra~1\Tcl# Set this to the appropriate value of /MACHINE: for your platformMACHINE = IX86# Set NODEBUG to 0 to compile with symbolsNODEBUG = 1# uncomment one of the following lines to compile with TCL_MEM_DEBUG, # TCL_MEM_DEBUG, or TCL_COMPILE_DEBUG#DEBUGDEFINES = -DTCL_MEM_DEBUG#DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG#DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_STATS#DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS####################################################################### Do not modify below this line######################################################################NAMEPREFIX = tclDOTVERSION = 8.0VERSION = 80BINROOT = .!IF "$(NODEBUG)" == "1"TMPDIRNAME = ReleaseDBGX =!ELSETMPDIRNAME = DebugDBGX = d!ENDIFTMPDIR = $(BINROOT)\$(TMPDIRNAME)OUTDIRNAME = $(TMPDIRNAME)OUTDIR = $(TMPDIR)TCLLIB = $(OUTDIR)\$(NAMEPREFIX)$(VERSION)$(DBGX).libTCLDLLNAME = $(NAMEPREFIX)$(VERSION)$(DBGX).dllTCLDLL = $(OUTDIR)\$(TCLDLLNAME)TCLPLUGINLIB = $(OUTDIR)\$(NAMEPREFIX)$(VERSION)p$(DBGX).libTCLPLUGINDLLNAME= $(NAMEPREFIX)$(VERSION)p$(DBGX).dllTCLPLUGINDLL = $(OUTDIR)\$(TCLPLUGINDLLNAME)TCL16DLL = $(OUTDIR)\$(NAMEPREFIX)16$(VERSION)$(DBGX).dllTCLSH = $(OUTDIR)\$(NAMEPREFIX)sh$(VERSION)$(DBGX).exeTCLSHP = $(OUTDIR)\$(NAMEPREFIX)shp$(VERSION)$(DBGX).exeTCLPIPEDLLNAME = $(NAMEPREFIX)pip$(VERSION)$(DBGX).dllTCLPIPEDLL = $(OUTDIR)\$(TCLPIPEDLLNAME)TCLREGDLLNAME = $(NAMEPREFIX)reg$(VERSION)$(DBGX).dllTCLREGDLL = $(OUTDIR)\$(TCLREGDLLNAME)TCLTEST = $(OUTDIR)\$(NAMEPREFIX)test.exeDUMPEXTS = $(TMPDIR)\dumpexts.exeCAT16 = $(TMPDIR)\cat16.exeCAT32 = $(TMPDIR)\cat32.exeLIB_INSTALL_DIR = $(INSTALLDIR)\libBIN_INSTALL_DIR = $(INSTALLDIR)\binSCRIPT_INSTALL_DIR = $(INSTALLDIR)\lib\tcl$(DOTVERSION)INCLUDE_INSTALL_DIR = $(INSTALLDIR)\includeTCLSHOBJS = \ $(TMPDIR)\tclAppInit.objTCLTESTOBJS = \ $(TMPDIR)\tclTest.obj \ $(TMPDIR)\tclTestObj.obj \ $(TMPDIR)\tclWinTest.obj \ $(TMPDIR)\testMain.objTCLOBJS = \ $(TMPDIR)\panic.obj \ $(TMPDIR)\regexp.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)\tclCompExpr.obj \ $(TMPDIR)\tclCompile.obj \ $(TMPDIR)\tclDate.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)\tclIOSock.obj \ $(TMPDIR)\tclIOUtil.obj \ $(TMPDIR)\tclLink.obj \ $(TMPDIR)\tclListObj.obj \ $(TMPDIR)\tclLoad.obj \ $(TMPDIR)\tclMain.obj \ $(TMPDIR)\tclNamesp.obj \ $(TMPDIR)\tclNotify.obj \ $(TMPDIR)\tclObj.obj \ $(TMPDIR)\tclParse.obj \ $(TMPDIR)\tclPipe.obj \ $(TMPDIR)\tclPkg.obj \ $(TMPDIR)\tclPosixStr.obj \ $(TMPDIR)\tclPreserve.obj \ $(TMPDIR)\tclResolve.obj \ $(TMPDIR)\tclProc.obj \ $(TMPDIR)\tclStringObj.obj \ $(TMPDIR)\tclTimer.obj \ $(TMPDIR)\tclUtil.obj \ $(TMPDIR)\tclVar.obj \ $(TMPDIR)\tclWin32Dll.obj \ $(TMPDIR)\tclWinChan.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)\tclWinTime.obj cc32 = $(TOOLS32)\bin\cl.exelink32 = $(TOOLS32)\bin\link.exerc32 = $(TOOLS32_rc)\bin\rc.exeinclude32 = -I$(TOOLS32)\includecc16 = $(TOOLS16)\bin\cl.exelink16 = $(TOOLS16)\bin\link.exerc16 = $(TOOLS16)\bin\rc.exeinclude16 = -I$(TOOLS16)\includeWINDIR = $(ROOT)\winGENERICDIR = $(ROOT)\genericTCL_INCLUDES = -I$(WINDIR) -I$(GENERICDIR)TCL_DEFINES = -D__WIN32__ $(DEBUGDEFINES)TCL_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) \ $(TCL_INCLUDES) $(TCL_DEFINES)CON_CFLAGS = $(cdebug) $(cflags) $(cvars) $(include32) -DCONSOLEDOS_CFLAGS = $(cdebug) $(cflags) $(include16) -AL DLL16_CFLAGS = $(cdebug) $(cflags) $(include16) -ALw####################################################################### Link flags######################################################################!IF "$(NODEBUG)" == "1"ldebug = /RELEASE!ELSEldebug = -debug:full -debugtype:cv!ENDIF# declarations common to all linker optionslcommon = /NODEFAULTLIB /RELEASE /NOLOGO# declarations for use on Intel i386, i486, and Pentium systems!IF "$(MACHINE)" == "IX86"DLLENTRY = @12lflags = $(lcommon) /MACHINE:$(MACHINE)!ELSElflags = $(lcommon) /MACHINE:$(MACHINE)!ENDIFconlflags = $(lflags) -subsystem:console -entry:mainCRTStartupguilflags = $(lflags) -subsystem:windows -entry:WinMainCRTStartupdlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll!IF "$(MACHINE)" == "PPC"libc = libc.liblibcdll = crtdll.lib!ELSElibc = libc.lib oldnames.liblibcdll = msvcrt.lib oldnames.lib!ENDIFbaselibs = kernel32.lib $(optlibs) advapi32.lib user32.libwinlibs = $(baselibs) gdi32.lib comdlg32.lib winspool.libguilibs = $(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 -Otcdebug = -O2i -Gs -GD!ELSEcdebug = -Oti -Gs -GD!ENDIF!ELSEcdebug = -Z7 -Od -WX!ENDIF# declarations common to all compiler optionsccommon = -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!ENDIFcvars = -DWIN32 -D_WIN32cvarsmt = $(cvars) -D_MTcvarsdll = $(cvarsmt) -D_DLL!IF "$(NODEBUG)" == "1"cvarsdll = $(cvars) -MD!ELSEcvarsdll = $(cvars) -MDd!ENDIF####################################################################### Project specific targets######################################################################release: setup $(TCLSH) dllsdlls: setup $(TCL16DLL) $(TCLPIPEDLL) $(TCLREGDLL)all: setup $(TCLSH) dlls $(CAT16) $(CAT32) tcltest: setup $(TCLTEST) dlls $(CAT16) $(CAT32)plugin: setup $(TCLPLUGINDLL) $(TCLSHP)install: install-binaries install-librariestest: setup $(TCLTEST) dlls $(CAT16) $(CAT32) $(TCLTEST) << cd ../tests source all<<setup: @mkd $(TMPDIR) @mkd $(OUTDIR)$(DUMPEXTS): $(WINDIR)\winDumpExts.c $(cc32) $(CON_CFLAGS) -Fo$(TMPDIR)\ $? set LIB=$(TOOLS32)\lib $(link32) $(ldebug) $(conlflags) $(guilibs) -out:$@ \ $(TMPDIR)\winDumpExts.obj $(TCLLIB): $(TCLDLL)$(TCLDLL): $(TCLOBJS) $(TMPDIR)\tcl.def $(TMPDIR)\tcl.res set LIB=$(TOOLS32)\lib $(link32) $(ldebug) $(dlllflags) -def:$(TMPDIR)\tcl.def \ -out:$@ $(TMPDIR)\tcl.res $(guilibsdll) @<<$(TCLOBJS)<<$(TCLPLUGINLIB): $(TCLPLUGINDLL)$(TCLPLUGINDLL): $(TCLOBJS) $(TMPDIR)\plugin.def $(TMPDIR)\tcl.res set LIB=$(TOOLS32)\lib $(link32) $(ldebug) $(dlllflags) -def:$(TMPDIR)\plugin.def \ -out:$@ $(TMPDIR)\tcl.res $(guilibsdll) @<<$(TCLOBJS)<<$(TCLSH): $(TCLSHOBJS) $(TCLLIB) $(TMPDIR)\tclsh.res set LIB=$(TOOLS32)\lib $(link32) $(ldebug) $(conlflags) $(TMPDIR)\tclsh.res -stack:2300000 \ -out:$@ $(conlibsdll) $(TCLLIB) $(TCLSHOBJS) $(TCLSHP): $(TCLSHOBJS) $(TCLPLUGINLIB) $(TMPDIR)\tclsh.res set LIB=$(TOOLS32)\lib $(link32) $(ldebug) $(conlflags) $(TMPDIR)\tclsh.res -stack:2300000 \ -out:$@ $(conlibsdll) $(TCLPLUGINLIB) $(TCLSHOBJS) $(TCLTEST): $(TCLTESTOBJS) $(TCLLIB) $(TMPDIR)\tclsh.res set LIB=$(TOOLS32)\lib $(link32) $(ldebug) $(conlflags) $(TMPDIR)\tclsh.res -stack:2300000 \ -out:$@ $(conlibsdll) $(TCLLIB) $(TCLTESTOBJS)$(TCL16DLL): $(WINDIR)\tcl16.rc $(WINDIR)\tclWin16.c if exist $(cc16) $(cc16) @<<$(DLL16_CFLAGS) -Fo$(TMPDIR)\ $(WINDIR)\tclWin16.c<< @copy << $(TMPDIR)\tclWin16.def > nulLIBRARY $(@B);dllEXETYPE WINDOWSCODE PRELOAD MOVEABLE DISCARDABLEDATA PRELOAD MOVEABLE SINGLEHEAPSIZE 1024 EXPORTS WEP @1 RESIDENTNAME UTPROC @2 << if exist $(cc16) $(link16) /NOLOGO /ONERROR:NOEXE /NOE @<<$(TMPDIR)\tclWin16.obj$@nul$(TOOLS16)\lib\ ldllcew oldnames libw toolhelp$(TMPDIR)\tclWin16.def<< if exist $(cc16) $(rc16) -i $(GENERICDIR) $(TCL_DEFINES) $(WINDIR)\tcl16.rc $@$(TCLPIPEDLL): $(WINDIR)\stub16.c $(cc32) $(CON_CFLAGS) -Fo$(TMPDIR)\ $(WINDIR)\stub16.c set LIB=$(TOOLS32)\lib $(link32) $(ldebug) $(conlflags) -out:$@ $(TMPDIR)\stub16.obj $(guilibs)$(TCLREGDLL): $(TMPDIR)\tclWinReg.obj set LIB=$(TOOLS32)\lib $(link32) $(ldebug) $(dlllflags) -out:$@ $(TMPDIR)\tclWinReg.obj \ $(conlibsdll) $(TCLLIB)$(CAT32): $(WINDIR)\cat.c $(cc32) $(CON_CFLAGS) -Fo$(TMPDIR)\ $? set LIB=$(TOOLS32)\lib $(link32) $(conlflags) -out:$@ -stack:16384 $(TMPDIR)\cat.obj $(conlibs)$(CAT16): $(WINDIR)\cat.c if exist $(cc16) $(cc16) $(DOS_CFLAGS) -Fo$(TMPDIR)\ $? set LIB=$(TOOLS16)\lib if exist $(cc16) $(link16) /NOLOGO /ONERROR:NOEXE /NOI /STACK:16384 \ $(TMPDIR)\cat.obj,$@,nul,llibce.lib,nul$(TMPDIR)\tcl.def: $(DUMPEXTS) $(TCLOBJS) $(DUMPEXTS) -o $@ $(TCLDLLNAME) @<<$(TCLOBJS)<<$(TMPDIR)\plugin.def: $(DUMPEXTS) $(TCLOBJS) $(DUMPEXTS) -o $@ $(TCLPLUGINDLLNAME) @<<$(TCLOBJS)<<install-binaries: $(TCLSH) @mkd $(BIN_INSTALL_DIR) @mkd $(LIB_INSTALL_DIR) @echo installing $(TCLDLLNAME) @copy $(TCLDLL) $(BIN_INSTALL_DIR) @echo installing $(TCLSH) @copy $(TCLSH) $(BIN_INSTALL_DIR)install-libraries: @mkd $(LIB_INSTALL_DIR) @mkd $(INCLUDE_INSTALL_DIR) @mkd $(SCRIPT_INSTALL_DIR) @mkd $(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 @mkd $(SCRIPT_INSTALL_DIR)\http2.0 @copy $(ROOT)\library\http2.0\http.tcl $(SCRIPT_INSTALL_DIR)\http2.0 @copy $(ROOT)\library\http2.0\pkgIndex.tcl $(SCRIPT_INSTALL_DIR)\http2.0 @mkd $(SCRIPT_INSTALL_DIR)\opt0.1 @copy $(ROOT)\library\opt0.1\optparse.tcl $(SCRIPT_INSTALL_DIR)\opt0.1 @copy $(ROOT)\library\opt0.1\pkgIndex.tcl $(SCRIPT_INSTALL_DIR)\opt0.1 @copy $(GENERICDIR)\tcl.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\word.tcl $(SCRIPT_INSTALL_DIR)## Special case object file targets#$(TMPDIR)\tclWinInit.obj: $(WINDIR)\tclWinInit.c $(cc32) -DDLL_BUILD -DBUILD_tcl $(TCL_CFLAGS) $(EXTFLAGS) \ -Fo$(TMPDIR)\ $?$(TMPDIR)\testMain.obj: $(WINDIR)\tclAppInit.c $(cc32) $(TCL_CFLAGS) -DSTATIC_BUILD -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) -DSTATIC_BUILD -Fo$@ $?## Implicit rules#{$(WINDIR)}.c{$(TMPDIR)}.obj: $(cc32) -DDLL_BUILD -DBUILD_tcl $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<{$(GENERICDIR)}.c{$(TMPDIR)}.obj: $(cc32) -DDLL_BUILD -DBUILD_tcl $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<{$(ROOT)\compat}.c{$(TMPDIR)}.obj: $(cc32) -DDLL_BUILD -DBUILD_tcl $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<{$(WINDIR)}.rc{$(TMPDIR)}.res: $(rc32) -fo $@ -r -i $(GENERICDIR) -i $(WINDIR) -D__WIN32__ \ $(TCL_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 -@rmd $(OUTDIR) -@rmd $(TMPDIR)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -