360 lines
14 KiB
Plaintext
360 lines
14 KiB
Plaintext
#
|
|
# MAKEFILE.TC: Borland Make file for TECO-C
|
|
# Last updated: 17 July 1990
|
|
#
|
|
# Command line:
|
|
#
|
|
# make -fmakefile.tc [-D80186] [-DALL] [-DINCDIR=?]
|
|
# [-DLIBDIR=?] [-DMAP] [-DMODEL=?]
|
|
# [-DNODEBUG] [-DTCPP100]
|
|
#
|
|
# -D80186
|
|
#
|
|
# The default is to compile for the 8086. If you have an 80186 or
|
|
# an 80286, -D80186 will supposedly enable some 80186 instructions
|
|
# like ENTER/LEAVE and PUSH <immediate data>.
|
|
#
|
|
# I don't think ENTER and LEAVE are generated if a function doesn't
|
|
# have any local variables. I think ENTER and LEAVE are slower
|
|
# than the standard function entry/exit sequence; but they can
|
|
# end up being smaller (?).
|
|
#
|
|
# PUSH <immediate data> means a number can be pushed directly on
|
|
# the stack (ie: PUSH 10) instead of loading the number into a
|
|
# register first and then pushing the register (ie MOV AX, 10 !
|
|
# PUSH AX). Saves a minuscule amount of space; and is faster, so
|
|
# why not?
|
|
#
|
|
# -DALL
|
|
#
|
|
# The default is to compile a TECO-C module and add it to the TECOC.LIB
|
|
# library. If you're compiling all the modules from scratch, -DALL will
|
|
# compile every module first, then build the TECOC.LIB library which is
|
|
# much faster.
|
|
#
|
|
# -DINCDIR=?
|
|
#
|
|
# I have my Turbo C libraries in C:\TC\INCLUDE
|
|
#
|
|
# -DLIBDIR=?
|
|
#
|
|
# I have my Turbo C libraries in C:\TC\LIB
|
|
#
|
|
# -DMAP
|
|
#
|
|
# The default is to not generate a TLINK .MAP file. The CHECKSUM_CODE
|
|
# #define in ZPORT.H enables runtime code checksumming to insure that
|
|
# code isn't being overwritten by stray pointers. The checksumming
|
|
# routines in TECOC.C require a current TLINK C .MAP file in order to
|
|
# work, so if you enable the CHECKSUM_CODE option, be sure to compile
|
|
# with -DMAP; and be sure you have an up-to-date .MAP file when running
|
|
# with code checksumming. Note: CHECKSUM_CODE doesn't work with Turbo
|
|
# Debugger since TD modifies code as it runs.
|
|
#
|
|
# -DMODEL=?
|
|
#
|
|
# Memory Model macro. '?' is one of the following:
|
|
#
|
|
# s small (near code, near data)
|
|
# c compact (near code, far data)
|
|
# m medium (far code, near data)
|
|
# l large (far code, far data, 64K static data)
|
|
# h huge (far code, far data, 64K static data per module)
|
|
#
|
|
# If DEBUGGING is TRUE in ZPORT.H you will have to use the large
|
|
# or huge model to get large (far) code. If DEBUGGING is FALSE
|
|
# in ZPORT.H you can use the compact model to get small (near) code.
|
|
#
|
|
# Stay with a large (far) data model. TECO-C uses huge pointers and
|
|
# we wouldn't want to send a huge pointer to a small data model C
|
|
# library routine which expects a near pointer.
|
|
#
|
|
# There *is* code in ZPORT.H which has been used to allow debugging
|
|
# completely under the small data model (look for __SMALL__), although
|
|
# there many problems. Do not use the small (near) data models.
|
|
#
|
|
# -DNODEBUG
|
|
#
|
|
# The default is to include stack checking (tcc -N, see STKCHK below)
|
|
# and Turbo Debugger (tcc -v) code. For production versions of TECO-C
|
|
# use -DNODEBUG. This will disable stack checking (tcc -N-), disable
|
|
# Turbo Debugger (tcc -v-), enable jump and register optimizations
|
|
# (tcc -O -Z), generate for speed (-G), merge duplicate strings
|
|
# (tcc -d) and use the Pascal function calling sequence (tcc -p)
|
|
# to generate smaller and faster function calls.
|
|
#
|
|
# Note: this NODEBUG switch has *nothing* to do with the internal
|
|
# debugging code enabled by setting DEBUGGING on in ZPORT.H.
|
|
#
|
|
# -DTCPP100
|
|
#
|
|
# There is a conflict in Turbo C++ v1.00 between large model and
|
|
# stack checking. If TCPP is defined and we're including TD debugging
|
|
# code (implying we're debugging in large model?), then disable stack
|
|
# checking.
|
|
#
|
|
|
|
!if !$d(MODEL) # if no model defined on the command line
|
|
!if $d(NODEBUG) # if we're not debugging
|
|
MODEL=c # use the compact model
|
|
!else # else
|
|
MODEL=l # use the large model
|
|
!endif # endif
|
|
!endif # endif
|
|
|
|
!if !$d(LIBDIR) # if no library directory on the command line
|
|
LIBDIR=f:\bc4\lib # use my Turbo C library directory
|
|
!endif # endif
|
|
|
|
|
|
CSTARTUP=$(LIBDIR)\c0$(MODEL)
|
|
CLIB=$(LIBDIR)\c$(MODEL)
|
|
|
|
#
|
|
# TCC options:
|
|
#
|
|
# -1 80186/286 Instructions (only if you have a 186+)
|
|
# -G Generate for speed (not debugging)
|
|
# -Idir Include file directory
|
|
# -K Default char is unsigned
|
|
# -N Check stack overflow (debugging)
|
|
# -O Optimize jumps (not debugging)
|
|
# -Z Optimize register usage (not debugging)
|
|
# -c Compile only
|
|
# -d Merge duplicate strings (not debugging)
|
|
# -m? memory model (? = c or l)
|
|
# -p use Pascal function calls (not deubgging)
|
|
# -v Source level debugging (debugging)
|
|
# -w Enable all warnings
|
|
#
|
|
|
|
COMPILE=bcc -c -m$(MODEL) -w -K
|
|
|
|
!if $d(NODEBUG) # if we're not debugging
|
|
COMPILE=$(COMPILE) -p -O1 # do optimizations
|
|
!else # else
|
|
COMPILE=$(COMPILE) -v # compile for Turbo Debugger
|
|
!if !$d(TCPP100)) # if not TC++
|
|
COMPILE=$(COMPILE) -N # compile for stack checking
|
|
!endif # endif
|
|
!endif # endif
|
|
|
|
!if $d(80186) # if we're on a 80186 or better
|
|
COMPILE=$(COMPILE) -1 # enable 80186 code
|
|
!endif # endif
|
|
|
|
!if $d(INCDIR)
|
|
COMPILE=$(COMPILE) -I$(INCDIR)
|
|
!endif
|
|
|
|
|
|
#
|
|
# TLIB options:
|
|
#
|
|
# /c case sensitive library
|
|
# /e create extended dictionary
|
|
#
|
|
|
|
TLIB_OP=/c
|
|
|
|
!if $d(NODEBUG)
|
|
TLIB_OP=$(TLIB_OP) /e
|
|
!endif
|
|
|
|
#
|
|
# how to make the TECOC.EXE file
|
|
#
|
|
|
|
tecoc.exe : tecoc.obj tecoc.lib
|
|
bcc -m$(MODEL) -lm tecoc.obj noeh$(MODEL).lib tecoc.lib
|
|
|
|
|
|
#
|
|
# how to make the TECOC.OBJ module
|
|
#
|
|
|
|
tecoc.obj : tecoc.c zport.h tecoc.h defext.h deferr.h dscren.h
|
|
$(COMPILE) tecoc.c
|
|
|
|
#
|
|
# what constitutes the TECOC.LIB library
|
|
#
|
|
|
|
TECOC_OBJS=\
|
|
baksrc.obj bldstr.obj clenup.obj cmatch.obj docjr.obj doeves.obj \
|
|
doflag.obj echoit.obj err.obj exeats.obj exea.obj exebar.obj \
|
|
exebsl.obj exeb.obj execcc.obj execln.obj execom.obj execrt.obj \
|
|
execst.obj execta.obj exectc.obj exectd.obj execte.obj execti.obj \
|
|
exectl.obj exectn.obj execto.obj exectp.obj exectq.obj exectr.obj \
|
|
exects.obj exectt.obj exectu.obj exectv.obj exectw.obj exectx.obj \
|
|
execty.obj exectz.obj exec.obj exedgt.obj exedot.obj exedqu.obj \
|
|
exed.obj exeequ.obj exeesc.obj exeexc.obj exeey.obj exee.obj \
|
|
exefb.obj exef.obj exegtr.obj exeg.obj exeh.obj exeill.obj \
|
|
exei.obj exej.obj exek.obj exelbr.obj exelst.obj exel.obj \
|
|
exem.obj exenul.obj exenyi.obj exen.obj exeopr.obj exeo.obj \
|
|
exeprc.obj exepw.obj exep.obj exeqes.obj exeq.obj exerbr.obj \
|
|
exertp.obj exer.obj exescl.obj exes.obj exet.obj exeund.obj \
|
|
exeusc.obj exeu.obj exev.obj exew.obj exex.obj exey.obj \
|
|
exez.obj findes.obj findqr.obj flowec.obj flowee.obj flowel.obj \
|
|
getara.obj getnma.obj inccbp.obj init.obj insstr.obj isradx.obj \
|
|
ln2chr.obj makdbf.obj makrom.obj popmac.obj pshmac.obj pushex.obj \
|
|
rdline.obj rdpage.obj readcs.obj replac.obj search.obj singlp.obj \
|
|
skpcmd.obj srclop.obj sserch.obj tabort.obj typbuf.obj typest.obj \
|
|
uminus.obj wrpage.obj zfrsrc.obj zmsdos.obj
|
|
|
|
#
|
|
# how to make the TECOC.LIB library
|
|
#
|
|
|
|
!if $d(ALL) #build entire library at once
|
|
|
|
tecoc.lib : $(TECOC_OBJS) tctlib.rsp
|
|
del tecoc.lib
|
|
tlib $(TLIB_OP) tecoc.lib @tctlib.rsp
|
|
|
|
.c.obj:
|
|
$(COMPILE) $*.c
|
|
|
|
!else #modules added to library after compile
|
|
|
|
tecoc.lib : $(TECOC_OBJS)
|
|
|
|
.c.obj:
|
|
$(COMPILE) $*.c
|
|
tlib $(TLIB_OP) tecoc.lib -+$*.obj
|
|
|
|
!endif
|
|
|
|
#
|
|
# The CHECKSUM_CODE routines use the ZFirst() function in ZFIRST.C
|
|
# to get an idea of where the first code module is located in memory
|
|
# when TECO-C is loaded.
|
|
#
|
|
|
|
zfirst.obj : zfirst.c
|
|
|
|
#
|
|
# the TECOC.LIB library modules.
|
|
#
|
|
|
|
baksrc.obj : baksrc.c zport.h tecoc.h defext.h dchars.h chmacs.h deferr.h
|
|
bldstr.obj : bldstr.c zport.h tecoc.h defext.h deferr.h dchars.h chmacs.h
|
|
clenup.obj : clenup.c zport.h tecoc.h defext.h
|
|
cmatch.obj : cmatch.c zport.h tecoc.h defext.h dchars.h chmacs.h deferr.h
|
|
docjr.obj : docjr.c zport.h tecoc.h defext.h deferr.h
|
|
doeves.obj : doeves.c zport.h tecoc.h defext.h dchars.h
|
|
doflag.obj : doflag.c zport.h tecoc.h defext.h
|
|
echoit.obj : echoit.c zport.h tecoc.h defext.h dchars.h
|
|
err.obj : err.c zport.h tecoc.h defext.h chmacs.h deferr.h dchars.h
|
|
exea.obj : exea.c zport.h tecoc.h defext.h deferr.h
|
|
exeats.obj : exeats.c zport.h tecoc.h defext.h
|
|
exeb.obj : exeb.c zport.h tecoc.h defext.h
|
|
exebar.obj : exebar.c zport.h tecoc.h defext.h deferr.h
|
|
exebsl.obj : exebsl.c zport.h tecoc.h defext.h chmacs.h
|
|
exec.obj : exec.c zport.h tecoc.h defext.h
|
|
execcc.obj : execcc.c zport.h tecoc.h defext.h deferr.h
|
|
execln.obj : execln.c zport.h tecoc.h defext.h
|
|
execom.obj : execom.c zport.h tecoc.h defext.h deferr.h
|
|
execrt.obj : execrt.c zport.h tecoc.h defext.h chmacs.h deferr.h
|
|
execst.obj : execst.c zport.h tecoc.h defext.h deferr.h
|
|
execta.obj : execta.c zport.h tecoc.h defext.h dchars.h
|
|
exectc.obj : exectc.c zport.h tecoc.h defext.h dchars.h
|
|
exectd.obj : exectd.c zport.h tecoc.h defext.h
|
|
execte.obj : execte.c zport.h tecoc.h defext.h
|
|
execti.obj : execti.c zport.h tecoc.h defext.h dchars.h
|
|
exectl.obj : exectl.c zport.h tecoc.h defext.h dchars.h
|
|
exectn.obj : exectn.c zport.h tecoc.h defext.h
|
|
execto.obj : execto.c zport.h tecoc.h defext.h
|
|
exectp.obj : exectp.c zport.h tecoc.h defext.h
|
|
exectq.obj : exectq.c zport.h tecoc.h defext.h
|
|
exectr.obj : exectr.c zport.h tecoc.h defext.h deferr.h
|
|
exects.obj : exects.c zport.h tecoc.h defext.h
|
|
exectt.obj : exectt.c zport.h tecoc.h defext.h deferr.h
|
|
exectu.obj : exectu.c zport.h tecoc.h defext.h deferr.h dchars.h
|
|
exectv.obj : exectv.c zport.h tecoc.h defext.h deferr.h
|
|
exectw.obj : exectw.c zport.h tecoc.h defext.h deferr.h
|
|
exectx.obj : exectx.c zport.h tecoc.h defext.h
|
|
execty.obj : execty.c zport.h tecoc.h defext.h
|
|
exectz.obj : exectz.c zport.h tecoc.h defext.h
|
|
exed.obj : exed.c zport.h tecoc.h defext.h deferr.h
|
|
exedgt.obj : exedgt.c zport.h tecoc.h defext.h deferr.h chmacs.h
|
|
exedot.obj : exedot.c zport.h tecoc.h defext.h
|
|
exedqu.obj : exedqu.c zport.h tecoc.h defext.h deferr.h chmacs.h
|
|
exee.obj : exee.c zport.h tecoc.h defext.h chmacs.h dchars.h deferr.h
|
|
exeequ.obj : exeequ.c zport.h tecoc.h defext.h dchars.h deferr.h
|
|
exeesc.obj : exeesc.c zport.h tecoc.h defext.h dchars.h
|
|
exeexc.obj : exeexc.c zport.h tecoc.h defext.h
|
|
exeey.obj : exeey.c zport.h tecoc.h defext.h
|
|
exef.obj : exef.c zport.h tecoc.h defext.h chmacs.h deferr.h
|
|
exefb.obj : exefb.c zport.h tecoc.h defext.h deferr.h
|
|
exeg.obj : exeg.c zport.h tecoc.h defext.h deferr.h
|
|
exegtr.obj : exegtr.c zport.h tecoc.h defext.h deferr.h
|
|
exeh.obj : exeh.c zport.h tecoc.h defext.h
|
|
exei.obj : exei.c zport.h tecoc.h defext.h dchars.h deferr.h
|
|
exeill.obj : exeill.c zport.h tecoc.h defext.h deferr.h
|
|
exej.obj : exej.c zport.h tecoc.h defext.h
|
|
exek.obj : exek.c zport.h tecoc.h defext.h
|
|
exel.obj : exel.c zport.h tecoc.h defext.h
|
|
exelbr.obj : exelbr.c zport.h tecoc.h defext.h deferr.h
|
|
exelst.obj : exelst.c zport.h tecoc.h defext.h deferr.h
|
|
exem.obj : exem.c zport.h tecoc.h defext.h deferr.h
|
|
exen.obj : exen.c zport.h tecoc.h defext.h deferr.h
|
|
exenul.obj : exenul.c zport.h tecoc.h defext.h
|
|
exenyi.obj : exenyi.c zport.h tecoc.h defext.h deferr.h
|
|
exeo.obj : exeo.c zport.h tecoc.h defext.h dchars.h deferr.h
|
|
exeopr.obj : exeopr.c zport.h tecoc.h defext.h
|
|
exep.obj : exep.c zport.h tecoc.h defext.h deferr.h
|
|
exeprc.obj : exeprc.c zport.h tecoc.h defext.h deferr.h
|
|
exepw.obj : exepw.c zport.h tecoc.h defext.h
|
|
exeq.obj : exeq.c zport.h tecoc.h defext.h deferr.h
|
|
exeqes.obj : exeqes.c zport.h tecoc.h defext.h
|
|
exer.obj : exer.c zport.h tecoc.h defext.h
|
|
exerbr.obj : exerbr.c zport.h tecoc.h defext.h deferr.h
|
|
exertp.obj : exertp.c zport.h tecoc.h defext.h deferr.h
|
|
exes.obj : exes.c zport.h tecoc.h defext.h dchars.h deferr.h
|
|
exescl.obj : exescl.c zport.h tecoc.h defext.h deferr.h
|
|
exet.obj : exet.c zport.h tecoc.h defext.h dchars.h
|
|
exeu.obj : exeu.c zport.h tecoc.h defext.h deferr.h
|
|
exeund.obj : exeund.c zport.h tecoc.h defext.h deferr.h
|
|
exeusc.obj : exeusc.c zport.h tecoc.h defext.h dchars.h
|
|
exev.obj : exev.c zport.h tecoc.h defext.h
|
|
exew.obj : exew.c zport.h tecoc.h defext.h dscren.h
|
|
exex.obj : exex.c zport.h tecoc.h defext.h deferr.h
|
|
exey.obj : exey.c zport.h tecoc.h defext.h deferr.h
|
|
exez.obj : exez.c zport.h tecoc.h defext.h
|
|
findes.obj : findes.c zport.h tecoc.h defext.h deferr.h
|
|
findqr.obj : findqr.c zport.h tecoc.h defext.h deferr.h chmacs.h
|
|
flowec.obj : flowec.c zport.h tecoc.h defext.h deferr.h
|
|
flowee.obj : flowee.c zport.h tecoc.h defext.h deferr.h
|
|
flowel.obj : flowel.c zport.h tecoc.h defext.h deferr.h
|
|
getara.obj : getara.c zport.h tecoc.h defext.h deferr.h
|
|
getnma.obj : getnma.c zport.h tecoc.h defext.h deferr.h
|
|
inccbp.obj : inccbp.c zport.h tecoc.h defext.h deferr.h
|
|
init.obj : init.c zport.h tecoc.h defext.h deferr.h
|
|
insstr.obj : insstr.c zport.h tecoc.h defext.h deferr.h
|
|
isradx.obj : isradx.c zport.h tecoc.h defext.h chmacs.h
|
|
ln2chr.obj : ln2chr.c zport.h tecoc.h defext.h dchars.h chmacs.h
|
|
makdbf.obj : makdbf.c zport.h tecoc.h defext.h
|
|
makrom.obj : makrom.c zport.h tecoc.h defext.h deferr.h
|
|
popmac.obj : popmac.c zport.h tecoc.h defext.h
|
|
pshmac.obj : pshmac.c zport.h tecoc.h defext.h deferr.h
|
|
pushex.obj : pushex.c zport.h tecoc.h defext.h dchars.h deferr.h
|
|
rdline.obj : rdline.c zport.h tecoc.h defext.h deferr.h dchars.h
|
|
rdpage.obj : rdpage.c zport.h tecoc.h defext.h deferr.h
|
|
readcs.obj : readcs.c zport.h tecoc.h defext.h dchars.h chmacs.h deferr.h \
|
|
dscren.h
|
|
replac.obj : replac.c zport.h tecoc.h defext.h dchars.h
|
|
search.obj : search.c zport.h tecoc.h defext.h deferr.h dchars.h
|
|
singlp.obj : singlp.c zport.h tecoc.h defext.h dchars.h
|
|
skpcmd.obj : skpcmd.c zport.h tecoc.h defext.h chmacs.h dchars.h deferr.h
|
|
srclop.obj : srclop.c zport.h tecoc.h defext.h deferr.h
|
|
sserch.obj : sserch.c zport.h tecoc.h defext.h
|
|
tabort.obj : tabort.c zport.h tecoc.h
|
|
typbuf.obj : typbuf.c zport.h tecoc.h defext.h dchars.h chmacs.h
|
|
typest.obj : typest.c zport.h tecoc.h defext.h dchars.h
|
|
uminus.obj : uminus.c zport.h tecoc.h defext.h
|
|
wrpage.obj : wrpage.c zport.h tecoc.h defext.h dchars.h deferr.h
|
|
zfrsrc.obj : zfrsrc.c zport.h tecoc.h defext.h dchars.h chmacs.h deferr.h
|
|
zmsdos.obj : zmsdos.c zport.h tecoc.h defext.h chmacs.h clpars.h deferr.h \
|
|
dchars.h dscren.h vrbmsg.h
|