# # Quake2 Makefile for Linux 2.0 # # Nov '97 by Zoid # # ELF only # # Check OS type. OSTYPE := $(shell uname -s) # this nice line comes from the linux kernel makefile ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/alpha/axp/) ###################################### #OPTIONS ###################################### BUILD_3ZB2_SUPPORT?=NO #For play Capture the Flag with bots is required to YES, there is a bug BUILD_DATADIR?=YES # Use DATADIR to read (data, renderers, etc.) and ~/.quake2 to write. BUILD_DEDICATED?=NO # build a dedicated quake2 server BUILD_GAME?=NO # game$(ARCH).so BUILD_GLX?=NO # X11 GLX driver. Works somewhat ok. BUILD_QUAKE2MAX?=NO # kmquake executable (uses OSS for cdrom and sound) BUILD_QUAKE2MAX-SDL?=NO # kmquake2-sdl executable (uses SDL for cdrom and sound) BUILD_LIBDIR?=YES # Use LIBDIR to read data and renderers (independent from DATADIR). BUILD_SDLGL?=NO # SDL OpenGL driver. Works fine for some people. WITH_OPTIMIZED_CFLAGS?=NO # Enable compilation optimizations. ###################################### ###################################### VERSION=0.45 MOUNT_DIR=. BINDIR=quake2 CC?=gcc BASE_CFLAGS= #-Wall -pipe DEBUG_CFLAGS=$(BASE_CFLAGS) -g -ggdb RELEASE_CFLAGS=$(BASE_CFLAGS) ifeq ($(WITH_OPTIMIZED_CFLAGS),YES) RELEASE_CFLAGS+=-O2 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations ifeq ($(ARCH),i386) RELEASE_CFLAGS+=-falign-loops=2 -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing endif endif BUILD_DEBUG_DIR=debug BUILD_RELEASE_DIR=release CLIENT_DIR=$(MOUNT_DIR)/client SERVER_DIR=$(MOUNT_DIR)/server REF_GL_DIR=$(MOUNT_DIR)/ref_gl COMMON_DIR=$(MOUNT_DIR)/qcommon UNIX_DIR=$(MOUNT_DIR)/unix GAME_DIR=$(MOUNT_DIR)/game NULL_DIR=$(MOUNT_DIR)/null ifeq ($(OSTYPE),FreeBSD) LDFLAGS=-lm -lz endif ifeq ($(OSTYPE),Linux) LDFLAGS=-lm -ldl -lz endif #LOCALBASE?=/usr LOCALBASE?=/usr/local X11BASE?=/usr/X11R6 PREFIX?=$(LOCALBASE) DATADIR?=$(LOCALBASE)/share/quake2 LIBDIR?=$(LOCALBASE)/lib/quake2 XCFLAGS=-I$(X11BASE)/include GLCFLAGS=-I$(LOCALBASE)/include -I$(X11BASE)/include GLXCFLAGS=-I$(LOCALBASE)/include -I$(X11BASE)/include -DOPENGL GLXLDFLAGS=-L$(LOCALBASE)/lib -L$(X11BASE)/lib -lX11 -lXext -lXxf86dga -lXxf86vm -lGLU -ljpeg -lpng SDL_CONFIG?=sdl-config SDLCFLAGS=$(shell $(SDL_CONFIG) --cflags) SDLLDFLAGS=$(shell $(SDL_CONFIG) --libs) SDLGLCFLAGS=$(SDLCFLAGS) -DOPENGL SDLGLLDFLAGS=$(SDLLDFLAGS) ifneq ($(ARCH),i386) BASE_CFLAGS+=-DC_ONLY endif ifeq ($(strip $(BUILD_3ZB2_SUPPORT)),YES) BASE_CFLAGS+=-DWITH_3ZB2_SUPPORT endif ifeq ($(strip $(BUILD_DATADIR)),YES) BASE_CFLAGS+=-DDATADIR='\"$(DATADIR)\"' endif ifeq ($(strip $(BUILD_GLX)),YES) TARGETS+=$(BINDIR)/rfx_glx.$(SHLIBEXT) endif ifeq ($(strip $(BUILD_LIBDIR)),YES) BASE_CFLAGS+=-DLIBDIR='\"$(LIBDIR)\"' endif ifeq ($(strip $(BUILD_SDLGL)),YES) BASE_CFLAGS+=-D_SDL_GL endif ifeq ($(strip $(BUILD_QUAKE2MAX-SDL)),YES) BASE_CFLAGS+=-D_SDL_BIN endif SHLIBEXT=so SHLIBCFLAGS=-fPIC SHLIBLDFLAGS=-shared DO_CC=$(CC) $(CFLAGS) -I$(LOCALBASE)/include -o $@ -c $< DO_DED_CC=$(CC) $(CFLAGS) -DDEDICATED_ONLY -o $@ -c $< DO_DED_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) -DDEDICATED_ONLY -o $@ -c $< DO_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $< DO_GL_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) $(GLCFLAGS) -o $@ -c $< DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< DO_SHLIB_AS=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< ############################################################################# # SETUP AND BUILD ############################################################################# .PHONY : targets debug release clean clean-debug clean-release clean2 ifeq ($(strip $(BUILD_DEDICATED)),YES) TARGETS += $(BINDIR)/quake2max-ded endif ifeq ($(strip $(BUILD_GAME)),YES) TARGETS+=$(BINDIR)/baseq2/game.$(SHLIBEXT) endif ifeq ($(strip $(BUILD_QUAKE2MAX)),YES) TARGETS+=$(BINDIR)/quake2max endif ifeq ($(strip $(BUILD_SDLGL)),YES) TARGETS+=$(BINDIR)/rfx_sdlgl.$(SHLIBEXT) endif ifeq ($(strip $(BUILD_QUAKE2MAX-SDL)),YES) TARGETS+=$(BINDIR)/quake2max-sdl endif all: @echo @echo Set to YES or NO at the top of the file the possible binaries to build @echo by the makefile. @echo By default, a 'make release' will build QuDos with maX support, a glx @echo renderer the required game binary and some other features. @echo @echo Possible targets: @echo @echo ">> make release build the binary for a release." @echo ">> make debug build the binary for debuging mode." @echo ">> make install will install to your quake2 home dir." @echo ">> make bz2 create a tar.bz2 compressed package." @echo ">> make clean clean every '.o' object files." @echo ">> make distclean clean objects, binaries and modified files." @echo debug: @-mkdir -p $(BUILD_DEBUG_DIR) \ $(BINDIR)/baseq2 \ $(BUILD_DEBUG_DIR)/client \ $(BUILD_DEBUG_DIR)/ded \ $(BUILD_DEBUG_DIR)/ref_gl \ $(BUILD_DEBUG_DIR)/game $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS+="$(DEBUG_CFLAGS) -DUNIX_VERSION='\"$(VERSION) Debug\"'" release: @-mkdir -p $(BUILD_RELEASE_DIR) \ $(BINDIR)/baseq2 \ $(BUILD_RELEASE_DIR)/client \ $(BUILD_RELEASE_DIR)/ded \ $(BUILD_RELEASE_DIR)/ref_gl \ $(BUILD_RELEASE_DIR)/game $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS+="$(RELEASE_CFLAGS) -DUNIX_VERSION='\"$(VERSION)\"'" targets: $(TARGETS) ############################################################################# # CLIENT/SERVER ############################################################################# QUAKE2_OBJS = \ $(BUILDDIR)/client/cl_cin.o \ $(BUILDDIR)/client/cl_ents.o \ $(BUILDDIR)/client/cl_fx.o \ $(BUILDDIR)/client/cl_input.o \ $(BUILDDIR)/client/cl_inv.o \ $(BUILDDIR)/client/cl_main.o \ $(BUILDDIR)/client/cl_newfx.o \ $(BUILDDIR)/client/cl_parse.o \ $(BUILDDIR)/client/cl_pred.o \ $(BUILDDIR)/client/cl_tent.o \ $(BUILDDIR)/client/cl_scrn.o \ $(BUILDDIR)/client/cl_view.o \ $(BUILDDIR)/client/console.o \ $(BUILDDIR)/client/keys.o \ $(BUILDDIR)/client/menu.o \ $(BUILDDIR)/client/snd_dma.o \ $(BUILDDIR)/client/snd_mem.o \ $(BUILDDIR)/client/snd_mix.o \ $(BUILDDIR)/client/qmenu.o \ $(BUILDDIR)/client/m_flash.o \ \ $(BUILDDIR)/client/cmd.o \ $(BUILDDIR)/client/cmodel.o \ $(BUILDDIR)/client/common.o \ $(BUILDDIR)/client/crc.o \ $(BUILDDIR)/client/cvar.o \ $(BUILDDIR)/client/files.o \ $(BUILDDIR)/client/md4.o \ $(BUILDDIR)/client/net_chan.o \ \ $(BUILDDIR)/client/sv_ccmds.o \ $(BUILDDIR)/client/sv_ents.o \ $(BUILDDIR)/client/sv_game.o \ $(BUILDDIR)/client/sv_init.o \ $(BUILDDIR)/client/sv_main.o \ $(BUILDDIR)/client/sv_send.o \ $(BUILDDIR)/client/sv_user.o \ $(BUILDDIR)/client/sv_world.o \ \ $(BUILDDIR)/client/qsh_unix.o \ $(BUILDDIR)/client/vid_menu.o \ $(BUILDDIR)/client/vid_so.o \ $(BUILDDIR)/client/sys_unix.o \ $(BUILDDIR)/client/glob.o \ $(BUILDDIR)/client/net_udp.o \ \ $(BUILDDIR)/client/q_shared.o \ $(BUILDDIR)/client/pmove.o QUAKE2_LNX_OBJS = \ $(BUILDDIR)/client/cd_unix.o \ $(BUILDDIR)/client/snd_unix.o QUAKE2_SDL_OBJS = \ $(BUILDDIR)/client/cd_sdl.o \ $(BUILDDIR)/client/snd_sdl.o ifeq ($(ARCH),i386) QUAKE2_AS_OBJS = \ $(BUILDDIR)/client/snd_mixa.o else QUAKE2_AS_OBJS = # empty endif $(BINDIR)/quake2max : $(QUAKE2_OBJS) $(QUAKE2_LNX_OBJS) $(QUAKE2_AS_OBJS) @echo @echo "==================== Linking $@ ====================" @echo $(CC) $(CFLAGS) -o $@ $(QUAKE2_OBJS) $(QUAKE2_LNX_OBJS) $(QUAKE2_AS_OBJS) $(LDFLAGS) $(BINDIR)/quake2max-sdl : $(QUAKE2_OBJS) $(QUAKE2_SDL_OBJS) $(QUAKE2_AS_OBJS) @echo @echo "==================== Linking $@ ====================" @echo $(CC) $(CFLAGS) -o $@ $(QUAKE2_OBJS) $(QUAKE2_SDL_OBJS) $(QUAKE2_AS_OBJS) $(LDFLAGS) $(SDLLDFLAGS) $(BUILDDIR)/client/cl_cin.o : $(CLIENT_DIR)/cl_cin.c $(DO_CC) $(BUILDDIR)/client/cl_ents.o : $(CLIENT_DIR)/cl_ents.c $(DO_CC) $(BUILDDIR)/client/cl_fx.o : $(CLIENT_DIR)/cl_fx.c $(DO_CC) $(BUILDDIR)/client/cl_input.o : $(CLIENT_DIR)/cl_input.c $(DO_CC) $(BUILDDIR)/client/cl_inv.o : $(CLIENT_DIR)/cl_inv.c $(DO_CC) $(BUILDDIR)/client/cl_main.o : $(CLIENT_DIR)/cl_main.c $(DO_CC) $(BUILDDIR)/client/cl_newfx.o : $(CLIENT_DIR)/cl_newfx.c $(DO_CC) $(BUILDDIR)/client/cl_parse.o : $(CLIENT_DIR)/cl_parse.c $(DO_CC) $(BUILDDIR)/client/cl_pred.o : $(CLIENT_DIR)/cl_pred.c $(DO_CC) $(BUILDDIR)/client/cl_tent.o : $(CLIENT_DIR)/cl_tent.c $(DO_CC) $(BUILDDIR)/client/cl_scrn.o : $(CLIENT_DIR)/cl_scrn.c $(DO_CC) $(BUILDDIR)/client/cl_view.o : $(CLIENT_DIR)/cl_view.c $(DO_CC) $(BUILDDIR)/client/console.o : $(CLIENT_DIR)/console.c $(DO_CC) $(BUILDDIR)/client/keys.o : $(CLIENT_DIR)/keys.c $(DO_CC) $(BUILDDIR)/client/menu.o : $(CLIENT_DIR)/menu.c $(DO_CC) $(BUILDDIR)/client/snd_dma.o : $(CLIENT_DIR)/snd_dma.c $(DO_CC) $(BUILDDIR)/client/snd_mem.o : $(CLIENT_DIR)/snd_mem.c $(DO_CC) $(BUILDDIR)/client/snd_mix.o : $(CLIENT_DIR)/snd_mix.c $(DO_CC) $(BUILDDIR)/client/qmenu.o : $(CLIENT_DIR)/qmenu.c $(DO_CC) $(BUILDDIR)/client/m_flash.o : $(GAME_DIR)/m_flash.c $(DO_CC) $(BUILDDIR)/client/cmd.o : $(COMMON_DIR)/cmd.c $(DO_CC) $(BUILDDIR)/client/cmodel.o : $(COMMON_DIR)/cmodel.c $(DO_CC) $(BUILDDIR)/client/common.o : $(COMMON_DIR)/common.c $(DO_CC) $(BUILDDIR)/client/crc.o : $(COMMON_DIR)/crc.c $(DO_CC) $(BUILDDIR)/client/cvar.o : $(COMMON_DIR)/cvar.c $(DO_CC) $(BUILDDIR)/client/files.o : $(COMMON_DIR)/files.c $(DO_CC) $(BUILDDIR)/client/md4.o : $(COMMON_DIR)/md4.c $(DO_CC) $(BUILDDIR)/client/net_chan.o : $(COMMON_DIR)/net_chan.c $(DO_CC) $(BUILDDIR)/client/q_shared.o : $(GAME_DIR)/q_shared.c $(DO_CC) $(BUILDDIR)/client/pmove.o : $(COMMON_DIR)/pmove.c $(DO_CC) $(BUILDDIR)/client/sv_ccmds.o : $(SERVER_DIR)/sv_ccmds.c $(DO_CC) $(BUILDDIR)/client/sv_ents.o : $(SERVER_DIR)/sv_ents.c $(DO_CC) $(BUILDDIR)/client/sv_game.o : $(SERVER_DIR)/sv_game.c $(DO_CC) $(BUILDDIR)/client/sv_init.o : $(SERVER_DIR)/sv_init.c $(DO_CC) $(BUILDDIR)/client/sv_main.o : $(SERVER_DIR)/sv_main.c $(DO_CC) $(BUILDDIR)/client/sv_send.o : $(SERVER_DIR)/sv_send.c $(DO_CC) $(BUILDDIR)/client/sv_user.o : $(SERVER_DIR)/sv_user.c $(DO_CC) $(BUILDDIR)/client/sv_world.o : $(SERVER_DIR)/sv_world.c $(DO_CC) $(BUILDDIR)/client/cd_unix.o : $(UNIX_DIR)/cd_unix.c $(DO_CC) $(BUILDDIR)/client/qsh_unix.o : $(UNIX_DIR)/qsh_unix.c $(DO_CC) $(BUILDDIR)/client/vid_menu.o : $(UNIX_DIR)/vid_menu.c $(DO_CC) $(BUILDDIR)/client/vid_so.o : $(UNIX_DIR)/vid_so.c $(DO_CC) $(BUILDDIR)/client/snd_unix.o : $(UNIX_DIR)/snd_unix.c $(DO_CC) $(BUILDDIR)/client/snd_mixa.o : $(UNIX_DIR)/snd_mixa.s $(DO_AS) $(BUILDDIR)/client/sys_unix.o : $(UNIX_DIR)/sys_unix.c $(DO_CC) $(BUILDDIR)/client/glob.o : $(UNIX_DIR)/glob.c $(DO_CC) $(BUILDDIR)/client/net_udp.o : $(UNIX_DIR)/net_udp.c $(DO_CC) $(BUILDDIR)/client/cd_sdl.o : $(UNIX_DIR)/cd_sdl.c $(DO_CC) $(SDLCFLAGS) $(BUILDDIR)/client/snd_sdl.o : $(UNIX_DIR)/snd_sdl.c $(DO_CC) $(SDLCFLAGS) ############################################################################# # DEDICATED SERVER ############################################################################# Q2DED_OBJS = \ \ $(BUILDDIR)/ded/cmd.o \ $(BUILDDIR)/ded/cmodel.o \ $(BUILDDIR)/ded/common.o \ $(BUILDDIR)/ded/crc.o \ $(BUILDDIR)/ded/cvar.o \ $(BUILDDIR)/ded/files.o \ $(BUILDDIR)/ded/md4.o \ $(BUILDDIR)/ded/net_chan.o \ \ $(BUILDDIR)/ded/sv_ccmds.o \ $(BUILDDIR)/ded/sv_ents.o \ $(BUILDDIR)/ded/sv_game.o \ $(BUILDDIR)/ded/sv_init.o \ $(BUILDDIR)/ded/sv_main.o \ $(BUILDDIR)/ded/sv_send.o \ $(BUILDDIR)/ded/sv_user.o \ $(BUILDDIR)/ded/sv_world.o \ \ $(BUILDDIR)/ded/qsh_unix.o \ $(BUILDDIR)/ded/sys_unix.o \ $(BUILDDIR)/ded/glob.o \ $(BUILDDIR)/ded/net_udp.o \ \ $(BUILDDIR)/ded/q_shared.o \ $(BUILDDIR)/ded/pmove.o \ \ $(BUILDDIR)/ded/cl_null.o \ $(BUILDDIR)/ded/cd_null.o $(BINDIR)/quake2max-ded : $(Q2DED_OBJS) $(CC) $(CFLAGS) -o $@ $(Q2DED_OBJS) $(LDFLAGS) $(BUILDDIR)/ded/cmd.o : $(COMMON_DIR)/cmd.c $(DO_DED_CC) $(BUILDDIR)/ded/cmodel.o : $(COMMON_DIR)/cmodel.c $(DO_DED_CC) $(BUILDDIR)/ded/common.o : $(COMMON_DIR)/common.c $(DO_DED_CC) $(BUILDDIR)/ded/crc.o : $(COMMON_DIR)/crc.c $(DO_DED_CC) $(BUILDDIR)/ded/cvar.o : $(COMMON_DIR)/cvar.c $(DO_DED_CC) $(BUILDDIR)/ded/files.o : $(COMMON_DIR)/files.c $(DO_DED_CC) $(BUILDDIR)/ded/md4.o : $(COMMON_DIR)/md4.c $(DO_DED_CC) $(BUILDDIR)/ded/net_chan.o : $(COMMON_DIR)/net_chan.c $(DO_DED_CC) $(BUILDDIR)/ded/q_shared.o : $(GAME_DIR)/q_shared.c $(DO_DED_CC) $(BUILDDIR)/ded/pmove.o : $(COMMON_DIR)/pmove.c $(DO_DED_CC) $(BUILDDIR)/ded/sv_ccmds.o : $(SERVER_DIR)/sv_ccmds.c $(DO_DED_CC) $(BUILDDIR)/ded/sv_ents.o : $(SERVER_DIR)/sv_ents.c $(DO_DED_CC) $(BUILDDIR)/ded/sv_game.o : $(SERVER_DIR)/sv_game.c $(DO_DED_CC) $(BUILDDIR)/ded/sv_init.o : $(SERVER_DIR)/sv_init.c $(DO_DED_CC) $(BUILDDIR)/ded/sv_main.o : $(SERVER_DIR)/sv_main.c $(DO_DED_CC) $(BUILDDIR)/ded/sv_send.o : $(SERVER_DIR)/sv_send.c $(DO_DED_CC) $(BUILDDIR)/ded/sv_user.o : $(SERVER_DIR)/sv_user.c $(DO_DED_CC) $(BUILDDIR)/ded/sv_world.o : $(SERVER_DIR)/sv_world.c $(DO_DED_CC) $(BUILDDIR)/ded/qsh_unix.o : $(UNIX_DIR)/qsh_unix.c $(DO_DED_CC) $(BUILDDIR)/ded/sys_unix.o : $(UNIX_DIR)/sys_unix.c $(DO_DED_CC) $(BUILDDIR)/ded/glob.o : $(UNIX_DIR)/glob.c $(DO_DED_CC) $(BUILDDIR)/ded/net_udp.o : $(UNIX_DIR)/net_udp.c $(DO_DED_CC) $(BUILDDIR)/ded/cd_null.o : $(NULL_DIR)/cd_null.c $(DO_DED_CC) $(BUILDDIR)/ded/cl_null.o : $(NULL_DIR)/cl_null.c $(DO_DED_CC) ############################################################################# # GAME ############################################################################# GAME_OBJS = \ $(BUILDDIR)/game/q_shared.o \ $(BUILDDIR)/game/g_ai.o \ $(BUILDDIR)/game/p_client.o \ $(BUILDDIR)/game/g_cmds.o \ $(BUILDDIR)/game/g_svcmds.o \ $(BUILDDIR)/game/g_chase.o \ $(BUILDDIR)/game/g_combat.o \ $(BUILDDIR)/game/g_func.o \ $(BUILDDIR)/game/g_items.o \ $(BUILDDIR)/game/g_main.o \ $(BUILDDIR)/game/g_misc.o \ $(BUILDDIR)/game/g_monster.o \ $(BUILDDIR)/game/g_phys.o \ $(BUILDDIR)/game/g_save.o \ $(BUILDDIR)/game/g_spawn.o \ $(BUILDDIR)/game/g_target.o \ $(BUILDDIR)/game/g_trigger.o \ $(BUILDDIR)/game/g_turret.o \ $(BUILDDIR)/game/g_utils.o \ $(BUILDDIR)/game/g_weapon.o \ $(BUILDDIR)/game/m_actor.o \ $(BUILDDIR)/game/m_berserk.o \ $(BUILDDIR)/game/m_boss2.o \ $(BUILDDIR)/game/m_boss3.o \ $(BUILDDIR)/game/m_boss31.o \ $(BUILDDIR)/game/m_boss32.o \ $(BUILDDIR)/game/m_brain.o \ $(BUILDDIR)/game/m_chick.o \ $(BUILDDIR)/game/m_flipper.o \ $(BUILDDIR)/game/m_float.o \ $(BUILDDIR)/game/m_flyer.o \ $(BUILDDIR)/game/m_gladiator.o \ $(BUILDDIR)/game/m_gunner.o \ $(BUILDDIR)/game/m_hover.o \ $(BUILDDIR)/game/m_infantry.o \ $(BUILDDIR)/game/m_insane.o \ $(BUILDDIR)/game/m_medic.o \ $(BUILDDIR)/game/m_move.o \ $(BUILDDIR)/game/m_mutant.o \ $(BUILDDIR)/game/m_parasite.o \ $(BUILDDIR)/game/m_soldier.o \ $(BUILDDIR)/game/m_supertank.o \ $(BUILDDIR)/game/m_tank.o \ $(BUILDDIR)/game/p_hud.o \ $(BUILDDIR)/game/p_trail.o \ $(BUILDDIR)/game/p_view.o \ $(BUILDDIR)/game/p_weapon.o \ $(BUILDDIR)/game/m_flash.o $(BINDIR)/baseq2/game.$(SHLIBEXT) : $(GAME_OBJS) $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(GAME_OBJS) $(BUILDDIR)/game/g_ai.o : $(GAME_DIR)/g_ai.c $(DO_SHLIB_CC) $(BUILDDIR)/game/p_client.o : $(GAME_DIR)/p_client.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_cmds.o : $(GAME_DIR)/g_cmds.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_svcmds.o : $(GAME_DIR)/g_svcmds.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_chase.o : $(GAME_DIR)/g_chase.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_combat.o : $(GAME_DIR)/g_combat.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_func.o : $(GAME_DIR)/g_func.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_items.o : $(GAME_DIR)/g_items.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_main.o : $(GAME_DIR)/g_main.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_misc.o : $(GAME_DIR)/g_misc.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_monster.o : $(GAME_DIR)/g_monster.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_phys.o : $(GAME_DIR)/g_phys.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_save.o : $(GAME_DIR)/g_save.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_spawn.o : $(GAME_DIR)/g_spawn.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_target.o : $(GAME_DIR)/g_target.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_trigger.o : $(GAME_DIR)/g_trigger.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_turret.o : $(GAME_DIR)/g_turret.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_utils.o : $(GAME_DIR)/g_utils.c $(DO_SHLIB_CC) $(BUILDDIR)/game/g_weapon.o : $(GAME_DIR)/g_weapon.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_actor.o : $(GAME_DIR)/m_actor.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_berserk.o : $(GAME_DIR)/m_berserk.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_boss2.o : $(GAME_DIR)/m_boss2.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_boss3.o : $(GAME_DIR)/m_boss3.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_boss31.o : $(GAME_DIR)/m_boss31.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_boss32.o : $(GAME_DIR)/m_boss32.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_brain.o : $(GAME_DIR)/m_brain.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_chick.o : $(GAME_DIR)/m_chick.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_flipper.o : $(GAME_DIR)/m_flipper.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_float.o : $(GAME_DIR)/m_float.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_flyer.o : $(GAME_DIR)/m_flyer.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_gladiator.o : $(GAME_DIR)/m_gladiator.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_gunner.o : $(GAME_DIR)/m_gunner.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_hover.o : $(GAME_DIR)/m_hover.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_infantry.o : $(GAME_DIR)/m_infantry.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_insane.o : $(GAME_DIR)/m_insane.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_medic.o : $(GAME_DIR)/m_medic.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_move.o : $(GAME_DIR)/m_move.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_mutant.o : $(GAME_DIR)/m_mutant.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_parasite.o : $(GAME_DIR)/m_parasite.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_soldier.o : $(GAME_DIR)/m_soldier.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_supertank.o : $(GAME_DIR)/m_supertank.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_tank.o : $(GAME_DIR)/m_tank.c $(DO_SHLIB_CC) $(BUILDDIR)/game/p_hud.o : $(GAME_DIR)/p_hud.c $(DO_SHLIB_CC) $(BUILDDIR)/game/p_trail.o : $(GAME_DIR)/p_trail.c $(DO_SHLIB_CC) $(BUILDDIR)/game/p_view.o : $(GAME_DIR)/p_view.c $(DO_SHLIB_CC) $(BUILDDIR)/game/p_weapon.o : $(GAME_DIR)/p_weapon.c $(DO_SHLIB_CC) $(BUILDDIR)/game/q_shared.o : $(GAME_DIR)/q_shared.c $(DO_SHLIB_CC) $(BUILDDIR)/game/m_flash.o : $(GAME_DIR)/m_flash.c $(DO_SHLIB_CC) ############################################################################# # REF_GL ############################################################################# REF_GL_OBJS = \ $(BUILDDIR)/ref_gl/gl_cin.o \ $(BUILDDIR)/ref_gl/gl_draw.o \ $(BUILDDIR)/ref_gl/gl_image.o \ $(BUILDDIR)/ref_gl/gl_light.o \ $(BUILDDIR)/ref_gl/gl_mesh.o \ $(BUILDDIR)/ref_gl/gl_model.o \ $(BUILDDIR)/ref_gl/gl_rmain.o \ $(BUILDDIR)/ref_gl/gl_rmisc.o \ $(BUILDDIR)/ref_gl/gl_rsurf.o \ $(BUILDDIR)/ref_gl/gl_script.o \ $(BUILDDIR)/ref_gl/gl_vlights.o \ $(BUILDDIR)/ref_gl/gl_warp.o \ $(BUILDDIR)/ref_gl/sul_png.o \ \ $(BUILDDIR)/ref_gl/qgl_unix.o \ $(BUILDDIR)/ref_gl/q_shared.o \ $(BUILDDIR)/ref_gl/qsh_unix.o \ $(BUILDDIR)/ref_gl/glob.o REF_GL_GLX_OBJS = \ $(BUILDDIR)/ref_gl/gl_glx.o REF_SDLGL_OBJS = \ $(BUILDDIR)/ref_gl/gl_sdl.o $(BINDIR)/rfx_glx.$(SHLIBEXT) : $(REF_GL_OBJS) $(REF_GL_GLX_OBJS) @echo @echo "==================== Linking $@ ====================" @echo $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_GL_OBJS) $(REF_GL_GLX_OBJS) $(GLXLDFLAGS) $(BINDIR)/rfx_sdlgl.$(SHLIBEXT) : $(REF_GL_OBJS) $(REF_SDLGL_OBJS) @echo @echo "==================== Linking $@ ====================" @echo $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_GL_OBJS) $(REF_SDLGL_OBJS) $(GLXLDFLAGS) $(SDLGLLDFLAGS) $(BUILDDIR)/ref_gl/gl_cin.o : $(REF_GL_DIR)/gl_cin.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_draw.o : $(REF_GL_DIR)/gl_draw.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_image.o : $(REF_GL_DIR)/gl_image.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_light.o : $(REF_GL_DIR)/gl_light.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_mesh.o : $(REF_GL_DIR)/gl_mesh.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_model.o : $(REF_GL_DIR)/gl_model.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_rmain.o : $(REF_GL_DIR)/gl_rmain.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_rmisc.o : $(REF_GL_DIR)/gl_rmisc.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_rsurf.o : $(REF_GL_DIR)/gl_rsurf.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_script.o : $(REF_GL_DIR)/gl_script.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_vlights.o : $(REF_GL_DIR)/gl_vlights.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_warp.o : $(REF_GL_DIR)/gl_warp.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/sul_png.o : $(REF_GL_DIR)/sul_png.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/qgl_unix.o : $(UNIX_DIR)/qgl_unix.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_glx.o : $(UNIX_DIR)/gl_glx.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/q_shared.o : $(GAME_DIR)/q_shared.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/qsh_unix.o : $(UNIX_DIR)/qsh_unix.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/glob.o : $(UNIX_DIR)/glob.c $(DO_GL_SHLIB_CC) $(BUILDDIR)/ref_gl/gl_sdl.o : $(UNIX_DIR)/gl_sdl.c $(DO_GL_SHLIB_CC) $(SDLGLCFLAGS) ############################################################################# # MISC ############################################################################# clean: @echo cleaning objects @rm -rf \ $(BUILD_DEBUG_DIR) \ $(BUILD_RELEASE_DIR) @echo . @echo .... Done clean-bin: @echo cleaning binaries @-rm -rf $(BINDIR) @echo . @echo .... Done distclean: @echo cleaning objects and binaries @-rm -rf $(BUILD_DEBUG_DIR) $(BUILD_RELEASE_DIR) $(BINDIR) @-rm -f `find . \( -not -type d \) -and \ \( -name '*~' \) -type f -print` @echo . @echo .... Done tar: @echo Creating tar file ... @tar czvf Quake2maX-$(VERSION).tar quake2 @echo ... Done gz: @echo Creating gzip compressed file ... @tar czvf Quake2maX-$(VERSION).tar.gz quake2 @echo ... Done bz2: @echo Creating bzip2 compressed file ... @tar cjvf Quake2maX-$(VERSION).tar.bz2 quake2 @echo .... Done install: @echo Copying files to your home dir ... @cp -r $(BINDIR) ~/ @echo ... Done