#
# $Id: makefile.bc,v 1.2 2000/11/03 01:43:19 idiscovery Exp $
#
# makefile.bc --
#
# Borland C++ 4.5/5.0 makefile for Tix.
#
# Copyright (c) 1996, Expert Interface Technologies
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# Edit common.mak to set the common settings
#
# uncomment the following two lines to compile with TCL_MEM_DEBUG
#DEBUGDEFINES =TCL_MEM_DEBUG
#----------------------------------------------------------------------
# Environment setting
#
# ROOT = top of source tree
ROOT = ..
# TMPDIR = location where .obj files should be stored during build
#
!INCLUDE common.mak
#
# Borland C++ tools
#
BORLAND = $(TOOLS)
IMPLIB = Implib
BCC32 = Bcc32
BCC = Bcc
RC = brcc32
CP = copy
RM = del
TCL_INCLUDES = $(TCLDIR)\generic;$(TCLDIR)\win;$(ITCL_INCLUDES)
TK_INCLUDES = $(TKDIR)\generic;$(TKDIR)\xlib;$(TKDIR)\win
TIX_INCLUDES = $(ROOT)\generic;$(ROOT)\win
INCLUDES = $(BORLAND)\include;$(TIX_INCLUDES);$(TK_INCLUDES);$(TCL_INCLUDES)
LIBDIRS = $(BORLAND)\lib;$(ROOT)\win
TCLLIBDIR = $(TCLDIR)\win
TKLIBDIR = $(TKDIR)\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;$(DEBUGDEFINES);__BORLAND;$(ITCL_DEFINES)
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=$(TIXLIB) $(TKLIBDIR)\$(TKLIB) $(TCLLIBDIR)\$(TCLLIB) \
$(ITCL_LIBS) import32 cw32i
LNLIBS_dll=$(TKLIBDIR)\$(TKLIB) $(TCLLIBDIR)\$(TCLLIB) \
$(ITCL_LIBS) import32 cw32i
#
# Global makefile settings
#
.AUTODEPEND
.CACHEAUTODEPEND
.suffixes: .c .dll .lib .obj .exe
.path.c=$(ROOT)\win;$(ROOT)\generic;$(ROOT)\xlib
.path.obj=$(TMPDIR)
#
# Targets
#
all: cfgdll $(TIXDLL) cfgexe $(TIXWISH) cfgcln
test: cfgdll $(TIXDLL) 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\tixWinMain.c
$(BCC32) -c -o$@ $(ROOT)\win\tixWinMain.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
#
$(TIXDLL): $(TIXOBJS) tix.def
tlink32 -L$(LIBDIRS) @&&|
$(LNFLAGS_dll) $(TIXOBJS)
$@
-x
$(LNLIBS_dll)
tix.def
|
$(TIXWISH): $(WISHOBJS) $(TIXLIB) $(TIXOBJS)
tlink32 -L$(LIBDIRS) @&&|
$(LNFLAGS_exe) $(WISHOBJS)
$@
-x
$(LNLIBS_exe)
|, &&|
EXETYPE WINDOWS
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
|,
#
# Other dependencies
#
# The following rule automatically generates a tix.def file containing
# an export entry for every public symbol in the $(TKDLL) library.
tix.def: $(TIXOBJS)
$(TCLLIBDIR)\dumpexts.exe -o $@ $(TKDLL) @&&|
$(TIXOBJS)
|
# remove all generated files
clean:
-del $(TMPDIR)\*.obj
-del $(TMPDIR)\*.exp
-del $(TMPDIR)\*.res
-del $(TMPDIR)\*.def
-del $(TIXLIB)
-del $(TIXDLL)
-del $(TIXWISH)
-del bcc32.cfg
dist:
$(MAKE) TCL_VER=8.0
$(MAKE) TCL_VER=2.2i
distclean:
$(MAKE) -f makefile.bc TCL_VER=8.0 clean
$(MAKE) -f makefile.bc TCL_VER=2.2i clean