ef2-sdk/linux/Makefile
2003-11-05 00:00:00 +00:00

843 lines
33 KiB
Makefile

#
# Quake3 Unix Makefile
#
# Currently build for the following:
# Linux i386 (full client)
# Linux Alpha (dedicated server only)
# SGI IRIX (full client)
#
# Nov '98 by Zoid <zoid@idsoftware.com>
#
# GNU Make required
#
PLATFORM=$(shell uname|tr A-Z a-z)
PLATFORM_RELEASE=$(shell uname -r)
###
### These paths are where you probably want to change things
###
# Where we are building to, libMesaVoodooGL.so.3.3 should be here, etc.
# the demo pk3 file should be here in demoq3/pak0.pk3 or baseq3/pak0.pk3
#BDIR=/home/zoid/Quake3
BDIR=./
# Where we are building from (where the source code should be!)
#MOUNT_DIR=/projects/Quake3/q3code
MOUNT_DIR=../..
# Custom lcc location, used in vm builds
LCC=/home/zoid/Quake3/lcc
# Custom q3asm location, used in vm builds
Q3ASM=/home/zoid/Quake3/q3asm
# Build name
#BUILD_NAME=linuxquake3
BUILD_NAME=linuxef2ded
#############################################################################
##
## You shouldn't have to touch anything below here
##
#############################################################################
BASEQ3_DIR=$(BDIR)/baseq3
BD=debug$(ARCH)$(GLIBC)
BR=release$(ARCH)$(GLIBC)
CDIR=$(MOUNT_DIR)/Executable/client
SDIR=$(MOUNT_DIR)/Executable/server
RDIR=$(MOUNT_DIR)/Libs/renderer
CMDIR=$(MOUNT_DIR)/Shared/qcommon
UDIR=$(MOUNT_DIR)/Executable/unix
GDIR=$(MOUNT_DIR)/DLLs/game
CGDIR=$(MOUNT_DIR)/DLLs/cgame
BAIDIR=$(MOUNT_DIR)/botai
BLIBDIR=$(MOUNT_DIR)/Executable/botlib
NDIR=$(MOUNT_DIR)/Executable/null
UIDIR=$(MOUNT_DIR)/ui
JPDIR=$(MOUNT_DIR)/jpeg-6
DLLINC = $(MOUNT_DIR)/DLLs
SHAREINC = $(MOUNT_DIR)/Shared
EXECINC = $(MOUNT_DIR)/Executable
LIBINC = $(MOUNT_DIR)/Libs
#used for linux i386 builds
MESADIR=/usr/local/src/Mesa
VERSION=1.16j
RPM_RELEASE=1
#############################################################################
# SETUP AND BUILD -- LINUX
#############################################################################
ifeq ($(PLATFORM),linux)
ifneq (,$(findstring libc6,$(shell if [ -e /lib/libc.so.6* ];then echo libc6;fi)))
GLIBC=-glibc
else
GLIBC=
endif #libc6 test
ifneq (,$(findstring alpha,$(shell uname -m)))
ARCH=axp
RPMARCH=alpha
VENDOR=dec
else #default to i386
ARCH=i386
RPMARCH=i386
VENDOR=unknown
endif #alpha test
BASE_CFLAGS=-Dstricmp=strcasecmp -Dstrcmpi=strcasecmp -Dstrnicmp=strncasecmp -pipe
#BASE_CFLAGS=-Dstricmp=strcasecmp -I$(MESADIR)/include -I/usr/X11R6/include -I/usr/include/glide -pipe
DEBUG_CFLAGS=$(BASE_CFLAGS) -g -Wno-deprecated
ifeq ($(ARCH),axp)
#CC=gcc
CC=g++
GC=gcc
RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations
else
CC=g++
GC=gcc
#NEWGCC=/usr/local/gcc-2.95/bin/gcc
#CC=$(shell if [ -f $(NEWGCC) ]; then echo $(NEWGCC); else echo g++; fi )
RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O6 -march=pentium -fomit-frame-pointer -pipe -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fstrength-reduce -Wno-deprecated
endif
LIBEXT=a
SHLIBEXT=so
SHLIBCFLAGS= -fPIC
SHLIBLDFLAGS=-shared
ARFLAGS=ar rv
RANLIB=ranlib
THREAD_LDFLAGS=-lpthread
LDFLAGS=-ldl -lm
GLLDFLAGS=-L/usr/X11R6/lib -L$(MESADIR)/lib -lX11 -lXext -lXxf86dga -lXxf86vm
#ifeq ($(ARCH),axp)
TARGETS=\
$(B)/ef2game$(ARCH).$(SHLIBEXT) \
$(B)/$(PLATFORM)ef2ded
#else
#TARGETS=\
# $(B)/$(PLATFORM)quake3 \
# $(B)/$(PLATFORM)quake3-smp \
# $(B)/$(PLATFORM)q3ded \
# $(B)/vm/qagame.qvm \
# $(B)/vm/cgame.qvm \
# $(B)/vm/ui.qvm
# $(B)/cgame$(ARCH).$(SHLIBEXT) \
# $(B)/qagame$(ARCH).$(SHLIBEXT) \
# $(B)/ui$(ARCH).$(SHLIBEXT) \
#
#endif
else # ifeq Linux
#############################################################################
# SETUP AND BUILD -- IRIX
#############################################################################
ifeq ($(PLATFORM),irix)
ARCH=mips #default to MIPS
VENDOR=sgi
GLIBC= #libc is irrelevant
CC=cc
BASE_CFLAGS=-Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -Xcpluscomm -woff 1185 -mips3 \
-nostdinc -I. -I$(ROOT)/usr/include
RELEASE_CFLAGS=$(BASE_CFLAGS) -O3
DEBUG_CFLAGS=$(BASE_CFLAGS) -g
LIBEXT=a
SHLIBEXT=so
SHLIBCFLAGS=
SHLIBLDFLAGS=-shared
ARFLAGS=ar rv
RANLIB=ranlib
LDFLAGS=-ldl -lm
GLLDFLAGS=-L/usr/X11/lib -lGL -lX11 -lXext -lm
TARGETS=$(B)/sgiquake3 \
$(B)/q3ded
else # ifeq IRIX
#############################################################################
# SETUP AND BUILD -- GENERIC
#############################################################################
CC=cc
#CC=gcc
BASE_CFLAGS=-Dstricmp=strcasecmp -Dstrnicmp=strncasecmp
DEBUG_CFLAGS=$(BASE_CFLAGS) -g
RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O
LIBEXT=a
SHLIBEXT=so
SHLIBCFLAGS=-fPIC
SHLIBLDFLAGS=-shared
ARFLAGS=ar rv
RANLIB=ranlib
LDFLAGS=-ldl -lm
TARGETS=\
$(B)/$(PLATFORM)ef2ded
endif #Linux
endif #IRIX
DO_CC=$(CC) $(CFLAGS) -o $@ -c $<
DO_SMP_CC=$(CC) $(CFLAGS) -DSMP -o $@ -c $<
DO_BOT_CC=$(GC) $(CFLAGS) -DBOTLIB -DAASINTERN -DMISSIONPACK -DENABLE_ALTROUTING $(SHLIBCFLAGS) -I$(DLLINC) -I$(SHAREINC) -I$(EXECINC) -I$(CMDIR) -I$(LIBINC) -o $@ -c $<
DO_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) -o $@ -c $<
DO_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -I$(DLLINC) -I$(SHAREINC) -I$(EXECINC) -I$(CMDIR) -I$(LIBINC) -o $@ -c $<
DO_GAME_SHLIB_CC=$(CC) -DGAME_DLL -DDEDICATED -DMISSIONPACK -DLINUX $(CFLAGS) $(SHLIBCFLAGS) -I$(DLLINC) -I$(SHAREINC) -I$(EXECINC) -I$(CMDIR) -I$(LIBINC) -o $@ -c $<
DO_GAME_SHLIB_GC=$(GC) -DGAME_DLL -DDEDICATED -DMISSIONPACK -DLINUX $(CFLAGS) $(SHLIBCFLAGS) -I$(DLLINC) -I$(SHAREINC) -I$(EXECINC) -I$(CMDIR) -I$(LIBINC) -o $@ -c $<
DO_SHLIB_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
DO_DED_CC=$(CC) -DDEDICATED -DEF2 -DAASINTERN -DAAS_SAMPLE_DEBUG -DDEBUG_AI_MOVE -DDEBUG_AI_WEAP -DDEBUG_AI_GOAL -DALTROUTE_DEBUG -DROUTING_DEBUG -DREACH_DEBUG -DAAS_MOVE_DEBUG -DMISSIONPACK -DENABLE_ALTROUTING -DLINUX -DBOTLIB -DC_ONLY $(CFLAGS) -I$(DLLINC) -I$(SHAREINC) -I$(EXECINC) -I$(CMDIR) -I$(LIBINC) -c -o $@ $<
DO_DED_GC=$(GC) -DDEDICATED -DEF2 -DAASINTERN -DAAS_SAMPLE_DEBUG -DDEBUG_AI_MOVE -DDEBUG_AI_WEAP -DDEBUG_AI_GOAL -DALTROUTE_DEBUG -DROUTING_DEBUG -DREACH_DEBUG -DAAS_MOVE_DEBUG -DMISSIONPACK -DENABLE_ALTROUTING -DLINUX -DBOTLIB -DC_ONLY $(CFLAGS) -I$(DLLINC) -I$(SHAREINC) -I$(EXECINC) -I$(CMDIR) -I$(LIBINC) -c -o $@ $<
#DO_DED_CC=$(CC) -DDEDICATED -DC_ONLY $(CFLAGS) -o $@ -c $<
DO_LCC=$(LCC) -S -Wf-target=bytecode -Wf-g -I$(CGDIR) -I$(GDIR) -I$(BAIDIR) -I$(BLIBDIR) -I$(UIDIR) -o $@ -c $<
#### DEFAULT TARGET
# default:build_release
#build_debug:
# $(MAKE) targets B=$(BD) CFLAGS="$(DEBUG_CFLAGS)"
build_release:
$(MAKE) targets B=$(BR) CFLAGS="$(RELEASE_CFLAGS)"
build_debug:
$(MAKE) targets B=$(BD) CFLAGS="$(DEBUG_CFLAGS)"
#Build both debug and release builds
#all:build_debug build_release
all:build_debug
targets:makedirs $(TARGETS)
makedirs:
@if [ ! -d $(B) ]; then mkdir $(B);fi; \
if [ ! -d $(B)/ded ];then mkdir $(B)/ded;fi; \
if [ ! -d $(B)/game ]; then mkdir $(B)/game;fi
#############################################################################
# DEDICATED SERVER
#############################################################################
Q3DOBJ = \
$(B)/ded/sv_bot.o \
$(B)/ded/sv_client.o \
$(B)/ded/sv_ccmds.o \
$(B)/ded/sv_game.o \
$(B)/ded/sv_init.o \
$(B)/ded/sv_main.o \
$(B)/ded/sv_netchan.o \
$(B)/ded/sv_snapshot.o \
$(B)/ded/sv_world.o \
\
$(B)/ded/alias.o \
$(B)/ded/cm_load.o \
$(B)/ded/cm_patch.o \
$(B)/ded/cm_polylib.o \
$(B)/ded/cm_terrain.o \
$(B)/ded/cm_test.o \
$(B)/ded/cm_trace.o \
$(B)/ded/cmd.o \
$(B)/ded/common.o \
$(B)/ded/crc.o \
$(B)/ded/cvar.o \
$(B)/ded/files.o \
$(B)/ded/gameplaydatabase.o \
$(B)/ded/gameplayformulamanager.o \
$(B)/ded/gameplaymanager.o \
$(B)/ded/huffman.o \
$(B)/ded/levelManager.o \
$(B)/ded/lip.o \
$(B)/ded/msg.o \
$(B)/ded/net_chan.o \
$(B)/ded/output.o \
\
$(B)/ded/q_math.o \
$(B)/ded/q_mathsys.o \
$(B)/ded/q_shared.o \
$(B)/ded/memory.o \
\
$(B)/ded/str.o \
$(B)/ded/stringresource.o \
$(B)/ded/listener.o \
$(B)/ded/sv_snd.o \
$(B)/ded/viewmode.o \
$(B)/ded/class.o \
\
$(B)/ded/tiki_main.o \
$(B)/ded/tiki_script.o \
$(B)/ded/unzip.o \
\
$(B)/ded/be_aas_bspq3.o \
$(B)/ded/be_aas_cluster.o \
$(B)/ded/be_aas_debug.o \
$(B)/ded/be_aas_entity.o \
$(B)/ded/be_aas_file.o \
$(B)/ded/be_aas_main.o \
$(B)/ded/be_aas_move.o \
$(B)/ded/be_aas_optimize.o \
$(B)/ded/be_aas_reach.o \
$(B)/ded/be_aas_route.o \
$(B)/ded/be_aas_routealt.o \
$(B)/ded/be_aas_sample.o \
$(B)/ded/be_ai_char.o \
$(B)/ded/be_ai_chat.o \
$(B)/ded/be_ai_gen.o \
$(B)/ded/be_ai_goal.o \
$(B)/ded/be_ai_move.o \
$(B)/ded/be_ai_weap.o \
$(B)/ded/be_ai_weight.o \
$(B)/ded/be_ea.o \
$(B)/ded/be_interface.o \
$(B)/ded/l_crc.o \
$(B)/ded/l_libvar.o \
$(B)/ded/l_log.o \
$(B)/ded/l_memory.o \
$(B)/ded/l_precomp.o \
$(B)/ded/l_script.o \
$(B)/ded/l_struct.o \
\
$(B)/ded/unix_main.o \
$(B)/ded/unix_net.o \
$(B)/ded/unix_shared.o \
\
$(B)/ded/md4.o \
$(B)/ded/null_client.o \
$(B)/ded/null_cl.o \
$(B)/ded/null_input.o \
$(B)/ded/null_snddma.o
$(B)/$(PLATFORM)ef2ded : $(Q3DOBJ)
$(CC) $(CFLAGS) -o $@ $(Q3DOBJ) $(LDFLAGS)
$(B)/ded/sv_bot.o : $(BLIBDIR)/sv_bot.c; $(DO_DED_GC)
$(B)/ded/sv_client.o : $(SDIR)/sv_client.c; $(DO_DED_GC)
$(B)/ded/sv_ccmds.o : $(SDIR)/sv_ccmds.c; $(DO_DED_GC)
$(B)/ded/sv_game.o : $(SDIR)/sv_game.c; $(DO_DED_GC)
$(B)/ded/sv_init.o : $(SDIR)/sv_init.c; $(DO_DED_GC)
$(B)/ded/sv_main.o : $(SDIR)/sv_main.c; $(DO_DED_GC)
$(B)/ded/sv_netchan.o : $(SDIR)/sv_net_chan.c; $(DO_DED_GC)
$(B)/ded/sv_snapshot.o : $(SDIR)/sv_snapshot.c; $(DO_DED_GC)
$(B)/ded/sv_snd.o : $(SDIR)/sv_snd.c; $(DO_DED_GC)
$(B)/ded/sv_world.o : $(SDIR)/sv_world.c; $(DO_DED_GC)
$(B)/ded/alias.o : $(CMDIR)/alias.c; $(DO_DED_GC)
$(B)/ded/class.o : $(GDIR)/class.cpp; $(DO_DED_CC)
$(B)/ded/cm_load.o : $(CMDIR)/cm_load.c; $(DO_DED_GC)
$(B)/ded/cm_polylib.o : $(CMDIR)/cm_polylib.c; $(DO_DED_GC)
$(B)/ded/cm_terrain.o : $(CMDIR)/cm_terrain.c; $(DO_DED_GC)
$(B)/ded/cm_test.o : $(CMDIR)/cm_test.c; $(DO_DED_GC)
$(B)/ded/cm_trace.o : $(CMDIR)/cm_trace.c; $(DO_DED_GC)
$(B)/ded/cm_patch.o : $(CMDIR)/cm_patch.c; $(DO_DED_GC)
$(B)/ded/cmd.o : $(CMDIR)/cmd.c; $(DO_DED_GC)
$(B)/ded/common.o : $(CMDIR)/common.c; $(DO_DED_GC)
$(B)/ded/crc.o : $(CMDIR)/crc.c; $(DO_DED_GC)
$(B)/ded/cvar.o : $(CMDIR)/cvar.c; $(DO_DED_GC)
$(B)/ded/files.o : $(CMDIR)/files.c; $(DO_DED_GC)
$(B)/ded/md4.o : $(CMDIR)/md4.c; $(DO_DED_GC)
$(B)/ded/gameplaydatabase.o : $(CMDIR)/gameplaydatabase.cpp; $(DO_DED_CC)
$(B)/ded/gameplayformulamanager.o : $(CMDIR)/gameplayformulamanager.cpp; $(DO_DED_CC)
$(B)/ded/gameplaymanager.o : $(CMDIR)/gameplaymanager.cpp; $(DO_DED_CC)
$(B)/ded/huffman.o : $(CMDIR)/huffman.c; $(DO_DED_GC)
$(B)/ded/levelManager.o : $(CMDIR)/levelManager.cpp; $(DO_DED_CC)
$(B)/ded/listener.o : $(GDIR)/listener.cpp; $(DO_DED_CC)
$(B)/ded/lip.o : $(CMDIR)/lip.c; $(DO_DED_GC)
$(B)/ded/msg.o : $(CMDIR)/msg.c; $(DO_DED_GC)
$(B)/ded/net_chan.o : $(CMDIR)/net_chan.c; $(DO_DED_GC)
$(B)/ded/output.o : $(CMDIR)/output.cpp; $(DO_DED_CC)
$(B)/ded/q_shared.o : $(GDIR)/q_shared.c; $(DO_DED_GC)
$(B)/ded/memory.o : $(CMDIR)/memory.c; $(DO_DED_GC)
$(B)/ded/q_math.o : $(GDIR)/q_math.c; $(DO_DED_GC)
$(B)/ded/q_mathsys.o : $(GDIR)/q_mathsys.c; $(DO_DED_GC)
$(B)/ded/str.o : $(GDIR)/str.cpp; $(DO_DED_CC)
$(B)/ded/stringresource.o : $(CMDIR)/stringresource.cpp; $(DO_DED_CC)
$(B)/ded/tiki_main.o : $(CMDIR)/tiki_main.cpp; $(DO_DED_CC)
$(B)/ded/tiki_script.o : $(CMDIR)/tiki_script.cpp; $(DO_DED_CC)
$(B)/ded/viewmode.o : $(CMDIR)/viewmode.cpp; $(DO_DED_CC)
$(B)/ded/be_aas_bspq3.o : $(BLIBDIR)/be_aas_bspq3.c; $(DO_BOT_CC)
$(B)/ded/be_aas_cluster.o : $(BLIBDIR)/be_aas_cluster.c; $(DO_BOT_CC)
$(B)/ded/be_aas_debug.o : $(BLIBDIR)/be_aas_debug.c; $(DO_BOT_CC)
$(B)/ded/be_aas_entity.o : $(BLIBDIR)/be_aas_entity.c; $(DO_BOT_CC)
$(B)/ded/be_aas_file.o : $(BLIBDIR)/be_aas_file.c; $(DO_BOT_CC)
$(B)/ded/be_aas_main.o : $(BLIBDIR)/be_aas_main.c; $(DO_BOT_CC)
$(B)/ded/be_aas_move.o : $(BLIBDIR)/be_aas_move.c; $(DO_BOT_CC)
$(B)/ded/be_aas_optimize.o : $(BLIBDIR)/be_aas_optimize.c; $(DO_BOT_CC)
$(B)/ded/be_aas_reach.o : $(BLIBDIR)/be_aas_reach.c; $(DO_BOT_CC)
$(B)/ded/be_aas_route.o : $(BLIBDIR)/be_aas_route.c; $(DO_BOT_CC)
$(B)/ded/be_aas_routealt.o : $(BLIBDIR)/be_aas_routealt.c; $(DO_BOT_CC)
$(B)/ded/be_aas_sample.o : $(BLIBDIR)/be_aas_sample.c; $(DO_BOT_CC)
$(B)/ded/be_ai_char.o : $(BLIBDIR)/be_ai_char.c; $(DO_BOT_CC)
$(B)/ded/be_ai_chat.o : $(BLIBDIR)/be_ai_chat.c; $(DO_BOT_CC)
$(B)/ded/be_ai_gen.o : $(BLIBDIR)/be_ai_gen.c; $(DO_BOT_CC)
$(B)/ded/be_ai_goal.o : $(BLIBDIR)/be_ai_goal.c; $(DO_BOT_CC)
$(B)/ded/be_ai_move.o : $(BLIBDIR)/be_ai_move.c; $(DO_BOT_CC)
$(B)/ded/be_ai_weap.o : $(BLIBDIR)/be_ai_weap.c; $(DO_BOT_CC)
$(B)/ded/be_ai_weight.o : $(BLIBDIR)/be_ai_weight.c; $(DO_BOT_CC)
$(B)/ded/be_ea.o : $(BLIBDIR)/be_ea.c; $(DO_BOT_CC)
$(B)/ded/be_interface.o : $(BLIBDIR)/be_interface.c; $(DO_BOT_CC)
$(B)/ded/l_crc.o : $(BLIBDIR)/l_crc.c; $(DO_BOT_CC)
$(B)/ded/l_libvar.o : $(BLIBDIR)/l_libvar.c; $(DO_BOT_CC)
$(B)/ded/l_log.o : $(BLIBDIR)/l_log.c; $(DO_BOT_CC)
$(B)/ded/l_memory.o : $(BLIBDIR)/l_memory.c; $(DO_BOT_CC)
$(B)/ded/l_precomp.o : $(BLIBDIR)/l_precomp.c; $(DO_BOT_CC)
$(B)/ded/l_script.o : $(BLIBDIR)/l_script.c; $(DO_BOT_CC)
$(B)/ded/l_struct.o : $(BLIBDIR)/l_struct.c; $(DO_BOT_CC)
$(B)/ded/unix_main.o : $(UDIR)/unix_main.c; $(DO_DED_GC)
$(B)/ded/unix_net.o : $(UDIR)/unix_net.c; $(DO_DED_GC)
$(B)/ded/unix_shared.o : $(UDIR)/unix_shared.c; $(DO_DED_GC)
$(B)/ded/null_client.o : $(NDIR)/null_client.c; $(DO_DED_GC)
$(B)/ded/null_cl.o : $(NDIR)/null_cl.cpp; $(DO_DED_CC)
$(B)/ded/null_input.o : $(NDIR)/null_input.c; $(DO_DED_GC)
$(B)/ded/null_snddma.o : $(NDIR)/null_snddma.c; $(DO_DED_GC)
$(B)/ded/unzip.o : $(CMDIR)/unzip.c; $(DO_DED_GC)
#$(B)/ded/vm.o : $(CMDIR)/vm.c; $(DO_DED_CC)
#$(B)/ded/vm_interpreted.o : $(CMDIR)/vm_interpreted.c; $(DO_DED_CC)
#$(B)/ded/vm_x86.o : $(CMDIR)/vm_x86.c $(DO_DED_CC)
#############################################################################
# GAME
#############################################################################
GOBJ =\
$(B)/game/changePosture.o \
$(B)/game/closeInOnEnemy.o \
$(B)/game/closeInOnEnemyWhileFiringWeapon.o \
$(B)/game/closeInOnPlayer.o \
$(B)/game/corridorCombatWithRangedWeapon.o \
$(B)/game/coverCombatWithRangedWeapon.o \
$(B)/game/doAttack.o \
$(B)/game/generalCombatWithMeleeWeapon.o \
$(B)/game/generalCombatWithRangedWeapon.o \
$(B)/game/gotoCurrentHelperNode.o \
$(B)/game/gotoHelperNode.o \
$(B)/game/gotoHelperNodeEX.o \
$(B)/game/gotoHelperNodeNearestEnemy.o \
$(B)/game/healGroupMember.o \
$(B)/game/holdPosition.o \
$(B)/game/MoveRandomDirection.o \
$(B)/game/patrol.o \
$(B)/game/PlayAnim.o \
$(B)/game/rangedCombatWithWeapon.o \
$(B)/game/rotateToEntity.o \
$(B)/game/selectBestWeapon.o \
$(B)/game/snipeEnemy.o \
$(B)/game/stationaryFireCombat.o \
$(B)/game/stationaryFireCombatEX.o \
$(B)/game/suppressionFireCombat.o \
$(B)/game/talk.o \
$(B)/game/teleportToEntity.o \
$(B)/game/teleportToPosition.o \
$(B)/game/torsoAimAndFireWeapon.o \
$(B)/game/useAlarm.o \
$(B)/game/watchEntity.o \
$(B)/game/watchEntityEX.o \
$(B)/game/work.o \
\
$(B)/game/mp_awardsystem.o \
$(B)/game/mp_manager.o \
$(B)/game/mp_modeBase.o \
$(B)/game/mp_modeCtf.o \
$(B)/game/mp_modeDm.o \
$(B)/game/mp_modeTeamBase.o \
$(B)/game/mp_modeTeamDm.o \
$(B)/game/mp_modifiers.o \
$(B)/game/mp_team.o \
\
$(B)/game/ai_chat.o \
$(B)/game/ai_cmd.o \
$(B)/game/ai_dmnet.o \
$(B)/game/ai_dmq3.o \
$(B)/game/ai_main.o \
$(B)/game/ai_team.o \
$(B)/game/ai_vcmd.o \
$(B)/game/g_bot.o \
\
$(B)/game/actor.o \
$(B)/game/actor_combatsubsystem.o \
$(B)/game/actor_enemymanager.o \
$(B)/game/actor_headwatcher.o \
$(B)/game/actor_locomotion.o \
$(B)/game/actor_posturecontroller.o \
$(B)/game/actor_sensoryperception.o \
$(B)/game/actorgamecomponents.o \
$(B)/game/actorstrategies.o \
$(B)/game/actorutil.o \
$(B)/game/ammo.o \
$(B)/game/animate.o \
$(B)/game/archive.o \
$(B)/game/armor.o \
$(B)/game/beam.o \
$(B)/game/behavior.o \
$(B)/game/behaviors_general.o \
$(B)/game/behaviors_specific.o \
$(B)/game/bg_misc.o \
$(B)/game/bg_pmove.o \
$(B)/game/body.o \
$(B)/game/bspline.o \
$(B)/game/camera.o \
$(B)/game/CameraPath.o \
$(B)/game/characterstate.o \
$(B)/game/CinematicArmature.o \
$(B)/game/class.o \
$(B)/game/compiler.o \
$(B)/game/DamageModification.o \
$(B)/game/debuglines.o \
$(B)/game/decals.o \
$(B)/game/dispenser.o \
$(B)/game/doors.o \
$(B)/game/earthquake.o \
$(B)/game/entity.o \
$(B)/game/equipment.o \
$(B)/game/explosion.o \
$(B)/game/FollowPath.o \
$(B)/game/FollowPathToEntity.o \
$(B)/game/FollowPathToPoint.o \
$(B)/game/g_main.o \
$(B)/game/g_phys.o \
$(B)/game/g_spawn.o \
$(B)/game/g_utils.o \
$(B)/game/game.o \
$(B)/game/gamecmds.o \
$(B)/game/gamecvars.o \
$(B)/game/gameplaydatabase.o \
$(B)/game/gameplayformulamanager.o \
$(B)/game/gameplaymanager.o \
$(B)/game/gamescript.o \
$(B)/game/gibs.o \
$(B)/game/globalcmd.o \
$(B)/game/GoDirectlyToPoint.o \
$(B)/game/goo.o \
$(B)/game/gravpath.o \
$(B)/game/groupcoordinator.o \
$(B)/game/health.o \
$(B)/game/helper_node.o \
$(B)/game/interpreter.o \
$(B)/game/inventoryitem.o \
$(B)/game/ipfilter.o \
$(B)/game/item.o \
$(B)/game/level.o \
$(B)/game/lexer.o \
$(B)/game/light.o \
$(B)/game/listener.o \
$(B)/game/misc.o \
$(B)/game/mover.o \
$(B)/game/nature.o \
$(B)/game/navigate.o \
$(B)/game/object.o \
$(B)/game/output.o \
$(B)/game/path.o \
$(B)/game/player.o \
$(B)/game/player_combat.o \
$(B)/game/player_util.o \
$(B)/game/playerheuristics.o \
$(B)/game/PlayerStart.o \
$(B)/game/portal.o \
$(B)/game/powerups.o \
$(B)/game/program.o \
$(B)/game/puzzleobject.o \
$(B)/game/q_math.o \
$(B)/game/q_mathsys.o \
$(B)/game/q_shared.o \
$(B)/game/RageAI.o \
$(B)/game/script.o \
$(B)/game/scriptmaster.o \
$(B)/game/scriptslave.o \
$(B)/game/scriptvariable.o \
$(B)/game/sentient.o \
$(B)/game/shrapnelbomb.o \
$(B)/game/soundman.o \
$(B)/game/spawners.o \
$(B)/game/specialfx.o \
$(B)/game/stationaryvehicle.o \
$(B)/game/steering.o \
$(B)/game/str.o \
$(B)/game/teammateroster.o \
$(B)/game/trigger.o \
$(B)/game/UseData.o \
$(B)/game/vehicle.o \
$(B)/game/viewthing.o \
$(B)/game/waypoints.o \
$(B)/game/weapon.o \
$(B)/game/WeaponDualWield.o \
$(B)/game/weaputils.o \
$(B)/game/worldspawn.o
$(B)/ef2game$(ARCH).$(SHLIBEXT) : $(GOBJ)
$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(GOBJ)
$(B)/game/changePosture.o : $(GDIR)/changePosture.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/closeInOnEnemy.o : $(GDIR)/closeInOnEnemy.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/closeInOnEnemyWhileFiringWeapon.o : $(GDIR)/closeInOnEnemyWhileFiringWeapon.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/closeInOnPlayer.o : $(GDIR)/closeInOnPlayer.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/corridorCombatWithRangedWeapon.o : $(GDIR)/corridorCombatWithRangedWeapon.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/coverCombatWithRangedWeapon.o : $(GDIR)/coverCombatWithRangedWeapon.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/doAttack.o : $(GDIR)/doAttack.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/generalCombatWithMeleeWeapon.o : $(GDIR)/generalCombatWithMeleeWeapon.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/generalCombatWithRangedWeapon.o : $(GDIR)/generalCombatWithRangedWeapon.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gotoCurrentHelperNode.o : $(GDIR)/gotoCurrentHelperNode.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gotoHelperNode.o : $(GDIR)/gotoHelperNode.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gotoHelperNodeEX.o : $(GDIR)/gotoHelperNodeEX.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gotoHelperNodeNearestEnemy.o : $(GDIR)/gotoHelperNodeNearestEnemy.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/healGroupMember.o : $(GDIR)/healGroupMember.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/holdPosition.o : $(GDIR)/holdPosition.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/MoveRandomDirection.o : $(GDIR)/MoveRandomDirection.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/patrol.o : $(GDIR)/patrol.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/PlayAnim.o : $(GDIR)/PlayAnim.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/rangedCombatWithWeapon.o : $(GDIR)/rangedCombatWithWeapon.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/rotateToEntity.o : $(GDIR)/rotateToEntity.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/selectBestWeapon.o : $(GDIR)/selectBestWeapon.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/snipeEnemy.o : $(GDIR)/snipeEnemy.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/stationaryFireCombat.o : $(GDIR)/stationaryFireCombat.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/stationaryFireCombatEX.o : $(GDIR)/stationaryFireCombatEX.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/suppressionFireCombat.o : $(GDIR)/suppressionFireCombat.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/talk.o : $(GDIR)/talk.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/teleportToEntity.o : $(GDIR)/teleportToEntity.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/teleportToPosition.o : $(GDIR)/teleportToPosition.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/torsoAimAndFireWeapon.o : $(GDIR)/torsoAimAndFireWeapon.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/useAlarm.o : $(GDIR)/useAlarm.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/watchEntity.o : $(GDIR)/watchEntity.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/watchEntityEX.o : $(GDIR)/watchEntityEX.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/work.o : $(GDIR)/work.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/mp_awardsystem.o : $(GDIR)/mp_awardsystem.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/mp_manager.o : $(GDIR)/mp_manager.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/mp_modeBase.o : $(GDIR)/mp_modeBase.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/mp_modeCtf.o : $(GDIR)/mp_modeCtf.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/mp_modeDm.o : $(GDIR)/mp_modeDm.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/mp_modeTeamBase.o : $(GDIR)/mp_modeTeamBase.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/mp_modeTeamDm.o : $(GDIR)/mp_modeTeamDm.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/mp_modifiers.o : $(GDIR)/mp_modifiers.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/mp_team.o : $(GDIR)/mp_team.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/ai_chat.o : $(GDIR)/ai_chat.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/ai_cmd.o : $(GDIR)/ai_cmd.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/ai_dmnet.o : $(GDIR)/ai_dmnet.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/ai_dmq3.o : $(GDIR)/ai_dmq3.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/ai_main.o : $(GDIR)/ai_main.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/ai_team.o : $(GDIR)/ai_team.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/ai_vcmd.o : $(GDIR)/ai_vcmd.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/g_bot.o : $(GDIR)/g_bot.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/actor.o : $(GDIR)/actor.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/actor_combatsubsystem.o : $(GDIR)/actor_combatsubsystem.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/actor_enemymanager.o : $(GDIR)/actor_enemymanager.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/actor_headwatcher.o : $(GDIR)/actor_headwatcher.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/actor_locomotion.o : $(GDIR)/actor_locomotion.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/actor_posturecontroller.o : $(GDIR)/actor_posturecontroller.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/actor_sensoryperception.o : $(GDIR)/actor_sensoryperception.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/actorgamecomponents.o : $(GDIR)/actorgamecomponents.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/actorstrategies.o : $(GDIR)/actorstrategies.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/actorutil.o : $(GDIR)/actorutil.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/ammo.o : $(GDIR)/ammo.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/animate.o : $(GDIR)/animate.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/archive.o : $(GDIR)/archive.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/armor.o : $(GDIR)/armor.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/beam.o : $(GDIR)/beam.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/behavior.o : $(GDIR)/behavior.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/behaviors_general.o : $(GDIR)/behaviors_general.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/behaviors_specific.o : $(GDIR)/behaviors_specific.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_GAME_SHLIB_GC)
$(B)/game/bg_pmove.o : $(GDIR)/bg_pmove.c; $(DO_GAME_SHLIB_GC)
$(B)/game/body.o : $(GDIR)/body.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/bspline.o : $(GDIR)/bspline.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/camera.o : $(GDIR)/camera.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/CameraPath.o : $(GDIR)/CameraPath.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/characterstate.o : $(GDIR)/characterstate.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/CinematicArmature.o : $(GDIR)/CinematicArmature.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/class.o : $(GDIR)/class.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/compiler.o : $(GDIR)/compiler.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/DamageModification.o : $(GDIR)/DamageModification.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/debuglines.o : $(GDIR)/debuglines.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/decals.o : $(GDIR)/decals.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/dispenser.o : $(GDIR)/dispenser.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/doors.o : $(GDIR)/doors.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/earthquake.o : $(GDIR)/earthquake.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/entity.o : $(GDIR)/entity.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/equipment.o : $(GDIR)/equipment.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/explosion.o : $(GDIR)/explosion.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/FollowPath.o : $(GDIR)/FollowPath.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/FollowPathToEntity.o : $(GDIR)/FollowPathToEntity.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/FollowPathToPoint.o : $(GDIR)/FollowPathToPoint.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/g_main.o : $(GDIR)/g_main.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/g_phys.o : $(GDIR)/g_phys.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/g_spawn.o : $(GDIR)/g_spawn.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/g_utils.o : $(GDIR)/g_utils.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/game.o : $(GDIR)/game.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gamecmds.o : $(GDIR)/gamecmds.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gamecvars.o : $(GDIR)/gamecvars.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gameplaydatabase.o : $(CMDIR)/gameplaydatabase.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gameplayformulamanager.o : $(CMDIR)/gameplayformulamanager.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gameplaymanager.o : $(CMDIR)/gameplaymanager.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gamescript.o : $(GDIR)/gamescript.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gibs.o : $(GDIR)/gibs.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/globalcmd.o : $(GDIR)/globalcmd.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/GoDirectlyToPoint.o : $(GDIR)/GoDirectlyToPoint.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/goo.o : $(GDIR)/goo.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/gravpath.o : $(GDIR)/gravpath.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/groupcoordinator.o : $(GDIR)/groupcoordinator.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/health.o : $(GDIR)/health.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/helper_node.o : $(GDIR)/helper_node.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/interpreter.o : $(GDIR)/interpreter.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/inventoryitem.o : $(GDIR)/inventoryitem.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/ipfilter.o : $(GDIR)/ipfilter.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/item.o : $(GDIR)/item.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/level.o : $(GDIR)/level.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/lexer.o : $(GDIR)/lexer.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/light.o : $(GDIR)/light.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/listener.o : $(GDIR)/listener.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/misc.o : $(GDIR)/misc.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/mover.o : $(GDIR)/mover.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/nature.o : $(GDIR)/nature.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/navigate.o : $(GDIR)/navigate.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/object.o : $(GDIR)/object.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/output.o : $(CMDIR)/output.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/path.o : $(GDIR)/path.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/player.o : $(GDIR)/player.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/player_combat.o : $(GDIR)/player_combat.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/player_util.o : $(GDIR)/player_util.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/playerheuristics.o : $(GDIR)/playerheuristics.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/PlayerStart.o : $(GDIR)/PlayerStart.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/portal.o : $(GDIR)/portal.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/powerups.o : $(GDIR)/powerups.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/program.o : $(GDIR)/program.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/puzzleobject.o : $(GDIR)/puzzleobject.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/q_math.o : $(GDIR)/q_math.c; $(DO_GAME_SHLIB_GC)
$(B)/game/q_mathsys.o : $(GDIR)/q_mathsys.c; $(DO_GAME_SHLIB_GC)
$(B)/game/q_shared.o : $(GDIR)/q_shared.c; $(DO_GAME_SHLIB_GC)
$(B)/game/RageAI.o : $(GDIR)/RageAI.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/script.o : $(GDIR)/script.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/scriptmaster.o : $(GDIR)/scriptmaster.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/scriptslave.o : $(GDIR)/scriptslave.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/scriptvariable.o : $(GDIR)/scriptvariable.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/sentient.o : $(GDIR)/sentient.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/shrapnelbomb.o : $(GDIR)/shrapnelbomb.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/soundman.o : $(GDIR)/soundman.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/spawners.o : $(GDIR)/spawners.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/specialfx.o : $(GDIR)/specialfx.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/stationaryvehicle.o : $(GDIR)/stationaryvehicle.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/steering.o : $(GDIR)/steering.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/str.o : $(GDIR)/str.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/teammateroster.o : $(GDIR)/teammateroster.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/trigger.o : $(GDIR)/trigger.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/UseData.o : $(GDIR)/UseData.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/vehicle.o : $(GDIR)/vehicle.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/viewthing.o : $(GDIR)/viewthing.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/waypoints.o : $(GDIR)/waypoints.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/weapon.o : $(GDIR)/weapon.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/WeaponDualWield.o : $(GDIR)/WeaponDualWield.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/weaputils.o : $(GDIR)/weaputils.cpp; $(DO_GAME_SHLIB_CC)
$(B)/game/worldspawn.o : $(GDIR)/worldspawn.cpp; $(DO_GAME_SHLIB_CC)
#############################################################################
# RPM
#############################################################################
TMPDIR=/var/tmp
TARDIR=$(TMPDIR)/$(BUILD_NAME)
TARFILE = $(BUILD_NAME)-$(VERSION)-$(RPM_RELEASE).$(ARCH).tar
tar:
if [ ! -d archives ];then mkdir archives;chmod 755 archives;fi
$(MAKE) copyfiles COPYDIR=$(TARDIR)
cd $(TARDIR); tar cvf $(TARFILE) * && gzip -9 $(TARFILE)
mv $(TARDIR)/$(TARFILE).gz archives/.
rm -rf $(TARDIR)
# Make RPMs. You need to be root to make this work
RPMROOT=/usr/src/redhat
RPM = rpm
RPMFLAGS = -bb
INSTALLDIR = /usr/local/games/$(BUILD_NAME)
RPMDIR = $(TMPDIR)/$(BUILD_NAME)-$(VERSION)
DESTDIR= $(RPMDIR)/$(INSTALLDIR)
rpm: $(BUILD_NAME).spec
touch $(RPMROOT)/SOURCES/$(BUILD_NAME)-$(VERSION).tar.gz
if [ ! -d archives ];then mkdir archives;fi
$(MAKE) copyfiles COPYDIR=$(DESTDIR)
cp $(UDIR)/quake3.gif $(RPMROOT)/SOURCES/.
cp $(BUILD_NAME).spec $(RPMROOT)/SPECS/.
cd $(RPMROOT)/SPECS; $(RPM) $(RPMFLAGS) $(BUILD_NAME).spec
rm -rf $(RPMDIR)
mv $(RPMROOT)/RPMS/$(RPMARCH)/$(BUILD_NAME)-$(VERSION)-$(RPM_RELEASE).$(RPMARCH).rpm archives/$(BUILD_NAME)-$(VERSION)-$(RPM_RELEASE).$(RPMARCH).rpm
copyfiles:
-mkdirhier $(COPYDIR)
cp $(BR)/linuxquake3 $(COPYDIR)/quake3.x86
strip $(COPYDIR)/quake3.x86
chmod 755 $(COPYDIR)/quake3.x86
cp $(BR)/linuxq3ded $(COPYDIR)/q3ded
strip $(COPYDIR)/q3ded
chmod 755 $(COPYDIR)/q3ded
cp $(BDIR)/libMesaVoodooGL.so.3.2 $(COPYDIR)/.
chmod 755 $(COPYDIR)/libMesaVoodooGL.so.3.2
( cd $(COPYDIR); ln -s libMesaVoodooGL.so.3.2 libMesaVoodooGL.so )
cp $(BDIR)/Quake_III_Arena_FAQ.html $(COPYDIR)/.
chmod 644 $(COPYDIR)/Quake_III_Arena_FAQ.html
mkdir $(COPYDIR)/baseq3
cp $(BASEQ3_DIR)/pak2.pk3 $(COPYDIR)/baseq3/.
chmod 644 $(COPYDIR)/baseq3/pak2.pk3
$(BUILD_NAME).spec : $(UDIR)/$(BUILD_NAME).spec.sh Makefile
sh $< $(VERSION) $(RPM_RELEASE) $(ARCH) $(INSTALLDIR) > $@
#############################################################################
# MISC
#############################################################################
clean:clean-dedicated
clean-dedicated:
rm -rf $(BR)/ded/*
rm -rf $(BR)/game/*
rm -rf $(BD)/ded/*
rm -rf $(BD)/game/*
#clean:clean-debug clean-release
#clean-debug:
# $(MAKE) clean2 B=$(BD) CFLAGS="$(DEBUG_CFLAGS)"
#clean-release:
# $(MAKE) clean2 B=$(BR) CFLAGS="$(DEBUG_CFLAGS)"