* Tidied up the makefile, mostly for whitespace

* Removed the q3static target
* Ported the nasm asm to gas asm, thus removing the nasm dependancy
This commit is contained in:
Tim Angus 2005-09-23 01:59:42 +00:00
parent fcaf343d7f
commit fa9b864abe
5 changed files with 1200 additions and 1766 deletions

View file

@ -71,12 +71,10 @@ JPDIR=$(MOUNT_DIR)/jpeg-6
SPLNDIR=$(MOUNT_DIR)/splines
# extract version info
VERSION=$(shell cat ../game/q_shared.h | grep Q3_VERSION | sed -e 's/.*Q3\ \(.*\)"/\1/')
VERSION=$(shell grep Q3_VERSION ../game/q_shared.h | \
sed -e 's/.*Q3\ \(.*\)"/\1/')
RPM_RELEASE=1
# NOTE: used by dcp rcp targets, not referenced
#TESTDIR=/home/timo/Id/Quake3-loki/run
#############################################################################
# SETUP AND BUILD -- LINUX
#############################################################################
@ -132,13 +130,19 @@ ifeq ($(PLATFORM),linux)
GL_CFLAGS = -I/usr/X11R6/include
OPTIMIZE = -O3 -ffast-math -funroll-loops -fomit-frame-pointer -fno-strict-aliasing
OPTIMIZE = -O3 -ffast-math -funroll-loops -fomit-frame-pointer \
-fno-strict-aliasing
ifeq ($(ARCH),x86_64)
OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fstrength-reduce -fno-strict-aliasing
OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -falign-loops=2 \
-falign-jumps=2 -falign-functions=2 -fstrength-reduce \
-fno-strict-aliasing
BASE_CFLAGS += -DHAVE_VM_NATIVE
else
ifeq ($(ARCH),i386)
OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fstrength-reduce
OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math \
-falign-loops=2 -falign-jumps=2 -falign-functions=2 \
-fno-strict-aliasing -fstrength-reduce
BASE_CFLAGS += -DHAVE_VM_NATIVE -DHAVE_VM_COMPILED
else
ifeq ($(ARCH),ppc)
@ -209,8 +213,6 @@ ifeq ($(PLATFORM),linux)
endif
## $(B)/$(PLATFORM)q3static \
else # ifeq Linux
#############################################################################
@ -241,7 +243,8 @@ endif
GL_CFLAGS =
MINGW_CFLAGS = -DDONT_TYPEDEF_INT32
OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fstrength-reduce
OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math -falign-loops=2 \
-falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fstrength-reduce
BASE_CFLAGS += -DHAVE_VM_NATIVE -DHAVE_VM_COMPILED
DEBUG_CFLAGS=$(BASE_CFLAGS) -g -O0
@ -313,15 +316,17 @@ BASE_CFLAGS = -pipe
GL_CFLAGS = -I/usr/X11R6/include
DEBUG_CFLAGS=$(BASE_CFLAGS) -g -Wall -Werror
ifeq ($(ARCH),axp)
CC=pgcc
RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations
RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -ffast-math -funroll-loops \
-fomit-frame-pointer -fexpensive-optimizations
else
#NEWPGCC=/loki/global/x86/bin/gcc # raistlin012301
#NEWPGCC=/usr/local/gcc-2.95.2/bin/gcc
NEWPGCC=/home/raistllin/src/gcc/build/install/bin/gcc
CC=$(shell if [ -f $(NEWPGCC) ]; then echo $(NEWPGCC); else echo pgcc; fi )
RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -mtune=pentiumpro -march=pentium -fomit-frame-pointer -pipe -ffast-math -malign-loops=2 -malign-jumps=2 -malign-functions=2 -fno-strict-aliasing - fstrength-reduce
CC=pgcc
RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -mtune=pentiumpro \
-march=pentium -fomit-frame-pointer -pipe -ffast-math \
-malign-loops=2 -malign-jumps=2 -malign-functions=2 \
-fno-strict-aliasing - fstrength-reduce
endif
LIBEXT=a
@ -336,6 +341,7 @@ RANLIB=ranlib
THREAD_LDFLAGS=-lpthread
# don't need -ldl (FreeBSD)
LDFLAGS=-lm
#GLLDFLAGS=-L/usr/X11R6/lib -L$(MESADIR)/lib -lGL -lX11 -lXext -lXxf86dga -lXxf86vm
#GLLDFLAGS=-L/usr/X11/lib -lGL -lX11 -lXext -lm
GLLDFLAGS=-L/usr/X11R6/$(LIB) -lGL -lX11 -lXext -lXxf86dga -lXxf86vm
@ -432,7 +438,6 @@ DO_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) -o $@ -c $<
DO_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
DO_SHLIB_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
DO_NASM=nasm -f elf -o $@ $<
DO_DED_CC=$(CC) -DDEDICATED -DC_ONLY $(CFLAGS) -o $@ -c $<
DO_WINDRES=$(WINDRES) -i $< -o $@
@ -636,8 +641,6 @@ Q3OBJ = \
endif
endif
# $(B)/client/jctrans.o \
#platform specific objects
ifeq ($(PLATFORM),freebsd)
Q3POBJ=\
@ -716,8 +719,8 @@ else
$(B)/client/matha.o
ifeq ($(ARCH),i386)
Q3POBJ += $(B)/client/ftol.o $(B)/client/snapvector.o
Q3POBJ_SMP += $(B)/client/ftol.o $(B)/client/snapvector.o
Q3POBJ += $(B)/client/ftola.o $(B)/client/snapvectora.o
Q3POBJ_SMP += $(B)/client/ftola.o $(B)/client/snapvectora.o
endif
endif #Linux-axp
@ -728,7 +731,9 @@ endif #FreeBSD
$(B)/$(PLATFORM)quake3 : $(Q3OBJ) $(Q3POBJ)
$(CC) -o $@ $(Q3OBJ) $(Q3POBJ) $(GLLDFLAGS) $(LDFLAGS)
# TTimo: splines code requires C++ linking, but splines have not been officially included in the codebase
# TTimo: splines code requires C++ linking, but splines have
# not been officially included in the codebase
# $(CXX) -o $@ $(Q3OBJ) $(Q3POBJ) $(GLLDFLAGS) $(LDFLAGS)
$(B)/$(PLATFORM)quake3-smp : $(Q3OBJ) $(Q3POBJ_SMP)
@ -887,6 +892,8 @@ $(B)/client/linux_snd.o : $(UDIR)/linux_snd.c; $(DO_CC)
$(B)/client/sdl_snd.o : $(UDIR)/sdl_snd.c; $(DO_CC)
$(B)/client/snd_mixa.o : $(UDIR)/snd_mixa.s; $(DO_AS)
$(B)/client/matha.o : $(UDIR)/matha.s; $(DO_AS)
$(B)/client/ftola.o : $(UDIR)/ftola.s; $(DO_AS)
$(B)/client/snapvectora.o : $(UDIR)/snapvectora.s; $(DO_AS)
$(B)/client/win_gamma.o : $(W32DIR)/win_gamma.c; $(DO_CC) $(DX_CFLAGS)
$(B)/client/win_glimp.o : $(W32DIR)/win_glimp.c; $(DO_CC) $(DX_CFLAGS)
@ -900,25 +907,9 @@ $(B)/client/win_syscon.o : $(W32DIR)/win_syscon.c; $(DO_CC) $(DX_CFLAGS)
$(B)/client/win_wndproc.o : $(W32DIR)/win_wndproc.c; $(DO_CC) $(DX_CFLAGS)
$(B)/client/win_resource.o : $(W32DIR)/winquake.rc; $(DO_WINDRES)
ifeq ($(ARCH),i386)
$(B)/client/ftol.o : $(UDIR)/ftol.nasm; $(DO_NASM)
$(B)/client/snapvector.o : $(UDIR)/snapvector.nasm; $(DO_NASM)
$(B)/client/vm_x86.o : $(CMDIR)/vm_x86.c; $(DO_CC)
endif
ifeq ($(ARCH),x86)
$(B)/client/vm_x86.o : $(CMDIR)/vm_x86.c; $(DO_CC)
endif
ifeq ($(ARCH),x86_64)
$(B)/client/vm_none.o : $(CMDIR)/vm_none.c; $(DO_CC)
endif
ifeq ($(ARCH),ppc)
ifeq ($(DLL_ONLY),false)
$(B)/client/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_CC)
endif
endif
$(B)/client/unzip.o : $(CMDIR)/unzip.c; $(DO_CC)
$(B)/client/vm.o : $(CMDIR)/vm.c; $(DO_CC)
@ -1000,7 +991,7 @@ Q3DOBJ = \
$(B)/ded/null_snddma.o
ifeq ($(ARCH),i386)
Q3DOBJ += $(B)/ded/vm_x86.o $(B)/ded/ftol.o $(B)/ded/snapvector.o
Q3DOBJ += $(B)/ded/vm_x86.o $(B)/ded/ftola.o $(B)/ded/snapvectora.o
endif
ifeq ($(ARCH),x86_64)
@ -1083,21 +1074,12 @@ $(B)/ded/unzip.o : $(CMDIR)/unzip.c; $(DO_DED_CC)
$(B)/ded/vm.o : $(CMDIR)/vm.c; $(DO_DED_CC)
$(B)/ded/vm_interpreted.o : $(CMDIR)/vm_interpreted.c; $(DO_DED_CC)
ifeq ($(ARCH),i386)
$(B)/ded/ftola.o : $(UDIR)/ftola.s; $(DO_AS)
$(B)/ded/snapvectora.o : $(UDIR)/snapvectora.s; $(DO_AS)
$(B)/ded/vm_x86.o : $(CMDIR)/vm_x86.c; $(DO_DED_CC)
$(B)/ded/ftol.o : $(UDIR)/ftol.nasm; $(DO_NASM)
$(B)/ded/snapvector.o : $(UDIR)/snapvector.nasm; $(DO_NASM)
endif
ifeq ($(ARCH),x86_64)
$(B)/ded/vm_none.o : $(CMDIR)/vm_none.c; $(DO_DED_CC)
endif
ifeq ($(ARCH),ppc)
ifeq ($(DLL_ONLY),false)
$(B)/ded/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_DED_CC)
endif
endif
#############################################################################
@ -1528,19 +1510,6 @@ MPUIOBJ = \
\
$(B)/missionpack/ui/q_math.o \
$(B)/missionpack/ui/q_shared.o
# $(B)/missionpack/ui/ui_atoms.o \
# $(B)/missionpack/ui/ui_gameinfo.o \
# $(B)/missionpack/ui/ui_main.o \
# $(B)/missionpack/ui/ui_players.o \
# $(B)/missionpack/ui/ui_syscalls.o \
# $(B)/missionpack/ui/ui_util.o \
# $(B)/missionpack/ui/ui_shared.o \
# \
# $(B)/missionpack/ui/bg_misc.o \
# $(B)/missionpack/ui/bg_lib.o \
# \
# $(B)/missionpack/ui/q_math.o \
# $(B)/missionpack/ui/q_shared.o
$(B)/missionpack/ui$(ARCH).$(SHLIBEXT) : $(MPUIOBJ)
$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(MPUIOBJ)
@ -1560,560 +1529,6 @@ $(B)/missionpack/ui/q_math.o : $(GDIR)/q_math.c; $(DO_SHLIB_CC) -DMISSIONPAC
$(B)/missionpack/ui/q_shared.o : $(GDIR)/q_shared.c; $(DO_SHLIB_CC) -DMISSIONPACK
#############################################################################
## Q3 STATIC (DEBUG) BUILD
#############################################################################
Q3SOBJ = \
$(B)/q3static/cl_cgame.o \
$(B)/q3static/cl_cin.o \
$(B)/q3static/cl_console.o \
$(B)/q3static/cl_input.o \
$(B)/q3static/cl_keys.o \
$(B)/q3static/cl_main.o \
$(B)/q3static/cl_net_chan.o \
$(B)/q3static/cl_parse.o \
$(B)/q3static/cl_scrn.o \
$(B)/q3static/cl_ui.o \
\
$(B)/q3static/cm_load.o \
$(B)/q3static/cm_patch.o \
$(B)/q3static/cm_polylib.o \
$(B)/q3static/cm_test.o \
$(B)/q3static/cm_trace.o \
\
$(B)/q3static/cmd.o \
$(B)/q3static/common.o \
$(B)/q3static/cvar.o \
$(B)/q3static/files.o \
$(B)/q3static/md4.o \
$(B)/q3static/msg.o \
$(B)/q3static/net_chan.o \
\
$(B)/q3static/snd_adpcm.o \
$(B)/q3static/snd_dma.o \
$(B)/q3static/snd_mem.o \
$(B)/q3static/snd_mix.o \
$(B)/q3static/snd_wavelet.o \
\
$(B)/q3static/sv_bot.o \
$(B)/q3static/sv_ccmds.o \
$(B)/q3static/sv_client.o \
$(B)/q3static/sv_game.o \
$(B)/q3static/sv_init.o \
$(B)/q3static/sv_main.o \
$(B)/q3static/sv_net_chan.o \
$(B)/q3static/sv_snapshot.o \
$(B)/q3static/sv_world.o \
\
$(B)/q3static/unzip.o \
$(B)/q3static/vm.o \
$(B)/q3static/vm_interpreted.o \
\
$(B)/q3static/be_aas_bspq3.o \
$(B)/q3static/be_aas_cluster.o \
$(B)/q3static/be_aas_debug.o \
$(B)/q3static/be_aas_entity.o \
$(B)/q3static/be_aas_file.o \
$(B)/q3static/be_aas_main.o \
$(B)/q3static/be_aas_move.o \
$(B)/q3static/be_aas_optimize.o \
$(B)/q3static/be_aas_reach.o \
$(B)/q3static/be_aas_route.o \
$(B)/q3static/be_aas_routealt.o \
$(B)/q3static/be_aas_sample.o \
$(B)/q3static/be_ai_char.o \
$(B)/q3static/be_ai_chat.o \
$(B)/q3static/be_ai_gen.o \
$(B)/q3static/be_ai_goal.o \
$(B)/q3static/be_ai_move.o \
$(B)/q3static/be_ai_weap.o \
$(B)/q3static/be_ai_weight.o \
$(B)/q3static/be_ea.o \
$(B)/q3static/be_interface.o \
$(B)/q3static/l_crc.o \
$(B)/q3static/l_libvar.o \
$(B)/q3static/l_log.o \
$(B)/q3static/l_memory.o \
$(B)/q3static/l_precomp.o \
$(B)/q3static/l_script.o \
$(B)/q3static/l_struct.o \
\
$(B)/q3static/jcapimin.o \
$(B)/q3static/jchuff.o \
$(B)/q3static/jcinit.o \
$(B)/q3static/jccoefct.o \
$(B)/q3static/jccolor.o \
$(B)/q3static/jfdctflt.o \
$(B)/q3static/jcdctmgr.o \
$(B)/q3static/jcphuff.o \
$(B)/q3static/jcmainct.o \
$(B)/q3static/jcmarker.o \
$(B)/q3static/jcmaster.o \
$(B)/q3static/jcomapi.o \
$(B)/q3static/jcparam.o \
$(B)/q3static/jcprepct.o \
$(B)/q3static/jcsample.o \
$(B)/q3static/jdapimin.o \
$(B)/q3static/jdapistd.o \
$(B)/q3static/jdatasrc.o \
$(B)/q3static/jdcoefct.o \
$(B)/q3static/jdcolor.o \
$(B)/q3static/jddctmgr.o \
$(B)/q3static/jdhuff.o \
$(B)/q3static/jdinput.o \
$(B)/q3static/jdmainct.o \
$(B)/q3static/jdmarker.o \
$(B)/q3static/jdmaster.o \
$(B)/q3static/jdpostct.o \
$(B)/q3static/jdsample.o \
$(B)/q3static/jdtrans.o \
$(B)/q3static/jerror.o \
$(B)/q3static/jidctflt.o \
$(B)/q3static/jmemmgr.o \
$(B)/q3static/jmemnobs.o \
$(B)/q3static/jutils.o \
\
$(B)/q3static/tr_animation.o \
$(B)/q3static/tr_backend.o \
$(B)/q3static/tr_bsp.o \
$(B)/q3static/tr_cmds.o \
$(B)/q3static/tr_curve.o \
$(B)/q3static/tr_flares.o \
$(B)/q3static/tr_font.o \
$(B)/q3static/tr_image.o \
$(B)/q3static/tr_init.o \
$(B)/q3static/tr_light.o \
$(B)/q3static/tr_main.o \
$(B)/q3static/tr_marks.o \
$(B)/q3static/tr_mesh.o \
$(B)/q3static/tr_model.o \
$(B)/q3static/tr_noise.o \
$(B)/q3static/tr_scene.o \
$(B)/q3static/tr_shade.o \
$(B)/q3static/tr_shade_calc.o \
$(B)/q3static/tr_shader.o \
$(B)/q3static/tr_shadows.o \
$(B)/q3static/tr_sky.o \
$(B)/q3static/tr_surface.o \
$(B)/q3static/tr_world.o \
\
$(B)/q3static/unix_main.o \
$(B)/q3static/unix_net.o \
$(B)/q3static/unix_shared.o \
\
$(B)/q3static/linux_qgl.o \
$(B)/q3static/sdl_glimp.o \
$(B)/q3static/linux_glimp.o \
$(B)/q3static/linux_joystick.o \
$(B)/q3static/linux_snd.o \
$(B)/q3static/sdl_snd.o \
$(B)/q3static/snd_mixa.o \
$(B)/q3static/matha.o
ifeq ($(ARCH),i386)
Q3SOBJ += $(B)/q3static/vm_x86.o
endif
ifeq ($(ARCH),x86_64)
Q3SOBJ += $(B)/q3static/vm_none.o
endif
ifeq ($(ARCH),ppc)
ifeq ($(DLL_ONLY),false)
Q3SOBJ += $(B)/q3static/$(VM_PPC).o
endif
endif
$(B)/q3static/cl_cgame.o : $(CDIR)/cl_cgame.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cl_cin.o : $(CDIR)/cl_cin.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cl_console.o : $(CDIR)/cl_console.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cl_input.o : $(CDIR)/cl_input.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cl_keys.o : $(CDIR)/cl_keys.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cl_main.o : $(CDIR)/cl_main.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cl_net_chan.o : $(CDIR)/cl_net_chan.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cl_parse.o : $(CDIR)/cl_parse.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cl_scrn.o : $(CDIR)/cl_scrn.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cl_ui.o : $(CDIR)/cl_ui.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/snd_adpcm.o : $(CDIR)/snd_adpcm.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/snd_dma.o : $(CDIR)/snd_dma.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/snd_mem.o : $(CDIR)/snd_mem.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/snd_mix.o : $(CDIR)/snd_mix.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/snd_wavelet.o : $(CDIR)/snd_wavelet.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sv_bot.o : $(SDIR)/sv_bot.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sv_client.o : $(SDIR)/sv_client.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sv_ccmds.o : $(SDIR)/sv_ccmds.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sv_game.o : $(SDIR)/sv_game.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sv_init.o : $(SDIR)/sv_init.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sv_main.o : $(SDIR)/sv_main.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sv_net_chan.o : $(SDIR)/sv_net_chan.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sv_snapshot.o : $(SDIR)/sv_snapshot.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sv_world.o : $(SDIR)/sv_world.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cm_trace.o : $(CMDIR)/cm_trace.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cm_load.o : $(CMDIR)/cm_load.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cm_test.o : $(CMDIR)/cm_test.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cm_patch.o : $(CMDIR)/cm_patch.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cm_polylib.o : $(CMDIR)/cm_polylib.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cmd.o : $(CMDIR)/cmd.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/common.o : $(CMDIR)/common.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cvar.o : $(CMDIR)/cvar.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/files.o : $(CMDIR)/files.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/md4.o : $(CMDIR)/md4.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/msg.o : $(CMDIR)/msg.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/net_chan.o : $(CMDIR)/net_chan.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/be_aas_bspq3.o : $(BLIBDIR)/be_aas_bspq3.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_cluster.o : $(BLIBDIR)/be_aas_cluster.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_debug.o : $(BLIBDIR)/be_aas_debug.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_entity.o : $(BLIBDIR)/be_aas_entity.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_file.o : $(BLIBDIR)/be_aas_file.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_main.o : $(BLIBDIR)/be_aas_main.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_move.o : $(BLIBDIR)/be_aas_move.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_optimize.o : $(BLIBDIR)/be_aas_optimize.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_reach.o : $(BLIBDIR)/be_aas_reach.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_route.o : $(BLIBDIR)/be_aas_route.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_routealt.o : $(BLIBDIR)/be_aas_routealt.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_aas_sample.o : $(BLIBDIR)/be_aas_sample.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_ai_char.o : $(BLIBDIR)/be_ai_char.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_ai_chat.o : $(BLIBDIR)/be_ai_chat.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_ai_gen.o : $(BLIBDIR)/be_ai_gen.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_ai_goal.o : $(BLIBDIR)/be_ai_goal.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_ai_move.o : $(BLIBDIR)/be_ai_move.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_ai_weap.o : $(BLIBDIR)/be_ai_weap.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_ai_weight.o : $(BLIBDIR)/be_ai_weight.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_ea.o : $(BLIBDIR)/be_ea.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/be_interface.o : $(BLIBDIR)/be_interface.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/l_crc.o : $(BLIBDIR)/l_crc.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/l_libvar.o : $(BLIBDIR)/l_libvar.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/l_log.o : $(BLIBDIR)/l_log.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/l_memory.o : $(BLIBDIR)/l_memory.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/l_precomp.o : $(BLIBDIR)/l_precomp.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/l_script.o : $(BLIBDIR)/l_script.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/l_struct.o : $(BLIBDIR)/l_struct.c; $(DO_BOT_CC) -DQ3_STATIC
$(B)/q3static/jcapimin.o : $(JPDIR)/jcapimin.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jchuff.o : $(JPDIR)/jchuff.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jcinit.o : $(JPDIR)/jcinit.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jccoefct.o : $(JPDIR)/jccoefct.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jccolor.o : $(JPDIR)/jccolor.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jfdctflt.o : $(JPDIR)/jfdctflt.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jcdctmgr.o : $(JPDIR)/jcdctmgr.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jcmainct.o : $(JPDIR)/jcmainct.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jcmarker.o : $(JPDIR)/jcmarker.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jcmaster.o : $(JPDIR)/jcmaster.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jcomapi.o : $(JPDIR)/jcomapi.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jcparam.o : $(JPDIR)/jcparam.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jcprepct.o : $(JPDIR)/jcprepct.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jcsample.o : $(JPDIR)/jcsample.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdapimin.o : $(JPDIR)/jdapimin.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdapistd.o : $(JPDIR)/jdapistd.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdatasrc.o : $(JPDIR)/jdatasrc.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdcoefct.o : $(JPDIR)/jdcoefct.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdcolor.o : $(JPDIR)/jdcolor.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jcphuff.o : $(JPDIR)/jcphuff.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jddctmgr.o : $(JPDIR)/jddctmgr.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdhuff.o : $(JPDIR)/jdhuff.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdinput.o : $(JPDIR)/jdinput.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdmainct.o : $(JPDIR)/jdmainct.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdmarker.o : $(JPDIR)/jdmarker.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdmaster.o : $(JPDIR)/jdmaster.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdpostct.o : $(JPDIR)/jdpostct.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdsample.o : $(JPDIR)/jdsample.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jdtrans.o : $(JPDIR)/jdtrans.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jerror.o : $(JPDIR)/jerror.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jidctflt.o : $(JPDIR)/jidctflt.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jmemmgr.o : $(JPDIR)/jmemmgr.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jmemnobs.o : $(JPDIR)/jmemnobs.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/jutils.o : $(JPDIR)/jutils.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_bsp.o : $(RDIR)/tr_bsp.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_animation.o : $(RDIR)/tr_animation.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_backend.o : $(RDIR)/tr_backend.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_cmds.o : $(RDIR)/tr_cmds.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_curve.o : $(RDIR)/tr_curve.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_flares.o : $(RDIR)/tr_flares.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_font.o : $(RDIR)/tr_font.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_image.o : $(RDIR)/tr_image.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_init.o : $(RDIR)/tr_init.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_light.o : $(RDIR)/tr_light.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_main.o : $(RDIR)/tr_main.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_marks.o : $(RDIR)/tr_marks.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_mesh.o : $(RDIR)/tr_mesh.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_model.o : $(RDIR)/tr_model.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_noise.o : $(RDIR)/tr_noise.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_scene.o : $(RDIR)/tr_scene.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_shade.o : $(RDIR)/tr_shade.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_shader.o : $(RDIR)/tr_shader.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_shade_calc.o : $(RDIR)/tr_shade_calc.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_shadows.o : $(RDIR)/tr_shadows.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_sky.o : $(RDIR)/tr_sky.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_smp.o : $(RDIR)/tr_smp.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_stripify.o : $(RDIR)/tr_stripify.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_subdivide.o : $(RDIR)/tr_subdivide.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_surface.o : $(RDIR)/tr_surface.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/tr_world.o : $(RDIR)/tr_world.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/unix_qgl.o : $(UDIR)/unix_qgl.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/unix_main.o : $(UDIR)/unix_main.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/unix_net.o : $(UDIR)/unix_net.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/unix_shared.o : $(UDIR)/unix_shared.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sdl_glimp.o : $(UDIR)/sdl_glimp.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/linux_glimp.o : $(UDIR)/linux_glimp.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/linux_joystick.o : $(UDIR)/linux_joystick.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/linux_qgl.o : $(UDIR)/linux_qgl.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/linux_input.o : $(UDIR)/linux_input.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/linux_snd.o : $(UDIR)/linux_snd.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sdl_snd.o : $(UDIR)/sdl_snd.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/snd_mixa.o : $(UDIR)/snd_mixa.s; $(DO_AS)
$(B)/q3static/matha.o : $(UDIR)/matha.s; $(DO_AS)
$(B)/q3static/unzip.o : $(CMDIR)/unzip.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/vm.o : $(CMDIR)/vm.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/vm_interpreted.o : $(CMDIR)/vm_interpreted.c; $(DO_CC) -DQ3_STATIC
ifeq ($(ARCH),i386)
$(B)/q3static/vm_x86.o : $(CMDIR)/vm_x86.c; $(DO_CC) -DQ3_STATIC
endif
ifeq ($(ARCH),x86_64)
$(B)/q3static/vm_none.o : $(CMDIR)/vm_none.c; $(DO_CC) -DQ3_STATIC
endif
ifeq ($(ARCH),ppc)
ifeq ($(DLL_ONLY),false)
$(B)/q3static/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_CC) -DQ3_STATIC
endif
endif
$(B)/q3static/ahoptim.o : $(FTDIR)/ahoptim.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/autohint.o : $(FTDIR)/autohint.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ftbase.o : $(FTDIR)/ftbase.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ftdebug.o : $(FTDIR)/ftdebug.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ftglyph.o : $(FTDIR)/ftglyph.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ftinit.o : $(FTDIR)/ftinit.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ftmm.o : $(FTDIR)/ftmm.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ftsystem.o : $(FTDIR)/ftsystem.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/raster1.o : $(FTDIR)/raster1.c; $(DO_CC) -DQ3_STATIC -DFT_FLAT_COMPILE
$(B)/q3static/sfnt.o : $(FTDIR)/sfnt.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/sfobjs.o : $(FTDIR)/sfobjs.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/smooth.o : $(FTDIR)/smooth.c; $(DO_CC) -DQ3_STATIC -DFT_FLAT_COMPILE
$(B)/q3static/truetype.o : $(FTDIR)/truetype.c; $(DO_CC) -DQ3_STATIC
## add BASEQ3 CGAME
Q3SOBJ += \
$(B)/q3static/cg_consolecmds.o \
$(B)/q3static/cg_draw.o \
$(B)/q3static/cg_drawtools.o \
$(B)/q3static/cg_effects.o \
$(B)/q3static/cg_ents.o \
$(B)/q3static/cg_event.o \
$(B)/q3static/cg_info.o \
$(B)/q3static/cg_localents.o \
$(B)/q3static/cg_main.o \
$(B)/q3static/cg_marks.o \
$(B)/q3static/cg_players.o \
$(B)/q3static/cg_playerstate.o \
$(B)/q3static/cg_predict.o \
$(B)/q3static/cg_scoreboard.o \
$(B)/q3static/cg_servercmds.o \
$(B)/q3static/cg_snapshot.o \
$(B)/q3static/cg_syscalls.o \
$(B)/q3static/cg_view.o \
$(B)/q3static/cg_weapons.o
$(B)/q3static/cg_consolecmds.o : $(CGDIR)/cg_consolecmds.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_draw.o : $(CGDIR)/cg_draw.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_drawtools.o : $(CGDIR)/cg_drawtools.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_effects.o : $(CGDIR)/cg_effects.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_ents.o : $(CGDIR)/cg_ents.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_event.o : $(CGDIR)/cg_event.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_info.o : $(CGDIR)/cg_info.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_localents.o : $(CGDIR)/cg_localents.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_main.o : $(CGDIR)/cg_main.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_marks.o : $(CGDIR)/cg_marks.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_players.o : $(CGDIR)/cg_players.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_playerstate.o : $(CGDIR)/cg_playerstate.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_predict.o : $(CGDIR)/cg_predict.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_scoreboard.o : $(CGDIR)/cg_scoreboard.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_servercmds.o : $(CGDIR)/cg_servercmds.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_snapshot.o : $(CGDIR)/cg_snapshot.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_syscalls.o : $(CGDIR)/cg_syscalls.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_view.o : $(CGDIR)/cg_view.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/cg_weapons.o : $(CGDIR)/cg_weapons.c; $(DO_CC) -DQ3_STATIC
## add BASEQ3 GAME
Q3SOBJ += \
$(B)/q3static/ai_chat.o \
$(B)/q3static/ai_cmd.o \
$(B)/q3static/ai_dmnet.o \
$(B)/q3static/ai_dmq3.o \
$(B)/q3static/ai_main.o \
$(B)/q3static/ai_team.o \
$(B)/q3static/ai_vcmd.o \
$(B)/q3static/g_active.o \
$(B)/q3static/g_arenas.o \
$(B)/q3static/g_bot.o \
$(B)/q3static/g_client.o \
$(B)/q3static/g_cmds.o \
$(B)/q3static/g_combat.o \
$(B)/q3static/g_items.o \
$(B)/q3static/g_main.o \
$(B)/q3static/g_mem.o \
$(B)/q3static/g_misc.o \
$(B)/q3static/g_missile.o \
$(B)/q3static/g_mover.o \
$(B)/q3static/g_session.o \
$(B)/q3static/g_spawn.o \
$(B)/q3static/g_svcmds.o \
$(B)/q3static/g_target.o \
$(B)/q3static/g_team.o \
$(B)/q3static/g_trigger.o \
$(B)/q3static/g_utils.o \
$(B)/q3static/g_weapon.o \
\
$(B)/q3static/g_syscalls.o
$(B)/q3static/ai_chat.o : $(GDIR)/ai_chat.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ai_cmd.o : $(GDIR)/ai_cmd.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ai_dmnet.o : $(GDIR)/ai_dmnet.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ai_dmq3.o : $(GDIR)/ai_dmq3.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ai_main.o : $(GDIR)/ai_main.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ai_team.o : $(GDIR)/ai_team.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ai_vcmd.o : $(GDIR)/ai_vcmd.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_active.o : $(GDIR)/g_active.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_arenas.o : $(GDIR)/g_arenas.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_bot.o : $(GDIR)/g_bot.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_client.o : $(GDIR)/g_client.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_cmds.o : $(GDIR)/g_cmds.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_combat.o : $(GDIR)/g_combat.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_items.o : $(GDIR)/g_items.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_main.o : $(GDIR)/g_main.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_mem.o : $(GDIR)/g_mem.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_misc.o : $(GDIR)/g_misc.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_missile.o : $(GDIR)/g_missile.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_mover.o : $(GDIR)/g_mover.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_session.o : $(GDIR)/g_session.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_spawn.o : $(GDIR)/g_spawn.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_svcmds.o : $(GDIR)/g_svcmds.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_syscalls.o : $(GDIR)/g_syscalls.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_target.o : $(GDIR)/g_target.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_team.o : $(GDIR)/g_team.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_trigger.o : $(GDIR)/g_trigger.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_utils.o : $(GDIR)/g_utils.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/g_weapon.o : $(GDIR)/g_weapon.c; $(DO_CC) -DQ3_STATIC
## add BASEQ3 UI
Q3SOBJ += \
$(B)/q3static/ui_addbots.o \
$(B)/q3static/ui_atoms.o \
$(B)/q3static/ui_cdkey.o \
$(B)/q3static/ui_cinematics.o \
$(B)/q3static/ui_confirm.o \
$(B)/q3static/ui_connect.o \
$(B)/q3static/ui_controls2.o \
$(B)/q3static/ui_credits.o \
$(B)/q3static/ui_demo2.o \
$(B)/q3static/ui_display.o \
$(B)/q3static/ui_gameinfo.o \
$(B)/q3static/ui_ingame.o \
$(B)/q3static/ui_loadconfig.o \
$(B)/q3static/ui_main.o \
$(B)/q3static/ui_menu.o \
$(B)/q3static/ui_mfield.o \
$(B)/q3static/ui_mods.o \
$(B)/q3static/ui_network.o \
$(B)/q3static/ui_options.o \
$(B)/q3static/ui_playermodel.o \
$(B)/q3static/ui_players.o \
$(B)/q3static/ui_playersettings.o \
$(B)/q3static/ui_preferences.o \
$(B)/q3static/ui_qmenu.o \
$(B)/q3static/ui_removebots.o \
$(B)/q3static/ui_saveconfig.o \
$(B)/q3static/ui_serverinfo.o \
$(B)/q3static/ui_servers2.o \
$(B)/q3static/ui_setup.o \
$(B)/q3static/ui_sound.o \
$(B)/q3static/ui_sparena.o \
$(B)/q3static/ui_specifyserver.o \
$(B)/q3static/ui_splevel.o \
$(B)/q3static/ui_sppostgame.o \
$(B)/q3static/ui_spskill.o \
$(B)/q3static/ui_startserver.o \
$(B)/q3static/ui_team.o \
$(B)/q3static/ui_teamorders.o \
$(B)/q3static/ui_video.o \
\
$(B)/q3static/ui_syscalls.o
$(B)/q3static/ui_addbots.o : $(Q3UIDIR)/ui_addbots.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_atoms.o : $(Q3UIDIR)/ui_atoms.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_cinematics.o : $(Q3UIDIR)/ui_cinematics.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_cdkey.o : $(Q3UIDIR)/ui_cdkey.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_confirm.o : $(Q3UIDIR)/ui_confirm.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_connect.o : $(Q3UIDIR)/ui_connect.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_controls2.o : $(Q3UIDIR)/ui_controls2.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_credits.o : $(Q3UIDIR)/ui_credits.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_demo2.o : $(Q3UIDIR)/ui_demo2.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_display.o : $(Q3UIDIR)/ui_display.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_gameinfo.o : $(Q3UIDIR)/ui_gameinfo.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_ingame.o : $(Q3UIDIR)/ui_ingame.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_loadconfig.o : $(Q3UIDIR)/ui_loadconfig.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_main.o : $(Q3UIDIR)/ui_main.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_menu.o : $(Q3UIDIR)/ui_menu.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_mfield.o : $(Q3UIDIR)/ui_mfield.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_mods.o : $(Q3UIDIR)/ui_mods.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_network.o : $(Q3UIDIR)/ui_network.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_options.o : $(Q3UIDIR)/ui_options.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_playermodel.o : $(Q3UIDIR)/ui_playermodel.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_players.o : $(Q3UIDIR)/ui_players.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_playersettings.o : $(Q3UIDIR)/ui_playersettings.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_preferences.o : $(Q3UIDIR)/ui_preferences.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_qmenu.o : $(Q3UIDIR)/ui_qmenu.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_quit.o : $(Q3UIDIR)/ui_quit.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_removebots.o : $(Q3UIDIR)/ui_removebots.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_saveconfig.o : $(Q3UIDIR)/ui_saveconfig.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_serverinfo.o : $(Q3UIDIR)/ui_serverinfo.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_servers2.o : $(Q3UIDIR)/ui_servers2.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_setup.o : $(Q3UIDIR)/ui_setup.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_sound.o : $(Q3UIDIR)/ui_sound.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_sparena.o : $(Q3UIDIR)/ui_sparena.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_specifyserver.o : $(Q3UIDIR)/ui_specifyserver.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_splevel.o : $(Q3UIDIR)/ui_splevel.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_sppostgame.o : $(Q3UIDIR)/ui_sppostgame.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_spskill.o : $(Q3UIDIR)/ui_spskill.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_startserver.o : $(Q3UIDIR)/ui_startserver.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_team.o : $(Q3UIDIR)/ui_team.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_teamorders.o : $(Q3UIDIR)/ui_teamorders.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_syscalls.o : $(Q3UIDIR)/ui_syscalls.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/ui_video.o : $(Q3UIDIR)/ui_video.c; $(DO_CC) -DQ3_STATIC
## add shared files
Q3SOBJ += \
$(B)/q3static/bg_misc.o \
$(B)/q3static/bg_pmove.o \
$(B)/q3static/bg_slidemove.o \
$(B)/q3static/q_math.o \
$(B)/q3static/q_shared.o
## shared files
$(B)/q3static/q_math.o : $(GDIR)/q_math.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/q_shared.o : $(GDIR)/q_shared.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/bg_misc.o : $(GDIR)/bg_misc.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/bg_pmove.o : $(GDIR)/bg_pmove.c; $(DO_CC) -DQ3_STATIC
$(B)/q3static/bg_slidemove.o : $(GDIR)/bg_slidemove.c; $(DO_CC) -DQ3_STATIC
$(B)/$(PLATFORM)q3static : $(Q3SOBJ)
$(CC) $(CFLAGS) -o $@ $(Q3SOBJ) $(GLLDFLAGS) $(LDFLAGS)
#############################################################################
# RPM
#############################################################################

