MAKEFILE.BAK 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861
  1. #
  2. # Command & Conquer(tm)
  3. # Copyright 2025 Electronic Arts Inc.
  4. #
  5. # This program is free software: you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation, either version 3 of the License, or
  8. # (at your option) any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. # GNU General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. #
  18. #* $Header$
  19. #***********************************************************************************************
  20. #*** 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 ***
  21. #***********************************************************************************************
  22. #* *
  23. #* Project Name : Command & Conquer *
  24. #* *
  25. #* File Name : MAKEFILE *
  26. #* *
  27. #* Programmer : Joe L. Bostic *
  28. #* *
  29. #* Start Date : 03/02/95 *
  30. #* *
  31. #* Last Update : March 2, 1995 [JLB] *
  32. #* *
  33. #*---------------------------------------------------------------------------------------------*
  34. #* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
  35. .SILENT
  36. .OPTIMIZE
  37. .ERASE
  38. #---------------------------------------------------------------------------
  39. # Verify user's environment
  40. #---------------------------------------------------------------------------
  41. !ifndef %WWFLAT
  42. WWFLAT=c:\wwflat32
  43. #!error WWFLAT must be set to the root of the library directory.
  44. !else
  45. WWFLAT=$(%WWFLAT)
  46. !endif
  47. !ifndef %WATCOM
  48. WATCOM=c:\projects\c&c\code\watcom
  49. #!error WATCOM must be set to the Watcom root directory.
  50. !else
  51. WATCOM=$(%WATCOM)
  52. !endif
  53. #---------------------------------------------------------------------------
  54. # Path macros: one path for each file type.
  55. # These paths are used to tell make where to find/put each file type.
  56. #---------------------------------------------------------------------------
  57. .asm: .
  58. .c: .
  59. .cpp: .
  60. .h: .
  61. #.obj: obj
  62. .obj: r:
  63. .lib: $(WWFLAT)\lib
  64. .exe: ..\run
  65. #===========================================================================
  66. # Flags for the different project assembly tools.
  67. #===========================================================================
  68. CC_CFG = /i=..\vq\include # Includes player (VQ) directory.
  69. CC_CFG += /i=$(WWFLAT)\INCLUDE # Normal library include directory.
  70. CC_CFG += /i=watcom\H # Normal Watcom include directory.
  71. CC_CFG += /i=..\gcl510\H # Includes Greenleaf headers.
  72. CC_CFG += /d2 # Debugging information.
  73. CC_CFG += /of+ # Generate tracable stack frames.
  74. CC_CFG += /zp1 # Pack structures on byte boundary.
  75. CC_CFG += /5s # Pentium optimized stack calling conventions.
  76. CC_CFG += /xs # Exception handling enabled.
  77. CC_CFG += /s # Remove stack check calls.
  78. CC_CFG += /j # char is now signed.
  79. CC_CFG += /fh=conquer.pch # Use precompiled headers.
  80. CC_CFG += /we # Treat all warnings as errors.
  81. CC_CFG += /w8 # Most warnings enabled.
  82. CC_CFG += /ri # char and shorts are returned as int.
  83. CC_CFG += /zq # Operate quietly.
  84. CC_CFG += /zm # Each routine to be in its own segment.
  85. CC_CFG += /zld # Disable autodependency information in object file.
  86. CC_CFG += /od # *** Disable all optimizations ***
  87. CC_CFG += /DDOS4G # Must be defined for Greenleaf
  88. CC_CFG += /DGF_WATCOM_S # Must be defined for Greenleaf with /3s
  89. CC_CFG += /ol # Loop optimizations enabled.
  90. CC_CFG += /or # Reorder instructions for best pipeline usage.
  91. CC_CFG += /oe # Inline is enabled.
  92. CC_CFG += /oi # Expand intrisic functions inline.
  93. CC_CFG += /on # Allow numerically unstable operations.
  94. CC_CFG += /oo # Compile even if low on memory (i.e. less than 64meg).
  95. CC_CFG += /oa # Relax aliasing constraints.
  96. #CC_CFG += /ot # Speed is more important than space optimizations.
  97. #CC_CFG += /fi=watcom.h # Special Watcom control file.
  98. ASM_CFG = /i$(WWFLAT)\INCLUDE # Include directory.
  99. ASM_CFG += /zd # Debugging information line numbers.
  100. ASM_CFG += /t # Quiet operation.
  101. ASM_CFG += /m # Allow multiple passes.
  102. ASM_CFG += /w+ # Enable maximum warnings.
  103. ASM_CFG += /jJUMPS # Enable jump optimizations.
  104. ASM_CFG += /ml # Case sensitivity on code.
  105. #ASM_CFG += /zi # Full debugging information.
  106. #---------------------------------------------------------------------------
  107. # Implicit rules
  108. # Compiler:
  109. # ($< = full dependent with path)
  110. # Assembler:
  111. # output obj's are constructed from .obj: & the $& macro
  112. # ($< = full dependent with path)
  113. # tasm's cfg file is not invoked as a response file.
  114. #---------------------------------------------------------------------------
  115. .c.obj:#.AUTODEPEND
  116. echo Compiling $<
  117. *watcom\wcc $(C_CFG) -foobj\$^. $<
  118. .cpp.obj: #.AUTODEPEND
  119. echo Compiling $<
  120. !ifdef %NETWORK
  121. f:\projects\c&c\slaves\NETEXEC /v $(%NETWHO)c $^&
  122. if exist $(%CCNETDIR)\code\netmake.err %abort
  123. !else
  124. *watcom\wpp386 $(CC_CFG) -foobj\$^. $<
  125. !endif
  126. .asm.obj:
  127. echo Assembling $<
  128. !ifdef %NETWORK
  129. f:\projects\c&c\slaves\NETEXEC /v $(%NETWHO)a $^&
  130. !else
  131. watcom\tasm32 $(ASM_CFG) $<, obj\$^.
  132. !endif
  133. #---------------------------------------------------------------------------
  134. # Project-dependent variables
  135. #---------------------------------------------------------------------------
  136. OBJECTS = &
  137. AADATA.OBJ &
  138. ABSTRACT.OBJ &
  139. ADATA.OBJ &
  140. AIRCRAFT.OBJ &
  141. ANIM.OBJ &
  142. AUDIO.OBJ &
  143. BASE.OBJ &
  144. BBDATA.OBJ &
  145. BDATA.OBJ &
  146. BUILDING.OBJ &
  147. BULLET.OBJ &
  148. CARGO.OBJ &
  149. CCFILE.OBJ &
  150. CDATA.OBJ &
  151. CDFILE.OBJ &
  152. CELL.OBJ &
  153. CHEKLIST.OBJ &
  154. COLRLIST.OBJ &
  155. COMBAT.OBJ &
  156. COMBUF.OBJ &
  157. CONFDLG.OBJ &
  158. CONNECT.OBJ &
  159. CONQUER.OBJ &
  160. CONST.OBJ &
  161. CONTROL.OBJ &
  162. COORD.OBJ &
  163. COORDA.OBJ &
  164. CREDITS.OBJ &
  165. CREW.OBJ &
  166. DEBUG.OBJ &
  167. DESCDLG.OBJ &
  168. DIAL8.OBJ &
  169. DIALOG.OBJ &
  170. DISPLAY.OBJ &
  171. DPMI.OBJ &
  172. DRIVE.OBJ &
  173. EDIT.OBJ &
  174. EVENT.OBJ &
  175. FACING.OBJ &
  176. FACTORY.OBJ &
  177. FINDPATH.OBJ &
  178. FLASHER.OBJ &
  179. FLY.OBJ &
  180. FOOT.OBJ &
  181. FUSE.OBJ &
  182. GADGET.OBJ &
  183. GAMEDLG.OBJ &
  184. GAUGE.OBJ &
  185. GLOBALS.OBJ &
  186. GOPTIONS.OBJ &
  187. GSCREEN.OBJ &
  188. HDATA.OBJ &
  189. HEAP.OBJ &
  190. HELP.OBJ &
  191. HOUSE.OBJ &
  192. IDATA.OBJ &
  193. INFANTRY.OBJ &
  194. INI.OBJ &
  195. INIT.OBJ &
  196. INTRO.OBJ &
  197. IOMAP.OBJ &
  198. IOOBJ.OBJ &
  199. IPX.OBJ &
  200. IPXADDR.OBJ &
  201. IPXCONN.OBJ &
  202. IPXGCONN.OBJ &
  203. IPXMGR.OBJ &
  204. IPXPROT.OBJ &
  205. JSHELL.OBJ &
  206. KEYFBUFF.OBJ &
  207. KEYFRAME.OBJ &
  208. LAYER.OBJ &
  209. LINK.OBJ &
  210. LIST.OBJ &
  211. LOADDLG.OBJ &
  212. LOGIC.OBJ &
  213. MAP.OBJ &
  214. MAPEDDLG.OBJ &
  215. MAPEDIT.OBJ &
  216. MAPEDPLC.OBJ &
  217. MAPEDSEL.OBJ &
  218. MAPEDTM.OBJ &
  219. MAPSEL.OBJ &
  220. MENUS.OBJ &
  221. MISSION.OBJ &
  222. MIXFILE.OBJ &
  223. MONOC.OBJ &
  224. MOUSE.OBJ &
  225. MPLAYER.OBJ &
  226. MSGBOX.OBJ &
  227. MSGLIST.OBJ &
  228. NETDLG.OBJ &
  229. NOSEQCON.OBJ &
  230. NULLCONN.OBJ &
  231. NULLDLG.OBJ &
  232. NULLMGR.OBJ &
  233. OBJECT.OBJ &
  234. ODATA.OBJ &
  235. OPTIONS.OBJ &
  236. OVERLAY.OBJ &
  237. POWER.OBJ &
  238. PROFILE.OBJ &
  239. QUEUE.OBJ &
  240. RADAR.OBJ &
  241. RADIO.OBJ &
  242. RAND.OBJ &
  243. RAWFILE.OBJ &
  244. REINF.OBJ &
  245. SAVELOAD.OBJ &
  246. SCENARIO.OBJ &
  247. SCORE.OBJ &
  248. SCROLL.OBJ &
  249. SDATA.OBJ &
  250. SHAPEBTN.OBJ &
  251. SIDEBAR.OBJ &
  252. SLIDER.OBJ &
  253. SMUDGE.OBJ &
  254. SOUNDDLG.OBJ &
  255. STARTUP.OBJ &
  256. SUPPORT.OBJ &
  257. TAB.OBJ &
  258. TARCOM.OBJ &
  259. TARGET.OBJ &
  260. TDATA.OBJ &
  261. TEAM.OBJ &
  262. TEAMTYPE.OBJ &
  263. TECHNO.OBJ &
  264. TEMPLATE.OBJ &
  265. TERRAIN.OBJ &
  266. TEXTBTN.OBJ &
  267. THEME.OBJ &
  268. TOGGLE.OBJ &
  269. TRIGGER.OBJ &
  270. TURRET.OBJ &
  271. TXTLABEL.OBJ &
  272. TXTPRNT.OBJ &
  273. UDATA.OBJ &
  274. UNIT.OBJ &
  275. VECTOR.OBJ &
  276. VISUDLG.OBJ
  277. PROJ_LIBS = &
  278. wwflat32.lib
  279. VQ_LIBS = &
  280. vqa32wp.lib &
  281. vqm32wp.lib
  282. GCL_LIBS = &
  283. gclfr3s.lib
  284. ############################################################################
  285. # Pre-compilation process. Move old files to backup directory and switch
  286. # to monochrome screen.
  287. .BEFORE
  288. mode mono
  289. -if exist *.pch del *.pch
  290. -if exist $(%CCNETDIR)\code\netmake.err del $(%CCNETDIR)\code\netmake.err
  291. -if exist *.bak move *.bak bak
  292. # Switch back to normal screen at compilation end.
  293. .AFTER
  294. mode co80
  295. # Switch back to normal screen if there was an error.
  296. .ERROR
  297. mode co80
  298. #############################################################################
  299. # Default target
  300. all: conquer.exe
  301. #############################################################################
  302. # Builds the stub replacement program.
  303. CWSTUB.OBJ: CWSTUB.C
  304. *watcom\wcc /i=watcom\h /dQUIET /dVMM /ms /zQ -foobj\$^. $<
  305. CWSTUB.EXE: CWSTUB.OBJ
  306. *watcom\wlink system dos file obj\cwstub.obj name cwstub.exe option quiet library watcom\lib286\dos\clibs.lib, watcom\lib286\math87s.lib, watcom\lib286\dos\emu87.lib
  307. #############################################################################
  308. # Build the EXE
  309. conquer.exe: $(OBJECTS) cwstub.exe conquer.lnk $(WWFLAT)\lib\wwflat32.lib
  310. Echo "conquer.exe" linking phase.
  311. !ifdef %NETWORK
  312. echo Waiting for objects...
  313. for %index in ($(OBJECTS)) do WAITFILE $(%CCNETDIR)\code\obj\%index
  314. # copy $(%CCNETDIR)\code\obj\*.obj $(%CCLOCALDIR)\code\obj /U
  315. copy $(%CCNETDIR)\code\obj\*.obj r: /U
  316. !endif
  317. watcom\wlink name ..\run\$@ @conquer.lnk
  318. Echo "conquer.exe" executable completed.
  319. !ifdef %WWOBJ
  320. xcopy /M $(WWOBJ)obj\*.obj obj
  321. !endif
  322. # watcom\wlink $(LINK_CFG) name ..\run\$@ @conquer.lnk
  323. #############################################################################
  324. # This creates the linker command file.
  325. conquer.lnk : makefile
  326. %create $^@
  327. %append $^@ system dos4g
  328. %append $^@ debug all
  329. %append $^@ option stack=8k
  330. %append $^@ option redefsok
  331. %append $^@ option quiet
  332. %append $^@ option map
  333. %append $^@ option cache
  334. %append $^@ option eliminate
  335. %append $^@ option caseexact
  336. # %append $^@ option stub=cwstub.exe
  337. # for %index in ($(OBJECTS)) do %append $^@ file obj\%index
  338. for %index in ($(OBJECTS)) do %append $^@ file r:\%index
  339. for %index in ($(PROJ_LIBS)) do %append $^@ library $(WWFLAT)\lib\%index
  340. for %index in ($(VQ_LIBS)) do %append $^@ library ..\vq\lib\%index
  341. for %index in ($(GCL_LIBS)) do %append $^@ library ..\gcl510\w10\%index
  342. bind: .SYMBOLIC
  343. -copy ..\run\conquer.exe ..\run\temp.exe
  344. -wstrip ..\run\temp.exe
  345. -watcom\4gwbind watcom\4gwpro.exe ..\run\temp.exe ..\run\c&c.exe -f
  346. -del ..\run\temp.exe
  347. # -wstrip ..\run\install.exe
  348. # -move ..\run\install.exe ..\run\temp.exe
  349. # -watcom\4gwbind watcom\4gwpro.exe ..\run\temp.exe ..\run\install.exe -f
  350. # -del ..\run\temp.exe
  351. #############################################################
  352. # Update source and art to network.
  353. update: bind .SYMBOLIC
  354. -del *.pch
  355. -del *.tr
  356. -del *.td
  357. -del *.bak
  358. -del *.rst
  359. -del ..\run\*.swp
  360. -attrib -r f:\projects\c&c\cd\*.* /s
  361. -copy ..\cd\*.* f:\projects\c&c\cd /v /u /s
  362. -deltree /Y f:\projects\c&c\cd\install
  363. -md f:\projects\c&c\cd\install
  364. -copy ..\run\*.* f:\projects\c&c\cd\install /v /u
  365. -del f:\projects\c&c\cd\install\*.cfg
  366. -del f:\projects\c&c\cd\install\*.dat
  367. -del f:\projects\c&c\cd\install\*.doc
  368. -del f:\projects\c&c\cd\install\*.ini
  369. -del f:\projects\c&c\cd\install\*.bin
  370. -del f:\projects\c&c\cd\install\*.lbm
  371. -del f:\projects\c&c\cd\install\*.out
  372. -del f:\projects\c&c\cd\install\*.sym
  373. -del f:\projects\c&c\cd\install\*.log
  374. -del f:\projects\c&c\cd\install\*.txt
  375. -del f:\projects\c&c\cd\install\*.bak
  376. -del f:\projects\c&c\cd\install\*.rst
  377. -del f:\projects\c&c\cd\install\savegame.*
  378. -move f:\projects\c&c\cd\install\conquer.exe f:\projects\c&c\playtest
  379. -attrib +r f:\projects\c&c\cd\*.* /s
  380. -copy watcom\dos4gw.exe f:\projects\c&c\playtest
  381. -deltree /Y f:\projects\c&c\art\ingame
  382. -md f:\projects\c&c\art\ingame
  383. -xcopy ..\art\ingame\*.* f:\projects\c&c\art\ingame /e /v /s
  384. -del /Y f:\projects\c&c\code\*.*
  385. -copy *.* f:\projects\c&c\code /v /s /u
  386. #############################################################################
  387. # Explicit rules to build the master zip files (used by Codewrite merge).
  388. BILL_R.ZIP: pkzip.dat .SYMBOLIC
  389. -del f:\projects\c&c\bill_r.zip
  390. -pkzip -p -u [email protected] f:\projects\c&c\bill_r.zip *.* eng\*.*
  391. MARIA_L.ZIP: pkzip.dat .SYMBOLIC
  392. -del f:\projects\c&c\maria_l.zip
  393. -pkzip -p -u [email protected] f:\projects\c&c\maria_l.zip *.* eng\*.*
  394. BARRY_G.ZIP: pkzip.dat .SYMBOLIC
  395. -del f:\projects\c&c\barry_g.zip
  396. -pkzip -p -u [email protected] f:\projects\c&c\barry_g.zip *.* eng\*.*
  397. PHIL_G.ZIP: pkzip.dat .SYMBOLIC
  398. -del f:\projects\c&c\phil_g.zip
  399. -pkzip -p -u [email protected] f:\projects\c&c\phil_g.zip *.* eng\*.*
  400. DAVID_D.ZIP: pkzip.dat .SYMBOLIC
  401. -del f:\projects\c&c\david_d.zip
  402. -pkzip -p -u [email protected] f:\projects\c&c\david_d.zip *.* eng\*.*
  403. BILL_P.ZIP: pkzip.dat .SYMBOLIC
  404. -del f:\projects\c&c\bill_p.zip
  405. -pkzip -p -u [email protected] f:\projects\c&c\bill_p.zip *.* eng\*.*
  406. # Special "mega-zip" process.
  407. JOE_B.ZIP: pkzip.dat .SYMBOLIC
  408. -pkzip -rp -u -xcps\*.* [email protected] f:\projects\c&c\joe_b.zip
  409. #############################################################################
  410. # Rebuilds the master zip control file. This is used by the zip process.
  411. PKZIP.DAT: makefile .SYMBOLIC
  412. %create $^@
  413. %append $^@ *.000
  414. %append $^@ *.@@@
  415. %append $^@ *.bak
  416. %append $^@ *.bat
  417. %append $^@ *.cfg
  418. %append $^@ *.dat
  419. %append $^@ *.def
  420. %append $^@ *.doc
  421. %append $^@ *.dsw
  422. %append $^@ *.err
  423. %append $^@ *.ewp
  424. %append $^@ *.ext
  425. %append $^@ *.i
  426. %append $^@ *.ide
  427. %append $^@ *.lnk
  428. %append $^@ *.log
  429. %append $^@ *.lst
  430. %append $^@ *.mac
  431. %append $^@ *.map
  432. %append $^@ *.mk
  433. %append $^@ *.mk1
  434. %append $^@ *.obj
  435. %append $^@ *.out
  436. %append $^@ *.pch
  437. %append $^@ *.pfs
  438. %append $^@ *.pif
  439. %append $^@ *.pjt
  440. %append $^@ *.prf
  441. %append $^@ *.pro
  442. %append $^@ *.ptg
  443. %append $^@ *.rc
  444. %append $^@ *.rep
  445. %append $^@ *.rpt
  446. %append $^@ *.rst
  447. %append $^@ *.sym
  448. %append $^@ *.tag
  449. %append $^@ *.td
  450. %append $^@ *.td
  451. %append $^@ *.tgt
  452. %append $^@ *.tmp
  453. %append $^@ *.tr
  454. %append $^@ *.tr
  455. %append $^@ *.vec
  456. %append $^@ *.wpj
  457. %append $^@ *.zip
  458. %append $^@ state.rst
  459. #---------------------------------------------------------------------------
  460. # Dependency macros (makes defining dependencies easier)
  461. #---------------------------------------------------------------------------
  462. GENERAL_H = defines.h function.h externs.h conquer.h vector.h heap.h &
  463. debug.h jshell.h compat.h
  464. TECHNO_H = facing.h techno.h mission.h stage.h cargo.h object.h abstract.h
  465. UNIT_H = unit.h tarcom.h turret.h drive.h foot.h radio.h $(TECHNO_H)
  466. INFANTRY_H = infantry.h foot.h radio.h $(TECHNO_H)
  467. AIRCRAFT_H = aircraft.h fly.h radio.h $(TECHNO_H)
  468. BUILDING_H = building.h radio.h $(TECHNO_H)
  469. BULLET_H = bullet.h fly.h fuse.h object.h abstract.h
  470. OBJ_H = $(UNIT_H) $(INFANTRY_H) $(AIRCRAFT_H) $(BUILDING_H) $(BULLET_H)
  471. MAP_H = base.h mapedit.h mouse.h scroll.h help.h tab.h power.h sidebar.h &
  472. radar.h display.h map.h gscreen.h cell.h
  473. GADGET_H = textbtn.h shapebtn.h slider.h gauge.h dial8.h edit.h &
  474. toggle.h list.h cheklist.h control.h gadget.h link.h
  475. FILE_H = ccfile.h cdfile.h mixfile.h rawfile.h wwfile.h link.h
  476. TEAM_H = team.h teamtype.h trigger.h
  477. IPX_H = ipx.h ipxaddr.h
  478. NET_H = combuf.h connect.h connmgr.h ipx.h ipxaddr.h ipxconn.h ipxgconn.h &
  479. ipxmgr.h noseqcon.h nullconn.h nullmgr.h
  480. MISC_H = ftimer.h logic.h score.h theme.h event.h queue.h special.h
  481. #---------------------------------------------------------------------------
  482. # Dependencies (This is not totally accurate; if you're not sure, rebuild
  483. # everything!)
  484. #---------------------------------------------------------------------------
  485. aadata.obj: aadata.cpp $(GENERAL_H) type.h
  486. abstract.obj: abstract.cpp $(GENERAL_H) abstract.h
  487. adata.obj: adata.cpp $(GENERAL_H) type.h
  488. aircraft.obj: aircraft.cpp $(GENERAL_H) $(AIRCRAFT_H)
  489. anim.obj: anim.cpp $(GENERAL_H) anim.h stage.h object.h
  490. audio.obj: audio.cpp $(GENERAL_H) audio.h
  491. base.obj: base.cpp $(GENERAL_H) type.h
  492. bbdata.obj: bbdata.cpp $(GENERAL_H) type.h
  493. bdata.obj: bdata.cpp $(GENERAL_H) type.h
  494. building.obj: building.cpp $(GENERAL_H) $(BUILDING_H)
  495. bullet.obj: bullet.cpp $(GENERAL_H) $(BULLET_H)
  496. cargo.obj: cargo.cpp $(GENERAL_H) $(TECHNO_H) cargo.h
  497. ccfile.obj: ccfile.cpp $(GENERAL_H) $(FILE_H)
  498. cdata.obj: cdata.cpp $(GENERAL_H) type.h
  499. cdfile.obj: cdfile.cpp $(GENERAL_H) $(FILE_H)
  500. cell.obj: cell.cpp $(GENERAL_H) $(MAP_H)
  501. cheklist.obj: cheklist.cpp $(GENERAL_H) $(GADGET_H)
  502. colrlist.obj: colrlist.cpp $(GENERAL_H) $(GADGET_H)
  503. combat.obj: combat.cpp $(GENERAL_H)
  504. combuf.obj: combuf.cpp $(GENERAL_H) combuf.h
  505. confdlg.obj: confdlg.cpp $(GENERAL_H) $(GADGET_H)
  506. connect.obj: connect.cpp $(GENERAL_H) connect.h combuf.h
  507. conquer.obj: conquer.cpp $(GENERAL_H) $(MISC_H) $(OBJ_H)
  508. const.obj: const.cpp $(GENERAL_H)
  509. control.obj: control.cpp $(GENERAL_H) $(GADGET_H)
  510. coord.obj: coord.cpp $(GENERAL_H)
  511. coorda.obj: coorda.asm
  512. credits.obj: credits.cpp $(GENERAL_H) credits.h
  513. crew.obj: crew.cpp $(GENERAL_H) crew.h
  514. debug.obj: debug.cpp $(GENERAL_H) debug.h
  515. deldlg.obj: deldlg.cpp $(GENERAL_H) $(GADGET_H)
  516. descdlg.obj: descdlg.cpp $(GENERAL_H) $(GADGET_H)
  517. dial8.obj: dial8.cpp $(GENERAL_H) $(GADGET_H)
  518. dialog.obj: dialog.cpp $(GENERAL_H)
  519. display.obj: display.cpp $(GENERAL_H) $(MAP_H)
  520. dpmi.obj: dpmi.cpp $(GENERAL_H)
  521. drive.obj: drive.cpp $(GENERAL_H) $(TECHNO_H)
  522. edit.obj: edit.cpp $(GENERAL_H) $(GADGET_H)
  523. event.obj: event.cpp $(GENERAL_H) $(MISC_H)
  524. facing.obj: facing.cpp $(GENERAL_H) facing.h
  525. factory.obj: factory.cpp $(GENERAL_H) factory.h
  526. findpath.obj: findpath.cpp $(GENERAL_H)
  527. flasher.obj: flasher.cpp $(GENERAL_H) flasher.h
  528. fly.obj: fly.cpp $(GENERAL_H) fly.h
  529. foot.obj: foot.cpp $(GENERAL_H) $(INFANTRY_H)
  530. fuse.obj: fuse.cpp $(GENERAL_H) fuse.h
  531. gadget.obj: gadget.cpp $(GENERAL_H) $(GADGET_H)
  532. gamedlg.obj: gamedlg.cpp $(GENERAL_H) $(GADGET_H)
  533. gauge.obj: gauge.cpp $(GENERAL_H) $(GADGET_H)
  534. globals.obj: globals.cpp $(GENERAL_H)
  535. goptions.obj: goptions.cpp $(GENERAL_H) $(GADGET_H)
  536. gscreen.obj: gscreen.cpp $(GENERAL_H) $(MAP_H)
  537. hdata.obj: hdata.cpp $(GENERAL_H) type.h
  538. heap.obj: heap.cpp $(GENERAL_H) $(MISC_H)
  539. help.obj: help.cpp $(GENERAL_H) $(MAP_H)
  540. house.obj: house.cpp $(GENERAL_H) house.h
  541. idata.obj: idata.cpp $(GENERAL_H) type.h
  542. infantry.obj: infantry.cpp $(GENERAL_H) $(INFANTRY_H)
  543. ini.obj: ini.cpp $(GENERAL_H) $(MISC_H)
  544. init.obj: init.cpp $(GENERAL_H) $(MISC_H) $(OBJ_H)
  545. iomap.obj: iomap.cpp $(GENERAL_H) $(MAP_H) $(FILE_H)
  546. ioobj.obj: ioobj.cpp $(GENERAL_H) $(FILE_H) $(OBJ_H)
  547. ipx.obj: ipx.cpp $(GENERAL_H) $(IPX_H)
  548. ipxaddr.obj: ipxaddr.cpp $(GENERAL_H) $(IPX_H)
  549. ipxconn.obj: ipxconn.cpp $(GENERAL_H) $(NET_H)
  550. ipxgconn.obj: ipxgconn.cpp $(GENERAL_H) $(NET_H)
  551. ipxmgr.obj: ipxmgr.cpp $(GENERAL_H) $(NET_H)
  552. ipxreal.ibn:
  553. jshell.obj: jshell.cpp $(GENERAL_H) $(MISC_H)
  554. keyfbuff.obj: keyfbuff.asm
  555. keyframe.obj: keyframe.cpp $(GENERAL_H)
  556. layer.obj: layer.cpp $(GENERAL_H) $(MISC_H)
  557. link.obj: link.cpp $(GENERAL_H) link.h
  558. list.obj: list.cpp $(GENERAL_H) $(GADGET_H)
  559. loaddlg.obj: loaddlg.cpp $(GENERAL_H) $(GADGET_H)
  560. logic.obj: logic.cpp $(GENERAL_H) $(MISC_H)
  561. map.obj: map.cpp $(GENERAL_H) $(MAP_H)
  562. mapsel.obj: mapsel.cpp $(GENERAL_H)
  563. mapeddlg.obj: mapeddlg.cpp $(GENERAL_H) $(MAP_H) $(OBJ_H)
  564. mapedit.obj: mapedit.cpp $(GENERAL_H) $(MAP_H) $(OBJ_H)
  565. mapedplc.obj: mapedplc.cpp $(GENERAL_H) $(MAP_H) $(OBJ_H)
  566. mapedsel.obj: mapedsel.cpp $(GENERAL_H) $(MAP_H) $(OBJ_H)
  567. mapedtm.obj: mapedtm.cpp $(GENERAL_H) $(MAP_H) $(OBJ_H)
  568. menus.obj: menus.cpp $(GENERAL_H)
  569. mission.obj: mission.cpp $(GENERAL_H) mission.h stage.h cargo.h object.h abstract.h
  570. mixfile.obj: mixfile.cpp $(GENERAL_H) $(FILE_H)
  571. monoc.obj: monoc.cpp $(GENERAL_H)
  572. mouse.obj: mouse.cpp $(GENERAL_H) $(MAP_H)
  573. mplayer.obj: mplayer.cpp $(GENERAL_H)
  574. msgbox.obj: msgbox.cpp $(GENERAL_H) $(GADGET_H)
  575. msglist.obj: msglist.cpp $(GENERAL_H) $(GADGET_H)
  576. netdlg.obj: netdlg.cpp $(GENERAL_H) $(GADGET_H) $(NET_H)
  577. noseqcon.obj: noseqcon.cpp $(GENERAL_H) noseqcon.h connect.h combuf.h
  578. nullconn.obj: nullconn.cpp $(GENERAL_H) nullconn.h noseqcon.h connect.h combuf.h
  579. nulldlg.obj: nulldlg.cpp $(GENERAL_H) nullmgr.h nullconn.h connmgr.h noseqcon.h connect.h combuf.h
  580. nullmgr.obj: nullmgr.cpp $(GENERAL_H) nullmgr.h nullconn.h connmgr.h noseqcon.h connect.h combuf.h
  581. object.obj: object.cpp $(GENERAL_H) object.h abstract.h
  582. odata.obj: odata.cpp $(GENERAL_H) type.h
  583. options.obj: options.cpp $(GENERAL_H) $(GADGET_H)
  584. overlay.obj: overlay.cpp $(GENERAL_H) overlay.h object.h
  585. power.obj: power.cpp $(GENERAL_H) $(MAP_H)
  586. profile.obj: profile.cpp $(GENERAL_H)
  587. queue.obj: queue.cpp $(GENERAL_H) $(MISC_H)
  588. rand.obj: rand.cpp $(GENERAL_H)
  589. radar.obj: radar.cpp $(GENERAL_H) $(MAP_H)
  590. radio.obj: radio.cpp $(GENERAL_H) $(TECHNO_H)
  591. rawfile.obj: rawfile.cpp $(GENERAL_H) $(FILE_H)
  592. reinf.obj: reinf.cpp $(GENERAL_H) $(MISC_H)
  593. savedlg.obj: savedlg.cpp $(GENERAL_H) $(GADGET_H)
  594. saveload.obj: saveload.cpp $(GENERAL_H) $(MISC_H)
  595. scenario.obj: scenario.cpp $(GENERAL_H) $(MISC_H)
  596. score.obj: score.cpp $(GENERAL_H)
  597. scroll.obj: scroll.cpp $(GENERAL_H) $(MAP_H)
  598. sdata.obj: sdata.cpp $(GENERAL_H) type.h
  599. shapebtn.obj: shapebtn.cpp $(GENERAL_H) $(GADGET_H)
  600. sidebar.obj: sidebar.cpp $(GENERAL_H) $(MAP_H)
  601. slider.obj: slider.cpp $(GENERAL_H) $(GADGET_H)
  602. smudge.obj: smudge.cpp $(GENERAL_H) smudge.h object.h
  603. sounddlg.obj: sounddlg.cpp $(GENERAL_H) $(GADGET_H) sounddlg.h
  604. startup.obj: startup.cpp $(GENERAL_H)
  605. stuff.obj: stuff.cpp $(GENERAL_H) $(MISC_H)
  606. support.obj: support.asm
  607. tab.obj: tab.cpp $(GENERAL_H) $(MAP_H)
  608. tarcom.obj: tarcom.cpp $(GENERAL_H) $(UNIT_H)
  609. target.obj: target.cpp $(GENERAL_H) target.h
  610. tdata.obj: tdata.cpp $(GENERAL_H) type.h
  611. team.obj: team.cpp $(GENERAL_H) $(TEAM_H)
  612. teamtype.obj: teamtype.cpp $(GENERAL_H) $(TEAM_H)
  613. techno.obj: techno.cpp $(GENERAL_H) $(TECHNO_H)
  614. template.obj: template.cpp $(GENERAL_H) template.h object.h
  615. terrain.obj: terrain.cpp $(GENERAL_H) terrain.h stage.h object.h
  616. textbtn.obj: textbtn.cpp $(GENERAL_H) $(GADGET_H)
  617. theme.obj: theme.cpp $(GENERAL_H) theme.h
  618. toggle.obj: toggle.cpp $(GENERAL_H) $(GADGET_H)
  619. trigger.obj: trigger.cpp $(GENERAL_H) $(TEAM_H)
  620. turret.obj: turret.cpp $(GENERAL_H) $(UNIT_H)
  621. txtlabel.obj: txtlabel.cpp $(GENERAL_H) $(GADGET_H)
  622. txtprnt.obj: txtprnt.asm
  623. udata.obj: udata.cpp $(GENERAL_H) type.h
  624. unit.obj: unit.cpp $(GENERAL_H) $(UNIT_H)
  625. vector.obj: vector.cpp $(GENERAL_H) $(MISC_H)
  626. visudlg.obj: visudlg.cpp $(GENERAL_H) $(GADGET_H)
  627. #--------------------------------------------------------------------------
  628. # The IPX assembly object files are created in a special way:
  629. # IPXREAL is the real-mode code that gets stuffed into memory by protected-
  630. # mode code. It's assembled, then converted into a big header file by
  631. # the 'EBN' utility.
  632. # IPXPROT is the protected-mode code that includes IPXREAL.IBN, and
  633. # provides routines to let C++ read the code's address & size.
  634. #--------------------------------------------------------------------------
  635. #obj\ipxreal.ibn: obj\ipxreal.obj
  636. # %create $^*.rsp
  637. # %append $^*.rsp obj\$^&.obj
  638. # %append $^*.rsp obj\$^&.exe
  639. # %append $^*.rsp obj\$^&.map
  640. # tlink @$^*.rsp
  641. # tdstrip obj\ipxreal.exe
  642. # utils\ebn obj\ipxreal.exe
  643. r:\ipxreal.ibn: r:\ipxreal.obj
  644. %create $^*.rsp
  645. %append $^*.rsp r:\$^&.obj
  646. %append $^*.rsp r:\$^&.exe
  647. %append $^*.rsp r:\$^&.map
  648. tlink @$^*.rsp
  649. tdstrip r:\ipxreal.exe
  650. utils\ebn r:\ipxreal.exe
  651. ipxreal.obj: ipxreal.asm
  652. tasm /zn /la /ml /m2 ipxreal.asm, r:\ipxreal.obj
  653. # tasm /zn /la /ml /m2 ipxreal.asm, obj\ipxreal.obj
  654. #ipxprot.obj: obj\ipxreal.ibn ipxprot.asm
  655. ipxprot.obj: r:\ipxreal.ibn ipxprot.asm
  656. #**************************** End of makefile ******************************