📄 makefile.bc
字号:
#
# Makefile for Borland C++ 5.5 (or C++ Builder 5), adapted from the makefile
# for Visual C++ that came with tcl 8.3.3
#
# 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.
#
# Have a look at the complete description on how to build and test Tcl with
# the current Borland compilers at www.ratiosoft.com/tcl/borland.
#
# Usage:
# - Adapt the paths below to match your compiler's location
# - Make sure the compiler's bin directory is on your path
# - Open a console
# - To make a debug version enter
# make -fmakefile.bc -DNODEBUG=0 xxx
# where 'xxx' is the target you want (e.g. 'all', 'test', ...)
# Please note: I omitted the 'd' suffix for debug versions because Tcl
# will always call tclpip83.dll and not tclpip83d.dll, causing an error.
# ^
# Besides, the debug version goes into a separate directory, so there
# should be no problem having DLLs and EXEs with the same name.
# If you prefer your debug version having the 'd' suffix just uncomment
# the line
# #DBGX = d
#
# - To make a 'normal' version enter
# make -fmakefile.bc xxx
# where 'xxx' is the target you want (e.g. 'all', 'test', ...)
#
# DISCLAIMER:
# This makefile has an experimental status - that is those targets which
# have been modified do in fact compile and link with Borland's C++
# Builder 5 and with the free Borland compiler (Borland C++ 5.5).
# However the author assumes no responsiblity for any effect which the use of
# this makefile or of the resulting programs might have on your system.
#
# Not yet modified:
# - The 'plug-in-DLL' and the associated shell.
# - The programs to create the windows help files.
#
# Suggestions and / or improvements are always welcome.
#
# May 2001, H. Giese (hgiese@ratiosoft.com)
#
# 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 Borland development tools.
#
# INSTALLDIR = where the install-targets should copy the binaries and
# support files
#
ROOT = ..
INSTALLDIR = c:\program files\tcl
# If you have C++ Builder 5 or the free Borland C++ 5.5 compiler
# adapt the following paths as appropriate for your system
TOOLS32 = c:\dev\bcc55
TOOLS32_rc = c:\dev\bcc55
#TOOLS32 = c:\bc55
#TOOLS32_rc = c:\bc55
cc32 = "$(TOOLS32)\bin\bcc32.exe"
link32 = "$(TOOLS32)\bin\ilink32.exe"
lib32 = "$(TOOLS32)\bin\tlib.exe"
rc32 = "$(TOOLS32_rc)\bin\brcc32.exe"
include32 = -I"$(TOOLS32)\include"
libpath32 = -L"$(TOOLS32)\lib"
# Uncomment the following line to compile with thread support
#THREADDEFINES = -DTCL_THREADS=1
# Allow definition of NDEBUG via command line
# Set NODEBUG to 0 to compile with symbols
!if !defined(NODEBUG)
NODEBUG = 1
!endif
# 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.4
VERSION = 84
DDEVERSION = 12
DDEDOTVERSION = 1.2
REGVERSION = 11
REGDOTVERSION = 1.1
BINROOT = ..
!IF "$(NODEBUG)" == "1"
TMPDIRNAME = Release
DBGX =
!ELSE
TMPDIRNAME = Debug
#DBGX = d
DBGX =
!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$(REGVERSION)$(DBGX).dll
TCLREGDLL = $(OUTDIR)\$(TCLREGDLLNAME)
TCLDDEDLLNAME = $(NAMEPREFIX)dde$(DDEVERSION)$(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)\strtoll.obj \
$(TMPDIR)\strtoull.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)\tclThreadJoin.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
WINDIR = $(ROOT)\win
GENERICDIR = $(ROOT)\generic
TCL_INCLUDES = -I"$(WINDIR)" -I"$(GENERICDIR)"
TCL_DEFINES = $(DEBUGDEFINES) $(THREADDEFINES)
######################################################################
# Compiler flags
######################################################################
!IF "$(NODEBUG)" == "1"
# these macros cause maximum optimization and no symbols
cdebug = -v- -vi- -O2 -D_DEBUG
!ELSE
# these macros enable debugging
cdebug = -k -Od -r- -v -vi- -y
!ENDIF
SYSDEFINES = _MT;NO_STRICT;_NO_VCL
# declarations common to all compiler options
cbase = -c -q -3 -a4 -g0 -tWM -Ve -Vx -X-
WARNINGS = -w-rch -w-pch -w-par -w-dup -w-pro -w-dpu
ccons = -tWC
INCLUDEPATH = $(include32) $(TCL_INCLUDES)
CFLAGS = $(cdebug) $(cbase) $(INCLUDEPATH) $(WARNINGS) -D$(SYSDEFINES)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -