📄 makefile
字号:
#========================================================================
# Name: QBASIC Runtime Makefile
# Usage:
# make -f <makefile> [TL=<tools dir>] ["IDB=-DDBG"] [bqb50.lib bqlb45.lib]
# <makefile> - name of the make file produced by -o from
# buildkit.
# IDB=-DDBG - specifies to build an internal debug version.
# bqb50.lib - DOS 3 QBASIC interpreter library
# TL=directory - specifies where to get the tools from
# Purpose:
# The make file will rebuild any "out of date" objects and build
# bqb50.lib. It utilizes the dos development utilities to accomplish this
# task. masm is the assembler, and lib is the librarian. This makefile
# is meant to be used with a Large model Xenix style Make.
# When this build has completed, the message "Basic built"
# will be displayed.
# Notes:
# If a new module is added/removed, or an include file is
# added/removed, or an include file is added/removed from a
# module, then buildkit must be rerun on QB5.BLD.
# QB5.BLD must also be updated in the LITERAL sections
# to reflect the appropriate changes. There exists a batch file
# (bldkit.bat) which will invoke buildkit with all the approprite
# switches to generate this makefile.
#
#========================================================================
#************************************************************************
# OBJECT FILE dictionary
# ----------------------
# .obj = Common object module with no DOS specific support
# .ob3 = Dos 3 specific module
# .or3 = Dos 3 specific module with special user library support.
#
# NOTE: If a .obj file generates an assemble time error then this
# can happen as the result of a EI_QB, FO_RTM, or OM_DOS5 switch
# that has been added to the file. At this point the file must
# be multiply assembled.
#*************************************************************************
#*************************************************************************
# If $(IDB) is undefined (release version), use it to set WARNING LEVEL 2
#*************************************************************************
!if "$(IDB)" == ""
IDB = -W2
!endif
#*************************************************************************
# Aliases for components of the runtime.
#*************************************************************************
#=================== MATH component ======================================
RTMATH = fin.obj hexoct.obj ifout.obj \
mtfloat.obj helpi4.obj fout.obj \
random.obj ..\tl\lib3\fpreset.obj \
helpfp87.obj
#=================== GRAPHICS component ==================================
GRAPHICS = grputil.obj vwclr.obj grpmap.obj \
grcoord.obj llagrp.obj llcgasup.obj \
llegasup.obj llxgasup.obj llhgcsup.obj \
mclprc.obj gwpal.obj
GRAPH3 = circle.ob3 draw.ob3 getput.ob3 \
grview.ob3 grline.ob3 grpoint.ob3 \
paint.ob3 grinit.ob3 llcgrp.ob3 \
lltext.ob3 llcga.ob3 llega.ob3 \
llvga.ob3 grspace.ob3 llhgc.ob3 \
llgrstub.ob3 lloga.ob3 grfpinit.ob3 \
grwindow.ob3
#=================== STRING component ====================================
STRING = mid.obj strfcn.obj strnum.obj \
string.obj stinkey.obj stcore.obj \
stringfp.obj
STRING3 = stfree.ob3
#=================== NEAR HEAP component =================================
NEARHEAP3 = nhlhutil.ob3 nhstutil.ob3 dynamic.ob3 fhutil.obj \
nhlhcore.ob3
#=================== OPERATING SYSTEM component ==========================
OS3 = oscmd.ob3 osdate.ob3 osstmt.ob3 \
ostimer.ob3
#=================== ERROR component =====================================
ERROR = erproc.ob3 messages.ob3 erhandlr.obj
#=================== IO components =======================================
IO = inputf.obj lininp.obj tabspc.obj \
prtu.obj pufout.obj prnval.obj \
pr0a.obj gwlin.obj out.obj \
dkio.ob3 gwcom.ob3 prnvalfp.obj \
CONSOLE = inptty.obj gwscr.obj gwkey.obj \
gwscreen.obj keydsp.obj
DISK = inpdsk.obj field.obj rlset.obj
OTHERIO = iolpt.obj width.obj
GWIO = $(IO) $(CONSOLE) $(DISK) $(OTHERIO)
GWIO3 = gwio.ob3 iocons.ob3 llascn.ob3 \
llcscn.ob3 dvstmt.ob3 llcom3.ob3 \
dkstmt.ob3 dkopen.ob3 lllpt.ob3 \
directry.ob3 filename.ob3 dvpipe.ob3 \
bload.ob3 iotty.ob3 llevtstg.ob3 \
llgrtabl.ob3 llscreen.ob3 dkutil.ob3 \
llscnfcn.ob3
#================== EVENT component =====================================
EVENT = gwque.obj
EVENT3 = gwaevt.ob3 gwcevt.ob3 llaevt.ob3 \
llcevt.ob3 evtkey.ob3 evtpla.ob3 \
evtuev.ob3 evtstg.ob3 evtcom.ob3 \
evttim.ob3 evtpen.ob3
#================== SOUND component =====================================
SOUND3 = gwplayf.ob3 gwplays.ob3 gwsound.ob3 \
llsnd.ob3 sninit.ob3
#================== INTERNAL DEBUG component ============================
ID3 = id_util.ob3 fhdebug.ob3 nhdebug.ob3
#================== RUNTIME CORE component ==============================
MISC = swap.obj read.obj abs.ob3
MISC3 = llinit.ob3 llscnio.ob3 llque.ob3 \
peek.ob3 llparam.ob3 llkeys.ob3 \
gwini.ob3 gwdata.ob3 clear.ob3
#================== User library Modules ================================
ULIB = rtm86.ob3 rtmload.ob3 rttoul.obj
#================== Initialization Modules ==============================
INITS = dvinit.obj dbtrace.obj dkinit.obj
INIT3 = rtllinit.ob3 cninit.ob3 rtinit.ob3 \
rtterm.ob3 osinit.ob3 fhinit.ob3 \
nhinit.ob3 fhchn.ob3
#************************************************************************
# Library and Runtime module definitions
#************************************************************************
LIBS = $(INITS) $(MISC) $(ERROR) $(EVENT) \
$(STRING) $(GRAPHICS) $(GWIO) $(RTMATH)
LIB3 = $(INIT3) $(OS3) $(SOUND3) $(EVENT3) \
$(GWIO3) $(MISC3) $(ID3) $(GRAPH3) \
$(NEARHEAP3) $(STRING3) $(ULIB)
CLIB3 = crt0.obj crt0dat.obj crt0fp.obj \
fmsghdr.obj chkstk.obj chksum.obj \
ovlmul.obj \
..\tl\lib3\afldiv.obj ..\tl\lib3\aflrem.obj \
..\tl\lib3\fpreset.obj
#*************************************************************************
# Generate the DOS 3 Quick BASIC interpreter libraries.
#*************************************************************************
QB5: bqb50.lib
@echo "QuickBASIC 5.0 runtime libraries built"
#*************************************************************************
# Generate the DOS 3 Quick BASIC 5.0 interpreter library.
#*************************************************************************
bqb50.lib: $(LIB3) $(LIBS) $(CLIB3)
if exist bqb50.lib del bqb50.lib
$(TL)\lib @bqb50.dat
@echo "bqb50.lib built"
#*************************************************************************
# And now the object file dependencies!
#*************************************************************************
INCLUDE=-I..\inc -I..\crt
dbtrace.obj: ..\rt\dbtrace.asm ..\inc\const.inc ..\inc\addr.inc \
..\inc\event.inc ..\inc\dc.inc ..\inc\messages.inc \
..\inc\compvect.inc ..\inc\seg.inc ..\inc\cmacros.inc \
..\inc\rmacros.inc ..\inc\switch.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\dbtrace.asm, dbtrace.obj;
dkinit.obj: ..\rt\dkinit.asm ..\inc\compvect.inc ..\inc\rtps.inc \
..\inc\nhutil.inc ..\inc\files.inc ..\inc\fdb.inc \
..\inc\pointers.inc ..\inc\sb.inc ..\inc\omega.inc ..\inc\devdef.inc \
..\inc\baslibma.inc ..\inc\seg.inc ..\inc\cmacros.inc \
..\inc\rmacros.inc ..\inc\switch.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\dkinit.asm, dkinit.obj;
dvinit.obj: ..\rt\dvinit.asm ..\inc\compvect.inc ..\inc\rtps.inc \
..\inc\const.inc ..\inc\nhutil.inc ..\inc\files.inc ..\inc\fdb.inc \
..\inc\pointers.inc ..\inc\sb.inc ..\inc\omega.inc ..\inc\devdef.inc \
..\inc\baslibma.inc ..\inc\seg.inc ..\inc\cmacros.inc \
..\inc\rmacros.inc ..\inc\switch.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\dvinit.asm, dvinit.obj;
erhandlr.obj: ..\rt\erhandlr.asm ..\inc\stack.inc \
..\inc\messages.inc ..\inc\idmac.inc ..\inc\baslibma.inc \
..\inc\addr.inc ..\inc\seg.inc ..\inc\cmacros.inc ..\inc\rmacros.inc \
..\inc\switch.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\erhandlr.asm, erhandlr.obj;
error.obj: ..\rt\error.asm ..\inc\stack.inc ..\inc\messages.inc \
..\inc\idmac.inc ..\inc\addr.inc ..\inc\seg.inc ..\inc\cmacros.inc \
..\inc\rmacros.inc ..\inc\switch.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\error.asm, error.obj;
fhutil.obj: ..\rt\fhutil.asm ..\inc\idmac.inc ..\inc\array.inc \
..\inc\seg.inc ..\inc\cmacros.inc ..\inc\rmacros.inc \
..\inc\switch.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\fhutil.asm, fhutil.obj;
field.obj: ..\rt\field.asm ..\inc\string.inc ..\inc\lmem.inc \
..\inc\sb.inc ..\inc\omega.inc ..\inc\idmac.inc ..\inc\rtps.inc \
..\inc\files.inc ..\inc\fdb.inc ..\inc\pointers.inc ..\inc\sb.inc \
..\inc\devdef.inc ..\inc\baslibma.inc ..\inc\seg.inc \
..\inc\cmacros.inc ..\inc\rmacros.inc ..\inc\switch.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\field.asm, field.obj;
fin.obj: ..\rt\fin.asm ..\inc\string.inc ..\inc\lmem.inc ..\inc\sb.inc \
..\inc\omega.inc ..\inc\idmac.inc ..\inc\const.inc ..\inc\rtps.inc \
..\inc\baslibma.inc ..\inc\seg.inc ..\inc\cmacros.inc \
..\inc\switch.inc ..\inc\rmacros.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\fin.asm, fin.obj;
fout.obj: ..\rt\fout.asm ..\inc\idmac.inc ..\inc\rtps.inc \
..\inc\baslibma.inc ..\inc\seg.inc ..\inc\cmacros.inc \
..\inc\rmacros.inc ..\inc\switch.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\fout.asm, fout.obj;
grcoord.obj: ..\rt\grcoord.asm ..\inc\baslibma.inc ..\inc\seg.inc \
..\inc\cmacros.inc ..\inc\rmacros.inc ..\inc\switch.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\grcoord.asm, grcoord.obj;
grpmap.obj: ..\rt\grpmap.asm ..\inc\seg.inc ..\inc\cmacros.inc \
..\inc\rmacros.inc ..\inc\switch.inc
$(TL)\masm $(INCLUDE) $(IDB) -DQBAS -DNORTM -DDOS3 -DEM -DNS -MX -v -e ..\rt\grpmap.asm, grpmap.obj;
grputil.obj: ..\rt\grputil.asm ..\inc\seg.inc ..\inc\cmacros.inc \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -