This repository has been archived on 2025-02-27. You can view files and clone it, but cannot push or open issues or pull requests.
CnC_Tiberian_Dawn/MAKEFILE

951 lines
26 KiB
Makefile
Raw Permalink Normal View History

#
# Command & Conquer(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
#---------------------------------------------------------------------------
# Verify user's environment
#---------------------------------------------------------------------------
!ifndef %WWFLAT
!error WWFLAT must be set to the root of the library directory.
!else
WWFLAT=$(%WWFLAT)
!endif
!ifndef %WATCOM
#WATCOM=c:\projects\c&c\code\watcom
!error WATCOM must be set to the Watcom root directory.
!else
WATCOM=$(%WATCOM)
!endif
!ifndef %CODEDIR
#CODEDIR=c:\projects\code
!error CODEDIR must be set to the root code directory.
!else
CODEDIR=$(%CODEDIR)
!endif
!ifndef %CDDIR
!error CODEDIR must be set.
#CDDIR=..\cd
!else
CDDIR=$(%CDDIR)
!endif
!ifndef %VQDIR
#VQDIR=c:\VQA
!error VQDIR must be set to the root VQ directory.
!else
VQDIR=$(%VQDIR)
!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)obj
.lib: $(WWFLAT)\lib
.exe: ..\run
#===========================================================================
# Compiler and assembler flags.
#===========================================================================
CC_CFG = /i=$(VQDIR)\include # Includes player (VQ) directory.
CC_CFG += /i=$(WWFLAT)\INCLUDE # Normal library include directory.
CC_CFG += /i=$(WATCOM)\H\nt # Normal Watcom include directory.
CC_CFG += /i=$(WATCOM)\H # Normal Watcom include directory.
CC_CFG += /i=..\gcl510\H # Includes Greenleaf headers.
VCT_CFG = /i=$(VQDIR)\include # Includes player (VQ) directory.
VCT_CFG += /i=$(WWFLAT)\INCLUDE # Normal library include directory.
VCT_CFG += /i=$(WATCOM)\H\nt # Normal Watcom include directory.
VCT_CFG += /i=$(WATCOM)\H # Normal Watcom include directory.
VCT_CFG += /i=..\gcl510\H # Includes Greenleaf headers.
#CC_CFG += /DDOS4G # Must be defined for Greenleaf
#CC_CFG += /DGF_WATCOM_S # Must be defined for Greenleaf with /3s
#CC_CFG += /d3 # Debugging information.
#CC_CFG += /d1 # Debugging information.
#CC_CFG += /of+ # Generate traceable stack frames.
#CC_CFG += /DOPTION=$(%OPTION) # Optional option define.
#CC_CFG += /zp1 # Pack structures on byte boundary.
#CC_CFG += /5s # Pentium optimized stack calling conventions.
#CC_CFG += /xs # Exception handling enabled.
#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 += /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.
#CC_CFG += /zm # Each routine to be in its own segment.
#CC_CFG += /zld # Disable autodependency information in object file.
#CC_CFG += /bm # build target is a multi-thread environment
#CC_CFG += /mf # flat model
#CC_CFG += /ze # enable language extensions
#CC_CFG += /zw # create windows code
#CC_CFG += /od # *** Disable all optimizations ***
#CC_CFG += /ol # Loop optimizations enabled.
#CC_CFG += /or # Reorder instructions for best pipeline usage.
#CC_CFG += /oe # Inline is enabled.
#CC_CFG += /oi # Expand intrisic functions inline.
#CC_CFG += /on # Allow numerically unstable operations.
#CC_CFG += /oo # Compile even if low on memory (i.e. less than 64meg).
#CC_CFG += /oa # Relax aliasing constraints.
#CC_CFG += -bt=NT /i=q:\include -j -os -zz -W3 -d1 /5 -s -fh=c:\projects\code\conquer.pch
#CC_CFG += -bt=NT /i=q:\include -j -otexan -ol+ -zz -W3 -d1 /5 -s -fh=c:\projects\code\conquer.pch
#CC_CFG += -bt=NT /i=q:\include -zq -j -zz -W3 -d1 /5 -s -fh=c:\projects\code\conquer.pch
CC_CFG += -bt=NT /i=q:\include -j -W3 -zz -d1 -otxan -ol+ /5 -s -fh=d:\projects\ccgold\code\conquer.pch
#CC_CFG += -bt=NT /i=q:\include -j -W3 -zz -d2 -od /5 -s -fh=c:\projects\code\conquer.pch
#CC_CFG += -bt=95 /i=q:\include -j -W3 -hc -od -d3 /4 -s
#CC_CFG += -bt=NT /i=q:\include -j -W3 -d1 -orilt /4 -s -fh=c:\projects\code\conquer.pch -fhq
#CC_CFG += -bt=NT /i=q:\include -j -W3 -d2 -orilt /4 -s -ep -ee -fh=c:\projects\code\conquer.pch -fhq
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.
#ASM_CFG += /zi # Full debugging information.
VCT_CFG += -bt=NT /i=q:\include -j -W3 -zz -d2 -od /5 -s -fh=d:\projects\ccgold\code\conquer.pch
#---------------------------------------------------------------------------
# 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 $<
*watcom\wcc $(C_CFG) -fo$(%WWOBJ)obj\$^. $<
.cpp.obj: #.AUTODEPEND
echo Compiling $<
!ifdef %NETWORK
f:\projects\c&c95\slaves\NETEXEC /v f:\projects\c&c95\slaves\$(%NETWHO)c $^&
if exist $(%CCNETDIR)\code\netmake.err %abort
!else
*$(WATCOM)\binnt\wpp386 $(CC_CFG) -fo$(%WWOBJ)obj\$^. $(CODEDIR)\$<
!endif
.asm.obj:
echo Assembling $<
!ifdef %NETWORK
f:\projects\c&c95\slaves\NETEXEC /v f:\projects\c&c95\slaves\$(%NETWHO)a $^&
!else
tasm $(ASM_CFG) $<, $(%WWOBJ)obj\$^.
!endif
#---------------------------------------------------------------------------
# Project-dependent variables
#---------------------------------------------------------------------------
OBJECTS = &
SUPER.OBJ &
AADATA.OBJ &
WINSTUB.OBJ &
WINASM.OBJ &
ABSTRACT.OBJ &
ADATA.OBJ &
AIRCRAFT.OBJ &
ANIM.OBJ &
AUDIO.OBJ &
BASE.OBJ &
BBDATA.OBJ &
BDATA.OBJ &
BUILDING.OBJ &
BULLET.OBJ &
CARGO.OBJ &
CCFILE.OBJ &
CDATA.OBJ &
CDFILE.OBJ &
CELL.OBJ &
CHECKBOX.OBJ &
CHEKLIST.OBJ &
COLRLIST.OBJ &
COMBAT.OBJ &
COMBUF.OBJ &
CONFDLG.OBJ &
CONNECT.OBJ &
CONQUER.OBJ &
CONST.OBJ &
CONTROL.OBJ &
COORD.OBJ &
CREDITS.OBJ &
CREW.OBJ &
DEBUG.OBJ &
DIAL8.OBJ &
DIALOG.OBJ &
DISPLAY.OBJ &
DOOR.OBJ &
DRIVE.OBJ &
EDIT.OBJ &
EVENT.OBJ &
ENDING.OBJ &
EXPAND.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 &
INTERNET.OBJ &
INTERPAL.OBJ &
INTRO.OBJ &
IOMAP.OBJ &
IOOBJ.OBJ &
IPX.OBJ &
IPXADDR.OBJ &
IPXCONN.OBJ &
IPXGCONN.OBJ &
IPXMGR.OBJ &
IPX95.OBJ &
JSHELL.OBJ &
KEYFBUFF.OBJ &
KEYFRAME.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 &
MIXFILE.OBJ &
MOUSE.OBJ &
MPLAYER.OBJ &
MSGBOX.OBJ &
MSGLIST.OBJ &
NETDLG.OBJ &
NOSEQCON.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 &
RAND.OBJ &
REINF.OBJ &
SAVELOAD.OBJ &
SCENARIO.OBJ &
SCORE.OBJ &
SCROLL.OBJ &
SDATA.OBJ &
SHAPEBTN.OBJ &
SIDEBAR.OBJ &
SLIDER.OBJ &
SMUDGE.OBJ &
SOUNDDLG.OBJ &
SPECIAL.OBJ &
STARTUP.OBJ &
SUPPORT.OBJ &
TAB.OBJ &
TARCOM.OBJ &
TARGET.OBJ &
TCPIP.OBJ &
TDATA.OBJ &
TEAM.OBJ &
TEAMTYPE.OBJ &
TECHNO.OBJ &
TEMPLATE.OBJ &
TERRAIN.OBJ &
TEXTBTN.OBJ &
THEME.OBJ &
TOGGLE.OBJ &
TRIGGER.OBJ &
TURRET.OBJ &
TXTLABEL.OBJ &
TXTPRNT.OBJ &
UDATA.OBJ &
UNIT.OBJ &
VECTOR.OBJ &
VISUDLG.OBJ &
UTRACKER.OBJ &
PACKET.OBJ &
FIELD.OBJ &
STATS.OBJ &
CCDDE.OBJ &
DDE.OBJ &
# ALLOC.OBJ
# DESCDLG.OBJ &
# COORDA.OBJ &
PROJ_LIBS =# &
#wwflat32.lib
VQ_LIBS = &
vqa32wp.lib &
vqm32wp.lib
GCL_LIBS = &
gclfr3s.lib
############################################################################
# Pre-compilation process. Move old files to backup directory and switch
# to monochrome screen.
.BEFORE
!ifndef %SLAVE
# mode mono
!endif
-if exist $(%WWOBJ)*.pch del $(%WWOBJ)*.pch
-if exist $(%CCNETDIR)\code\netmake.err del $(%CCNETDIR)\code\netmake.err
-if exist *.bak move *.bak bak
# Switch back to normal screen at compilation end.
.AFTER
!ifndef %SLAVE
# mode co80
# ncc /50
!endif
# Switch back to normal screen if there was an error.
.ERROR
!ifndef %SLAVE
# mode co80
# ncc /50
!endif
#############################################################################
# Default target
all: conquer.exe
#############################################################################
# Builds the stub replacement program.
CWSTUB.OBJ: CWSTUB.C
*watcom\wcc /i=watcom\h /dQUIET /dVMM /ms /zQ -fo$(%WWOBJ)obj\$^. $<
CWSTUB.EXE: CWSTUB.OBJ
*watcom\wlink system dos file $(%WWOBJ)obj\cwstub.obj name cwstub.exe option quiet library watcom\lib286\dos\clibs.lib, watcom\lib286\math87s.lib, watcom\lib286\dos\emu87.lib
#############################################################################
# Build the EXE
conquer.exe: $(OBJECTS) obj\mmx.obj conquer.lnk $(WWFLAT)\lib\win32lib.lib $(VQDIR)\lib\vqa32wp.lib $(VQDIR)\lib\vqm32wp.lib
Echo "conquer.exe" linking phase.
!ifdef %NETWORK
echo Waiting for objects...
for %index in ($(OBJECTS)) do f:\projects\c&c95\slaves\WAITFILE $(%CCNETDIR)\code\obj\%index
ndos.com /c copy $(%CCNETDIR)\code\obj\*.obj $(%CCLOCALDIR)\code\obj /U
!endif
echo Linking the executable.
$(WATCOM)\binnt\wlink name ..\run\$@ @conquer.lnk
$(WATCOM)\binnt\WRC cc_icon ..\run\conquer.exe
Echo "conquer.exe" executable completed.
!ifdef %WWOBJ
xcopy /M e:\obj\*.* c:\projects\c&c\code\obj
!endif
# watcom\wlink $(LINK_CFG) name ..\run\$@ @conquer.lnk
#############################################################################
# This creates the linker command file.
conquer.lnk : makefile
%create $^@
%append $^@ system win95
%append $^@ option stack=128k
%append $^@ option redefsok
%append $^@ option quiet
%append $^@ option map
# %append $^@ option cache
%append $^@ option eliminate
%append $^@ option caseexact
# %append $^@ option stub=cwstub.exe
# %append $^@ debug all
%append $^@ debug all
for %index in ($(OBJECTS)) do %append $^@ file $(%WWOBJ)obj\%index
%append $^@ file $(%WWOBJ)obj\mmx.obj
# %append $^@ file $(%WWOBJ)obj\vector.obj
# 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 $^@ library $(WWFLAT)\lib\ddraw.lib
%append $^@ library $(WWFLAT)\lib\dsound.lib
%append $^@ library $(WWFLAT)\lib\keyboard.lib
%append $^@ library $(WWFLAT)\lib\win32lib.lib
%append $^@ library $(VQDIR)\lib\vqa32wp.lib
%append $^@ library $(VQDIR)\lib\vqm32wp.lib
%append $^@ library ipx\wwipx32.lib
##############################################################################
# Creates a symbol-less executable and copies it to the net cd directories
cd: .SYMBOLIC
-wstrip ..\run\conquer.exe ..\run\c&c95.exe
-copy ..\run\c&c95.exe f:\projects\c&c95\setup\data
##################################################################
#
# The MMX stuff requires MASM 6.11d so it needs its own rule
#
obj\mmx.obj: mmx.asm mmx.inc
d:\masm611\bin\ml /I. /c /Cx /Zd /Cp /Flmmx.txt /Sc /Foobj\mmx.obj mmx.asm
#############################################################
# Creates a bound executable in the install directory.
bind: .SYMBOLIC
-copy ..\run\conquer.exe ..\run\temp.exe
-wstrip ..\run\temp.exe
-watcom\4gwbind watcom\4gwpro.exe ..\run\temp.exe ..\cd1\install\c&c.exe -f
-copy ..\cd1\install\c&c.exe ..\cd2\install /u /v
-del ..\run\temp.exe
#############################################################
# Update source and art to network.
update: bind .SYMBOLIC
!ifdef %CDDIR
-copy ..\cd1\*.* $(CDDIR)cd1 /v /u /s
-copy ..\cd2\*.* $(CDDIR)cd2 /v /u /s
-copy $(CDDIR)cd1\*.* f:\projects\c&c\cd\cd1 /v /u /s
-copy $(CDDIR)cd2\*.* f:\projects\c&c\cd\cd2 /v /u /s
!else
-copy ..\cd1\*.* f:\projects\c&c\cd\cd1 /v /u /s
-copy ..\cd2\*.* f:\projects\c&c\cd\cd2 /v /u /s
!endif
-copy watcom\dos4gw.exe f:\projects\c&c\playtest
-copy ..\run\conquer.exe f:\projects\c&c\playtest /u /v
-copy conquer.map f:\projects\c&c\playtest /u /v
-mkdir f:\projects\c&c\playtest\%_DATE
-copy ..\run\conquer.exe f:\projects\c&c\playtest\%_DATE /u /v
-copy conquer.map f:\projects\c&c\playtest\%_DATE /u /v
-copy ..\art\ingame\*.* f:\projects\c&c\art\ingame /u /v /s
-copy *.* f:\projects\c&c\code /v /s /u
#############################################################################
# Explicit rules to build the master zip files (used by Codewrite merge).
BILL_R.ZIP: pkzip.dat .SYMBOLIC
-del f:\projects\c&c\bill_r.zip
-pkzip -p -u -x@pkzip.dat f:\projects\c&c\bill_r.zip *.* eng\*.*
MARIA_L.ZIP: pkzip.dat .SYMBOLIC
-del f:\projects\c&c\maria_l.zip
-pkzip -p -u -x@pkzip.dat f:\projects\c&c\maria_l.zip *.* eng\*.*
BARRY_G.ZIP: pkzip.dat .SYMBOLIC
-del f:\projects\c&c\barry_g.zip
-pkzip -p -u -x@pkzip.dat f:\projects\c&c\barry_g.zip *.* eng\*.*
PHIL_G.ZIP: pkzip.dat .SYMBOLIC
-del f:\projects\c&c95\phil_g.zip
-pkzip -p -u -x@pkzip.dat f:\projects\c&c95\phil_g.zip *.*
win32lib.ZIP: pkzip.dat .SYMBOLIC
-del f:\projects\c&c95\win32lib.zip
-pkzip -p -r f:\projects\c&c95\win32lib.zip d:\win32lib\*.*
DAVID_D.ZIP: pkzip.dat .SYMBOLIC
-del f:\projects\c&c\david_d.zip
-pkzip -p -u -x@pkzip.dat f:\projects\c&c\david_d.zip *.* eng\*.*
BILL_P.ZIP: pkzip.dat .SYMBOLIC
-del f:\projects\c&c\bill_p.zip
-pkzip -p -u -x@pkzip.dat f:\projects\c&c\bill_p.zip *.* eng\*.*
# Special "mega-zip" process.
JOE_B.ZIP: pkzip.dat .SYMBOLIC
-pkzip -rp -u -xcps\*.* -x@pkzip.dat f:\projects\c&c\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 $^@ *.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 $^@ *.mk
%append $^@ *.mk1
%append $^@ *.obj
%append $^@ *.out
%append $^@ *.pch
%append $^@ *.pfs
%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 $^@ *.vec
%append $^@ *.wpj
%append $^@ *.zip
%append $^@ state.rst
#---------------------------------------------------------------------------
# Dependency macros (makes defining dependencies easier)
#---------------------------------------------------------------------------
GENERAL_H = defines.h function.h externs.h conquer.h vector.h heap.h &
debug.h jshell.h compat.h
TECHNO_H = facing.h techno.h mission.h stage.h cargo.h object.h abstract.h
UNIT_H = unit.h tarcom.h turret.h drive.h foot.h radio.h $(TECHNO_H)
INFANTRY_H = infantry.h foot.h radio.h $(TECHNO_H)
AIRCRAFT_H = aircraft.h fly.h radio.h $(TECHNO_H)
BUILDING_H = building.h radio.h $(TECHNO_H)
BULLET_H = bullet.h fly.h fuse.h object.h abstract.h
OBJ_H = $(UNIT_H) $(INFANTRY_H) $(AIRCRAFT_H) $(BUILDING_H) $(BULLET_H)
MAP_H = base.h mapedit.h mouse.h scroll.h help.h tab.h power.h sidebar.h &
radar.h display.h map.h gscreen.h cell.h
GADGET_H = textbtn.h shapebtn.h slider.h gauge.h dial8.h edit.h &
toggle.h list.h cheklist.h control.h gadget.h link.h
FILE_H = ccfile.h cdfile.h mixfile.h rawfile.h wwfile.h link.h
TEAM_H = team.h teamtype.h trigger.h
IPX_H = ipx.h ipxaddr.h
NET_H = combuf.h connect.h connmgr.h ipx.h ipxaddr.h ipxconn.h ipxgconn.h &
ipxmgr.h noseqcon.h nullconn.h nullmgr.h
MISC_H = ftimer.h logic.h score.h theme.h event.h queue.h special.h
#---------------------------------------------------------------------------
# Dependencies (This is not totally accurate; if you're not sure, rebuild
# everything!)
#---------------------------------------------------------------------------
aadata.obj: aadata.cpp $(GENERAL_H) type.h
winstub.obj: winstub.cpp tcpip.h $(GENERAL_H)
winasm.obj: winasm.asm
abstract.obj: abstract.cpp $(GENERAL_H) abstract.h
adata.obj: adata.cpp $(GENERAL_H) type.h
aircraft.obj: aircraft.cpp $(GENERAL_H) $(AIRCRAFT_H)
anim.obj: anim.cpp $(GENERAL_H) anim.h stage.h object.h
audio.obj: audio.cpp $(GENERAL_H) audio.h
base.obj: base.cpp $(GENERAL_H) type.h
bbdata.obj: bbdata.cpp $(GENERAL_H) type.h
bdata.obj: bdata.cpp $(GENERAL_H) type.h
building.obj: building.cpp $(GENERAL_H) $(BUILDING_H)
bullet.obj: bullet.cpp $(GENERAL_H) $(BULLET_H)
cargo.obj: cargo.cpp $(GENERAL_H) $(TECHNO_H) cargo.h
ccfile.obj: ccfile.cpp $(GENERAL_H) $(FILE_H)
cdata.obj: cdata.cpp $(GENERAL_H) type.h
cdfile.obj: cdfile.cpp $(GENERAL_H) $(FILE_H)
cell.obj: cell.cpp $(GENERAL_H) $(MAP_H)
checkbox.obj: checkbox.cpp $(GENERAL_H) $(GADGET_H)
cheklist.obj: cheklist.cpp $(GENERAL_H) $(GADGET_H)
colrlist.obj: colrlist.cpp $(GENERAL_H) $(GADGET_H)
combat.obj: combat.cpp $(GENERAL_H)
combuf.obj: combuf.cpp $(GENERAL_H) combuf.h
confdlg.obj: confdlg.cpp $(GENERAL_H) $(GADGET_H)
connect.obj: connect.cpp $(GENERAL_H) connect.h combuf.h
conquer.obj: conquer.cpp $(GENERAL_H) $(MISC_H) $(OBJ_H) tcpip.h ccdde.h
const.obj: const.cpp $(GENERAL_H)
control.obj: control.cpp $(GENERAL_H) $(GADGET_H)
coord.obj: coord.cpp $(GENERAL_H)
coorda.obj: coorda.asm
credits.obj: credits.cpp $(GENERAL_H) credits.h
crew.obj: crew.cpp $(GENERAL_H) crew.h
debug.obj: debug.cpp $(GENERAL_H) debug.h
deldlg.obj: deldlg.cpp $(GENERAL_H) $(GADGET_H)
#descdlg.obj: descdlg.cpp $(GENERAL_H) $(GADGET_H)
dial8.obj: dial8.cpp $(GENERAL_H) $(GADGET_H)
dialog.obj: dialog.cpp $(GENERAL_H)
display.obj: display.cpp $(GENERAL_H) $(MAP_H)
door.obj: door.cpp $(GENERAL_H)
drive.obj: drive.cpp $(GENERAL_H) $(TECHNO_H)
edit.obj: edit.cpp $(GENERAL_H) $(GADGET_H)
event.obj: event.cpp $(GENERAL_H) $(MISC_H) ccdde.h
ending.obj: ending.cpp $(GENERAL_H) $(MISC_H)
expand.obj: expand.cpp $(GENERAL)
facing.obj: facing.cpp $(GENERAL_H) facing.h
factory.obj: factory.cpp $(GENERAL_H) factory.h
findpath.obj: findpath.cpp $(GENERAL_H)
flasher.obj: flasher.cpp $(GENERAL_H) flasher.h
fly.obj: fly.cpp $(GENERAL_H) fly.h
foot.obj: foot.cpp $(GENERAL_H) $(INFANTRY_H)
fuse.obj: fuse.cpp $(GENERAL_H) fuse.h
gadget.obj: gadget.cpp $(GENERAL_H) $(GADGET_H)
gamedlg.obj: gamedlg.cpp $(GENERAL_H) $(GADGET_H)
gauge.obj: gauge.cpp $(GENERAL_H) $(GADGET_H)
globals.obj: globals.cpp $(GENERAL_H)
goptions.obj: goptions.cpp $(GENERAL_H) $(GADGET_H)
gscreen.obj: gscreen.cpp $(GENERAL_H) $(MAP_H)
hdata.obj: hdata.cpp $(GENERAL_H) type.h
heap.obj: heap.cpp $(GENERAL_H) $(MISC_H)
help.obj: help.cpp $(GENERAL_H) $(MAP_H)
house.obj: house.cpp $(GENERAL_H) house.h
idata.obj: idata.cpp $(GENERAL_H) type.h
infantry.obj: infantry.cpp $(GENERAL_H) $(INFANTRY_H)
ini.obj: ini.cpp $(GENERAL_H) $(MISC_H)
init.obj: init.cpp $(GENERAL_H) $(MISC_H) $(OBJ_H) tcpip.h ccdde.h
internet.obj: internet.cpp $(GENERAL_H) $(MISC_H) tcpip.h ccdde.h
interpal.obj: interpal.cpp $(GENERAL_H) $(MISC_H)
intro.obj: intro.cpp $(GENERAL_H) $(MISC_H)
iomap.obj: iomap.cpp $(GENERAL_H) $(MAP_H) $(FILE_H)
ioobj.obj: ioobj.cpp $(GENERAL_H) $(FILE_H) $(OBJ_H)
ipx.obj: ipx.cpp $(GENERAL_H) $(IPX_H)
ipxaddr.obj: ipxaddr.cpp $(GENERAL_H) $(IPX_H)
ipxconn.obj: ipxconn.cpp $(GENERAL_H) $(NET_H)
ipxgconn.obj: ipxgconn.cpp $(GENERAL_H) $(NET_H)
ipxmgr.obj: ipxmgr.cpp $(GENERAL_H) $(NET_H)
ipx95.obj: ipx95.cpp $(GENERAL_H) $(NET_H)
jshell.obj: jshell.cpp $(GENERAL_H) $(MISC_H)
keyfbuff.obj: keyfbuff.asm
keyframe.obj: keyframe.cpp $(GENERAL_H)
layer.obj: layer.cpp $(GENERAL_H) $(MISC_H)
link.obj: link.cpp $(GENERAL_H) link.h
list.obj: list.cpp $(GENERAL_H) $(GADGET_H)
loaddlg.obj: loaddlg.cpp $(GENERAL_H) $(GADGET_H)
logic.obj: logic.cpp $(GENERAL_H) $(MISC_H)
map.obj: map.cpp $(GENERAL_H) $(MAP_H)
mapsel.obj: mapsel.cpp $(GENERAL_H)
mapeddlg.obj: mapeddlg.cpp $(GENERAL_H) $(MAP_H) $(OBJ_H)
mapedit.obj: mapedit.cpp mapedsel.cpp $(GENERAL_H) $(MAP_H) $(OBJ_H)
mapedplc.obj: mapedplc.cpp $(GENERAL_H) $(MAP_H) $(OBJ_H)
mapedtm.obj: mapedtm.cpp $(GENERAL_H) $(MAP_H) $(OBJ_H)
menus.obj: menus.cpp $(GENERAL_H) ccdde.h
mission.obj: mission.cpp $(GENERAL_H) mission.h stage.h cargo.h object.h abstract.h
mixfile.obj: mixfile.cpp $(GENERAL_H) $(FILE_H)
monoc.obj: monoc.cpp $(GENERAL_H)
mouse.obj: mouse.cpp $(GENERAL_H) $(MAP_H)
mplayer.obj: mplayer.cpp tcpip.h $(GENERAL_H)
msgbox.obj: msgbox.cpp $(GENERAL_H) $(GADGET_H)
msglist.obj: msglist.cpp $(GENERAL_H) $(GADGET_H)
netdlg.obj: netdlg.cpp $(GENERAL_H) $(GADGET_H) $(NET_H)
noseqcon.obj: noseqcon.cpp $(GENERAL_H) noseqcon.h connect.h combuf.h
nullconn.obj: nullconn.cpp $(GENERAL_H) nullconn.h noseqcon.h connect.h combuf.h tcpip.h
nulldlg.obj: nulldlg.cpp $(GENERAL_H) nullmgr.h nullconn.h connmgr.h noseqcon.h connect.h combuf.h tcpip.h
nullmgr.obj: nullmgr.cpp $(GENERAL_H) nullmgr.h nullconn.h connmgr.h noseqcon.h connect.h combuf.h tcpip.h
object.obj: object.cpp $(GENERAL_H) object.h abstract.h
odata.obj: odata.cpp $(GENERAL_H) type.h
options.obj: options.cpp $(GENERAL_H) $(GADGET_H)
overlay.obj: overlay.cpp $(GENERAL_H) overlay.h object.h
power.obj: power.cpp $(GENERAL_H) $(MAP_H)
profile.obj: profile.cpp $(GENERAL_H)
queue.obj: queue.cpp $(GENERAL_H) $(MISC_H) tcpip.h
rand.obj: rand.cpp $(GENERAL_H)
radar.obj: radar.cpp $(GENERAL_H) $(MAP_H)
radio.obj: radio.cpp $(GENERAL_H) $(TECHNO_H)
reinf.obj: reinf.cpp $(GENERAL_H) $(MISC_H) $(TEAM_H)
savedlg.obj: savedlg.cpp $(GENERAL_H) $(GADGET_H)
saveload.obj: saveload.cpp $(GENERAL_H) $(MISC_H)
scenario.obj: scenario.cpp $(GENERAL_H) $(MISC_H)
score.obj: score.cpp $(GENERAL_H)
scroll.obj: scroll.cpp $(GENERAL_H) $(MAP_H)
sdata.obj: sdata.cpp $(GENERAL_H) type.h
shapebtn.obj: shapebtn.cpp $(GENERAL_H) $(GADGET_H)
sidebar.obj: sidebar.cpp $(GENERAL_H) $(MAP_H)
slider.obj: slider.cpp $(GENERAL_H) $(GADGET_H)
smudge.obj: smudge.cpp $(GENERAL_H) smudge.h object.h
sounddlg.obj: sounddlg.cpp $(GENERAL_H) $(GADGET_H) sounddlg.h
special.obj: special.cpp $(GENERAL_H) $(GADGET_H) special.h
startup.obj: startup.cpp $(GENERAL_H) ccdde.h
stuff.obj: stuff.cpp $(GENERAL_H) $(MISC_H)
support.obj: support.asm
super.obj: super.cpp $(GENERAL_H) $(MISC_H)
tab.obj: tab.cpp $(GENERAL_H) $(MAP_H)
tarcom.obj: tarcom.cpp $(GENERAL_H) $(UNIT_H)
target.obj: target.cpp $(GENERAL_H) target.h
tcpip.obj: tcpip.cpp $(GENERAL_H) tcpip.h
tdata.obj: tdata.cpp $(GENERAL_H) type.h
team.obj: team.cpp $(GENERAL_H) $(TEAM_H)
teamtype.obj: teamtype.cpp $(GENERAL_H) $(TEAM_H)
techno.obj: techno.cpp $(GENERAL_H) $(TECHNO_H)
template.obj: template.cpp $(GENERAL_H) template.h object.h
terrain.obj: terrain.cpp $(GENERAL_H) terrain.h stage.h object.h
textbtn.obj: textbtn.cpp $(GENERAL_H) $(GADGET_H)
theme.obj: theme.cpp $(GENERAL_H) theme.h
toggle.obj: toggle.cpp $(GENERAL_H) $(GADGET_H)
trigger.obj: trigger.cpp $(GENERAL_H) $(TEAM_H)
turret.obj: turret.cpp $(GENERAL_H) $(UNIT_H)
txtlabel.obj: txtlabel.cpp $(GENERAL_H) $(GADGET_H)
txtprnt.obj: txtprnt.asm
udata.obj: udata.cpp $(GENERAL_H) type.h
unit.obj: unit.cpp $(GENERAL_H) $(UNIT_H)
visudlg.obj: visudlg.cpp $(GENERAL_H) $(GADGET_H)
utracker.obj: utracker.cpp utracker.h
packet.obj: packet.cpp packet.h field.h
field.obj: field.cpp field.h
stats.obj: stats.cpp $(GENERAL_H) packet.h field.h ccdde.h
ccdde.obj: ccdde.cpp ccdde.h dde.h
dde.obj: dde.cpp dde.h
vector.obj: vector.cpp $(GENERAL_H) $(MISC_H)
*$(WATCOM)\binnt\wpp386 $(VCT_CFG) -foobj\vector.obj vector.cpp
#**************************** End of makefile ******************************