756 lines
21 KiB
Plaintext
756 lines
21 KiB
Plaintext
#
|
|
# 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 ******************************
|