Initial commit of Command & Conquer Red Alert source code.
This commit is contained in:
parent
b685cea758
commit
5e733d5dcc
2082 changed files with 797727 additions and 0 deletions
755
CODE/MAKEFILE
Normal file
755
CODE/MAKEFILE
Normal file
|
@ -0,0 +1,755 @@
|
|||
#
|
||||
# Command & Conquer Red Alert(tm)
|
||||
# Copyright 2025 Electronic Arts Inc.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
#* $Header$
|
||||
#***********************************************************************************************
|
||||
#*** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
|
||||
#***********************************************************************************************
|
||||
#* *
|
||||
#* Project Name : Command & Conquer *
|
||||
#* *
|
||||
#* File Name : MAKEFILE *
|
||||
#* *
|
||||
#* Programmer : Joe L. Bostic *
|
||||
#* *
|
||||
#* Start Date : 03/02/95 *
|
||||
#* *
|
||||
#* Last Update : March 2, 1995 [JLB] *
|
||||
#* *
|
||||
#*---------------------------------------------------------------------------------------------*
|
||||
#* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
|
||||
|
||||
.SILENT
|
||||
.OPTIMIZE
|
||||
.ERASE
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Working values depending on what target executable will be created.
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
!ifdef GERMAN
|
||||
LANGUAGE=GERMAN
|
||||
!else
|
||||
!ifdef FRENCH
|
||||
LANGUAGE=FRENCH
|
||||
!else
|
||||
LANGUAGE=ENGLISH
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!ifdef WIN32
|
||||
WWFLAT=..\win32lib
|
||||
WWOBJ=obj\win32\$(LANGUAGE)
|
||||
LINKFILE=win95.lnk
|
||||
CC=..\watcom\binnt\wpp386
|
||||
LIB=..\watcom\binnt\wlib
|
||||
!else
|
||||
WWFLAT=..\wwflat32
|
||||
WWOBJ=obj\dos
|
||||
LINKFILE=conquer.lnk
|
||||
CC=..\watcom\binnt\wpp386
|
||||
LIB=..\watcom\binnt\wlib
|
||||
!endif
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Path macros: one path for each file type.
|
||||
# These paths are used to tell make where to find/put each file type.
|
||||
#---------------------------------------------------------------------------
|
||||
.asm: .
|
||||
.c: .
|
||||
.cpp: .
|
||||
.h: .
|
||||
.obj: $(WWOBJ)
|
||||
.lib: $(WWFLAT)\lib
|
||||
.exe: ..\run
|
||||
|
||||
|
||||
#===========================================================================
|
||||
# Compiler and assembler flags.
|
||||
#===========================================================================
|
||||
!ifdef WIN32
|
||||
CC_CFG = /d0 # No debugging information ( else use /d1 )
|
||||
CC_CFG += /DWIN32=1
|
||||
CC_CFG += /D_WIN32
|
||||
CC_CFG += /DWOLAPI_INTEGRATION
|
||||
CC_CFG += /DWINSOCK_IPX
|
||||
CC_CFG += /D$(LANGUAGE)=1
|
||||
CC_CFG += /i=..\dxsdk\inc
|
||||
CC_CFG += /i=..\watcom\h\nt # NT include directory.
|
||||
CC_CFG += /i=..\watcom\H # Normal Watcom include directory.
|
||||
CC_CFG += /i=$(WWFLAT)\INCLUDE # Normal library include directory.
|
||||
CC_CFG += /i=..\winvq\include # Includes player (VQ) directory.
|
||||
CC_CFG += /bt=NT
|
||||
CC_CFG += /otxan
|
||||
CC_CFG += /5r # Pentium optimized register calling conventions.
|
||||
!else
|
||||
CC_CFG = /d1 # Partial debug (line numbers only)
|
||||
CC_CFG += /i=..\watcom\H # Normal Watcom include directory.
|
||||
CC_CFG += /i=$(WWFLAT)\INCLUDE # Normal library include directory.
|
||||
CC_CFG += /i=..\vq\include # Includes player (VQ) directory.
|
||||
CC_CFG += /DDOS4G # Must be defined for Greenleaf
|
||||
CC_CFG += /5s # Pentium optimized stack calling conventions.
|
||||
CC_CFG += /DGF_WATCOM_S # Must be defined for Greenleaf with /3s
|
||||
CC_CFG += /bt=DOS
|
||||
!endif
|
||||
|
||||
CC_CFG += /i=..\gcl510\H # Includes Greenleaf headers.
|
||||
CC_CFG += /of+ # Generate traceable stack frames.
|
||||
CC_CFG += /zp1 # Pack structures on byte boundary.
|
||||
CC_CFG += /s # Remove stack check calls.
|
||||
CC_CFG += /j # char is now signed.
|
||||
CC_CFG += /fh=$(WWOBJ)\conquer.pch # Use precompiled headers.
|
||||
CC_CFG += /fhq
|
||||
CC_CFG += /we # Treat all warnings as errors.
|
||||
CC_CFG += /w8 # Most warnings enabled.
|
||||
CC_CFG += /ri # char and shorts are returned as int.
|
||||
CC_CFG += /zq # Operate quietly.
|
||||
|
||||
ASM_CFG = /i$(WWFLAT)\INCLUDE # Include directory.
|
||||
ASM_CFG += /zd # Debugging information line numbers.
|
||||
ASM_CFG += /t # Quiet operation.
|
||||
ASM_CFG += /m # Allow multiple passes.
|
||||
ASM_CFG += /w+ # Enable maximum warnings.
|
||||
ASM_CFG += /jJUMPS # Enable jump optimizations.
|
||||
ASM_CFG += /ml # Case sensitivity on code.
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Implicit rules
|
||||
# Compiler:
|
||||
# ($< = full dependent with path)
|
||||
# Assembler:
|
||||
# output obj's are constructed from .obj: & the $& macro
|
||||
# ($< = full dependent with path)
|
||||
# tasm's cfg file is not invoked as a response file.
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
.c.obj: .AUTODEPEND
|
||||
echo Compiling $<
|
||||
*$(CC) $(CC_CFG) -fo$(WWOBJ)\$^. $<
|
||||
|
||||
.cpp.obj: .AUTODEPEND
|
||||
echo Compiling $<
|
||||
*$(CC) $(CC_CFG) -fo$(WWOBJ)\$^. $<
|
||||
|
||||
.asm.obj:
|
||||
echo Assembling $<
|
||||
utils\tasm $(ASM_CFG) $<, $(WWOBJ)\$^.
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Object modules.
|
||||
#---------------------------------------------------------------------------
|
||||
OBJECTS = &
|
||||
AADATA.OBJ &
|
||||
ABSTRACT.OBJ &
|
||||
ADATA.OBJ &
|
||||
AIRCRAFT.OBJ &
|
||||
ANIM.OBJ &
|
||||
AUDIO.OBJ &
|
||||
BAR.OBJ &
|
||||
BASE.OBJ &
|
||||
BBDATA.OBJ &
|
||||
BDATA.OBJ &
|
||||
BUILDING.OBJ &
|
||||
BULLET.OBJ &
|
||||
CARGO.OBJ &
|
||||
CARRY.OBJ &
|
||||
CCFILE.OBJ &
|
||||
CCINI.OBJ &
|
||||
CCPTR.OBJ &
|
||||
CDATA.OBJ &
|
||||
CELL.OBJ &
|
||||
CHECKBOX.OBJ &
|
||||
CHEKLIST.OBJ &
|
||||
COLRLIST.OBJ &
|
||||
COMBAT.OBJ &
|
||||
COMBUF.OBJ &
|
||||
CONNECT.OBJ &
|
||||
CONQUER.OBJ &
|
||||
CONST.OBJ &
|
||||
CONTROL.OBJ &
|
||||
COORD.OBJ &
|
||||
CRATE.OBJ &
|
||||
CREDITS.OBJ &
|
||||
CREW.OBJ &
|
||||
DEBUG.OBJ &
|
||||
DIAL8.OBJ &
|
||||
DIALOG.OBJ &
|
||||
DISPLAY.OBJ &
|
||||
DOOR.OBJ &
|
||||
DRIVE.OBJ &
|
||||
DROP.OBJ &
|
||||
DYNAVEC.OBJ &
|
||||
EDIT.OBJ &
|
||||
EGOS.OBJ &
|
||||
ENDING.OBJ &
|
||||
EVENT.OBJ &
|
||||
EXPAND.OBJ &
|
||||
FACE.OBJ &
|
||||
FACING.OBJ &
|
||||
FACTORY.OBJ &
|
||||
FINDPATH.OBJ &
|
||||
FLASHER.OBJ &
|
||||
FLY.OBJ &
|
||||
FOOT.OBJ &
|
||||
FUSE.OBJ &
|
||||
GADGET.OBJ &
|
||||
GAMEDLG.OBJ &
|
||||
GAUGE.OBJ &
|
||||
GLOBALS.OBJ &
|
||||
GOPTIONS.OBJ &
|
||||
GSCREEN.OBJ &
|
||||
HDATA.OBJ &
|
||||
HEAP.OBJ &
|
||||
HELP.OBJ &
|
||||
HOUSE.OBJ &
|
||||
IDATA.OBJ &
|
||||
INFANTRY.OBJ &
|
||||
INI.OBJ &
|
||||
INIT.OBJ &
|
||||
INTRO.OBJ &
|
||||
IOMAP.OBJ &
|
||||
IOOBJ.OBJ &
|
||||
IPX.OBJ &
|
||||
IPXADDR.OBJ &
|
||||
IPXCONN.OBJ &
|
||||
IPXGCONN.OBJ &
|
||||
IPXMGR.OBJ &
|
||||
IPXPROT.OBJ &
|
||||
JSHELL.OBJ &
|
||||
LAYER.OBJ &
|
||||
LINK.OBJ &
|
||||
LIST.OBJ &
|
||||
LOADDLG.OBJ &
|
||||
LOGIC.OBJ &
|
||||
MAP.OBJ &
|
||||
MAPEDDLG.OBJ &
|
||||
MAPEDIT.OBJ &
|
||||
MAPEDPLC.OBJ &
|
||||
MAPEDTM.OBJ &
|
||||
MAPSEL.OBJ &
|
||||
MENUS.OBJ &
|
||||
MISSION.OBJ &
|
||||
MOUSE.OBJ &
|
||||
MPLAYER.OBJ &
|
||||
MSGBOX.OBJ &
|
||||
MSGLIST.OBJ &
|
||||
NETDLG.OBJ &
|
||||
NULLCONN.OBJ &
|
||||
NULLDLG.OBJ &
|
||||
NULLMGR.OBJ &
|
||||
OBJECT.OBJ &
|
||||
ODATA.OBJ &
|
||||
OPTIONS.OBJ &
|
||||
OVERLAY.OBJ &
|
||||
POWER.OBJ &
|
||||
PROFILE.OBJ &
|
||||
QUEUE.OBJ &
|
||||
RADAR.OBJ &
|
||||
RADIO.OBJ &
|
||||
REINF.OBJ &
|
||||
RULES.OBJ &
|
||||
SAVELOAD.OBJ &
|
||||
SCENARIO.OBJ &
|
||||
SCORE.OBJ &
|
||||
SCROLL.OBJ &
|
||||
SDATA.OBJ &
|
||||
SESSION.OBJ &
|
||||
SHAPEBTN.OBJ &
|
||||
SIDEBAR.OBJ &
|
||||
SLIDER.OBJ &
|
||||
SMUDGE.OBJ &
|
||||
SOUNDDLG.OBJ &
|
||||
SPECIAL.OBJ &
|
||||
STARTUP.OBJ &
|
||||
STATBTN.OBJ &
|
||||
SUPER.OBJ &
|
||||
TAB.OBJ &
|
||||
TACTION.OBJ &
|
||||
TARGET.OBJ &
|
||||
TDATA.OBJ &
|
||||
TEAM.OBJ &
|
||||
TEAMTYPE.OBJ &
|
||||
TECHNO.OBJ &
|
||||
TEMPLATE.OBJ &
|
||||
TERRAIN.OBJ &
|
||||
TEVENT.OBJ &
|
||||
TEXTBTN.OBJ &
|
||||
THEME.OBJ &
|
||||
TOGGLE.OBJ &
|
||||
TRACKER.OBJ &
|
||||
TRIGGER.OBJ &
|
||||
TRIGTYPE.OBJ &
|
||||
TXTLABEL.OBJ &
|
||||
UDATA.OBJ &
|
||||
UNIT.OBJ &
|
||||
UTRACKER.OBJ &
|
||||
VDATA.OBJ &
|
||||
VECTOR.OBJ &
|
||||
VERSION.OBJ &
|
||||
VESSEL.OBJ &
|
||||
VISUDLG.OBJ &
|
||||
VORTEX.OBJ &
|
||||
WARHEAD.OBJ &
|
||||
WEAPON.OBJ &
|
||||
MCIMOVIE.OBJ &
|
||||
MCI.OBJ &
|
||||
MPGSET.OBJ &
|
||||
ICONLIST.OBJ &
|
||||
WOL_MAIN.OBJ &
|
||||
WOL_CHAT.OBJ &
|
||||
RAWOLAPI.OBJ &
|
||||
WOLAPIOB.OBJ &
|
||||
W95TRACE.OBJ &
|
||||
COMINIT.OBJ &
|
||||
WOL_LOGN.OBJ &
|
||||
WOLEDIT.OBJ &
|
||||
PASSEDIT.OBJ &
|
||||
SEDITDLG.OBJ &
|
||||
DIBFILE.OBJ &
|
||||
DIBUTIL.OBJ &
|
||||
WOL_GSUP.OBJ &
|
||||
UDPADDR.OBJ &
|
||||
WSPROTO.OBJ &
|
||||
WSPUDP.OBJ &
|
||||
WSPIPX.OBJ &
|
||||
_WSPROTO.OBJ &
|
||||
TOOLTIP.OBJ &
|
||||
WOL_OPT.OBJ &
|
||||
WOL_CGAM.OBJ &
|
||||
BIGCHECK.OBJ &
|
||||
WOL_DNLD.OBJ &
|
||||
WOLSTRNG.OBJ
|
||||
|
||||
|
||||
# Files that are candidates for library submission,
|
||||
# since they depend on the westwood library to a great
|
||||
# degree
|
||||
LIBFILES = &
|
||||
ROTBMP.OBJ &
|
||||
SPRITE.OBJ &
|
||||
|
||||
# Self contained technology modules
|
||||
TECHFILES = &
|
||||
LZO1X_C.OBJ &
|
||||
LZO1X_D.OBJ &
|
||||
LZOPIPE.OBJ &
|
||||
LZOSTRAW.OBJ &
|
||||
LZW.OBJ &
|
||||
LZWPIPE.OBJ &
|
||||
LZWSTRAW.OBJ &
|
||||
BUFF.OBJ &
|
||||
BENCH.OBJ &
|
||||
RECT.OBJ &
|
||||
MPU.OBJ &
|
||||
READLINE.OBJ &
|
||||
PKPIPE.OBJ &
|
||||
PKSTRAW.OBJ &
|
||||
XSTRAW.OBJ &
|
||||
XPIPE.OBJ &
|
||||
RNDSTRAW.OBJ &
|
||||
PK.OBJ &
|
||||
BLWSTRAW.OBJ &
|
||||
STRAW.OBJ &
|
||||
B64STRAW.OBJ &
|
||||
LCWSTRAW.OBJ &
|
||||
CRCSTRAW.OBJ &
|
||||
SHASTRAW.OBJ &
|
||||
RAMFILE.OBJ &
|
||||
INI.OBJ &
|
||||
LCWPIPE.OBJ &
|
||||
LCWCOMP.OBJ &
|
||||
LCW.OBJ &
|
||||
CRCPIPE.OBJ &
|
||||
SHAPIPE.OBJ &
|
||||
PIPE.OBJ &
|
||||
BLOWPIPE.OBJ &
|
||||
B64PIPE.OBJ &
|
||||
BASE64.OBJ &
|
||||
FIXED.OBJ &
|
||||
MIXFILE.OBJ &
|
||||
CDFILE.OBJ &
|
||||
BFIOFILE.OBJ &
|
||||
RAWFILE.OBJ &
|
||||
MP.OBJ &
|
||||
INT.OBJ &
|
||||
MONOC.OBJ &
|
||||
RANDOM.OBJ &
|
||||
RGB.OBJ &
|
||||
HSV.OBJ &
|
||||
PALETTE.OBJ &
|
||||
BLOWFISH.OBJ &
|
||||
SHA.OBJ &
|
||||
CRC.OBJ &
|
||||
SENDFILE.OBJ
|
||||
|
||||
!ifdef WIN32
|
||||
OBJECTS += 2KEYFBUF.OBJ &
|
||||
CPUID.OBJ &
|
||||
GETCPU.OBJ &
|
||||
INTERPAL.OBJ &
|
||||
WINASM.OBJ &
|
||||
WINSTUB.OBJ &
|
||||
2TXTPRNT.OBJ &
|
||||
WRITEPCX.OBJ &
|
||||
IPX95.OBJ &
|
||||
2KEYFRAM.OBJ &
|
||||
TCPIP.OBJ &
|
||||
INTERNET.OBJ &
|
||||
DDE.OBJ &
|
||||
CCDDE.OBJ &
|
||||
STATS.OBJ &
|
||||
PACKET.OBJ &
|
||||
KEY.OBJ &
|
||||
FIELD.OBJ
|
||||
|
||||
!else
|
||||
OBJECTS += KEYFBUFF.OBJ &
|
||||
TXTPRNT.OBJ &
|
||||
KEYFRAME.OBJ
|
||||
!endif
|
||||
|
||||
!ifdef WIN32
|
||||
PROJ_LIBS = &
|
||||
win32lib.lib
|
||||
|
||||
!else
|
||||
PROJ_LIBS = &
|
||||
wwflat32.lib
|
||||
!endif
|
||||
|
||||
VQ_LIBS = &
|
||||
vqa32wp.lib &
|
||||
vqm32wp.lib
|
||||
|
||||
GCL_LIBS = &
|
||||
gclfr3s.lib
|
||||
|
||||
MEMCHECK_LIBS = &
|
||||
MCA3S.LIB
|
||||
|
||||
############################################################################
|
||||
# Pre-compilation process. Move old files to backup directory.
|
||||
.BEFORE
|
||||
-if exist *.bak move *.bak bak
|
||||
-if exist $(WWOBJ)\*.pch del $(WWOBJ)\*.pch
|
||||
|
||||
# After make has completed.
|
||||
.AFTER
|
||||
|
||||
# If there is an abnormal termination in make process (e.g., error in compile).
|
||||
.ERROR
|
||||
|
||||
|
||||
#############################################################################
|
||||
# Default target
|
||||
!ifdef WIN32
|
||||
all: ra95.exe
|
||||
!else
|
||||
all: game.dat
|
||||
!endif
|
||||
|
||||
|
||||
#############################################################################
|
||||
# Builds the JSHELL.LIB file.
|
||||
$(WWOBJ)\jshell.lib: $(LIBFILES) $(WWOBJ)\jshell.lnk
|
||||
$(LIB) -c $^@ @$(WWOBJ)\jshell.lnk
|
||||
|
||||
$(WWOBJ)\jshell.lnk: makefile
|
||||
%create $^@
|
||||
for %index in ($(LIBFILES)) do %append $^@ -+ $(WWOBJ)\%index
|
||||
|
||||
#############################################################################
|
||||
# Builds the TECH.LIB file.
|
||||
$(WWOBJ)\tech.lib: $(TECHFILES) $(WWOBJ)\tech.lnk
|
||||
$(LIB) -c $^@ @$(WWOBJ)\tech.lnk
|
||||
|
||||
$(WWOBJ)\tech.lnk: makefile
|
||||
%create $^@
|
||||
for %index in ($(TECHFILES)) do %append $^@ -+ $(WWOBJ)\%index
|
||||
|
||||
#############################################################################
|
||||
# Builds the stub replacement program.
|
||||
CWSTUB.OBJ: CWSTUB.C
|
||||
*wcc /i=..\watcom\h /dQUIET /dVMM /ms /zQ -fo$(WWOBJ)\$^. $<
|
||||
|
||||
CWSTUB.EXE: CWSTUB.OBJ
|
||||
*watcom\binw\wlink system dos file $(WWOBJ)\cwstub.obj name cwstub.exe option quiet library \wat\lib386\dos\clibs.lib, \wat\lib386\math87s.lib, \wat\lib386\dos\emu87.lib
|
||||
|
||||
|
||||
#############################################################################
|
||||
# Build the EXE
|
||||
game.dat: $(WWOBJ)\tech.lib $(WWOBJ)\jshell.lib $(OBJECTS) $(LINKFILE) $(TECHFILE)
|
||||
-Echo "dos.exe" linking phase.
|
||||
..\watcom\binw\wlink name ..\run\dos.exe @$(LINKFILE)
|
||||
-Echo Binding phase.
|
||||
-..\watcom\binw\wstrip -n -q ..\run\dos.exe ..\run\temp.tmp
|
||||
-..\watcom\4gwbind ..\watcom\4gwpro.exe ..\run\temp.tmp ..\run\game.dat -vmon
|
||||
# -copy ..\run\game.dat C:\westwood\redalert
|
||||
# -copy ..\run\game.dat C:\westwood\ra
|
||||
# -copy ..\run\dos.exe C:\westwood\redalert
|
||||
# -copy ..\run\game.dat ..\cd\install
|
||||
-Echo "game.dat" executable completed.
|
||||
|
||||
ra95.exe: $(WWOBJ)\tech.lib $(WWOBJ)\jshell.lib $(OBJECTS) $(LINKFILE) mpgdll.lib
|
||||
Echo "ra95.exe" linking phase. [$(LANGUAGE)]
|
||||
# nwlink name ..\run\$@ @$(LINKFILE)
|
||||
# ajw - Steve Tall replaced wlink with nwlink. Watcom fix allows more debug symbols in exe, so allows debugging in WD.
|
||||
# ..\watcom\binw\wlink name ..\run\$@ @$(LINKFILE)
|
||||
linker\nwlink name ..\run\$@ @$(LINKFILE)
|
||||
# ..\watcom\binnt\WRC cc_icon ..\run\$@
|
||||
# copy ..\run\ra95.exe C:\westwood\redalert
|
||||
# copy ..\run\ra95.exe C:\westwood\ra
|
||||
Echo "ra95.exe" executable completed. [$(LANGUAGE)]
|
||||
|
||||
|
||||
#############################################################################
|
||||
# This creates the linker command file for the DOS version.
|
||||
conquer.lnk : makefile
|
||||
%create $^@
|
||||
%append $^@ system dos4g
|
||||
%append $^@ option stack=128k
|
||||
%append $^@ option redefsok
|
||||
%append $^@ option quiet
|
||||
%append $^@ option map
|
||||
%append $^@ option eliminate
|
||||
%append $^@ option caseexact
|
||||
%append $^@ debug all
|
||||
%append $^@ library $(WWOBJ)\jshell.lib
|
||||
%append $^@ library $(WWOBJ)\tech.lib
|
||||
for %index in ($(OBJECTS)) do %append $^@ file $(WWOBJ)\%index
|
||||
for %index in ($(PROJ_LIBS)) do %append $^@ library $(WWFLAT)\lib\%index
|
||||
for %index in ($(VQ_LIBS)) do %append $^@ library ..\vq\lib\%index
|
||||
for %index in ($(GCL_LIBS)) do %append $^@ library ..\gcl510\w10\%index
|
||||
# %append $^@ debug watcom all
|
||||
|
||||
|
||||
#############################################################################
|
||||
# This creates the linker command file for the Windows 95 version.
|
||||
win95.lnk : makefile
|
||||
%create $^@
|
||||
%append $^@ system win95
|
||||
%append $^@ option redefsok
|
||||
%append $^@ option quiet
|
||||
%append $^@ option map
|
||||
%append $^@ option eliminate
|
||||
%append $^@ option caseexact
|
||||
%append $^@ option stack=128k
|
||||
# %append $^@ debug watcom all
|
||||
# %append $^@ debug all
|
||||
for %index in ($(OBJECTS)) do %append $^@ file $(WWOBJ)\%index
|
||||
%append $^@ library $(WWOBJ)\jshell.lib
|
||||
%append $^@ library $(WWOBJ)\tech.lib
|
||||
%append $^@ library $(WWFLAT)\lib\win32lib.lib
|
||||
%append $^@ library ..\winvq\lib\vqa32wp.lib
|
||||
%append $^@ library ..\winvq\lib\vqm32wp.lib
|
||||
%append $^@ library ipx\wwipx32.lib
|
||||
%append $^@ library ..\dxsdk\lib\dxguid.lib
|
||||
%append $^@ library ..\dxsdk\lib\ddraw.lib
|
||||
%append $^@ library ..\dxsdk\lib\dsound.lib
|
||||
%append $^@ library $(WWFLAT)\lib\keyboard.lib
|
||||
%append $^@ library mpgdll.lib
|
||||
%append $^@ library ..\dxmedia\lib\amstrmid.lib
|
||||
%append $^@ library ..\dxmedia\lib\strmbasd.lib
|
||||
# %append $^@ library ..\watcom\lib386\nt\uuid.lib
|
||||
%append $^@ library uuid.lib
|
||||
|
||||
#############################################################
|
||||
# Update source and art to network.
|
||||
update: pre .SYMBOLIC
|
||||
-copy i:\cd1\*.* f:\projects\c&c0\cd\win95\cd1 /s /u
|
||||
-copy i:\cd2\*.* f:\projects\c&c0\cd\win95\cd2 /s /u
|
||||
# -copy i:\cd1\*.* f:\projects\c&c0\cd\dos\cd1 /s /u
|
||||
# -copy i:\cd2\*.* f:\projects\c&c0\cd\dos\cd2 /s /u
|
||||
-copy ..\art\ingame\*.* f:\projects\c&c0\art\ingame /u /v /s
|
||||
-copy ..\audio\sfx\*.* f:\projects\c&c0\audio\ingame\sfx /u /v /s
|
||||
-copy *.* f:\projects\c&c0\code /v /s /u
|
||||
-copy ..\wwflat32\*.* f:\projects\c&c0\wwflat32 /v /s /u
|
||||
-copy ..\win32lib\*.* f:\projects\c&c0\win32lib /v /s /u
|
||||
-copy ..\vq\*.* f:\projects\c&c0\vq /v /s /u
|
||||
-copy ..\winvq\*.* f:\projects\c&c0\winvq /v /s /u
|
||||
|
||||
pre: .SYMBOLIC
|
||||
-copy f:\projects\c&c0\editor\english\*.exe i:\cd1\install /u
|
||||
-copy f:\projects\c&c0\editor\english\*.exe i:\cd2\install /u
|
||||
-copy f:\projects\c&c0\editor\english\edit.dat i:\cd1\install /u
|
||||
-copy f:\projects\c&c0\editor\english\edit.dat i:\cd2\install /u
|
||||
-copy ..\run\rules.ini ..\maps /u
|
||||
-copy ..\run\rules.ini f:\projects\c&c0\maps /u
|
||||
-watcom\binw\wstrip -n -q ..\run\ra95.exe ..\run\ra95.exe
|
||||
-copy ..\run\ra95.exe i:\cd1\install /u
|
||||
-copy ..\run\ra95.exe i:\cd2\install /u
|
||||
-copy ..\run\game.dat i:\cd1\install /u
|
||||
-copy ..\run\game.dat i:\cd2\install /u
|
||||
packlist SETUP.LST
|
||||
-copy setup.pkg i:\cd1\setup95 /u
|
||||
-copy setup.pkg i:\cd2\setup95 /u
|
||||
-mkdir f:\projects\c&c0\playtest\%_DATE
|
||||
-copy ..\run\ra95.exe f:\projects\c&c0\playtest\%_DATE /u /v
|
||||
-copy ..\run\game.dat f:\projects\c&c0\playtest\%_DATE /u /v
|
||||
-copy *.map f:\projects\c&c0\playtest\%_DATE /u /v
|
||||
-copy *.cpp *.h f:\projects\c&c0\playtest\%_DATE /u /v
|
||||
|
||||
|
||||
#############################################################################
|
||||
# Explicit rules to build the master zip files (used by Codewrite merge).
|
||||
BILL_R.ZIP: pkzip.dat .SYMBOLIC
|
||||
-del f:\projects\c&c0\bill_r.zip
|
||||
-pkzip -p -u -x@pkzip.dat f:\projects\c&c0\bill_r.zip *.* eng\conquer.txt
|
||||
|
||||
MARIA_L.ZIP: pkzip.dat .SYMBOLIC
|
||||
-del f:\projects\c&c0\maria_l.zip
|
||||
-pkzip -p -u -x@pkzip.dat f:\projects\c&c0\maria_l.zip *.* eng\conquer.txt
|
||||
|
||||
BARRY_G.ZIP: pkzip.dat .SYMBOLIC
|
||||
-del f:\projects\c&c0\barry_g.zip
|
||||
-pkzip -p -u -x@pkzip.dat f:\projects\c&c0\barry_g.zip *.* eng\conquer.txt
|
||||
|
||||
PHIL_G.ZIP: pkzip.dat .SYMBOLIC
|
||||
-del f:\projects\c&c0\phil_g.zip
|
||||
-pkzip -p -u -x@pkzip.dat f:\projects\c&c0\phil_g.zip *.* eng\conquer.txt
|
||||
|
||||
DAVID_D.ZIP: pkzip.dat .SYMBOLIC
|
||||
-del f:\projects\c&c0\david_d.zip
|
||||
-pkzip -p -u -x@pkzip.dat f:\projects\c&c0\david_d.zip *.* eng\conquer.txt
|
||||
|
||||
BILL_P.ZIP: pkzip.dat .SYMBOLIC
|
||||
-del f:\projects\c&c0\bill_p.zip
|
||||
-pkzip -p -u -x@pkzip.dat f:\projects\c&c0\bill_p.zip *.* eng\conquer.txt
|
||||
|
||||
STEVE_T.ZIP: pkzip.dat .SYMBOLIC
|
||||
-del f:\projects\c&c0\steve_t.zip
|
||||
-pkzip -p -u -x@pkzip.dat f:\projects\c&c0\steve_t.zip *.* eng\conquer.txt
|
||||
|
||||
VICTOR_G.ZIP: pkzip.dat .SYMBOLIC
|
||||
-del f:\projects\c&c0\victor_g.zip
|
||||
-pkzip -p -u -x@pkzip.dat f:\projects\c&c0\victor_g.zip *.* eng\conquer.txt
|
||||
|
||||
# Special "mega-zip" process.
|
||||
JOE_B.ZIP: pkzip.dat .SYMBOLIC
|
||||
-pkzip -rp -u -xcps\*.* -x@pkzip.dat f:\projects\c&c0\joe_b.zip
|
||||
|
||||
|
||||
#############################################################################
|
||||
# Rebuilds the master zip control file. This is used by the zip process.
|
||||
PKZIP.DAT: makefile .SYMBOLIC
|
||||
%create $^@
|
||||
%append $^@ *.000
|
||||
%append $^@ *.@@@
|
||||
%append $^@ *.bak
|
||||
%append $^@ *.bat
|
||||
%append $^@ *.cfg
|
||||
%append $^@ *.csm
|
||||
%append $^@ *.dat
|
||||
%append $^@ *.def
|
||||
%append $^@ *.doc
|
||||
%append $^@ *.dsw
|
||||
%append $^@ *.err
|
||||
%append $^@ *.ewp
|
||||
%append $^@ *.ext
|
||||
%append $^@ *.i
|
||||
%append $^@ *.ide
|
||||
%append $^@ *.lnk
|
||||
%append $^@ *.log
|
||||
%append $^@ *.lst
|
||||
%append $^@ *.mac
|
||||
%append $^@ *.map
|
||||
%append $^@ *.mbt
|
||||
%append $^@ *.mk
|
||||
%append $^@ *.mk1
|
||||
%append $^@ *.mrt
|
||||
%append $^@ *.obj
|
||||
%append $^@ *.obr
|
||||
%append $^@ *.out
|
||||
%append $^@ *.pch
|
||||
%append $^@ *.pfs
|
||||
%append $^@ *.pgp
|
||||
%append $^@ *.pif
|
||||
%append $^@ *.pjt
|
||||
%append $^@ *.prf
|
||||
%append $^@ *.pro
|
||||
%append $^@ *.ptg
|
||||
%append $^@ *.rc
|
||||
%append $^@ *.rep
|
||||
%append $^@ *.rpt
|
||||
%append $^@ *.rst
|
||||
%append $^@ *.sym
|
||||
%append $^@ *.tag
|
||||
%append $^@ *.td
|
||||
%append $^@ *.td
|
||||
%append $^@ *.tgt
|
||||
%append $^@ *.tmp
|
||||
%append $^@ *.tr
|
||||
%append $^@ *.tr
|
||||
%append $^@ *.txt
|
||||
%append $^@ *.vec
|
||||
%append $^@ *.wpj
|
||||
%append $^@ *.zip
|
||||
%append $^@ *.~*
|
||||
%append $^@ an_prefs
|
||||
%append $^@ state.rst
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# The IPX assembly object files are created in a special way:
|
||||
# IPXREAL is the real-mode code that gets stuffed into memory by protected-
|
||||
# mode code. It's assembled, then converted into a big header file by
|
||||
# the 'EBN' utility.
|
||||
# IPXPROT is the protected-mode code that includes IPXREAL.IBN, and
|
||||
# provides routines to let C++ read the code's address & size.
|
||||
#--------------------------------------------------------------------------
|
||||
$(WWOBJ)\ipxreal.ibn: $(WWOBJ)\ipxreal.obj
|
||||
%create $^*.rsp
|
||||
%append $^*.rsp $(WWOBJ)\$^&.obj
|
||||
%append $^*.rsp $(WWOBJ)\$^&.exe
|
||||
%append $^*.rsp $(WWOBJ)\$^&.map
|
||||
utils\tlink @$^*.rsp
|
||||
utils\tdstrip $(WWOBJ)\ipxreal.exe
|
||||
utils\ebn $(WWOBJ)\ipxreal.exe
|
||||
|
||||
$(WWOBJ)\ipxreal.obj: ipxreal.asm
|
||||
utils\tasm /zn /la /ml /m2 ipxreal.asm, $(WWOBJ)\ipxreal.obj
|
||||
|
||||
ipxprot.obj: $(WWOBJ)\ipxreal.ibn ipxprot.asm
|
||||
utils\tasm $(ASM_CFG) ipxprot.asm, $(WWOBJ)\ipxprot.obj
|
||||
# copy $(WWOBJ)\ipxprot.obj d:obj /U
|
||||
|
||||
|
||||
ipx.obj: ipx.cpp function.h
|
||||
echo Compiling $[.
|
||||
*$(CC) $(CC_CFG) -zz -fo$(WWOBJ)\$^. $[*.cpp
|
||||
|
||||
ipxmgr.obj: ipxmgr.cpp function.h
|
||||
echo Compiling $[.
|
||||
*$(CC) $(CC_CFG) -zz -fo$(WWOBJ)\$^. $[*.cpp
|
||||
|
||||
ipxconn.obj: ipxconn.cpp function.h
|
||||
echo Compiling $[.
|
||||
*$(CC) $(CC_CFG) -zz -fo$(WWOBJ)\$^. $[*.cpp
|
||||
|
||||
ipx95.obj: ipx95.cpp function.h
|
||||
echo Compiling $[.
|
||||
*$(CC) $(CC_CFG) -zz -fo$(WWOBJ)\$^. $[*.cpp
|
||||
|
||||
winstub.obj: winstub.cpp ipx95.h tcpip.h function.h
|
||||
echo Compiling $[.
|
||||
*$(CC) $(CC_CFG) -zz -fo$(WWOBJ)\$^. $[*.cpp
|
||||
|
||||
|
||||
|
||||
#**************************** End of makefile ******************************
|
Reference in a new issue