View file

@ -1,151 +0,0 @@
;===========================================================================
;Copyright (C) 1999-2005 Id Software, Inc.
;
;This file is part of Quake III Arena source code.
;
;Quake III Arena source code is free software; you can redistribute it
;and/or modify it under the terms of the GNU General Public License as
;published by the Free Software Foundation; either version 2 of the License,
;or (at your option) any later version.
;
;Quake III Arena source code is distributed in the hope that it will be
;useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with Foobar; if not, write to the Free Software
;Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
;===========================================================================
;
; qftol -- fast floating point to long conversion.
;
segment .data
temp dd 0.0
fpucw dd 0
; Precision Control Field , 2 bits / 0x0300
; PC24 0x0000 Single precision (24 bits).
; PC53 0x0200 Double precision (53 bits).
; PC64 0x0300 Extended precision (64 bits).
; Rounding Control Field, 2 bits / 0x0C00
; RCN 0x0000 Rounding to nearest (even).
; RCD 0x0400 Rounding down (directed, minus).
; RCU 0x0800 Rounding up (directed plus).
; RC0 0x0C00 Rounding towards zero (chop mode).
; rounding towards nearest (even)
cw027F dd 0x027F ; double precision
cw037F dd 0x037F ; extended precision
; rounding towards zero (chop mode)
cw0E7F dd 0x0E7F ; double precision
cw0F7F dd 0x0F7F ; extended precision
segment .text
;
; int qftol( void ) - default control word
;
global qftol
qftol:
fistp dword [temp]
mov eax, [temp]
ret
;
; int qftol027F( void ) - DirectX FPU
;
global qftol027F
qftol027F:
fnstcw [fpucw]
fldcw [cw027F]
fistp dword [temp]
fldcw [fpucw]
mov eax, [temp]
ret
;
; int qftol037F( void ) - Linux FPU
;
global qftol037F
qftol037F:
fnstcw [fpucw]
fldcw [cw037F]
fistp dword [temp]
fldcw [fpucw]
mov eax, [temp]
ret
;
; int qftol0F7F( void ) - ANSI
;
global qftol0F7F
qftol0F7F:
fnstcw [fpucw]
fldcw [cw0F7F]
fistp dword [temp]
fldcw [fpucw]
mov eax, [temp]
ret
;
; int qftol0E7F( void )
;
global qftol0E7F
qftol0E7F:
fnstcw [fpucw]
fldcw [cw0E7F]
fistp dword [temp]
fldcw [fpucw]
mov eax, [temp]
ret
;
; long Q_ftol( float q )
;
global Q_ftol
Q_ftol:
fld dword [esp+4]
fistp dword [temp]
mov eax, [temp]
ret
;
; long qftol0F7F( float q ) - Linux FPU
;
global Q_ftol0F7F
Q_ftol0F7F:
fnstcw [fpucw]
fld dword [esp+4]
fldcw [cw0F7F]
fistp dword [temp]
fldcw [fpucw]
mov eax, [temp]
ret

