Files
CydandClaude Fable 5 fdd9ac9d97 Initial import: Tesla Release 4.10 (Tesla:BattleTech & Tesla:Red Planet)
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>
2026-07-02 13:21:58 -05:00

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