322 lines
6.4 KiB
Plaintext
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
|