Makefile.Game 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. #
  2. # Quake3 Unix Game Makefile
  3. #
  4. # GNU Make required
  5. #
  6. ###
  7. ### These paths are where you probably want to change things
  8. ###
  9. #The main Quake3 directory
  10. BDIR=..
  11. #This is the game dir
  12. GAMEDIR=baseq3
  13. #Where the source is, assumed to be same directory as this Makefile
  14. SRCDIR=.
  15. #Location of binaries
  16. BINDIR=../bin
  17. LCC=$(BINDIR)/lcc # -lccdir=$(BINDIR)/
  18. Q3ASM=$(BINDIR)/q3asm
  19. #############################################################################
  20. ##
  21. ## You shouldn't have to touch anything below here
  22. ##
  23. #############################################################################
  24. GDIR=$(SRCDIR)/game
  25. CGDIR=$(SRCDIR)/cgame
  26. UIDIR=$(SRCDIR)/ui
  27. LCCFLAGS=-DQ3_VM -S -Wf-target=bytecode -Wf-g -I..\cgame -I..\game -I..\ui
  28. DO_LCC=$(LCC) $(LCCFLAGS) -o $@ -c $<
  29. TARGETS=\
  30. $(BDIR)/$(GAMEDIR)/vm/cgame.qvm \
  31. $(BDIR)/$(GAMEDIR)/vm/qagame.qvm \
  32. $(BDIR)/$(GAMEDIR)/vm/ui.qvm
  33. default: makedir $(TARGETS)
  34. makedir:
  35. @-mkdir $(GDIR)/vm
  36. @-mkdir $(CGDIR)/vm
  37. @-mkdir $(UIDIR)/vm
  38. #############################################################################
  39. # GAME VM
  40. #############################################################################
  41. ##NOTE: g_main must be first. Control passes to first function in the vm
  42. GVMASM = \
  43. $(GDIR)/vm/g_main.asm \
  44. $(GDIR)/vm/bg_misc.asm \
  45. $(GDIR)/vm/bg_lib.asm \
  46. $(GDIR)/vm/bg_pmove.asm \
  47. $(GDIR)/vm/bg_slidemove.asm \
  48. $(GDIR)/vm/q_math.asm \
  49. $(GDIR)/vm/q_shared.asm \
  50. $(GDIR)/vm/ai_dmnet.asm \
  51. $(GDIR)/vm/ai_dmq3.asm \
  52. $(GDIR)/vm/ai_team.asm \
  53. $(GDIR)/vm/ai_main.asm \
  54. $(GDIR)/vm/ai_chat.asm \
  55. $(GDIR)/vm/ai_cmd.asm \
  56. $(GDIR)/vm/g_active.asm \
  57. $(GDIR)/vm/g_arenas.asm \
  58. $(GDIR)/vm/g_bot.asm \
  59. $(GDIR)/vm/g_client.asm \
  60. $(GDIR)/vm/g_cmds.asm \
  61. $(GDIR)/vm/g_combat.asm \
  62. $(GDIR)/vm/g_items.asm \
  63. $(GDIR)/vm/g_mem.asm \
  64. $(GDIR)/vm/g_misc.asm \
  65. $(GDIR)/vm/g_missile.asm \
  66. $(GDIR)/vm/g_mover.asm \
  67. $(GDIR)/vm/g_session.asm \
  68. $(GDIR)/vm/g_spawn.asm \
  69. $(GDIR)/vm/g_svcmds.asm \
  70. $(GDIR)/vm/g_target.asm \
  71. $(GDIR)/vm/g_team.asm \
  72. $(GDIR)/vm/g_trigger.asm \
  73. $(GDIR)/vm/g_utils.asm \
  74. $(GDIR)/vm/g_weapon.asm
  75. $(BDIR)/$(GAMEDIR)/vm/qagame.qvm : $(GVMASM)
  76. $(Q3ASM) -o $@ $(GVMASM) $(SRCDIR)/game/g_syscalls.asm
  77. $(GDIR)/vm/ai_chat.asm : $(GDIR)/ai_chat.c; $(DO_LCC)
  78. $(GDIR)/vm/ai_cmd.asm : $(GDIR)/ai_cmd.c; $(DO_LCC)
  79. $(GDIR)/vm/ai_dmnet.asm : $(GDIR)/ai_dmnet.c; $(DO_LCC)
  80. $(GDIR)/vm/ai_dmq3.asm : $(GDIR)/ai_dmq3.c; $(DO_LCC)
  81. $(GDIR)/vm/ai_main.asm : $(GDIR)/ai_main.c; $(DO_LCC)
  82. $(GDIR)/vm/ai_team.asm : $(GDIR)/ai_team.c; $(DO_LCC)
  83. $(GDIR)/vm/bg_lib.asm : $(GDIR)/bg_lib.c; $(DO_LCC)
  84. $(GDIR)/vm/bg_misc.asm : $(GDIR)/bg_misc.c; $(DO_LCC)
  85. $(GDIR)/vm/bg_pmove.asm : $(GDIR)/bg_pmove.c; $(DO_LCC)
  86. $(GDIR)/vm/bg_slidemove.asm : $(GDIR)/bg_slidemove.c; $(DO_LCC)
  87. $(GDIR)/vm/g_active.asm : $(GDIR)/g_active.c; $(DO_LCC)
  88. $(GDIR)/vm/g_arenas.asm : $(GDIR)/g_arenas.c; $(DO_LCC)
  89. $(GDIR)/vm/g_bot.asm : $(GDIR)/g_bot.c; $(DO_LCC)
  90. $(GDIR)/vm/g_client.asm : $(GDIR)/g_client.c; $(DO_LCC)
  91. $(GDIR)/vm/g_cmds.asm : $(GDIR)/g_cmds.c; $(DO_LCC)
  92. $(GDIR)/vm/g_combat.asm : $(GDIR)/g_combat.c; $(DO_LCC)
  93. $(GDIR)/vm/g_items.asm : $(GDIR)/g_items.c; $(DO_LCC)
  94. $(GDIR)/vm/g_main.asm : $(GDIR)/g_main.c; $(DO_LCC)
  95. $(GDIR)/vm/g_mem.asm : $(GDIR)/g_mem.c; $(DO_LCC)
  96. $(GDIR)/vm/g_misc.asm : $(GDIR)/g_misc.c; $(DO_LCC)
  97. $(GDIR)/vm/g_missile.asm : $(GDIR)/g_missile.c; $(DO_LCC)
  98. $(GDIR)/vm/g_mover.asm : $(GDIR)/g_mover.c; $(DO_LCC)
  99. $(GDIR)/vm/g_session.asm : $(GDIR)/g_session.c; $(DO_LCC)
  100. $(GDIR)/vm/g_spawn.asm : $(GDIR)/g_spawn.c; $(DO_LCC)
  101. $(GDIR)/vm/g_svcmds.asm : $(GDIR)/g_svcmds.c; $(DO_LCC)
  102. $(GDIR)/vm/g_target.asm : $(GDIR)/g_target.c; $(DO_LCC)
  103. $(GDIR)/vm/g_team.asm : $(GDIR)/g_team.c; $(DO_LCC)
  104. $(GDIR)/vm/g_trigger.asm : $(GDIR)/g_trigger.c; $(DO_LCC)
  105. $(GDIR)/vm/g_utils.asm : $(GDIR)/g_utils.c; $(DO_LCC)
  106. $(GDIR)/vm/g_weapon.asm : $(GDIR)/g_weapon.c; $(DO_LCC)
  107. $(GDIR)/vm/q_math.asm : $(GDIR)/q_math.c; $(DO_LCC)
  108. $(GDIR)/vm/q_shared.asm : $(GDIR)/q_shared.c; $(DO_LCC)
  109. $(BDIR)/$(GAMEDIR)/vm/cgame.qvm :
  110. echo cgame.qvm disabled
  111. $(BDIR)/$(GAMEDIR)/vm/ui.qvm :
  112. echo ui.qvm disabled
  113. #############################################################################
  114. # CGAME
  115. #############################################################################
  116. CGOBJ = \
  117. $(SRCDIR)/cgame/bg_lib.o \
  118. $(SRCDIR)/cgame/bg_misc.o \
  119. $(SRCDIR)/cgame/bg_pmove.o \
  120. $(SRCDIR)/cgame/bg_slidemove.o \
  121. $(SRCDIR)/cgame/cg_consolecmds.o \
  122. $(SRCDIR)/cgame/cg_draw.o \
  123. $(SRCDIR)/cgame/cg_drawtools.o \
  124. $(SRCDIR)/cgame/cg_effects.o \
  125. $(SRCDIR)/cgame/cg_ents.o \
  126. $(SRCDIR)/cgame/cg_event.o \
  127. $(SRCDIR)/cgame/cg_info.o \
  128. $(SRCDIR)/cgame/cg_localents.o \
  129. $(SRCDIR)/cgame/cg_main.o \
  130. $(SRCDIR)/cgame/cg_marks.o \
  131. $(SRCDIR)/cgame/cg_players.o \
  132. $(SRCDIR)/cgame/cg_playerstate.o \
  133. $(SRCDIR)/cgame/cg_predict.o \
  134. $(SRCDIR)/cgame/cg_scoreboard.o \
  135. $(SRCDIR)/cgame/cg_servercmds.o \
  136. $(SRCDIR)/cgame/cg_snapshot.o \
  137. $(SRCDIR)/cgame/cg_view.o \
  138. $(SRCDIR)/cgame/cg_weapons.o \
  139. $(SRCDIR)/cgame/q_math.o \
  140. $(SRCDIR)/cgame/q_shared.o
  141. $(SRCDIR)/cgame$(ARCH).$(SHLIBEXT) : $(CGOBJ)
  142. $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(CGOBJ)
  143. $(SRCDIR)/cgame/bg_lib.o : $(GDIR)/bg_lib.c; $(DO_SHLIB_CC)
  144. $(SRCDIR)/cgame/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_SHLIB_CC)
  145. $(SRCDIR)/cgame/bg_pmove.o : $(GDIR)/bg_pmove.c; $(DO_SHLIB_CC)
  146. $(SRCDIR)/cgame/bg_slidemove.o : $(GDIR)/bg_slidemove.c; $(DO_SHLIB_CC)
  147. $(SRCDIR)/cgame/cg_consolecmds.o : $(CGDIR)/cg_consolecmds.c; $(DO_SHLIB_CC)
  148. $(SRCDIR)/cgame/cg_draw.o : $(CGDIR)/cg_draw.c; $(DO_SHLIB_CC)
  149. $(SRCDIR)/cgame/cg_drawtools.o : $(CGDIR)/cg_drawtools.c; $(DO_SHLIB_CC)
  150. $(SRCDIR)/cgame/cg_effects.o : $(CGDIR)/cg_effects.c; $(DO_SHLIB_CC)
  151. $(SRCDIR)/cgame/cg_ents.o : $(CGDIR)/cg_ents.c; $(DO_SHLIB_CC)
  152. $(SRCDIR)/cgame/cg_event.o : $(CGDIR)/cg_event.c; $(DO_SHLIB_CC)
  153. $(SRCDIR)/cgame/cg_info.o : $(CGDIR)/cg_info.c; $(DO_SHLIB_CC)
  154. $(SRCDIR)/cgame/cg_localents.o : $(CGDIR)/cg_localents.c; $(DO_SHLIB_CC)
  155. $(SRCDIR)/cgame/cg_main.o : $(CGDIR)/cg_main.c; $(DO_SHLIB_CC)
  156. $(SRCDIR)/cgame/cg_marks.o : $(CGDIR)/cg_marks.c; $(DO_SHLIB_CC)
  157. $(SRCDIR)/cgame/cg_players.o : $(CGDIR)/cg_players.c; $(DO_SHLIB_CC)
  158. $(SRCDIR)/cgame/cg_playerstate.o : $(CGDIR)/cg_playerstate.c; $(DO_SHLIB_CC)
  159. $(SRCDIR)/cgame/cg_predict.o : $(CGDIR)/cg_predict.c; $(DO_SHLIB_CC)
  160. $(SRCDIR)/cgame/cg_scoreboard.o : $(CGDIR)/cg_scoreboard.c; $(DO_SHLIB_CC)
  161. $(SRCDIR)/cgame/cg_servercmds.o : $(CGDIR)/cg_servercmds.c; $(DO_SHLIB_CC)
  162. $(SRCDIR)/cgame/cg_snapshot.o : $(CGDIR)/cg_snapshot.c; $(DO_SHLIB_CC)
  163. $(SRCDIR)/cgame/cg_view.o : $(CGDIR)/cg_view.c; $(DO_SHLIB_CC)
  164. $(SRCDIR)/cgame/cg_weapons.o : $(CGDIR)/cg_weapons.c; $(DO_SHLIB_CC)
  165. $(SRCDIR)/cgame/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC)
  166. $(SRCDIR)/cgame/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC)
  167. #############################################################################
  168. # UI
  169. #############################################################################
  170. UIOBJ = \
  171. $(SRCDIR)/ui/bg_lib.o \
  172. $(SRCDIR)/ui/bg_misc.o \
  173. $(SRCDIR)/ui/ui_addbots.o \
  174. $(SRCDIR)/ui/ui_atoms.o \
  175. $(SRCDIR)/ui/ui_cinematics.o \
  176. $(SRCDIR)/ui/ui_confirm.o \
  177. $(SRCDIR)/ui/ui_connect.o \
  178. $(SRCDIR)/ui/ui_controls2.o \
  179. $(SRCDIR)/ui/ui_credits.o \
  180. $(SRCDIR)/ui/ui_demo2.o \
  181. $(SRCDIR)/ui/ui_display.o \
  182. $(SRCDIR)/ui/ui_gameinfo.o \
  183. $(SRCDIR)/ui/ui_ingame.o \
  184. $(SRCDIR)/ui/ui_loadconfig.o \
  185. $(SRCDIR)/ui/ui_main.o \
  186. $(SRCDIR)/ui/ui_menu.o \
  187. $(SRCDIR)/ui/ui_mfield.o \
  188. $(SRCDIR)/ui/ui_network.o \
  189. $(SRCDIR)/ui/ui_playermodel.o \
  190. $(SRCDIR)/ui/ui_players.o \
  191. $(SRCDIR)/ui/ui_playersettings.o \
  192. $(SRCDIR)/ui/ui_preferences.o \
  193. $(SRCDIR)/ui/ui_qmenu.o \
  194. $(SRCDIR)/ui/ui_saveconfig.o \
  195. $(SRCDIR)/ui/ui_serverinfo.o \
  196. $(SRCDIR)/ui/ui_servers2.o \
  197. $(SRCDIR)/ui/ui_setup.o \
  198. $(SRCDIR)/ui/ui_sound.o \
  199. $(SRCDIR)/ui/ui_sparena.o \
  200. $(SRCDIR)/ui/ui_specifyserver.o \
  201. $(SRCDIR)/ui/ui_splevel.o \
  202. $(SRCDIR)/ui/ui_sppostgame.o \
  203. $(SRCDIR)/ui/ui_spskill.o \
  204. $(SRCDIR)/ui/ui_startserver.o \
  205. $(SRCDIR)/ui/ui_team.o \
  206. $(SRCDIR)/ui/ui_video.o \
  207. \
  208. $(SRCDIR)/ui/q_math.o \
  209. $(SRCDIR)/ui/q_shared.o
  210. $(SRCDIR)/ui$(ARCH).$(SHLIBEXT) : $(UIOBJ)
  211. $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(UIOBJ)
  212. $(SRCDIR)/ui/bg_lib.o : $(GDIR)/bg_lib.c; $(DO_CC)
  213. $(SRCDIR)/ui/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_CC)
  214. $(SRCDIR)/ui/ui_addbots.o : $(UIDIR)/ui_addbots.c; $(DO_CC)
  215. $(SRCDIR)/ui/ui_atoms.o : $(UIDIR)/ui_atoms.c; $(DO_CC)
  216. $(SRCDIR)/ui/ui_cinematics.o : $(UIDIR)/ui_cinematics.c; $(DO_CC)
  217. $(SRCDIR)/ui/ui_confirm.o : $(UIDIR)/ui_confirm.c; $(DO_CC)
  218. $(SRCDIR)/ui/ui_connect.o : $(UIDIR)/ui_connect.c; $(DO_CC)
  219. $(SRCDIR)/ui/ui_controls2.o : $(UIDIR)/ui_controls2.c; $(DO_CC)
  220. $(SRCDIR)/ui/ui_credits.o : $(UIDIR)/ui_credits.c; $(DO_CC)
  221. $(SRCDIR)/ui/ui_demo2.o : $(UIDIR)/ui_demo2.c; $(DO_CC)
  222. $(SRCDIR)/ui/ui_display.o : $(UIDIR)/ui_display.c; $(DO_CC)
  223. $(SRCDIR)/ui/ui_gameinfo.o : $(UIDIR)/ui_gameinfo.c; $(DO_CC)
  224. $(SRCDIR)/ui/ui_ingame.o : $(UIDIR)/ui_ingame.c; $(DO_CC)
  225. $(SRCDIR)/ui/ui_loadconfig.o : $(UIDIR)/ui_loadconfig.c; $(DO_CC)
  226. $(SRCDIR)/ui/ui_main.o : $(UIDIR)/ui_main.c; $(DO_CC)
  227. $(SRCDIR)/ui/ui_menu.o : $(UIDIR)/ui_menu.c; $(DO_CC)
  228. $(SRCDIR)/ui/ui_mfield.o : $(UIDIR)/ui_mfield.c; $(DO_CC)
  229. $(SRCDIR)/ui/ui_network.o : $(UIDIR)/ui_network.c; $(DO_CC)
  230. $(SRCDIR)/ui/ui_playermodel.o : $(UIDIR)/ui_playermodel.c; $(DO_CC)
  231. $(SRCDIR)/ui/ui_players.o : $(UIDIR)/ui_players.c; $(DO_CC)
  232. $(SRCDIR)/ui/ui_playersettings.o : $(UIDIR)/ui_playersettings.c; $(DO_CC)
  233. $(SRCDIR)/ui/ui_preferences.o : $(UIDIR)/ui_preferences.c; $(DO_CC)
  234. $(SRCDIR)/ui/ui_qmenu.o : $(UIDIR)/ui_qmenu.c; $(DO_CC)
  235. $(SRCDIR)/ui/ui_quit.o : $(UIDIR)/ui_quit.c; $(DO_CC)
  236. $(SRCDIR)/ui/ui_saveconfig.o : $(UIDIR)/ui_saveconfig.c; $(DO_CC)
  237. $(SRCDIR)/ui/ui_serverinfo.o : $(UIDIR)/ui_serverinfo.c; $(DO_CC)
  238. $(SRCDIR)/ui/ui_servers2.o : $(UIDIR)/ui_servers2.c; $(DO_CC)
  239. $(SRCDIR)/ui/ui_setup.o : $(UIDIR)/ui_setup.c; $(DO_CC)
  240. $(SRCDIR)/ui/ui_sound.o : $(UIDIR)/ui_sound.c; $(DO_CC)
  241. $(SRCDIR)/ui/ui_sparena.o : $(UIDIR)/ui_sparena.c; $(DO_CC)
  242. $(SRCDIR)/ui/ui_specifyserver.o : $(UIDIR)/ui_specifyserver.c; $(DO_CC)
  243. $(SRCDIR)/ui/ui_splevel.o : $(UIDIR)/ui_splevel.c; $(DO_CC)
  244. $(SRCDIR)/ui/ui_sppostgame.o : $(UIDIR)/ui_sppostgame.c; $(DO_CC)
  245. $(SRCDIR)/ui/ui_spskill.o : $(UIDIR)/ui_spskill.c; $(DO_CC)
  246. $(SRCDIR)/ui/ui_startserver.o : $(UIDIR)/ui_startserver.c; $(DO_CC)
  247. $(SRCDIR)/ui/ui_team.o : $(UIDIR)/ui_team.c; $(DO_CC)
  248. $(SRCDIR)/ui/ui_video.o : $(UIDIR)/ui_video.c; $(DO_CC)
  249. $(SRCDIR)/ui/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC)
  250. $(SRCDIR)/ui/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC)
  251. #############################################################################
  252. # MISC
  253. #############################################################################
  254. clean:
  255. rm -f $(GVMASM)