# # QuakeWorld Makefile for Linux 2.0 # # Apr '98 by Zoid # # GNU Make required # ifneq (,$(findstring i86pc,$(shell uname -m))) ARCH=i386 else ARCH=sparc endif MAINDIR=/grog/Projects/QW BUILD_DEBUG_DIR=debug$(ARCH) BUILD_RELEASE_DIR=release$(ARCH) CLIENT_DIR=$(MAINDIR)/client SERVER_DIR=$(MAINDIR)/server CC=gcc BASE_CFLAGS=-Wall -Dstricmp=strcasecmp -I$(CLIENT_DIR) -I$(SERVER_DIR) RELEASE_CFLAGS=$(BASE_CFLAGS) -O2 -ffast-math # -funroll-loops -fomit-frame-pointer -fexpensive-optimizations DEBUG_CFLAGS=$(BASE_CFLAGS) -g LDFLAGS=-lm -lsocket -lnsl DO_CC=$(CC) $(CFLAGS) -o $@ -c $< DO_SERVER_CC=$(CC) -DSERVERONLY $(CFLAGS) -o $@ -c $< ############################################################################# # SETUP AND BUILD ############################################################################# TARGETS=$(BUILDDIR)/qwsv build_debug: @-mkdir $(BUILD_DEBUG_DIR) \ $(BUILD_DEBUG_DIR)/server $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)" build_release: @-mkdir $(BUILD_RELEASE_DIR) \ $(BUILD_RELEASE_DIR)/server $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)" all: build_debug build_release targets: $(TARGETS) ############################################################################# # SERVER ############################################################################# QWSV_OBJS = \ $(BUILDDIR)/server/pr_cmds.o \ $(BUILDDIR)/server/pr_edict.o \ $(BUILDDIR)/server/pr_exec.o \ $(BUILDDIR)/server/sv_init.o \ $(BUILDDIR)/server/sv_main.o \ $(BUILDDIR)/server/sv_nchan.o \ $(BUILDDIR)/server/sv_ents.o \ $(BUILDDIR)/server/sv_send.o \ $(BUILDDIR)/server/sv_move.o \ $(BUILDDIR)/server/sv_phys.o \ $(BUILDDIR)/server/sv_user.o \ $(BUILDDIR)/server/sv_ccmds.o \ $(BUILDDIR)/server/world.o \ $(BUILDDIR)/server/sys_unix.o \ $(BUILDDIR)/server/model.o \ $(BUILDDIR)/server/cmd.o \ $(BUILDDIR)/server/common.o \ $(BUILDDIR)/server/crc.o \ $(BUILDDIR)/server/cvar.o \ $(BUILDDIR)/server/mathlib.o \ $(BUILDDIR)/server/md4.o \ $(BUILDDIR)/server/zone.o \ $(BUILDDIR)/server/pmove.o \ $(BUILDDIR)/server/pmovetst.o \ $(BUILDDIR)/server/net_chan.o \ $(BUILDDIR)/server/net_udp.o $(BUILDDIR)/qwsv : $(QWSV_OBJS) $(CC) $(CFLAGS) -o $@ $(QWSV_OBJS) $(LDFLAGS) $(BUILDDIR)/server/pr_cmds.o : $(SERVER_DIR)/pr_cmds.c $(DO_SERVER_CC) $(BUILDDIR)/server/pr_edict.o : $(SERVER_DIR)/pr_edict.c $(DO_SERVER_CC) $(BUILDDIR)/server/pr_exec.o : $(SERVER_DIR)/pr_exec.c $(DO_SERVER_CC) $(BUILDDIR)/server/sv_init.o : $(SERVER_DIR)/sv_init.c $(DO_SERVER_CC) $(BUILDDIR)/server/sv_main.o : $(SERVER_DIR)/sv_main.c $(DO_SERVER_CC) $(BUILDDIR)/server/sv_nchan.o : $(SERVER_DIR)/sv_nchan.c $(DO_SERVER_CC) $(BUILDDIR)/server/sv_ents.o : $(SERVER_DIR)/sv_ents.c $(DO_SERVER_CC) $(BUILDDIR)/server/sv_send.o : $(SERVER_DIR)/sv_send.c $(DO_SERVER_CC) $(BUILDDIR)/server/sv_move.o : $(SERVER_DIR)/sv_move.c $(DO_SERVER_CC) $(BUILDDIR)/server/sv_phys.o : $(SERVER_DIR)/sv_phys.c $(DO_SERVER_CC) $(BUILDDIR)/server/sv_user.o : $(SERVER_DIR)/sv_user.c $(DO_SERVER_CC) $(BUILDDIR)/server/sv_ccmds.o : $(SERVER_DIR)/sv_ccmds.c $(DO_SERVER_CC) $(BUILDDIR)/server/world.o : $(SERVER_DIR)/world.c $(DO_SERVER_CC) $(BUILDDIR)/server/sys_unix.o : $(SERVER_DIR)/sys_unix.c $(DO_SERVER_CC) $(BUILDDIR)/server/model.o : $(SERVER_DIR)/model.c $(DO_SERVER_CC) $(BUILDDIR)/server/cmd.o : $(CLIENT_DIR)/cmd.c $(DO_SERVER_CC) $(BUILDDIR)/server/common.o : $(CLIENT_DIR)/common.c $(DO_SERVER_CC) $(BUILDDIR)/server/crc.o : $(CLIENT_DIR)/crc.c $(DO_SERVER_CC) $(BUILDDIR)/server/cvar.o : $(CLIENT_DIR)/cvar.c $(DO_SERVER_CC) $(BUILDDIR)/server/mathlib.o : $(CLIENT_DIR)/mathlib.c $(DO_SERVER_CC) $(BUILDDIR)/server/md4.o : $(CLIENT_DIR)/md4.c $(DO_SERVER_CC) $(BUILDDIR)/server/zone.o : $(CLIENT_DIR)/zone.c $(DO_SERVER_CC) $(BUILDDIR)/server/pmove.o : $(CLIENT_DIR)/pmove.c $(DO_SERVER_CC) $(BUILDDIR)/server/pmovetst.o : $(CLIENT_DIR)/pmovetst.c $(DO_SERVER_CC) $(BUILDDIR)/server/net_chan.o : $(CLIENT_DIR)/net_chan.c $(DO_SERVER_CC) $(BUILDDIR)/server/net_udp.o : $(CLIENT_DIR)/net_udp.c $(DO_SERVER_CC) ############################################################################# # 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 $(QWSV_OBJS) \ $(QWCL_OBJS) \ $(QWCL_AS_OBJS) \ $(QWCL_SVGA_OBJS) \ $(QWCL_X11_OBJS) \ $(GLQWCL_OBJS) \