kingpin-sdk/gamesrc/MAKEFILE
2000-03-27 00:00:00 +00:00

939 lines
25 KiB
Makefile

#
# Quake2 Makefile for Linux 2.0
#
# Nov '97 by Zoid <zoid@idsoftware.com>
#
# Kingpin-ized, July '99 by Ridah <ridah@frag.com>
#
# ELF only
#
VERSION=1.21_
VERSION_FN=$(VERSION)beta_glibc#$(GLIBC)
RPM_RELEASE=1
ifneq (,$(findstring libc6,$(shell if [ -e /lib/libc.so.6* ];then echo libc6;fi)))
GLIBC=-glibc
else
GLIBC=
endif
ifneq (,$(findstring alpha,$(shell uname -m)))
ARCH=axp
RPMARCH=alpha
else
ARCH=i386
RPMARCH=i386
endif
MOUNT_DIR=/disks/f/kingpin/source
BUILD_DEBUG_DIR=debug$(ARCH)$(GLIBC)
BUILD_RELEASE_DIR=release$(ARCH)$(GLIBC)
CLIENT_DIR=$(MOUNT_DIR)/client
SERVER_DIR=$(MOUNT_DIR)/server
REF_GL_DIR=$(MOUNT_DIR)/ref_gl
COMMON_DIR=$(MOUNT_DIR)/qcommon
LINUX_DIR=$(MOUNT_DIR)/linux
GAME_DIR=$(MOUNT_DIR)/game
NULL_DIR=$(MOUNT_DIR)/null
MESA_DIR=/usr/local/src/Mesa-3.1
#CC=i386-glibc20-linux-gcc
CC=gcc
CPP=g++
BASE_CFLAGS=-Dstricmp=strcasecmp
ifeq ($(ARCH),axp)
RELEASE_CFLAGS=$(BASE_CFLAGS) -ffast-math -funroll-loops \
-fomit-frame-pointer -fexpensive-optimizations
else
RELEASE_CFLAGS=$(BASE_CFLAGS) -m486 -O6 -ffast-math -funroll-loops \
-fomit-frame-pointer -fexpensive-optimizations -malign-loops=2 \
-malign-jumps=2 -malign-functions=2
endif
DEBUG_CFLAGS=$(BASE_CFLAGS) -g
LDFLAGS=-ldl -lm
SVGALDFLAGS=-lvga -lm
XLDFLAGS=-L/usr/X11R6/lib -lX11 -lXext
XCFLAGS=
GLLDFLAGS=-L/usr/X11R6/lib -L/usr/local/lib \
-L$(MESA_DIR)/lib -lX11 -lXext -lvga -lm
GLXLDFLAGS=-L/usr/X11R6/lib -L/usr/local/lib \
-L$(MESA_DIR)/lib -lX11 -lXext -lm
GLCFLAGS=-I$(MESA_DIR)/include -I/usr/include/glide
SHLIBEXT=so
SHLIBCFLAGS=-fPIC
SHLIBLDFLAGS=-shared
# Enable the following line to enable the CD copy protection
DO_CC=$(CC) $(CFLAGS) -DCOPYPROTECT -o $@ -c $<
#DO_NORMAL_CC=$(CC) $(CFLAGS) -o $@ -c $<
DO_DED_CC=$(CC) $(CFLAGS) -DDEDICATED_ONLY -o $@ -c $<
DO_O_CC=$(CC) $(CFLAGS) -O -o $@ -c $<
DO_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
DO_SHLIB_O_CC=$(CC) $(CFLAGS) -O $(SHLIBCFLAGS) -o $@ -c $<
DO_GL_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) $(GLCFLAGS) -o $@ -c $<
DO_GL_SHLIB_CPP=$(CPP) $(CFLAGS) $(SHLIBCFLAGS) $(GLCFLAGS) -o $@ -c $<
DO_GL_SHLIB_O_CC=$(CC) $(CFLAGS) -O $(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
#############################################################################
TARGETS=$(BUILDDIR)/kingpin \
$(BUILDDIR)/game$(ARCH).$(SHLIBEXT) \
$(BUILDDIR)/ref_gl.$(SHLIBEXT) \
$(BUILDDIR)/ref_glx.$(SHLIBEXT)
TARGETS_DED=$(BUILDDIR)/kpded \
$(BUILDDIR)/game$(ARCH).$(SHLIBEXT)
build_debug:
@-mkdir $(BUILD_DEBUG_DIR) \
$(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)"
build_release:
@-mkdir $(BUILD_RELEASE_DIR) \
$(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)"
build_release_ded:
@-mkdir $(BUILD_RELEASE_DIR) \
$(BUILD_RELEASE_DIR)/ded \
$(BUILD_RELEASE_DIR)/game
$(MAKE) targets_ded BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)"
all: build_debug build_release build_releas_ded
egcs egcs_release:
$(MAKE) build_release CC=egcs GLIBC=-glibc-egcs \
RELEASE_CFLAGS="$(BASE_CFLAGS) -mpentium -O6 -ffast-math \
-fomit-frame-pointer -fexpensive-optimizations"
egcs_debug:
$(MAKE) build_debug CC=egcs GLIBC=-glibc-egcs \
DEBUG_CFLAGS="$(BASE_CFLAGS) -g"
targets: $(TARGETS)
targets_ded: $(TARGETS_DED)
#############################################################################
# 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_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/cmd.o \
$(BUILDDIR)/client/cmodel.o \
$(BUILDDIR)/client/common.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/cd_linux.o \
$(BUILDDIR)/client/q_shlinux.o \
$(BUILDDIR)/client/vid_menu.o \
$(BUILDDIR)/client/vid_so.o \
$(BUILDDIR)/client/snd_linux.o \
$(BUILDDIR)/client/sys_linux.o \
$(BUILDDIR)/client/glob.o \
$(BUILDDIR)/client/net_udp.o \
\
$(BUILDDIR)/client/q_shared.o \
$(BUILDDIR)/client/pmove.o \
\
$(BUILDDIR)/client/goautil.o \
$(BUILDDIR)/client/nonport.o \
\
$(BUILDDIR)/client/crc.o
ifeq ($(ARCH),axp)
QUAKE2_AS_OBJS = #blank
else
QUAKE2_AS_OBJS = \
$(BUILDDIR)/client/snd_mixa.o
endif
$(BUILDDIR)/kingpin : $(QUAKE2_OBJS) $(QUAKE2_AS_OBJS)
$(CC) $(CFLAGS) -o $@ $(QUAKE2_OBJS) $(QUAKE2_AS_OBJS) $(LDFLAGS)
$(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_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/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
$(CC) $(DEBUG_CFLAGS) -o $@ -c $<
$(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_linux.o : $(LINUX_DIR)/cd_linux.c
$(DO_CC)
$(BUILDDIR)/client/q_shlinux.o : $(LINUX_DIR)/q_shlinux.c
$(DO_O_CC)
$(BUILDDIR)/client/vid_menu.o : $(LINUX_DIR)/vid_menu.c
$(DO_CC)
$(BUILDDIR)/client/vid_so.o : $(LINUX_DIR)/vid_so.c
$(DO_CC)
$(BUILDDIR)/client/snd_linux.o : $(LINUX_DIR)/snd_linux.c
$(DO_CC)
$(BUILDDIR)/client/snd_mixa.o : $(LINUX_DIR)/snd_mixa.s
$(DO_AS)
$(BUILDDIR)/client/sys_linux.o : $(LINUX_DIR)/sys_linux.c
$(DO_CC)
$(BUILDDIR)/client/glob.o : $(LINUX_DIR)/glob.c
$(DO_CC)
$(BUILDDIR)/client/net_udp.o : $(LINUX_DIR)/net_udp.c
$(DO_CC)
$(BUILDDIR)/client/goautil.o : $(SERVER_DIR)/goautil.c
$(DO_CC)
$(BUILDDIR)/client/nonport.o : $(SERVER_DIR)/nonport.c
$(DO_CC)
#############################################################################
# DEDICATED SERVER
#############################################################################
Q2DED_OBJS = \
\
$(BUILDDIR)/ded/cmd.o \
$(BUILDDIR)/ded/cmodel.o \
$(BUILDDIR)/ded/common.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/q_shlinux.o \
$(BUILDDIR)/ded/sys_linux.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 \
\
$(BUILDDIR)/ded/goautil.o \
$(BUILDDIR)/ded/nonport.o \
\
$(BUILDDIR)/ded/crc.o
$(BUILDDIR)/kpded : $(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/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/q_shlinux.o : $(LINUX_DIR)/q_shlinux.c
$(DO_DED_CC)
$(BUILDDIR)/ded/sys_linux.o : $(LINUX_DIR)/sys_linux.c
$(DO_DED_CC)
$(BUILDDIR)/ded/glob.o : $(LINUX_DIR)/glob.c
$(DO_DED_CC)
$(BUILDDIR)/ded/net_udp.o : $(LINUX_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)
$(BUILDDIR)/ded/goautil.o : $(SERVER_DIR)/goautil.c
$(DO_DED_CC)
$(BUILDDIR)/ded/nonport.o : $(SERVER_DIR)/nonport.c
$(DO_DED_CC)
$(BUILDDIR)/ded/crc.o : $(COMMON_DIR)/crc.c
$(DO_DED_CC)
#############################################################################
# GAME
#############################################################################
GAME_OBJS = \
$(BUILDDIR)/game/ai_bitch.o \
$(BUILDDIR)/game/ai_bum_sit.o \
$(BUILDDIR)/game/ai_dog.o \
$(BUILDDIR)/game/ai_punk.o \
$(BUILDDIR)/game/ai_runt.o \
$(BUILDDIR)/game/ai_shorty.o \
$(BUILDDIR)/game/ai_skinny.o \
$(BUILDDIR)/game/ai_thug.o \
$(BUILDDIR)/game/ai_thug_sit.o \
$(BUILDDIR)/game/ai_whore.o \
$(BUILDDIR)/game/ep_all.o \
$(BUILDDIR)/game/ep_crystalpalace.o \
$(BUILDDIR)/game/ep_log.o \
$(BUILDDIR)/game/ep_posionville.o \
$(BUILDDIR)/game/ep_radiocity.o \
$(BUILDDIR)/game/ep_shipyards.o \
$(BUILDDIR)/game/ep_skidrow.o \
$(BUILDDIR)/game/ep_steeltown.o \
$(BUILDDIR)/game/ep_trainyard.o \
$(BUILDDIR)/game/g_ai.o \
$(BUILDDIR)/game/g_ai_ents.o \
$(BUILDDIR)/game/g_ai_fight.o \
$(BUILDDIR)/game/g_ai_memory.o \
$(BUILDDIR)/game/g_cast.o \
$(BUILDDIR)/game/g_chase.o \
$(BUILDDIR)/game/g_cmds.o \
$(BUILDDIR)/game/g_combat.o \
$(BUILDDIR)/game/g_fog.o \
$(BUILDDIR)/game/g_func.o \
$(BUILDDIR)/game/g_items.o \
$(BUILDDIR)/game/g_joe_misc.o \
$(BUILDDIR)/game/g_main.o \
$(BUILDDIR)/game/g_misc.o \
$(BUILDDIR)/game/g_nav.o \
$(BUILDDIR)/game/g_nav_cells.o \
$(BUILDDIR)/game/g_nav_io.o \
$(BUILDDIR)/game/g_nav_misc.o \
$(BUILDDIR)/game/g_pawn.o \
$(BUILDDIR)/game/g_phys.o \
$(BUILDDIR)/game/g_save.o \
$(BUILDDIR)/game/g_spawn.o \
$(BUILDDIR)/game/g_svcmds.o \
$(BUILDDIR)/game/g_target.o \
$(BUILDDIR)/game/g_teamplay.o \
$(BUILDDIR)/game/g_trigger.o \
$(BUILDDIR)/game/g_utils.o \
$(BUILDDIR)/game/g_weapon.o \
$(BUILDDIR)/game/lateral.o \
$(BUILDDIR)/game/m_bbox.o \
$(BUILDDIR)/game/m_flash.o \
$(BUILDDIR)/game/m_move.o \
$(BUILDDIR)/game/p_client.o \
$(BUILDDIR)/game/p_hud.o \
$(BUILDDIR)/game/p_trail.o \
$(BUILDDIR)/game/p_view.o \
$(BUILDDIR)/game/p_weapon.o \
$(BUILDDIR)/game/q_shared.o \
$(BUILDDIR)/game/vehicles.o \
$(BUILDDIR)/game/voice.o \
$(BUILDDIR)/game/voice_bitch.o \
$(BUILDDIR)/game/voice_punk.o
# $(BUILDDIR)/game/g_so.o
$(BUILDDIR)/game$(ARCH).$(SHLIBEXT) : $(GAME_OBJS)
$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(GAME_OBJS)
$(BUILDDIR)/game/ai_bitch.o : $(GAME_DIR)/ai_bitch.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ai_bum_sit.o : $(GAME_DIR)/ai_bum_sit.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ai_dog.o : $(GAME_DIR)/ai_dog.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ai_punk.o : $(GAME_DIR)/ai_punk.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ai_runt.o : $(GAME_DIR)/ai_runt.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ai_shorty.o : $(GAME_DIR)/ai_shorty.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ai_skinny.o : $(GAME_DIR)/ai_skinny.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ai_thug.o : $(GAME_DIR)/ai_thug.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ai_thug_sit.o : $(GAME_DIR)/ai_thug_sit.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ai_whore.o : $(GAME_DIR)/ai_whore.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ep_all.o : $(GAME_DIR)/ep_all.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ep_crystalpalace.o : $(GAME_DIR)/ep_crystalpalace.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ep_log.o : $(GAME_DIR)/ep_log.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ep_posionville.o : $(GAME_DIR)/ep_posionville.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ep_radiocity.o : $(GAME_DIR)/ep_radiocity.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ep_shipyards.o : $(GAME_DIR)/ep_shipyards.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ep_skidrow.o : $(GAME_DIR)/ep_skidrow.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ep_steeltown.o : $(GAME_DIR)/ep_steeltown.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/ep_trainyard.o : $(GAME_DIR)/ep_trainyard.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_ai.o : $(GAME_DIR)/g_ai.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_ai_ents.o : $(GAME_DIR)/g_ai_ents.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_ai_fight.o : $(GAME_DIR)/g_ai_fight.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_ai_memory.o : $(GAME_DIR)/g_ai_memory.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_cast.o : $(GAME_DIR)/g_cast.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_cmds.o : $(GAME_DIR)/g_cmds.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_fog.o : $(GAME_DIR)/g_fog.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_joe_misc.o : $(GAME_DIR)/g_joe_misc.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_nav.o : $(GAME_DIR)/g_nav.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_nav_cells.o : $(GAME_DIR)/g_nav_cells.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_nav_io.o : $(GAME_DIR)/g_nav_io.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_nav_misc.o : $(GAME_DIR)/g_nav_misc.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_pawn.o : $(GAME_DIR)/g_pawn.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_svcmds.o : $(GAME_DIR)/g_svcmds.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_target.o : $(GAME_DIR)/g_target.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_teamplay.o : $(GAME_DIR)/g_teamplay.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/g_trigger.o : $(GAME_DIR)/g_trigger.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/lateral.o : $(GAME_DIR)/lateral.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/m_bbox.o : $(GAME_DIR)/m_bbox.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/m_flash.o : $(GAME_DIR)/m_flash.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/m_move.o : $(GAME_DIR)/m_move.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/p_client.o : $(GAME_DIR)/p_client.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
$(CC) $(DEBUG_CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
$(BUILDDIR)/game/vehicles.o : $(GAME_DIR)/vehicles.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/voice.o : $(GAME_DIR)/voice.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/voice_bitch.o : $(GAME_DIR)/voice_bitch.c
$(DO_SHLIB_CC)
$(BUILDDIR)/game/voice_punk.o : $(GAME_DIR)/voice_punk.c
$(DO_SHLIB_CC)
#############################################################################
# REF_GL
#############################################################################
REF_GL_OBJS = \
$(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_warp.o \
\
$(BUILDDIR)/ref_gl/qgl_linux.o \
$(BUILDDIR)/ref_gl/q_shared.o \
$(BUILDDIR)/ref_gl/q_shlinux.o \
$(BUILDDIR)/ref_gl/glob.o \
$(BUILDDIR)/ref_gl/xatrixtxrmap.o
REF_GL_FXMESA_OBJS = \
$(BUILDDIR)/ref_gl/gl_fxmesa.o \
$(BUILDDIR)/ref_gl/rw_in_svgalib.o
REF_GL_GLX_OBJS = \
$(BUILDDIR)/ref_gl/gl_glx.o
$(BUILDDIR)/ref_gl.$(SHLIBEXT) : $(REF_GL_OBJS) $(REF_GL_FXMESA_OBJS)
$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_GL_OBJS) $(REF_GL_FXMESA_OBJS) $(GLLDFLAGS)
$(BUILDDIR)/ref_glx.$(SHLIBEXT) : $(REF_GL_OBJS) $(REF_GL_GLX_OBJS)
$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_GL_OBJS) $(REF_GL_GLX_OBJS) $(GLXLDFLAGS)
$(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_warp.o : $(REF_GL_DIR)/gl_warp.c
$(DO_GL_SHLIB_CC)
$(BUILDDIR)/ref_gl/qgl_linux.o : $(LINUX_DIR)/qgl_linux.c
$(DO_GL_SHLIB_CC)
$(BUILDDIR)/ref_gl/gl_fxmesa.o : $(LINUX_DIR)/gl_fxmesa.c
$(DO_GL_SHLIB_CC)
$(BUILDDIR)/ref_gl/gl_glx.o : $(LINUX_DIR)/gl_glx.c
$(DO_GL_SHLIB_CC)
$(BUILDDIR)/ref_gl/rw_in_svgalib.o : $(LINUX_DIR)/rw_in_svgalib.c
$(DO_GL_SHLIB_CC)
$(BUILDDIR)/ref_gl/q_shared.o : $(GAME_DIR)/q_shared.c
$(CC) $(DEBUG_CFLAGS) $(SHLIBCFLAGS) $(GLCFLAGS) -o $@ -c $<
$(BUILDDIR)/ref_gl/q_shlinux.o : $(LINUX_DIR)/q_shlinux.c
$(DO_GL_SHLIB_O_CC)
$(BUILDDIR)/ref_gl/glob.o : $(LINUX_DIR)/glob.c
$(DO_GL_SHLIB_CC)
$(BUILDDIR)/ref_gl/xatrixtxrmap.o : $(REF_GL_DIR)/xatrixtxrmap.cpp
$(DO_GL_SHLIB_CPP)
#############################################################################
# RPM
#############################################################################
# Make RPMs. You need to be root to make this work
RPMROOT=/usr/src/RPM
RPM = rpm
RPMFLAGS = -bb
INSTALLDIR = /usr/local/games/kingpin
QUAKE2_DIR = /usr/local/games/quake2
DESTDIR= $(RPMDIR)/$(INSTALLDIR)
RPMDIR = /var/tmp/kingpin-$(VERSION_FN)
rpm: kingpin.spec
# touch $(RPMROOT)/SOURCES/kingpin-$(VERSION_FN).tar.gz
if [ ! -d archives ];then mkdir archives;fi
$(MAKE) copyfiles COPYDIR=$(DESTDIR)
cd $(MOUNT_DIR)
-mkdir $(RPMDIR)/etc
cp $(MOUNT_DIR)/linux/kingpin.conf $(RPMDIR)/etc/kingpin.conf
cp kingpin.spec $(RPMROOT)/SPECS/.
cd $(RPMROOT)/SPECS/.; $(RPM) $(RPMFLAGS) kingpin.spec
rm -rf $(RPMDIR)
mv $(RPMROOT)/RPMS/$(ARCH)/kingpin-$(VERSION_FN)-$(RPM_RELEASE).$(RPMARCH).rpm /pub
tar:
if [ ! -d archives ];then mkdir archives;fi
$(MAKE) copyfiles COPYDIR=$(RPMDIR)
cp $(MOUNT_DIR)/linux/kingpin.conf $(RPMDIR)/kingpin.conf
cd $(RPMDIR); sh $(MOUNT_DIR)/linux/fixperms.sh
cd $(RPMDIR); tar czvf kingpin-$(VERSION_FN)-$(ARCH)-linux2.0.tar.gz *
mv $(RPMDIR)/*.tar.gz /pub
rm -rf $(RPMDIR)
copyfiles:
-mkdirhier $(COPYDIR)
cp $(BUILD_RELEASE_DIR)/kingpin $(COPYDIR)/kingpin
strip $(COPYDIR)/kingpin
-mkdir $(COPYDIR)/main
-mkdir $(COPYDIR)/main/maps
for x in `find $(COPYDIR)/main -type d`; do chmod 755 $$x;done
for x in `find $(COPYDIR)/main -type f`; do chmod 644 $$x;done
chmod 1777 $(COPYDIR)/main
chmod 1777 $(COPYDIR)/main/maps
# Swap these over when debugging process is complete
# cp $(BUILD_DEBUG_DIR)/game$(ARCH).$(SHLIBEXT) $(COPYDIR)/main
cp $(BUILD_RELEASE_DIR)/game$(ARCH).$(SHLIBEXT) $(COPYDIR)/main
cp $(BUILD_RELEASE_DIR)/ref_gl.$(SHLIBEXT) $(COPYDIR)
cp $(BUILD_RELEASE_DIR)/ref_glx.$(SHLIBEXT) $(COPYDIR)
cp $(QUAKE2_DIR)/lib3dfxgl.so $(COPYDIR)
cp $(QUAKE2_DIR)/libTNTgl.so $(COPYDIR)
cp $(QUAKE2_DIR)/libMesaGL.so.2.6 $(COPYDIR)
cd $(COPYDIR); ln -sf libMesaGL.so.2.6 libMesaGL.so.2
cd $(COPYDIR); ln -sf libMesaGL.so.2 libMesaGL.so
cd $(COPYDIR); ln -sf libMesaGL.so libGL.so
cp $(MOUNT_DIR)/linux/README $(COPYDIR)
cp ccase $(COPYDIR)/main
cp $(MOUNT_DIR)/../patch12.txt $(COPYDIR)
cp $(MOUNT_DIR)/../main/server.cfg $(COPYDIR)/main
cp $(MOUNT_DIR)/../main/teammaps.lst $(COPYDIR)/main
cp $(MOUNT_DIR)/../main/maps/team_rival.bsp $(COPYDIR)/main/maps
cp $(MOUNT_DIR)/../main/maps/team_towers.bsp $(COPYDIR)/main/maps
kingpin.spec : $(MOUNT_DIR)/linux/kingpin.spec.sh makefile
sh $< $(VERSION_FN) $(RPM_RELEASE) $(ARCH) $(INSTALLDIR) > $@
tar_ded:
if [ ! -d archives ];then mkdir archives;fi
$(MAKE) copyfiles_ded COPYDIR=$(RPMDIR)
cp $(MOUNT_DIR)/linux/kingpin.conf $(RPMDIR)/kingpin.conf
cd $(RPMDIR); sh $(MOUNT_DIR)/linux/fixperms.sh
cd $(RPMDIR); tar czvf kpded-$(VERSION_FN)-$(ARCH)-linux2.0.tar.gz *
mv $(RPMDIR)/*.tar.gz /pub
rm -rf $(RPMDIR)
copyfiles_ded:
-mkdirhier $(COPYDIR)
cp $(BUILD_RELEASE_DIR)/kingpin $(COPYDIR)/kingpin
strip $(COPYDIR)/kingpin
-mkdir $(COPYDIR)/main
-mkdir $(COPYDIR)/main/maps
for x in `find $(COPYDIR)/main -type d`; do chmod 755 $$x;done
for x in `find $(COPYDIR)/main -type f`; do chmod 644 $$x;done
chmod 1777 $(COPYDIR)/main
chmod 1777 $(COPYDIR)/main/maps
# Swap these over when debugging process is complete
cp $(BUILD_DEBUG_DIR)/game$(ARCH).$(SHLIBEXT) $(COPYDIR)/main
# cp $(BUILD_RELEASE_DIR)/game$(ARCH).$(SHLIBEXT) $(COPYDIR)/main
cp $(MOUNT_DIR)/linux/README $(COPYDIR)
cp ccase $(COPYDIR)/main
cp $(MOUNT_DIR)/../patch12.txt $(COPYDIR)
cp $(MOUNT_DIR)/../main/server.cfg $(COPYDIR)/main
cp $(MOUNT_DIR)/../main/teammaps.lst $(COPYDIR)/main
cp $(MOUNT_DIR)/../main/maps/team_rival.bsp $(COPYDIR)/main/maps
cp $(MOUNT_DIR)/../main/maps/team_towers.bsp $(COPYDIR)/main/maps
#############################################################################
# MISC
#############################################################################
clean: clean-debug clean-release
clean-debug:
$(MAKE) clean2 BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)"
clean-release:
$(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)"
clean2:
-rm -f \
$(QUAKE2_OBJS) \
$(Q2DED_OBJS) \
$(QUAKE2_AS_OBJS) \
$(GAME_OBJS) \
$(CTF_OBJS) \
$(XATRIX_OBJS) \
$(ROGUE_OBJS) \
$(REF_SOFT_OBJS) \
$(REF_SOFT_SVGA_OBJS) \
$(REF_SOFT_X11_OBJS) \
$(REF_GL_OBJS) \
$(REF_GL_FXMESA_OBJS) \
$(REF_GL_GLX_OBJS)