# 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.42 96/07/23 16:58:55 # # 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.5 # 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;$(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)\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)\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 = tcl75.lib TKLIB = tk41.lib TCLDLL = tcl75.dll TKDLL = tk41.dll WISH = wish41.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);TCL_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