Archival snapshot of the Virtual World Entertainment Tesla cockpit software, 1994-1996: MUNGA engine and L4 pod layer source (Borland C++ 5.0), BT/RP game code, and game content (models, audio, maps, gauges, Division renderer data). Includes third-party libraries: Division dVS/DPL graphics, HMI SOS audio, WATTCP networking. Files are preserved byte-for-byte (.gitattributes disables all line-ending conversion). README.md documents the layout, target hardware, and toolchain. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
256 lines
4.7 KiB
Makefile
256 lines
4.7 KiB
Makefile
.autodepend
|
|
.cacheautodepend
|
|
.suffixes: .asm .cpp .c
|
|
|
|
!ifndef BTYPE
|
|
!error BTYPE macro not supplied
|
|
!endif
|
|
|
|
!ifndef BPATH
|
|
!error BPATH macro not supplied
|
|
!endif
|
|
|
|
!include make.cfg
|
|
!include $(BPATH)
|
|
|
|
!ifndef MUNGA_ROOT
|
|
!error MUNGA_ROOT macro is not defined
|
|
!endif
|
|
|
|
TARGET_DIR = $(MUNGA_ROOT)\$(BTYPE)
|
|
TARGET_PATH = $(TARGET_DIR)\\
|
|
.path.obj = $(TARGET_DIR)
|
|
.path.lib = $(LIBRARY_PATH)
|
|
|
|
LIB_PREFIX = -+$(TARGET_DIR)\\
|
|
|
|
CFG_FILE = $(TARGET_DIR)\$(BTYPE).cfg
|
|
HEADER_FILE = munga$(BTYPE).csm
|
|
|
|
#------------------------------------------------------------------------------
|
|
# targets
|
|
#
|
|
all: $(CFG_FILE) $(TARGET_DIR)\testall.exe
|
|
|
|
clean:
|
|
del $(TARGET_DIR)\*.obj
|
|
del $(TARGET_DIR)\*.lib
|
|
del $(TARGET_DIR)\*.exe
|
|
del $(TARGET_DIR)\*.bak
|
|
del $(TARGET_DIR)\*.cfg
|
|
|
|
assemble:
|
|
@echo No assembly targets
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Implicit rules
|
|
#
|
|
!include $(BTYPE).mak
|
|
|
|
!ifndef STARTUP_OBJ
|
|
!error STARTUP_OBJ macro is not defined
|
|
!endif
|
|
|
|
!ifndef STARTUP_LIBS
|
|
!error STARTUP_LIBS macro is not defined
|
|
!endif
|
|
|
|
{$(INCLUDE_PATH)}.cpp{$(TARGET_DIR)}.obj:
|
|
$(BCC) @$(CFG_FILE) $< >>error.log
|
|
|
|
{$(INCLUDE_PATH)}.c{$(TARGET_DIR)}.obj:
|
|
$(BCC) @$(CFG_FILE) $< >>error.log
|
|
|
|
{$(MUNGA_ROOT)}.asm{$(TARGET_DIR)}.obj:
|
|
tasm32 -ml $(TASM_OPTIONS) -i$(MUNGA_ROOT) $<,$@ >>error.log
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Test program
|
|
#
|
|
$(TARGET_DIR)\testall.exe:\
|
|
$(MUNGA_ROOT)\munga.mak $(TARGET_DIR)\stub.lib $(TARGET_DIR)\munga.lib\
|
|
testall.obj $(BTYPE).mak
|
|
tlink32 @&&|
|
|
$(LINK_OPTIONS) +
|
|
$(STARTUP_OBJ)+
|
|
$(TARGET_DIR)\testall.obj
|
|
$<,$*
|
|
$(TARGET_DIR)\stub.lib+
|
|
$(TARGET_DIR)\munga.lib+
|
|
$(STARTUP_LIBS)
|
|
| >>error.log
|
|
|
|
testall.obj: $(CFG_FILE)
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Stub library
|
|
#
|
|
STUB_OBJS = \
|
|
?tracstub.obj \
|
|
?filestub.obj \
|
|
?timestub.obj
|
|
|
|
$(STUB_OBJS:?=): $(CFG_FILE)
|
|
|
|
$(TARGET_DIR)\stub.lib: $(STUB_OBJS:?=) $(MUNGA_ROOT)\munga.mak
|
|
tlib $@ $(LIB_OPTIONS) @&&|
|
|
$(STUB_OBJS:?=$(LIB_PREFIX))
|
|
| >>error.log
|
|
|
|
#------------------------------------------------------------------------------
|
|
# MUNGA library
|
|
#
|
|
MUNGA_OBJS = \
|
|
?heap.obj \
|
|
?cstr.obj \
|
|
?memblock.obj \
|
|
?memreg.obj \
|
|
?memstrm.obj \
|
|
?filestrm.obj \
|
|
?verify.obj \
|
|
?namelist.obj \
|
|
?notation.obj \
|
|
?fileutil.obj \
|
|
?color.obj \
|
|
?resource.obj \
|
|
?scalar.obj \
|
|
?rect2d.obj \
|
|
?random.obj \
|
|
?angle.obj \
|
|
?vector3d.obj \
|
|
?vector4d.obj \
|
|
?point3d.obj \
|
|
?unitvec.obj \
|
|
?rotation.obj \
|
|
?motion.obj \
|
|
?origin.obj \
|
|
?affnmtrx.obj \
|
|
?linmtrx.obj \
|
|
?matrix.obj \
|
|
?mtrxstk.obj \
|
|
?spline.obj \
|
|
?ray.obj \
|
|
?line.obj \
|
|
?sphere.obj \
|
|
?normal.obj \
|
|
?plane.obj \
|
|
?extntbox.obj \
|
|
?bndgbox.obj \
|
|
?boxtree.obj \
|
|
?boxlist.obj \
|
|
?boxsolid.obj \
|
|
?boxsort.obj \
|
|
?boxsphr.obj \
|
|
?boxcone.obj \
|
|
?boxramp.obj \
|
|
?boxiramp.obj \
|
|
?boxwedge.obj \
|
|
?boxdisks.obj \
|
|
?boxtile.obj \
|
|
?time.obj \
|
|
?vdata.obj \
|
|
?iterator.obj \
|
|
?link.obj \
|
|
?plug.obj \
|
|
?objstrm.obj \
|
|
?socket.obj \
|
|
?node.obj \
|
|
?slot.obj \
|
|
?chain.obj \
|
|
?sfeskt.obj \
|
|
?srtskt.obj \
|
|
?schain.obj \
|
|
?vchain.obj \
|
|
?tree.obj \
|
|
?table.obj \
|
|
?hash.obj \
|
|
?trace.obj \
|
|
?receiver.obj \
|
|
?event.obj \
|
|
?evtstat.obj \
|
|
?cmpnnt.obj \
|
|
?simulate.obj \
|
|
?subsystm.obj \
|
|
?joint.obj \
|
|
?network.obj \
|
|
?damage.obj \
|
|
?entity.obj \
|
|
?entityid.obj \
|
|
?nttmgr.obj \
|
|
?entity2.obj \
|
|
?envirnmt.obj \
|
|
?mover.obj \
|
|
?segment.obj \
|
|
?jmover.obj \
|
|
?watcher.obj \
|
|
?host.obj \
|
|
?hostmgr.obj \
|
|
?console.obj \
|
|
?scnrole.obj \
|
|
?team.obj \
|
|
?exptbl.obj \
|
|
?caminst.obj \
|
|
?cammgr.obj \
|
|
?camship.obj \
|
|
?cammppr.obj \
|
|
?eyecandy.obj \
|
|
?player.obj \
|
|
?director.obj \
|
|
?dropzone.obj \
|
|
?explode.obj \
|
|
?terrain.obj \
|
|
?cultural.obj \
|
|
?doorfram.obj \
|
|
?door.obj \
|
|
?registry.obj \
|
|
?lattice.obj \
|
|
?intorgn.obj \
|
|
?collorgn.obj \
|
|
?interest.obj \
|
|
?collasst.obj \
|
|
?update.obj \
|
|
?reticle.obj \
|
|
?rndorgn.obj \
|
|
?renderer.obj \
|
|
?vidrend.obj \
|
|
?audio.obj \
|
|
?audent.obj \
|
|
?audtime.obj \
|
|
?audwgt.obj \
|
|
?audlvl.obj \
|
|
?audloc.obj \
|
|
?audcmp.obj \
|
|
?audsrc.obj \
|
|
?audmidi.obj \
|
|
?audseq.obj \
|
|
?audwthr.obj \
|
|
?audrend.obj \
|
|
?wrhous.obj \
|
|
?gaugmap.obj \
|
|
?gauge.obj \
|
|
?lamp.obj \
|
|
?gaugrend.obj \
|
|
?gaugalrm.obj \
|
|
?graph2d.obj \
|
|
?mode.obj \
|
|
?controls.obj \
|
|
?mission.obj \
|
|
?apptask.obj \
|
|
?app.obj \
|
|
?appmgr.obj \
|
|
?appmsg.obj \
|
|
?spooler.obj \
|
|
?icom.obj \
|
|
?maptool.obj \
|
|
?modtool.obj \
|
|
?animtool.obj \
|
|
?audtools.obj \
|
|
?tool.obj
|
|
|
|
$(MUNGA_OBJS:?=): $(CFG_FILE)
|
|
|
|
$(TARGET_DIR)\munga.lib: $(MUNGA_ROOT)\munga.mak $(MUNGA_OBJS:?=)
|
|
tlib $@ $(LIB_OPTIONS) @&&|
|
|
$(MUNGA_OBJS:?=$(LIB_PREFIX))
|
|
| >>error.log
|