Quake-2

Quake 2 GPL Source Release
Log | Files | Refs

Makefile.Solaris (18665B)


      1 #
      2 # Quake2 Makefile for Solaris
      3 #
      4 # Nov '97 by Zoid <zoid@idsoftware.com>
      5 #
      6 # ELF only
      7 #
      8 
      9 ifneq (,$(findstring i86pc,$(shell uname -m)))
     10 ARCH=i386
     11 else
     12 ARCH=sparc
     13 endif
     14 
     15 MOUNT_DIR=/chest/Quake2/code
     16 
     17 BUILD_DEBUG_DIR=debug$(ARCH)
     18 BUILD_RELEASE_DIR=release$(ARCH)
     19 CLIENT_DIR=$(MOUNT_DIR)/client
     20 SERVER_DIR=$(MOUNT_DIR)/server
     21 COMMON_DIR=$(MOUNT_DIR)/qcommon
     22 SOLARIS_DIR=$(MOUNT_DIR)/solaris
     23 GAME_DIR=$(MOUNT_DIR)/game
     24 CTF_DIR=$(MOUNT_DIR)/ctf
     25 XATRIX_DIR=$(MOUNT_DIR)/xatrix
     26 NULL_DIR=$(MOUNT_DIR)/null
     27 
     28 CC=gcc
     29 BASE_CFLAGS=-Dstricmp=strcasecmp -DC_ONLY -DDEDICATED_ONLY
     30 RELEASE_CFLAGS=$(BASE_CFLAGS) -ffast-math -funroll-loops \
     31 	-fomit-frame-pointer -fexpensive-optimizations
     32 
     33 DEBUG_CFLAGS=$(BASE_CFLAGS) -g
     34 LDFLAGS=-ldl -lm -lsocket -lnsl
     35 
     36 SHLIBEXT=so
     37 
     38 SHLIBCFLAGS=-fPIC
     39 SHLIBLDFLAGS=-shared
     40 
     41 DO_CC=$(CC) $(CFLAGS) -o $@ -c $<
     42 DO_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
     43 
     44 #############################################################################
     45 # SETUP AND BUILD
     46 #############################################################################
     47 
     48 TARGETS=$(BUILDDIR)/q2ded \
     49 	$(BUILDDIR)/game$(ARCH).$(SHLIBEXT) \
     50 	$(BUILDDIR)/ctf/game$(ARCH).$(SHLIBEXT) \
     51 	$(BUILDDIR)/xatrix/game$(ARCH).$(SHLIBEXT)
     52 
     53 build_debug:
     54 	@-mkdir $(BUILD_DEBUG_DIR) \
     55 		$(BUILD_DEBUG_DIR)/client \
     56 		$(BUILD_DEBUG_DIR)/game \
     57 		$(BUILD_DEBUG_DIR)/ctf \
     58 		$(BUILD_DEBUG_DIR)/xatrix
     59 	$(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)"
     60 
     61 build_release:
     62 	@-mkdir $(BUILD_RELEASE_DIR) \
     63 		$(BUILD_RELEASE_DIR)/client \
     64 		$(BUILD_RELEASE_DIR)/game \
     65 		$(BUILD_RELEASE_DIR)/ctf \
     66 		$(BUILD_RELEASE_DIR)/xatrix
     67 	$(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)"
     68 
     69 all: build_debug build_release
     70 
     71 targets: $(TARGETS)
     72 
     73 #############################################################################
     74 # CLIENT/SERVER
     75 #############################################################################
     76 
     77 QUAKE2_OBJS = \
     78 	\
     79 	$(BUILDDIR)/client/cmd.o \
     80 	$(BUILDDIR)/client/cmodel.o \
     81 	$(BUILDDIR)/client/common.o \
     82 	$(BUILDDIR)/client/crc.o \
     83 	$(BUILDDIR)/client/cvar.o \
     84 	$(BUILDDIR)/client/files.o \
     85 	$(BUILDDIR)/client/md4.o \
     86 	$(BUILDDIR)/client/net_chan.o \
     87 	\
     88 	$(BUILDDIR)/client/sv_ccmds.o \
     89 	$(BUILDDIR)/client/sv_ents.o \
     90 	$(BUILDDIR)/client/sv_game.o \
     91 	$(BUILDDIR)/client/sv_init.o \
     92 	$(BUILDDIR)/client/sv_main.o \
     93 	$(BUILDDIR)/client/sv_send.o \
     94 	$(BUILDDIR)/client/sv_user.o \
     95 	$(BUILDDIR)/client/sv_world.o \
     96 	\
     97 	$(BUILDDIR)/client/q_shsolaris.o \
     98 	$(BUILDDIR)/client/sys_solaris.o \
     99 	$(BUILDDIR)/client/glob.o \
    100 	$(BUILDDIR)/client/net_udp.o \
    101 	\
    102 	$(BUILDDIR)/client/q_shared.o \
    103 	$(BUILDDIR)/client/pmove.o \
    104 	\
    105 	$(BUILDDIR)/client/cl_null.o \
    106 	$(BUILDDIR)/client/cd_null.o
    107 
    108 $(BUILDDIR)/q2ded : $(QUAKE2_OBJS)
    109 	$(CC) $(CFLAGS) -o $@ $(QUAKE2_OBJS) $(LDFLAGS)
    110 
    111 $(BUILDDIR)/client/cmd.o :        $(COMMON_DIR)/cmd.c
    112 	$(DO_CC)
    113 
    114 $(BUILDDIR)/client/cmodel.o :     $(COMMON_DIR)/cmodel.c
    115 	$(DO_CC)
    116 
    117 $(BUILDDIR)/client/common.o :     $(COMMON_DIR)/common.c
    118 	$(DO_CC)
    119 
    120 $(BUILDDIR)/client/crc.o :        $(COMMON_DIR)/crc.c
    121 	$(DO_CC)
    122 
    123 $(BUILDDIR)/client/cvar.o :       $(COMMON_DIR)/cvar.c
    124 	$(DO_CC)
    125 
    126 $(BUILDDIR)/client/files.o :      $(COMMON_DIR)/files.c
    127 	$(DO_CC)
    128 
    129 $(BUILDDIR)/client/md4.o :        $(COMMON_DIR)/md4.c
    130 	$(DO_CC)
    131 
    132 $(BUILDDIR)/client/net_chan.o :   $(COMMON_DIR)/net_chan.c
    133 	$(DO_CC)
    134 
    135 $(BUILDDIR)/client/q_shared.o :   $(GAME_DIR)/q_shared.c
    136 	$(DO_CC)
    137 
    138 $(BUILDDIR)/client/pmove.o :      $(COMMON_DIR)/pmove.c
    139 	$(DO_CC)
    140 
    141 $(BUILDDIR)/client/sv_ccmds.o :   $(SERVER_DIR)/sv_ccmds.c
    142 	$(DO_CC)
    143 
    144 $(BUILDDIR)/client/sv_ents.o :    $(SERVER_DIR)/sv_ents.c
    145 	$(DO_CC)
    146 
    147 $(BUILDDIR)/client/sv_game.o :    $(SERVER_DIR)/sv_game.c
    148 	$(DO_CC)
    149 
    150 $(BUILDDIR)/client/sv_init.o :    $(SERVER_DIR)/sv_init.c
    151 	$(DO_CC)
    152 
    153 $(BUILDDIR)/client/sv_main.o :    $(SERVER_DIR)/sv_main.c
    154 	$(DO_CC)
    155 
    156 $(BUILDDIR)/client/sv_send.o :    $(SERVER_DIR)/sv_send.c
    157 	$(DO_CC)
    158 
    159 $(BUILDDIR)/client/sv_user.o :    $(SERVER_DIR)/sv_user.c
    160 	$(DO_CC)
    161 
    162 $(BUILDDIR)/client/sv_world.o :   $(SERVER_DIR)/sv_world.c
    163 	$(DO_CC)
    164 
    165 $(BUILDDIR)/client/q_shsolaris.o :  $(SOLARIS_DIR)/q_shsolaris.c
    166 	$(DO_CC)
    167 
    168 $(BUILDDIR)/client/sys_solaris.o :  $(SOLARIS_DIR)/sys_solaris.c
    169 	$(DO_CC)
    170 
    171 $(BUILDDIR)/client/glob.o :       $(SOLARIS_DIR)/glob.c
    172 	$(DO_CC)
    173 
    174 $(BUILDDIR)/client/net_udp.o :    $(SOLARIS_DIR)/net_udp.c
    175 	$(DO_CC)
    176 
    177 $(BUILDDIR)/client/cd_null.o     : $(NULL_DIR)/cd_null.c    
    178 	$(DO_CC)
    179 
    180 $(BUILDDIR)/client/cl_null.o     : $(NULL_DIR)/cl_null.c    
    181 	$(DO_CC)
    182 
    183 #############################################################################
    184 # GAME
    185 #############################################################################
    186 
    187 GAME_OBJS = \
    188 	$(BUILDDIR)/game/g_ai.o \
    189 	$(BUILDDIR)/game/p_client.o \
    190 	$(BUILDDIR)/game/g_cmds.o \
    191 	$(BUILDDIR)/game/g_svcmds.o \
    192 	$(BUILDDIR)/game/g_combat.o \
    193 	$(BUILDDIR)/game/g_func.o \
    194 	$(BUILDDIR)/game/g_items.o \
    195 	$(BUILDDIR)/game/g_main.o \
    196 	$(BUILDDIR)/game/g_misc.o \
    197 	$(BUILDDIR)/game/g_monster.o \
    198 	$(BUILDDIR)/game/g_phys.o \
    199 	$(BUILDDIR)/game/g_save.o \
    200 	$(BUILDDIR)/game/g_spawn.o \
    201 	$(BUILDDIR)/game/g_target.o \
    202 	$(BUILDDIR)/game/g_trigger.o \
    203 	$(BUILDDIR)/game/g_turret.o \
    204 	$(BUILDDIR)/game/g_utils.o \
    205 	$(BUILDDIR)/game/g_weapon.o \
    206 	$(BUILDDIR)/game/m_actor.o \
    207 	$(BUILDDIR)/game/m_berserk.o \
    208 	$(BUILDDIR)/game/m_boss2.o \
    209 	$(BUILDDIR)/game/m_boss3.o \
    210 	$(BUILDDIR)/game/m_boss31.o \
    211 	$(BUILDDIR)/game/m_boss32.o \
    212 	$(BUILDDIR)/game/m_brain.o \
    213 	$(BUILDDIR)/game/m_chick.o \
    214 	$(BUILDDIR)/game/m_flipper.o \
    215 	$(BUILDDIR)/game/m_float.o \
    216 	$(BUILDDIR)/game/m_flyer.o \
    217 	$(BUILDDIR)/game/m_gladiator.o \
    218 	$(BUILDDIR)/game/m_gunner.o \
    219 	$(BUILDDIR)/game/m_hover.o \
    220 	$(BUILDDIR)/game/m_infantry.o \
    221 	$(BUILDDIR)/game/m_insane.o \
    222 	$(BUILDDIR)/game/m_medic.o \
    223 	$(BUILDDIR)/game/m_move.o \
    224 	$(BUILDDIR)/game/m_mutant.o \
    225 	$(BUILDDIR)/game/m_parasite.o \
    226 	$(BUILDDIR)/game/m_soldier.o \
    227 	$(BUILDDIR)/game/m_supertank.o \
    228 	$(BUILDDIR)/game/m_tank.o \
    229 	$(BUILDDIR)/game/p_hud.o \
    230 	$(BUILDDIR)/game/p_trail.o \
    231 	$(BUILDDIR)/game/p_view.o \
    232 	$(BUILDDIR)/game/p_weapon.o \
    233 	$(BUILDDIR)/game/q_shared.o \
    234 	$(BUILDDIR)/game/m_flash.o
    235 
    236 $(BUILDDIR)/game$(ARCH).$(SHLIBEXT) : $(GAME_OBJS)
    237 	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(GAME_OBJS)
    238 
    239 $(BUILDDIR)/game/g_ai.o :        $(GAME_DIR)/g_ai.c
    240 	$(DO_SHLIB_CC)
    241 
    242 $(BUILDDIR)/game/p_client.o :    $(GAME_DIR)/p_client.c
    243 	$(DO_SHLIB_CC)
    244 
    245 $(BUILDDIR)/game/g_cmds.o :      $(GAME_DIR)/g_cmds.c
    246 	$(DO_SHLIB_CC)
    247 
    248 $(BUILDDIR)/game/g_svcmds.o :    $(GAME_DIR)/g_svcmds.c
    249 	$(DO_SHLIB_CC)
    250 
    251 $(BUILDDIR)/game/g_combat.o :    $(GAME_DIR)/g_combat.c
    252 	$(DO_SHLIB_CC)
    253 
    254 $(BUILDDIR)/game/g_func.o :      $(GAME_DIR)/g_func.c
    255 	$(DO_SHLIB_CC)
    256 
    257 $(BUILDDIR)/game/g_items.o :     $(GAME_DIR)/g_items.c
    258 	$(DO_SHLIB_CC)
    259 
    260 $(BUILDDIR)/game/g_main.o :      $(GAME_DIR)/g_main.c
    261 	$(DO_SHLIB_CC)
    262 
    263 $(BUILDDIR)/game/g_misc.o :      $(GAME_DIR)/g_misc.c
    264 	$(DO_SHLIB_CC)
    265 
    266 $(BUILDDIR)/game/g_monster.o :   $(GAME_DIR)/g_monster.c
    267 	$(DO_SHLIB_CC)
    268 
    269 $(BUILDDIR)/game/g_phys.o :      $(GAME_DIR)/g_phys.c
    270 	$(DO_SHLIB_CC)
    271 
    272 $(BUILDDIR)/game/g_save.o :      $(GAME_DIR)/g_save.c
    273 	$(DO_SHLIB_CC)
    274 
    275 $(BUILDDIR)/game/g_spawn.o :     $(GAME_DIR)/g_spawn.c
    276 	$(DO_SHLIB_CC)
    277 
    278 $(BUILDDIR)/game/g_target.o :    $(GAME_DIR)/g_target.c
    279 	$(DO_SHLIB_CC)
    280 
    281 $(BUILDDIR)/game/g_trigger.o :   $(GAME_DIR)/g_trigger.c
    282 	$(DO_SHLIB_CC)
    283 
    284 $(BUILDDIR)/game/g_turret.o :    $(GAME_DIR)/g_turret.c
    285 	$(DO_SHLIB_CC)
    286 
    287 $(BUILDDIR)/game/g_utils.o :     $(GAME_DIR)/g_utils.c
    288 	$(DO_SHLIB_CC)
    289 
    290 $(BUILDDIR)/game/g_weapon.o :    $(GAME_DIR)/g_weapon.c
    291 	$(DO_SHLIB_CC)
    292 
    293 $(BUILDDIR)/game/m_actor.o :     $(GAME_DIR)/m_actor.c
    294 	$(DO_SHLIB_CC)
    295 
    296 $(BUILDDIR)/game/m_berserk.o :   $(GAME_DIR)/m_berserk.c
    297 	$(DO_SHLIB_CC)
    298 
    299 $(BUILDDIR)/game/m_boss2.o :     $(GAME_DIR)/m_boss2.c
    300 	$(DO_SHLIB_CC)
    301 
    302 $(BUILDDIR)/game/m_boss3.o :     $(GAME_DIR)/m_boss3.c
    303 	$(DO_SHLIB_CC)
    304 
    305 $(BUILDDIR)/game/m_boss31.o :     $(GAME_DIR)/m_boss31.c
    306 	$(DO_SHLIB_CC)
    307 
    308 $(BUILDDIR)/game/m_boss32.o :     $(GAME_DIR)/m_boss32.c
    309 	$(DO_SHLIB_CC)
    310 
    311 $(BUILDDIR)/game/m_brain.o :     $(GAME_DIR)/m_brain.c
    312 	$(DO_SHLIB_CC)
    313 
    314 $(BUILDDIR)/game/m_chick.o :     $(GAME_DIR)/m_chick.c
    315 	$(DO_SHLIB_CC)
    316 
    317 $(BUILDDIR)/game/m_flipper.o :   $(GAME_DIR)/m_flipper.c
    318 	$(DO_SHLIB_CC)
    319 
    320 $(BUILDDIR)/game/m_float.o :     $(GAME_DIR)/m_float.c
    321 	$(DO_SHLIB_CC)
    322 
    323 $(BUILDDIR)/game/m_flyer.o :     $(GAME_DIR)/m_flyer.c
    324 	$(DO_SHLIB_CC)
    325 
    326 $(BUILDDIR)/game/m_gladiator.o : $(GAME_DIR)/m_gladiator.c
    327 	$(DO_SHLIB_CC)
    328 
    329 $(BUILDDIR)/game/m_gunner.o :    $(GAME_DIR)/m_gunner.c
    330 	$(DO_SHLIB_CC)
    331 
    332 $(BUILDDIR)/game/m_hover.o :     $(GAME_DIR)/m_hover.c
    333 	$(DO_SHLIB_CC)
    334 
    335 $(BUILDDIR)/game/m_infantry.o :  $(GAME_DIR)/m_infantry.c
    336 	$(DO_SHLIB_CC)
    337 
    338 $(BUILDDIR)/game/m_insane.o :    $(GAME_DIR)/m_insane.c
    339 	$(DO_SHLIB_CC)
    340 
    341 $(BUILDDIR)/game/m_medic.o :     $(GAME_DIR)/m_medic.c
    342 	$(DO_SHLIB_CC)
    343 
    344 $(BUILDDIR)/game/m_move.o :      $(GAME_DIR)/m_move.c
    345 	$(DO_SHLIB_CC)
    346 
    347 $(BUILDDIR)/game/m_mutant.o :    $(GAME_DIR)/m_mutant.c
    348 	$(DO_SHLIB_CC)
    349 
    350 $(BUILDDIR)/game/m_parasite.o :  $(GAME_DIR)/m_parasite.c
    351 	$(DO_SHLIB_CC)
    352 
    353 $(BUILDDIR)/game/m_soldier.o :   $(GAME_DIR)/m_soldier.c
    354 	$(DO_SHLIB_CC)
    355 
    356 $(BUILDDIR)/game/m_supertank.o : $(GAME_DIR)/m_supertank.c
    357 	$(DO_SHLIB_CC)
    358 
    359 $(BUILDDIR)/game/m_tank.o :      $(GAME_DIR)/m_tank.c
    360 	$(DO_SHLIB_CC)
    361 
    362 $(BUILDDIR)/game/p_hud.o :       $(GAME_DIR)/p_hud.c
    363 	$(DO_SHLIB_CC)
    364 
    365 $(BUILDDIR)/game/p_trail.o :     $(GAME_DIR)/p_trail.c
    366 	$(DO_SHLIB_CC)
    367 
    368 $(BUILDDIR)/game/p_view.o :      $(GAME_DIR)/p_view.c
    369 	$(DO_SHLIB_CC)
    370 
    371 $(BUILDDIR)/game/p_weapon.o :    $(GAME_DIR)/p_weapon.c
    372 	$(DO_SHLIB_CC)
    373 
    374 $(BUILDDIR)/game/q_shared.o :    $(GAME_DIR)/q_shared.c
    375 	$(DO_SHLIB_CC)
    376 
    377 $(BUILDDIR)/game/m_flash.o :     $(GAME_DIR)/m_flash.c
    378 	$(DO_SHLIB_CC)
    379 
    380 #############################################################################
    381 # CTF
    382 #############################################################################
    383 
    384 CTF_OBJS = \
    385 	$(BUILDDIR)/ctf/g_ai.o \
    386 	$(BUILDDIR)/ctf/g_chase.o \
    387 	$(BUILDDIR)/ctf/g_cmds.o \
    388 	$(BUILDDIR)/ctf/g_combat.o \
    389 	$(BUILDDIR)/ctf/g_ctf.o \
    390 	$(BUILDDIR)/ctf/g_func.o \
    391 	$(BUILDDIR)/ctf/g_items.o \
    392 	$(BUILDDIR)/ctf/g_main.o \
    393 	$(BUILDDIR)/ctf/g_misc.o \
    394 	$(BUILDDIR)/ctf/g_monster.o \
    395 	$(BUILDDIR)/ctf/g_phys.o \
    396 	$(BUILDDIR)/ctf/g_save.o \
    397 	$(BUILDDIR)/ctf/g_spawn.o \
    398 	$(BUILDDIR)/ctf/g_svcmds.o \
    399 	$(BUILDDIR)/ctf/g_target.o \
    400 	$(BUILDDIR)/ctf/g_trigger.o \
    401 	$(BUILDDIR)/ctf/g_utils.o \
    402 	$(BUILDDIR)/ctf/g_weapon.o \
    403 	$(BUILDDIR)/ctf/m_move.o \
    404 	$(BUILDDIR)/ctf/p_client.o \
    405 	$(BUILDDIR)/ctf/p_hud.o \
    406 	$(BUILDDIR)/ctf/p_menu.o \
    407 	$(BUILDDIR)/ctf/p_trail.o \
    408 	$(BUILDDIR)/ctf/p_view.o \
    409 	$(BUILDDIR)/ctf/p_weapon.o \
    410 	$(BUILDDIR)/ctf/q_shared.o
    411 
    412 $(BUILDDIR)/ctf/game$(ARCH).$(SHLIBEXT) : $(CTF_OBJS)
    413 	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(CTF_OBJS)
    414 
    415 $(BUILDDIR)/ctf/g_ai.o :       $(CTF_DIR)/g_ai.c
    416 	$(DO_SHLIB_CC)
    417 
    418 $(BUILDDIR)/ctf/g_chase.o :    $(CTF_DIR)/g_chase.c
    419 	$(DO_SHLIB_CC)
    420 
    421 $(BUILDDIR)/ctf/g_cmds.o :     $(CTF_DIR)/g_cmds.c
    422 	$(DO_SHLIB_CC)
    423 
    424 $(BUILDDIR)/ctf/g_combat.o :   $(CTF_DIR)/g_combat.c
    425 	$(DO_SHLIB_CC)
    426 
    427 $(BUILDDIR)/ctf/g_ctf.o :      $(CTF_DIR)/g_ctf.c
    428 	$(DO_SHLIB_CC)
    429 
    430 $(BUILDDIR)/ctf/g_func.o :     $(CTF_DIR)/g_func.c
    431 	$(DO_SHLIB_CC)
    432 
    433 $(BUILDDIR)/ctf/g_items.o :    $(CTF_DIR)/g_items.c
    434 	$(DO_SHLIB_CC)
    435 
    436 $(BUILDDIR)/ctf/g_main.o :     $(CTF_DIR)/g_main.c
    437 	$(DO_SHLIB_CC)
    438 
    439 $(BUILDDIR)/ctf/g_misc.o :     $(CTF_DIR)/g_misc.c
    440 	$(DO_SHLIB_CC)
    441 
    442 $(BUILDDIR)/ctf/g_monster.o :  $(CTF_DIR)/g_monster.c
    443 	$(DO_SHLIB_CC)
    444 
    445 $(BUILDDIR)/ctf/g_phys.o :     $(CTF_DIR)/g_phys.c
    446 	$(DO_SHLIB_CC)
    447 
    448 $(BUILDDIR)/ctf/g_save.o :     $(CTF_DIR)/g_save.c
    449 	$(DO_SHLIB_CC)
    450 
    451 $(BUILDDIR)/ctf/g_spawn.o :    $(CTF_DIR)/g_spawn.c
    452 	$(DO_SHLIB_CC)
    453 
    454 $(BUILDDIR)/ctf/g_svcmds.o :   $(CTF_DIR)/g_svcmds.c
    455 	$(DO_SHLIB_CC)
    456 
    457 $(BUILDDIR)/ctf/g_target.o :   $(CTF_DIR)/g_target.c
    458 	$(DO_SHLIB_CC)
    459 
    460 $(BUILDDIR)/ctf/g_trigger.o :  $(CTF_DIR)/g_trigger.c
    461 	$(DO_SHLIB_CC)
    462 
    463 $(BUILDDIR)/ctf/g_utils.o :    $(CTF_DIR)/g_utils.c
    464 	$(DO_SHLIB_CC)
    465 
    466 $(BUILDDIR)/ctf/g_weapon.o :   $(CTF_DIR)/g_weapon.c
    467 	$(DO_SHLIB_CC)
    468 
    469 $(BUILDDIR)/ctf/m_move.o :     $(CTF_DIR)/m_move.c
    470 	$(DO_SHLIB_CC)
    471 
    472 $(BUILDDIR)/ctf/p_client.o :   $(CTF_DIR)/p_client.c
    473 	$(DO_SHLIB_CC)
    474 
    475 $(BUILDDIR)/ctf/p_hud.o :      $(CTF_DIR)/p_hud.c
    476 	$(DO_SHLIB_CC)
    477 
    478 $(BUILDDIR)/ctf/p_menu.o :     $(CTF_DIR)/p_menu.c
    479 	$(DO_SHLIB_CC)
    480 
    481 $(BUILDDIR)/ctf/p_trail.o :    $(CTF_DIR)/p_trail.c
    482 	$(DO_SHLIB_CC)
    483 
    484 $(BUILDDIR)/ctf/p_view.o :     $(CTF_DIR)/p_view.c
    485 	$(DO_SHLIB_CC)
    486 
    487 $(BUILDDIR)/ctf/p_weapon.o :   $(CTF_DIR)/p_weapon.c
    488 	$(DO_SHLIB_CC)
    489 
    490 $(BUILDDIR)/ctf/q_shared.o :   $(CTF_DIR)/q_shared.c
    491 	$(DO_SHLIB_CC)
    492 
    493 #############################################################################
    494 # XATRIX
    495 #############################################################################
    496 
    497 XATRIX_OBJS = \
    498 	$(BUILDDIR)/xatrix/g_ai.o \
    499 	$(BUILDDIR)/xatrix/g_cmds.o \
    500 	$(BUILDDIR)/xatrix/g_combat.o \
    501 	$(BUILDDIR)/xatrix/g_func.o \
    502 	$(BUILDDIR)/xatrix/g_items.o \
    503 	$(BUILDDIR)/xatrix/g_main.o \
    504 	$(BUILDDIR)/xatrix/g_misc.o \
    505 	$(BUILDDIR)/xatrix/g_monster.o \
    506 	$(BUILDDIR)/xatrix/g_phys.o \
    507 	$(BUILDDIR)/xatrix/g_save.o \
    508 	$(BUILDDIR)/xatrix/g_spawn.o \
    509 	$(BUILDDIR)/xatrix/g_svcmds.o \
    510 	$(BUILDDIR)/xatrix/g_target.o \
    511 	$(BUILDDIR)/xatrix/g_trigger.o \
    512 	$(BUILDDIR)/xatrix/g_turret.o \
    513 	$(BUILDDIR)/xatrix/g_utils.o \
    514 	$(BUILDDIR)/xatrix/g_weapon.o \
    515 	$(BUILDDIR)/xatrix/m_actor.o \
    516 	$(BUILDDIR)/xatrix/m_berserk.o \
    517 	$(BUILDDIR)/xatrix/m_boss2.o \
    518 	$(BUILDDIR)/xatrix/m_boss3.o \
    519 	$(BUILDDIR)/xatrix/m_boss31.o \
    520 	$(BUILDDIR)/xatrix/m_boss32.o \
    521 	$(BUILDDIR)/xatrix/m_boss5.o \
    522 	$(BUILDDIR)/xatrix/m_brain.o \
    523 	$(BUILDDIR)/xatrix/m_chick.o \
    524 	$(BUILDDIR)/xatrix/m_fixbot.o \
    525 	$(BUILDDIR)/xatrix/m_flash.o \
    526 	$(BUILDDIR)/xatrix/m_flipper.o \
    527 	$(BUILDDIR)/xatrix/m_float.o \
    528 	$(BUILDDIR)/xatrix/m_flyer.o \
    529 	$(BUILDDIR)/xatrix/m_gekk.o \
    530 	$(BUILDDIR)/xatrix/m_gladb.o \
    531 	$(BUILDDIR)/xatrix/m_gladiator.o \
    532 	$(BUILDDIR)/xatrix/m_gunner.o \
    533 	$(BUILDDIR)/xatrix/m_hover.o \
    534 	$(BUILDDIR)/xatrix/m_infantry.o \
    535 	$(BUILDDIR)/xatrix/m_insane.o \
    536 	$(BUILDDIR)/xatrix/m_medic.o \
    537 	$(BUILDDIR)/xatrix/m_move.o \
    538 	$(BUILDDIR)/xatrix/m_mutant.o \
    539 	$(BUILDDIR)/xatrix/m_parasite.o \
    540 	$(BUILDDIR)/xatrix/m_soldier.o \
    541 	$(BUILDDIR)/xatrix/m_supertank.o \
    542 	$(BUILDDIR)/xatrix/m_tank.o \
    543 	$(BUILDDIR)/xatrix/p_client.o \
    544 	$(BUILDDIR)/xatrix/p_hud.o \
    545 	$(BUILDDIR)/xatrix/p_trail.o \
    546 	$(BUILDDIR)/xatrix/p_view.o \
    547 	$(BUILDDIR)/xatrix/p_weapon.o \
    548 	$(BUILDDIR)/xatrix/q_shared.o
    549 
    550 $(BUILDDIR)/xatrix/game$(ARCH).$(SHLIBEXT) : $(XATRIX_OBJS)
    551 	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(XATRIX_OBJS)
    552 
    553 $(BUILDDIR)/xatrix/g_ai.o :        $(XATRIX_DIR)/g_ai.c
    554 	$(DO_SHLIB_CC)
    555 
    556 $(BUILDDIR)/xatrix/g_cmds.o :      $(XATRIX_DIR)/g_cmds.c
    557 	$(DO_SHLIB_CC)
    558 
    559 $(BUILDDIR)/xatrix/g_combat.o :    $(XATRIX_DIR)/g_combat.c
    560 	$(DO_SHLIB_CC)
    561 
    562 $(BUILDDIR)/xatrix/g_func.o :      $(XATRIX_DIR)/g_func.c
    563 	$(DO_SHLIB_CC)
    564 
    565 $(BUILDDIR)/xatrix/g_items.o :     $(XATRIX_DIR)/g_items.c
    566 	$(DO_SHLIB_CC)
    567 
    568 $(BUILDDIR)/xatrix/g_main.o :      $(XATRIX_DIR)/g_main.c
    569 	$(DO_SHLIB_CC)
    570 
    571 $(BUILDDIR)/xatrix/g_misc.o :      $(XATRIX_DIR)/g_misc.c
    572 	$(DO_SHLIB_CC)
    573 
    574 $(BUILDDIR)/xatrix/g_monster.o :   $(XATRIX_DIR)/g_monster.c
    575 	$(DO_SHLIB_CC)
    576 
    577 $(BUILDDIR)/xatrix/g_phys.o :      $(XATRIX_DIR)/g_phys.c
    578 	$(DO_SHLIB_CC)
    579 
    580 $(BUILDDIR)/xatrix/g_save.o :      $(XATRIX_DIR)/g_save.c
    581 	$(DO_SHLIB_CC)
    582 
    583 $(BUILDDIR)/xatrix/g_spawn.o :     $(XATRIX_DIR)/g_spawn.c
    584 	$(DO_SHLIB_CC)
    585 
    586 $(BUILDDIR)/xatrix/g_svcmds.o :    $(XATRIX_DIR)/g_svcmds.c
    587 	$(DO_SHLIB_CC)
    588 
    589 $(BUILDDIR)/xatrix/g_target.o :    $(XATRIX_DIR)/g_target.c
    590 	$(DO_SHLIB_CC)
    591 
    592 $(BUILDDIR)/xatrix/g_trigger.o :   $(XATRIX_DIR)/g_trigger.c
    593 	$(DO_SHLIB_CC)
    594 
    595 $(BUILDDIR)/xatrix/g_turret.o :    $(XATRIX_DIR)/g_turret.c
    596 	$(DO_SHLIB_CC)
    597 
    598 $(BUILDDIR)/xatrix/g_utils.o :     $(XATRIX_DIR)/g_utils.c
    599 	$(DO_SHLIB_CC)
    600 
    601 $(BUILDDIR)/xatrix/g_weapon.o :    $(XATRIX_DIR)/g_weapon.c
    602 	$(DO_SHLIB_CC)
    603 
    604 $(BUILDDIR)/xatrix/m_actor.o :     $(XATRIX_DIR)/m_actor.c
    605 	$(DO_SHLIB_CC)
    606 
    607 $(BUILDDIR)/xatrix/m_berserk.o :   $(XATRIX_DIR)/m_berserk.c
    608 	$(DO_SHLIB_CC)
    609 
    610 $(BUILDDIR)/xatrix/m_boss2.o :     $(XATRIX_DIR)/m_boss2.c
    611 	$(DO_SHLIB_CC)
    612 
    613 $(BUILDDIR)/xatrix/m_boss3.o :     $(XATRIX_DIR)/m_boss3.c
    614 	$(DO_SHLIB_CC)
    615 
    616 $(BUILDDIR)/xatrix/m_boss31.o :    $(XATRIX_DIR)/m_boss31.c
    617 	$(DO_SHLIB_CC)
    618 
    619 $(BUILDDIR)/xatrix/m_boss32.o :    $(XATRIX_DIR)/m_boss32.c
    620 	$(DO_SHLIB_CC)
    621 
    622 $(BUILDDIR)/xatrix/m_boss5.o :     $(XATRIX_DIR)/m_boss5.c
    623 	$(DO_SHLIB_CC)
    624 
    625 $(BUILDDIR)/xatrix/m_brain.o :     $(XATRIX_DIR)/m_brain.c
    626 	$(DO_SHLIB_CC)
    627 
    628 $(BUILDDIR)/xatrix/m_chick.o :     $(XATRIX_DIR)/m_chick.c
    629 	$(DO_SHLIB_CC)
    630 
    631 $(BUILDDIR)/xatrix/m_fixbot.o :    $(XATRIX_DIR)/m_fixbot.c
    632 	$(DO_SHLIB_CC)
    633 
    634 $(BUILDDIR)/xatrix/m_flash.o :     $(XATRIX_DIR)/m_flash.c
    635 	$(DO_SHLIB_CC)
    636 
    637 $(BUILDDIR)/xatrix/m_flipper.o :   $(XATRIX_DIR)/m_flipper.c
    638 	$(DO_SHLIB_CC)
    639 
    640 $(BUILDDIR)/xatrix/m_float.o :     $(XATRIX_DIR)/m_float.c
    641 	$(DO_SHLIB_CC)
    642 
    643 $(BUILDDIR)/xatrix/m_flyer.o :     $(XATRIX_DIR)/m_flyer.c
    644 	$(DO_SHLIB_CC)
    645 
    646 $(BUILDDIR)/xatrix/m_gekk.o :      $(XATRIX_DIR)/m_gekk.c
    647 	$(DO_SHLIB_CC)
    648 
    649 $(BUILDDIR)/xatrix/m_gladb.o :     $(XATRIX_DIR)/m_gladb.c
    650 	$(DO_SHLIB_CC)
    651 
    652 $(BUILDDIR)/xatrix/m_gladiator.o : $(XATRIX_DIR)/m_gladiator.c
    653 	$(DO_SHLIB_CC)
    654 
    655 $(BUILDDIR)/xatrix/m_gunner.o :    $(XATRIX_DIR)/m_gunner.c
    656 	$(DO_SHLIB_CC)
    657 
    658 $(BUILDDIR)/xatrix/m_hover.o :     $(XATRIX_DIR)/m_hover.c
    659 	$(DO_SHLIB_CC)
    660 
    661 $(BUILDDIR)/xatrix/m_infantry.o :  $(XATRIX_DIR)/m_infantry.c
    662 	$(DO_SHLIB_CC)
    663 
    664 $(BUILDDIR)/xatrix/m_insane.o :    $(XATRIX_DIR)/m_insane.c
    665 	$(DO_SHLIB_CC)
    666 
    667 $(BUILDDIR)/xatrix/m_medic.o :     $(XATRIX_DIR)/m_medic.c
    668 	$(DO_SHLIB_CC)
    669 
    670 $(BUILDDIR)/xatrix/m_move.o :      $(XATRIX_DIR)/m_move.c
    671 	$(DO_SHLIB_CC)
    672 
    673 $(BUILDDIR)/xatrix/m_mutant.o :    $(XATRIX_DIR)/m_mutant.c
    674 	$(DO_SHLIB_CC)
    675 
    676 $(BUILDDIR)/xatrix/m_parasite.o :  $(XATRIX_DIR)/m_parasite.c
    677 	$(DO_SHLIB_CC)
    678 
    679 $(BUILDDIR)/xatrix/m_soldier.o :   $(XATRIX_DIR)/m_soldier.c
    680 	$(DO_SHLIB_CC)
    681 
    682 $(BUILDDIR)/xatrix/m_supertank.o : $(XATRIX_DIR)/m_supertank.c
    683 	$(DO_SHLIB_CC)
    684 
    685 $(BUILDDIR)/xatrix/m_tank.o :      $(XATRIX_DIR)/m_tank.c
    686 	$(DO_SHLIB_CC)
    687 
    688 $(BUILDDIR)/xatrix/p_client.o :    $(XATRIX_DIR)/p_client.c
    689 	$(DO_SHLIB_CC)
    690 
    691 $(BUILDDIR)/xatrix/p_hud.o :       $(XATRIX_DIR)/p_hud.c
    692 	$(DO_SHLIB_CC)
    693 
    694 $(BUILDDIR)/xatrix/p_trail.o :     $(XATRIX_DIR)/p_trail.c
    695 	$(DO_SHLIB_CC)
    696 
    697 $(BUILDDIR)/xatrix/p_view.o :      $(XATRIX_DIR)/p_view.c
    698 	$(DO_SHLIB_CC)
    699 
    700 $(BUILDDIR)/xatrix/p_weapon.o :    $(XATRIX_DIR)/p_weapon.c
    701 	$(DO_SHLIB_CC)
    702 
    703 $(BUILDDIR)/xatrix/q_shared.o :    $(XATRIX_DIR)/q_shared.c
    704 	$(DO_SHLIB_CC)
    705 
    706 #############################################################################
    707 # MISC
    708 #############################################################################
    709 
    710 clean: clean-debug clean-release
    711 
    712 clean-debug:
    713 	$(MAKE) clean2 BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)"
    714 
    715 clean-release:
    716 	$(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)"
    717 
    718 clean2:
    719 	-rm -f $(QUAKE2_OBJS) $(GAME_OBJS) $(CTF_OBJS) $(XATRIX_OBJS)