archie/tk4.2/win/makefile.bc
2024-05-27 16:40:40 +02:00

322 lines
6.4 KiB
Plaintext

# Borland C++ 4.5 makefile for Tk
#
# Copyright (c) 1995-1996 by Sun Microsystems, Inc.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# SCCS: @(#) makefile.bc 1.49 96/10/17 17:34:14
#
# Project directories
#
# ROOT = top of source tree
# TMPDIR = location where .obj files should be stored during build
# TCLDIR = location of top of Tcl source heirarchy
#
ROOT = ..
TMPDIR = .
TOOLS = c:\bc45
TCLDIR = ..\..\tcl7.6
# uncomment the following line to compile with symbols
#DEBUG=1
# uncomment the following two lines to compile with TCL_MEM_DEBUG
#DEBUGDEFINES =TCL_MEM_DEBUG
#
# Borland C++ tools
#
BORLAND = $(TOOLS)
IMPLIB = $(BORLAND)\bin\Implib
BCC32 = $(BORLAND)\bin\Bcc32
TLINK32 = $(BORLAND)\bin\tlink32
RC = $(BORLAND)\bin\brcc32
CP = copy
RM = del
INCLUDES = $(BORLAND)\include;$(ROOT)\generic;$(ROOT)\bitmaps;$(ROOT)\xlib;$(ROOT);$(TCLDIR)\generic
LIBDIRS = $(BORLAND)\lib;$(ROOT)\win
TCLLIBDIR = $(TCLDIR)\win
!ifndef DEBUG
# these macros cause maximum optimization and no symbols
DEBUGLDFLAGS =
DEBUGCCFLAGS = -v- -vi- -O2
!else
# these macros enable debugging
DEBUGLDFLAGS = -v
DEBUGCCFLAGS = -k -Od -v
!endif
DEFINES = _RTLDLL;USE_TCLALLOC=0;STRICT;$(DEBUGDEFINES)
PROJECTCCFLAGS= $(DEBUGCCFLAGS) -w-par -w-stu
LNFLAGS_exe = -Tpe -aa -c $(DEBUGLDFLAGS) $(BORLAND)\lib\c0w32
LNFLAGS_dll = -Tpd -aa -c $(DEBUGLDFLAGS) $(BORLAND)\lib\c0d32
LNLIBS_exe = $(TKLIB) $(TCLLIBDIR)\$(TCLLIB) import32 cw32i
LNLIBS_dll = $(TCLLIBDIR)\$(TCLLIB) import32 cw32i
#
# Global makefile settings
#
.AUTODEPEND
.CACHEAUTODEPEND
.suffixes: .c .dll .lib .obj .exe
.path.c=$(ROOT)\win;$(ROOT)\generic;$(ROOT)\xlib
.path.obj=$(TMPDIR)
WISHOBJS = \
$(TMPDIR)\tkConsole.obj \
$(TMPDIR)\winMain.obj
TKTESTOBJS = \
$(TMPDIR)\tkConsole.obj \
$(TMPDIR)\tkTest.obj \
$(TMPDIR)\tkSquare.obj \
$(TMPDIR)\testMain.obj
XLIBOBJS = \
$(TMPDIR)\xdraw.obj \
$(TMPDIR)\xgc.obj \
$(TMPDIR)\ximage.obj \
$(TMPDIR)\xutil.obj
TKOBJS = \
$(XLIBOBJS) \
$(TMPDIR)\tkWin32Dll.obj \
$(TMPDIR)\tkWinClipboard.obj \
$(TMPDIR)\tkWinColor.obj \
$(TMPDIR)\tkWinCursor.obj \
$(TMPDIR)\tkWinDialog.obj \
$(TMPDIR)\tkWinDraw.obj \
$(TMPDIR)\tkWinFont.obj \
$(TMPDIR)\tkWinImage.obj \
$(TMPDIR)\tkWinInit.obj \
$(TMPDIR)\tkWinKey.obj \
$(TMPDIR)\tkWinPixmap.obj \
$(TMPDIR)\tkWinPointer.obj \
$(TMPDIR)\tkWinRegion.obj \
$(TMPDIR)\tkWinWindow.obj \
$(TMPDIR)\tkWinWm.obj \
$(TMPDIR)\tkWinX.obj \
$(TMPDIR)\stubs.obj \
$(TMPDIR)\tk3d.obj \
$(TMPDIR)\tkArgv.obj \
$(TMPDIR)\tkAtom.obj \
$(TMPDIR)\tkBind.obj \
$(TMPDIR)\tkBitmap.obj \
$(TMPDIR)\tkButton.obj \
$(TMPDIR)\tkCanvArc.obj \
$(TMPDIR)\tkCanvBmap.obj \
$(TMPDIR)\tkCanvImg.obj \
$(TMPDIR)\tkCanvLine.obj \
$(TMPDIR)\tkCanvPoly.obj \
$(TMPDIR)\tkCanvPs.obj \
$(TMPDIR)\tkCanvText.obj \
$(TMPDIR)\tkCanvUtil.obj \
$(TMPDIR)\tkCanvWind.obj \
$(TMPDIR)\tkCanvas.obj \
$(TMPDIR)\tkClipboard.obj \
$(TMPDIR)\tkCmds.obj \
$(TMPDIR)\tkColor.obj \
$(TMPDIR)\tkConfig.obj \
$(TMPDIR)\tkCursor.obj \
$(TMPDIR)\tkEntry.obj \
$(TMPDIR)\tkError.obj \
$(TMPDIR)\tkEvent.obj \
$(TMPDIR)\tkFileFilter.obj \
$(TMPDIR)\tkFocus.obj \
$(TMPDIR)\tkFont.obj \
$(TMPDIR)\tkFrame.obj \
$(TMPDIR)\tkGC.obj \
$(TMPDIR)\tkGeometry.obj \
$(TMPDIR)\tkGet.obj \
$(TMPDIR)\tkGrab.obj \
$(TMPDIR)\tkGrid.obj \
$(TMPDIR)\tkImage.obj \
$(TMPDIR)\tkImgBmap.obj \
$(TMPDIR)\tkImgGIF.obj \
$(TMPDIR)\tkImgPPM.obj \
$(TMPDIR)\tkImgPhoto.obj \
$(TMPDIR)\tkImgUtil.obj \
$(TMPDIR)\tkListbox.obj \
$(TMPDIR)\tkMain.obj \
$(TMPDIR)\tkMenu.obj \
$(TMPDIR)\tkMenubutton.obj \
$(TMPDIR)\tkMessage.obj \
$(TMPDIR)\tkOption.obj \
$(TMPDIR)\tkPack.obj \
$(TMPDIR)\tkPlace.obj \
$(TMPDIR)\tkRectOval.obj \
$(TMPDIR)\tkScale.obj \
$(TMPDIR)\tkScrollbar.obj \
$(TMPDIR)\tkSelect.obj \
$(TMPDIR)\tkSend.obj \
$(TMPDIR)\tkText.obj \
$(TMPDIR)\tkTextBTree.obj \
$(TMPDIR)\tkTextDisp.obj \
$(TMPDIR)\tkTextIndex.obj \
$(TMPDIR)\tkTextMark.obj \
$(TMPDIR)\tkTextTag.obj \
$(TMPDIR)\tkTextWind.obj \
$(TMPDIR)\tkTrig.obj \
$(TMPDIR)\tkUtil.obj \
$(TMPDIR)\tkVisual.obj \
$(TMPDIR)\tkWindow.obj
TCLLIB = tcl76.lib
TKLIB = tk42.lib
TCLDLL = tcl76.dll
TKDLL = tk42.dll
WISH = wish42.exe
TKTEST = tktest.exe
#
# Targets
#
all: cfgdll $(TKDLL) cfgexe $(WISH) cfgcln
test: cfgdll $(TKDLL) cfgtest $(TKTEST) cfgcln
# Implicit Targets
.c.obj:
@$(BCC32) {$< }
.dll.lib:
$(IMPLIB) -c $@ $<
.rc.res:
$(RC) -i$(INCLUDES) $<
#
# Special case object file targets
#
$(TMPDIR)\testMain.obj : $(ROOT)\win\winMain.c
$(BCC32) -c -o$@ $(ROOT)\win\winMain.c
#
# Configuration file targets - these files are implicitly used by the compiler
#
cfgdll:
@$(CP) &&|
-n$(TMPDIR) -I$(INCLUDES) -c -WD
-D$(DEFINES) -3 -d $(PROJECTCCFLAGS)
| bcc32.cfg >NUL
cfgexe:
@$(CP) &&|
-n$(TMPDIR) -I$(INCLUDES) -c -W
-D$(DEFINES) -3 -d $(PROJECTCCFLAGS)
| bcc32.cfg >NUL
cfgtest:
@$(CP) &&|
-n$(TMPDIR) -I$(INCLUDES) -c -W
-D$(DEFINES);TK_TEST -3 -d $(PROJECTCCFLAGS)
| bcc32.cfg >NUL
cfgcln:
@$(RM) bcc32.cfg
#
# Executable targets
#
$(TKDLL): $(TKOBJS) tk.def rc\tk.res
$(TLINK32) @&&|
$(LNFLAGS_dll) $(TKOBJS)
$@
-x
$(LNLIBS_dll)
tk.def
rc\tk.res
|
$(WISH): $(WISHOBJS) $(TKLIB) rc\wish.res
$(TLINK32) @&&|
$(LNFLAGS_exe) $(WISHOBJS)
$@
-x
$(LNLIBS_exe)
|, &&|
EXETYPE WINDOWS
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
|, rc\wish.res
$(TKTEST): $(TKTESTOBJS) $(TKLIB)
$(TLINK32) $(LNFLAGS_exe) @&&|
$(TKTESTOBJS)
$@
-x
$(LNLIBS_exe)
|, &&|
EXETYPE WINDOWS
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
|,
#
# Other dependencies
#
rc\wish.res: rc\wish.ico
rc\tk.res: rc\tk.ico rc\*.cur
# The following rule automatically generates a tk.def file containing
# an export entry for every public symbol in the $(TKDLL) library.
tk.def: $(TKOBJS)
$(TCLLIBDIR)\dumpexts.exe -o $@ $(TKDLL) @&&|
$(TKOBJS)
|
# rule to build library object files
# debugging rules, the .dll and .exe files must be in the same
# directory as the object files for debugging purposes
$(TMPDIR)\$(TKDLL): $(TKDLL)
$(CP) $(TKDLL) $(TMPDIR)
$(TMPDIR)\$(TCLDLL): $(TCLLIBDIR)\$(TCLDLL)
$(CP) $(TCLLIBDIR)\$(TCLDLL) $(TMPDIR)
$(TMPDIR)\$(WISH): $(WISH)
$(CP) $(WISH) $(TMPDIR)
$(TMPDIR)\$(TKTEST): $(TKTEST)
$(CP) $(TKTEST) $(TMPDIR)
debug: $(TMPDIR)\$(TKDLL) $(TMPDIR)\$(TCLDLL) $(TMPDIR)\$(TKTEST)
# remove all generated files
clean:
$(RM) $(WISH)
$(RM) $(TKTEST)
$(RM) $(TKLIB)
$(RM) $(TKDLL)
$(RM) rc\*.res
$(RM) tk.def
$(RM) $(TMPDIR)\*.obj
$(RM) *.cfg