161
code/unix/ftola.s Normal file
View file

@ -0,0 +1,161 @@
/*
===========================================================================
Copyright (C) 1999-2005 Id Software, Inc.
This file is part of Quake III Arena source code.
Quake III Arena source code is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
Quake III Arena source code is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Foobar; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
===========================================================================
*/
//
// qftol -- fast floating point to long conversion.
//
// 23/09/05 Ported to gas by intel2gas, best supporting actor Tim Angus
// <tim@ngus.net>
#define GLQUAKE 1 // don't include unneeded defs
#include "qasm.h"
#ifdef id386
.data
temp: .float 0.0
fpucw: .long 0
// Precision Control Field , 2 bits / 0x0300
// PC24 0x0000 Single precision (24 bits).
// PC53 0x0200 Double precision (53 bits).
// PC64 0x0300 Extended precision (64 bits).
// Rounding Control Field, 2 bits / 0x0C00
// RCN 0x0000 Rounding to nearest (even).
// RCD 0x0400 Rounding down (directed, minus).
// RCU 0x0800 Rounding up (directed plus).
// RC0 0x0C00 Rounding towards zero (chop mode).
// rounding towards nearest (even)
cw027F: .long 0x027F
cw037F: .long 0x037F
// rounding towards zero (chop mode)
cw0E7F: .long 0x0E7F
cw0F7F: .long 0x0F7F
.text
//
// int qftol( void ) - default control word
//
.global C(qftol)
C(qftol):
fistpl temp
movl temp,%eax
ret
//
// int qftol027F( void ) - DirectX FPU
//
.global C(qftol027F)
C(qftol027F):
fnstcw fpucw
fldcw cw027F
fistpl temp
fldcw fpucw
movl temp,%eax
ret
//
// int qftol037F( void ) - Linux FPU
//
.global C(qftol037F)
C(qftol037F):
fnstcw fpucw
fldcw cw037F
fistpl temp
fldcw fpucw
movl temp,%eax
ret
//
// int qftol0F7F( void ) - ANSI
//
.global C(qftol0F7F)
C(qftol0F7F):
fnstcw fpucw
fldcw cw0F7F
fistpl temp
fldcw fpucw
movl temp,%eax
ret
//
// int qftol0E7F( void )
//
.global C(qftol0E7F)
C(qftol0E7F):
fnstcw fpucw
fldcw cw0E7F
fistpl temp
fldcw fpucw
movl temp,%eax
ret
//
// long Q_ftol( float q )
//
.global C(Q_ftol)
C(Q_ftol):
flds 4(%esp)
fistpl temp
movl temp,%eax
ret
//
// long qftol0F7F( float q ) - Linux FPU
//
.global C(Q_ftol0F7F)
C(Q_ftol0F7F):
fnstcw fpucw
flds 4(%esp)
fldcw cw0F7F
fistpl temp
fldcw fpucw
movl temp,%eax
ret
#endif

