# # Quake Makefile for Linux 2.0 # # Aug '98 by Zoid # # ELF only # # Modified by QuDos at http://qudos.quakedev.com # BASEVERSION=1.09 VERSION=$(BASEVERSION) #BUILD_SDL=YES # quake sdl glx executable (uses SDL for cdrom and sound) 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 else ARCH=i386 endif NOARCH=noarch MOUNT_DIR=./src BUILD_DEBUG_DIR=debug BUILD_RELEASE_DIR=release CC?=gcc 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/) USE_OPTIMIZED_CFLAGS?=YES ifeq ($(ARCH),i386) USE_X86_ASM?=YES else USE_X86_ASM=NO endif BASE_CFLAGS=$(CFLAGS) -Dstricmp=strcasecmp #-Wall ifeq ($(strip $(USE_X86_ASM)),YES) BASE_CFLAGS+=-Did386 endif RELEASE_CFLAGS=$(BASE_CFLAGS) ifeq ($(strip $(USE_OPTIMIZED_CFLAGS)),YES) RELEASE_CFLAGS+=-O2 -ffast-math -funroll-loops \ -fomit-frame-pointer -fexpensive-optimizations -fno-strict-aliasing endif DEBUG_CFLAGS=$(BASE_CFLAGS) -g LDFLAGS+=-lm -lz ifeq ($(strip $(BUILD_SDL)),YES) SDLCFLAGS=$(shell $(SDL_CONFIG) --cflags) SDLLDFLAGS=$(shell $(SDL_CONFIG) --libs) BASE_CFLAGS += \ -D_SDL_BIN endif GLLDFLAGS=-L$(X11BASE)/lib -lGL -lX11 -lXext -lXxf86dga -lXxf86vm GLCFLAGS=-DGLQUAKE -I$(X11BASE)/include DO_CC=$(CC) $(CFLAGS) -o $@ -c $< DO_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) -o $@ -c $< DO_GL_CC=$(CC) $(CFLAGS) $(GLCFLAGS) -o $@ -c $< DO_GL_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(GLCFLAGS) -o $@ -c $< DO_X11_CC=$(CC) $(CFLAGS) $(XCFLAGS) -o $@ -c $< DO_X11_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(XCFLAGS) -o $@ -c $< DO_O_CC=$(CC) -O $(CFLAGS) -o $@ -c $< DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< DO_GL_AS=$(CC) $(CFLAGS) $(GLCFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< ############################################################################# # SETUP AND BUILD ############################################################################# TARGETS=$(BUILDDIR)/nehahra ifeq ($(strip $(BUILD_SDL)),YES) TARGETS +=$(BUILDDIR)/nehahra-sdl endif all: @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 clean " @echo @echo ">> SDL binaries options " @echo ">> make release BUILD_SDL=YES build the binary for a SDL release." @echo ">> make debug BUILD_SDL=YES build the binary for SDL debuging mode." @echo ">> make clean BUILD_SDL=YES" @echo debug: @-mkdir $(BUILD_DEBUG_DIR) \ $(BUILD_DEBUG_DIR)/glquake $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)" release: @-mkdir $(BUILD_RELEASE_DIR) \ $(BUILD_RELEASE_DIR)/glquake $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)" targets: $(TARGETS) ############################################################################# # GLQuake ############################################################################# GLQUAKE_OBJS= \ $(BUILDDIR)/glquake/cl_demo.o \ $(BUILDDIR)/glquake/cl_input.o \ $(BUILDDIR)/glquake/cl_main.o \ $(BUILDDIR)/glquake/cl_parse.o \ $(BUILDDIR)/glquake/cl_tent.o \ $(BUILDDIR)/glquake/chase.o \ $(BUILDDIR)/glquake/cmd.o \ $(BUILDDIR)/glquake/common.o \ $(BUILDDIR)/glquake/console.o \ $(BUILDDIR)/glquake/crc.o \ $(BUILDDIR)/glquake/cvar.o \ $(BUILDDIR)/glquake/d_vars.o \ \ $(BUILDDIR)/glquake/dzipcrc.o \ $(BUILDDIR)/glquake/dzipdecode.o \ $(BUILDDIR)/glquake/dzipun.o \ $(BUILDDIR)/glquake/dzipmain.o \ \ $(BUILDDIR)/glquake/gl_draw.o \ $(BUILDDIR)/glquake/gl_mesh.o \ $(BUILDDIR)/glquake/gl_model.o \ $(BUILDDIR)/glquake/gl_refrag.o \ $(BUILDDIR)/glquake/gl_rlight.o \ $(BUILDDIR)/glquake/gl_rmain.o \ $(BUILDDIR)/glquake/gl_rmisc.o \ $(BUILDDIR)/glquake/gl_rsurf.o \ $(BUILDDIR)/glquake/gl_screen.o \ $(BUILDDIR)/glquake/gl_warp.o \ \ $(BUILDDIR)/glquake/host.o \ $(BUILDDIR)/glquake/host_cmd.o \ $(BUILDDIR)/glquake/keys.o \ $(BUILDDIR)/glquake/menu.o \ $(BUILDDIR)/glquake/mathlib.o \ $(BUILDDIR)/glquake/neh.o \ $(BUILDDIR)/glquake/net_dgrm.o \ $(BUILDDIR)/glquake/net_loop.o \ $(BUILDDIR)/glquake/net_main.o \ $(BUILDDIR)/glquake/net_vcr.o \ $(BUILDDIR)/glquake/net_udp.o \ $(BUILDDIR)/glquake/net_bsd.o \ $(BUILDDIR)/glquake/pr_cmds.o \ $(BUILDDIR)/glquake/pr_edict.o \ $(BUILDDIR)/glquake/pr_exec.o \ $(BUILDDIR)/glquake/r_part.o \ $(BUILDDIR)/glquake/r_vars.o \ $(BUILDDIR)/glquake/sbar.o \ $(BUILDDIR)/glquake/sv_main.o \ $(BUILDDIR)/glquake/sv_phys.o \ $(BUILDDIR)/glquake/sv_move.o \ $(BUILDDIR)/glquake/sv_user.o \ $(BUILDDIR)/glquake/zone.o \ $(BUILDDIR)/glquake/view.o \ $(BUILDDIR)/glquake/wad.o \ $(BUILDDIR)/glquake/world.o \ $(BUILDDIR)/glquake/sys_linux.o \ $(BUILDDIR)/glquake/snd_dma.o \ $(BUILDDIR)/glquake/snd_mem.o \ $(BUILDDIR)/glquake/snd_mix.o ifeq ($(strip $(USE_X86_ASM)),YES) GLQUAKE_OBJS+= \ $(BUILDDIR)/glquake/math.o \ $(BUILDDIR)/glquake/worlda.o \ $(BUILDDIR)/glquake/snd_mixa.o \ $(BUILDDIR)/glquake/sys_dosa.o endif GLQUAKE_LNX_OBJS = \ $(BUILDDIR)/glquake/cd_linux.o \ $(BUILDDIR)/glquake/snd_linux.o GLQUAKE_SDL_OBJS = \ $(BUILDDIR)/glquake/cd_sdl.o \ $(BUILDDIR)/glquake/snd_linux_sdl.o GLX_OBJS=$(BUILDDIR)/glquake/gl_vidlinuxglx.o $(BUILDDIR)/nehahra : $(GLQUAKE_OBJS) $(GLQUAKE_LNX_OBJS) $(GLX_OBJS) $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLX_OBJS) $(GLQUAKE_LNX_OBJS) $(GLLDFLAGS) $(LDFLAGS) $(BUILDDIR)/nehahra-sdl : $(GLQUAKE_OBJS) $(GLQUAKE_SDL_OBJS) $(GLX_OBJS) $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLX_OBJS) $(GLQUAKE_SDL_OBJS) $(GLLDFLAGS) $(LDFLAGS) $(SDLLDFLAGS) $(BUILDDIR)/glquake/cl_demo.o : $(MOUNT_DIR)/cl_demo.c $(DO_GL_CC) $(BUILDDIR)/glquake/cl_input.o : $(MOUNT_DIR)/cl_input.c $(DO_GL_CC) $(BUILDDIR)/glquake/cl_main.o : $(MOUNT_DIR)/cl_main.c $(DO_GL_CC) $(BUILDDIR)/glquake/cl_parse.o : $(MOUNT_DIR)/cl_parse.c $(DO_GL_CC) $(BUILDDIR)/glquake/cl_tent.o : $(MOUNT_DIR)/cl_tent.c $(DO_GL_CC) $(BUILDDIR)/glquake/chase.o : $(MOUNT_DIR)/chase.c $(DO_GL_CC) $(BUILDDIR)/glquake/cmd.o : $(MOUNT_DIR)/cmd.c $(DO_GL_CC) $(BUILDDIR)/glquake/common.o : $(MOUNT_DIR)/common.c $(DO_GL_DEBUG_CC) $(BUILDDIR)/glquake/console.o : $(MOUNT_DIR)/console.c $(DO_GL_CC) $(BUILDDIR)/glquake/crc.o : $(MOUNT_DIR)/crc.c $(DO_GL_CC) $(BUILDDIR)/glquake/cvar.o : $(MOUNT_DIR)/cvar.c $(DO_GL_CC) $(BUILDDIR)/glquake/d_vars.o : $(MOUNT_DIR)/d_vars.c $(DO_GL_CC) $(BUILDDIR)/glquake/dzipcrc.o : $(MOUNT_DIR)/dzipcrc.c $(DO_GL_CC) $(BUILDDIR)/glquake/dzipdecode.o : $(MOUNT_DIR)/dzipdecode.c $(DO_GL_CC) $(BUILDDIR)/glquake/dzipun.o : $(MOUNT_DIR)/dzipun.c $(DO_GL_CC) $(BUILDDIR)/glquake/dzipmain.o : $(MOUNT_DIR)/dzipmain.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_draw.o : $(MOUNT_DIR)/gl_draw.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_mesh.o : $(MOUNT_DIR)/gl_mesh.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_model.o : $(MOUNT_DIR)/gl_model.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_refrag.o : $(MOUNT_DIR)/gl_refrag.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_rlight.o : $(MOUNT_DIR)/gl_rlight.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_rmain.o : $(MOUNT_DIR)/gl_rmain.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_rmisc.o : $(MOUNT_DIR)/gl_rmisc.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_rsurf.o : $(MOUNT_DIR)/gl_rsurf.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_screen.o : $(MOUNT_DIR)/gl_screen.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_vidlinuxglx.o : $(MOUNT_DIR)/gl_vidlinuxglx.c $(DO_GL_CC) $(BUILDDIR)/glquake/gl_warp.o : $(MOUNT_DIR)/gl_warp.c $(DO_GL_CC) $(BUILDDIR)/glquake/host.o : $(MOUNT_DIR)/host.c $(DO_GL_CC) $(BUILDDIR)/glquake/host_cmd.o : $(MOUNT_DIR)/host_cmd.c $(DO_GL_CC) $(BUILDDIR)/glquake/keys.o : $(MOUNT_DIR)/keys.c $(DO_GL_CC) $(BUILDDIR)/glquake/menu.o : $(MOUNT_DIR)/menu.c $(DO_GL_CC) $(BUILDDIR)/glquake/neh.o : $(MOUNT_DIR)/neh.c $(DO_GL_CC) $(BUILDDIR)/glquake/mathlib.o : $(MOUNT_DIR)/mathlib.c $(DO_GL_CC) $(BUILDDIR)/glquake/net_dgrm.o : $(MOUNT_DIR)/net_dgrm.c $(DO_GL_CC) $(BUILDDIR)/glquake/net_loop.o : $(MOUNT_DIR)/net_loop.c $(DO_GL_CC) $(BUILDDIR)/glquake/net_main.o : $(MOUNT_DIR)/net_main.c $(DO_GL_CC) $(BUILDDIR)/glquake/net_vcr.o : $(MOUNT_DIR)/net_vcr.c $(DO_GL_CC) $(BUILDDIR)/glquake/net_udp.o : $(MOUNT_DIR)/net_udp.c $(DO_GL_CC) $(BUILDDIR)/glquake/net_bsd.o : $(MOUNT_DIR)/net_bsd.c $(DO_GL_CC) $(BUILDDIR)/glquake/pr_cmds.o : $(MOUNT_DIR)/pr_cmds.c $(DO_GL_CC) $(BUILDDIR)/glquake/pr_edict.o : $(MOUNT_DIR)/pr_edict.c $(DO_GL_CC) $(BUILDDIR)/glquake/pr_exec.o : $(MOUNT_DIR)/pr_exec.c $(DO_GL_CC) $(BUILDDIR)/glquake/r_part.o : $(MOUNT_DIR)/r_part.c $(DO_GL_CC) $(BUILDDIR)/glquake/r_vars.o : $(MOUNT_DIR)/r_vars.c $(DO_GL_CC) $(BUILDDIR)/glquake/sbar.o : $(MOUNT_DIR)/sbar.c $(DO_GL_CC) $(BUILDDIR)/glquake/sv_main.o : $(MOUNT_DIR)/sv_main.c $(DO_GL_CC) $(BUILDDIR)/glquake/sv_phys.o : $(MOUNT_DIR)/sv_phys.c $(DO_GL_CC) $(BUILDDIR)/glquake/sv_move.o : $(MOUNT_DIR)/sv_move.c $(DO_GL_CC) $(BUILDDIR)/glquake/sv_user.o : $(MOUNT_DIR)/sv_user.c $(DO_GL_CC) $(BUILDDIR)/glquake/zone.o : $(MOUNT_DIR)/zone.c $(DO_GL_CC) $(BUILDDIR)/glquake/view.o : $(MOUNT_DIR)/view.c $(DO_GL_CC) $(BUILDDIR)/glquake/wad.o : $(MOUNT_DIR)/wad.c $(DO_GL_CC) $(BUILDDIR)/glquake/world.o : $(MOUNT_DIR)/world.c $(DO_GL_CC) $(BUILDDIR)/glquake/cd_linux.o : $(MOUNT_DIR)/cd_linux.c $(DO_GL_CC) $(BUILDDIR)/glquake/cd_sdl.o : $(MOUNT_DIR)/cd_sdl.c $(DO_GL_CC) $(SDLCFLAGS) $(BUILDDIR)/glquake/sys_linux.o : $(MOUNT_DIR)/sys_linux.c $(DO_GL_CC) $(BUILDDIR)/glquake/snd_dma.o : $(MOUNT_DIR)/snd_dma.c $(DO_GL_CC) $(BUILDDIR)/glquake/snd_mem.o : $(MOUNT_DIR)/snd_mem.c $(DO_GL_CC) $(BUILDDIR)/glquake/snd_mix.o : $(MOUNT_DIR)/snd_mix.c $(DO_GL_CC) $(BUILDDIR)/glquake/snd_linux.o : $(MOUNT_DIR)/snd_linux.c $(DO_GL_CC) $(BUILDDIR)/glquake/snd_linux_sdl.o : $(MOUNT_DIR)/snd_linux_sdl.c $(DO_GL_CC) $(SDLCFLAGS) $(BUILDDIR)/glquake/math.o : $(MOUNT_DIR)/math.s $(DO_GL_AS) $(BUILDDIR)/glquake/snd_mixa.o : $(MOUNT_DIR)/snd_mixa.s $(DO_GL_AS) $(BUILDDIR)/glquake/sys_dosa.o : $(MOUNT_DIR)/sys_dosa.s $(DO_GL_AS) $(BUILDDIR)/glquake/worlda.o : $(MOUNT_DIR)/worlda.s $(DO_GL_AS) ############################################################################# # 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 $(GLQUAKE_OBJS) \ $(GLX_OBJS) \ $(GLQUAKE_LNX_OBJS) \ $(GLQUAKE_SDL_OBJS)