- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
(extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
BT game source (never mixed into CODE/). Round 1-3 state:
* 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
(BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
since 1996.
* BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
its binary-recorded line 400 exactly.
* BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
(Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
TeamScore=12 flagged [T4]).
* MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
(VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
the period compiler is the drift detector).
* Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
(per-TU verification sweep under authentic OPT.MAK flags).
* README: corrected roadmap - MECH.HPP is the capstone grown with the mech
TU reconstructions; BTREG.CPP green = the header-family milestone.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
117 lines
3.6 KiB
Makefile
117 lines
3.6 KiB
Makefile
#-----------------------------------------------------------------------------
|
|
# ObjectWindows - (C) Copyright 1994 by Borland International
|
|
# Tutorial application -- makefile.
|
|
#
|
|
# The following models may be built by defines on command line or environment:
|
|
# 16-bit OWL DLL model: make (MODEL=d, SYSTEM=WIN16 are defaults)
|
|
# 16-bit large model: make MODEL=l (SYSTEM=WIN16 is the default)
|
|
# 32-bit static model: make SYSTEM=WIN32 MODEL=f
|
|
# 32-bit OWL DLL model: make SYSTEM=WIN32 MODEL=d
|
|
# Additionally set DEBUG=1 to build with debug information
|
|
# Specify TARGET=step??.exe to build only one target, rather than all samples
|
|
# Specify DOCVIEW=?????.obj to add more doc/view classes (must delete *.mak)
|
|
# (requires .cpp file with template(s) and .rc file with resources)
|
|
#
|
|
#-----------------------------------------------------------------------------
|
|
MODELS=ldf # Allowable models
|
|
|
|
#
|
|
# Build EXE(s)
|
|
#
|
|
EXERES = sampexe
|
|
EXEALL = step01.exe step02.exe step03.exe step04.exe step05.exe step06.exe\
|
|
step07.exe step08.exe step09.exe step10.exe step11.exe step12.exe\
|
|
step13.exe step14.exe step15.exe step16.exe step17.exe
|
|
EXEMAKE= $(STEP1) $(STEP2) $(STEP3) $(STEP4) $(STEP5) $(STEP6)\
|
|
$(STEP7) $(STEP8) $(STEP9) $(STEP10) $(STEP11) $(STEP12)\
|
|
$(STEP13) $(STEP14) $(STEP15) $(STEP16) $(CNTRL16) $(STEP17) $(CNTRL17)
|
|
|
|
NORES = $(EXERULE:sampexe.res=)
|
|
STEP1 = $(NORES:sampexe=step01)
|
|
STEP2 = $(NORES:sampexe=step02)
|
|
STEP3 = $(NORES:sampexe=step03)
|
|
STEP4 = $(NORES:sampexe=step04)
|
|
STEP5 = $(EXERULE:sampexe=step05)
|
|
STEP6 = $(STEP5:step05=step06)
|
|
STEP7 = $(STEP5:step05=step07)
|
|
STEP8 = $(STEP5:step05=step08)
|
|
STEP9 = $(STEP5:step05=step09)
|
|
STEP10= $(STEP5:step05=step10)
|
|
STEP11= $(STEP5:step05=step11)
|
|
STEPV= $(EXERULE:sampexe.obj=sampexe.obj sampexedv.obj $(DOCVIEW))
|
|
STEPW = $(STEPV:sampexe.res=sampexe.res sampexedv.res $(DOCVIEW:.obj=.res))
|
|
STEP12= $(STEPW:sampexe=step12)
|
|
STEP13= $(STEPW:sampexe=step13)
|
|
STEP14= $(STEPW:sampexe=step14)
|
|
STEP15= $(STEPW:sampexe=step15)
|
|
STEP16= $(STEPW:sampexe=step16)
|
|
CNTRL16= $(STEP1:step01=cntrl16)
|
|
STEP17= $(STEPW:sampexe=step17)
|
|
CNTRL17= $(STEP1:step01=cntrl17)
|
|
|
|
RULES = ^
|
|
step16.obj: cntrl16.exe^
|
|
step17.obj: cntrl17.exe
|
|
|
|
|
|
#
|
|
# Build DLL Server(s)
|
|
#
|
|
DLL = sampdll
|
|
OBJDLL = sampdllu.obj sampdlldu.obj
|
|
RESDLL = sampdll.res sampdlldv.res
|
|
|
|
STEP15U = $(DLLRULE:sampdll=step15) ^
|
|
step15u.obj : step15.cpp ^
|
|
$(BCC) -ostep15u.obj step15.cpp ^
|
|
step15du.obj : step15dv.cpp ^
|
|
$(BCC) -ostep15du.obj step15dv.cpp ^
|
|
|
|
STEP16U = $(STEP15U:step15=step16)
|
|
STEP17U = $(STEP15U:step15=step17)
|
|
|
|
#
|
|
# Typically DLLs are built before EXEs - However, this does not have
|
|
# to be the case for these samples since non of the EXEs depend on
|
|
# the DLLs. Hence, if no TARGET is specified, we build the DLLs last
|
|
# using MAKEFILE.GEN's TARGETS macro. This allows a more logical
|
|
# build order [step01, step02, step03,...]
|
|
#
|
|
!if !$d(TARGET)
|
|
TARGETS= cfgdllsrvr step15.dll step16.dll step17.dll makcln
|
|
RULES = $(RULES) $(STEP15U) $(STEP16U) $(STEP17U)^
|
|
^
|
|
cfgdllsrvr: ^
|
|
@copy &&| ^
|
|
-I$(INCLUDEPATH) ^
|
|
-c $(CFLAGSD) ^
|
|
-w $(CDIAG) $(CPCHD) $(CCFDLL) ^
|
|
| $(CFGFILE) >NUL ^
|
|
^
|
|
makcln: ^
|
|
@del $(MAKEFILE)
|
|
|
|
#
|
|
# Prevent MAKEFILE.GEN from building DLL Servers via DLLALL/DLLMAKE
|
|
#
|
|
DLLALL =
|
|
DLLMAKE=
|
|
|
|
|
|
!else
|
|
|
|
#
|
|
# A TARGET was specified
|
|
#
|
|
DLLALL = step15.dll step16.dll step17.dll
|
|
DLLMAKE= $(STEP15U) $(STEP16U) $(STEP17U)
|
|
|
|
TARGETS= makcln
|
|
RULES = $(RULES) ^
|
|
^
|
|
makcln: ^
|
|
@del $(MAKEFILE)
|
|
!endif
|
|
|
|
!include $(BCEXAMPLEDIR)\owlocfmk.gen
|