View file

@ -1,95 +0,0 @@
;===========================================================================
;Copyright (C) 1999-2005 Id Software, Inc.
;
;This file is part of Quake III Arena source code.
;
;Quake III Arena source code is free software; you can redistribute it
;and/or modify it under the terms of the GNU General Public License as
;published by the Free Software Foundation; either version 2 of the License,
;or (at your option) any later version.
;
;Quake III Arena source code is distributed in the hope that it will be
;useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with Foobar; if not, write to the Free Software
;Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
;===========================================================================
;
; Sys_SnapVector NASM code (Andrew Henderson)
; See win32/win_shared.c for the Win32 equivalent
; This code is provided to ensure that the
; rounding behavior (and, if necessary, the
; precision) of DLL and QVM code are identical
; e.g. for network-visible operations.
; See ftol.nasm for operations on a single float,
; as used in compiled VM and DLL code that does
; not use this system trap.
;
segment .data
fpucw dd 0
cw037F dd 0x037F ; Rounding to nearest (even).
segment .text
; void Sys_SnapVector( float *v )
global Sys_SnapVector
Sys_SnapVector:
push eax
push ebp
mov ebp, esp
fnstcw [fpucw]
mov eax, dword [ebp + 12]
fldcw [cw037F]
fld dword [eax]
fistp dword [eax]
fild dword [eax]
fstp dword [eax]
fld dword [eax + 4]
fistp dword [eax + 4]
fild dword [eax + 4]
fstp dword [eax + 4]
fld dword [eax + 8]
fistp dword [eax + 8]
fild dword [eax + 8]
fstp dword [eax + 8]
fldcw [fpucw]
pop ebp
pop eax
ret
; void Sys_SnapVectorCW( float *v, unsigned short int cw )
global Sys_SnapVectorCW
Sys_SnapVector_cw:
push eax
push ebp
mov ebp, esp
fnstcw [fpucw]
mov eax, dword [ebp + 12]
fldcw [ebp + 16]
fld dword [eax]
fistp dword [eax]
fild dword [eax]
fstp dword [eax]
fld dword [eax + 4]
fistp dword [eax + 4]
fild dword [eax + 4]
fstp dword [eax + 4]
fld dword [eax + 8]
fistp dword [eax + 8]
fild dword [eax + 8]
fstp dword [eax + 8]
fldcw [fpucw]
pop ebp
pop eax
ret

104
code/unix/snapvectora.s Normal file
View file

@ -0,0 +1,104 @@
/*
===========================================================================
Copyright (C) 1999-2005 Id Software, Inc.
This file is part of Quake III Arena source code.
Quake III Arena source code is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
Quake III Arena source code is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Foobar; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
===========================================================================
*/
//
// Sys_SnapVector NASM code (Andrew Henderson)
// See win32/win_shared.c for the Win32 equivalent
// This code is provided to ensure that the
// rounding behavior (and, if necessary, the
// precision) of DLL and QVM code are identical
// e.g. for network-visible operations.
// See ftol.nasm for operations on a single float,
// as used in compiled VM and DLL code that does
// not use this system trap.
//
// 23/09/05 Ported to gas by intel2gas, best supporting actor Tim Angus
// <tim@ngus.net>
#define GLQUAKE 1 // don't include unneeded defs
#include "qasm.h"
#ifdef id386
.data
fpucw: .long 0
cw037F: .long 0x037F
.text
// void Sys_SnapVector( float *v )
.global C(Sys_SnapVector)
C(Sys_SnapVector):
pushl %eax
pushl %ebp
movl %esp,%ebp
fnstcw fpucw
movl 12(%ebp),%eax
fldcw cw037F
flds (%eax)
fistpl (%eax)
fildl (%eax)
fstps (%eax)
flds 4(%eax)
fistpl 4(%eax)
fildl 4(%eax)
fstps 4(%eax)
flds 8(%eax)
fistpl 8(%eax)
fildl 8(%eax)
fstps 8(%eax)
fldcw fpucw
popl %ebp
popl %eax
ret
// void Sys_SnapVectorCW( float *v, unsigned short int cw )
.global C(Sys_SnapVectorCW)
C(Sys_SnapVector_cw):
pushl %eax
pushl %ebp
movl %esp,%ebp
fnstcw fpucw
movl 12(%ebp),%eax
fldcw 16(%ebp)
flds (%eax)
fistpl (%eax)
fildl (%eax)
fstps (%eax)
flds 4(%eax)
fistpl 4(%eax)
fildl 4(%eax)
fstps 4(%eax)
flds 8(%eax)
fistpl 8(%eax)
fildl 8(%eax)
fstps 8(%eax)
fldcw fpucw
popl %ebp
popl %eax
ret
#endif