diff options
| author | wyatt8740 <wyattfward@gmail.com> | 2021-01-19 14:40:32 -0500 |
|---|---|---|
| committer | wyatt8740 <wyattfward@gmail.com> | 2021-01-19 14:40:32 -0500 |
| commit | 6f34ea985bc389605b9e03645ab258259ba49c81 (patch) | |
| tree | 98874957c6baaae857ed8ce70e0c624c1f8ba50c /WinQuake/Makefile | |
| parent | 9b671e8d4380c6cdf4b70fbf954e29481b9fdf85 (diff) | |
| download | quake-pum-6f34ea985bc389605b9e03645ab258259ba49c81.tar.gz | |
SDL2 audio backend, retrofitted from quakespasm (Music still requires either a CD drive with analogue audio playback or CD drive emulator software like cdemu, but SFX no longer require OSS DMA for playback and Quake no longer inherently prevents other software from making sound while running)
Diffstat (limited to 'WinQuake/Makefile')
| -rw-r--r-- | WinQuake/Makefile | 91 |
1 files changed, 71 insertions, 20 deletions
diff --git a/WinQuake/Makefile b/WinQuake/Makefile index c23e812..4f111f5 100644 --- a/WinQuake/Makefile +++ b/WinQuake/Makefile @@ -6,6 +6,21 @@ # ELF only # +# wyatt: sdl2 audio, mostly borrowed from quakespasm with some tweaks for +# otherwise-vanilla Quake. +# _comment out_ USE_SDL2 definitions to disable (falls back to OSS DMA sound). +# non-1 values might work for SDL 1.x support, but this is currently +# untested (though likely to work). +USE_SDL2=1 + +ifeq ($(USE_SDL2),1) +SDL_CONFIG ?= sdl2-config +else +SDL_CONFIG ?= sdl-config +endif +SDL_CFLAGS := $(shell $(SDL_CONFIG) --cflags) -DUSE_SDL2 +SDL_LIBS := $(shell $(SDL_CONFIG) --libs) + BASEVERSION=1.09 VERSION=$(BASEVERSION)$(GLIBC) @@ -22,7 +37,8 @@ ARCH=i386 endif NOARCH=noarch -MOUNT_DIR=/home/wyatt/development/q1source/WinQuake +# Edit this path, or you probably will run into trouble. +MOUNT_DIR=/home/wyatt/development/Quake-LinuxUpdate/WinQuake MASTER_DIR=/grog/Projects/QuakeMaster MESA_DIR=/usr/local/src/Mesa-2.6 @@ -32,25 +48,33 @@ BUILD_RELEASE_DIR=release$(ARCH)$(GLIBC) EGCS=/usr/bin/gcc CC=$(EGCS) -BASE_CFLAGS=-Dstricmp=strcasecmp -RELEASE_CFLAGS=$(BASE_CFLAGS) -g -mtune=corei7 -O3 -march=corei7 +# GCC 10 seems to require -no-pie to function properly. It _definitely_ +# does require -fcommon. -m32 is because I am building on a 64-bit machine +# and this game still has some i386 (32-bit) assembly that I haven't replaced +# or otherwise added alternative, portable code for. +# Hopefully, I'll be able to run this game on PowerPC some day. +BASE_CFLAGS=-Dstricmp=strcasecmp -m32 -fcommon -no-pie +# might have to change these, too, if you are on another architecture or +# cross-compiling (don't use 'native'): +RELEASE_CFLAGS=$(BASE_CFLAGS) -g -mtune=native -O3 -march=native +# note that powerpc uses -mcpu instead of -march, if I ever do port it. DEBUG_CFLAGS=$(BASE_CFLAGS) -g -LDFLAGS=-lm +LDFLAGS=-lm -m32 SVGALDFLAGS=-lvga -XLDFLAGS=-L/usr/X11R6/lib -lX11 -lXext -lXxf86dga +XLDFLAGS=-L/usr/X11R6/lib -lX11 -lXext /usr/lib/i386-linux-gnu/libXxf86dga.so.1.0.0 XCFLAGS=-DX11 -#MESAGLLDFLAGS=-L/usr/X11/lib -L/usr/local/lib -L$(MESA_DIR)/lib -lMesaGL -lglide2x -lX11 -lXext -ldl -MESAGLLDFLAGS=-L/usr/X11/lib -L/usr/local/lib -L$(MESA_DIR)/lib -lMesaGL -lX11 -lXext -ldl -GLLDFLAGS=-L/usr/X11/lib -L/usr/local/lib -lGL -lX11 -lXext -ldl -lXxf86dga -lXxf86vm -lm -GLCFLAGS=-DGLQUAKE -I$(MESA_DIR)/include -I/usr/src/linux-headers-3.5.0-44-generic/include -I/usr/src/linux-headers-3.5.0-44/arch/x86/include -I/usr/include/glide +MESAGLLDFLAGS=-L/usr/lib/X11 -L/usr/local/lib -L$(MESA_DIR)/lib -lMesaGL -lglide2x -lX11 -lXext -ldl +TDFXGLLDFLAGS=-L$(TDFXGL_DIR)/release$(ARCH)$(GLIBC) -l3dfxgl -lglide2x -ldl +GLLDFLAGS=-L/usr/X11/lib -L/usr/local/lib -lGL -lX11 -lXext -ldl /usr/lib/i386-linux-gnu/libXxf86dga.so.1.0.0 /usr/lib/i386-linux-gnu/libXxf86vm.so.1.0.0 -lm +GLCFLAGS=-DGLQUAKE -I$(MESA_DIR)/include -I/usr/include/glide 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_GL_CC=$(CC) $(CFLAGS) $(GLCFLAGS) $(SDL_CFLAGS) -o $@ -c $< +DO_GL_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(GLCFLAGS) $(SDL_CFLAGS) -o $@ -c $< +DO_X11_CC=$(CC) $(CFLAGS) $(XCFLAGS) $(SDL_CFLAGS) -o $@ -c $< +DO_X11_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(XCFLAGS) $(SDL_CFLAGS) -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 $< @@ -59,7 +83,11 @@ DO_GL_AS=$(CC) $(CFLAGS) $(GLCFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< # SETUP AND BUILD ############################################################################# -TARGETS=$(BUILDDIR)/bin/glquake.glx +# GLQuake build: +# TARGETS=$(BUILDDIR)/bin/glquake.glx + +# X11 Quake (software-rendered) build: +TARGETS=$(BUILDDIR)/bin/quake.x11 build_debug: @-mkdir $(BUILD_DEBUG_DIR) \ @@ -86,6 +114,8 @@ targets: $(TARGETS) ############################################################################# # X11 Quake ############################################################################# +# REPLACED snd_linux.o with snd_sdl.o from quakespasm +# $(BUILDDIR)/x11/snd_linux.o \ X11_OBJS = \ $(BUILDDIR)/x11/cl_demo.o \ @@ -158,7 +188,6 @@ X11_OBJS = \ $(BUILDDIR)/x11/snd_dma.o \ $(BUILDDIR)/x11/snd_mem.o \ $(BUILDDIR)/x11/snd_mix.o \ - $(BUILDDIR)/x11/snd_linux.o \ \ $(BUILDDIR)/x11/d_draw.o \ $(BUILDDIR)/x11/d_draw16.o \ @@ -179,8 +208,18 @@ X11_OBJS = \ $(BUILDDIR)/x11/snd_mixa.o \ $(BUILDDIR)/x11/sys_dosa.o +ifeq ($(USE_SDL2),1) +# sdl sound +X11_OBJS := $(X11_OBJS) \ + $(BUILDDIR)/x11/snd_sdl.o +else +# OSS sound +X11_OBJS := $(X11_OBJS) \ + $(BUILDDIR)/x11/snd_linux.o +endif + $(BUILDDIR)/bin/quake.x11 : $(X11_OBJS) - $(CC) $(CFLAGS) -o $@ $(X11_OBJS) $(XLDFLAGS) $(LDFLAGS) + $(CC) $(CFLAGS) -o $@ $(X11_OBJS) $(XLDFLAGS) $(SDL_LIBS) $(LDFLAGS) #### @@ -397,6 +436,9 @@ $(BUILDDIR)/x11/snd_mix.o : $(MOUNT_DIR)/snd_mix.c $(BUILDDIR)/x11/snd_linux.o :$(MOUNT_DIR)/snd_linux.c $(DO_X11_CC) +$(BUILDDIR)/x11/snd_sdl.o :$(MOUNT_DIR)/snd_sdl.c + $(DO_X11_CC) + ##### $(BUILDDIR)/x11/d_copy.o : $(MOUNT_DIR)/d_copy.s @@ -514,25 +556,34 @@ GLQUAKE_OBJS= \ $(BUILDDIR)/glquake/snd_dma.o \ $(BUILDDIR)/glquake/snd_mem.o \ $(BUILDDIR)/glquake/snd_mix.o \ - $(BUILDDIR)/glquake/snd_linux.o \ \ $(BUILDDIR)/glquake/math.o \ $(BUILDDIR)/glquake/worlda.o \ $(BUILDDIR)/glquake/snd_mixa.o \ $(BUILDDIR)/glquake/sys_dosa.o +ifeq ($(USE_SDL2),1) +# sdl sound +GLQUAKE_OBJS := $(GLQUAKE_OBJS) \ + $(BUILDDIR)/glquake/snd_sdl.o +else +# OSS sound +GLQUAKE_OBJS := $(GLQUAkE_OBJS) \ + $(BUILDDIR)/glquake/snd_linux.o +endif + GLSVGA_OBJS=$(BUILDDIR)/glquake/gl_vidlinux.o GLX_OBJS=$(BUILDDIR)/glquake/gl_vidlinuxglx.o $(BUILDDIR)/bin/glquake : $(GLQUAKE_OBJS) $(GLSVGA_OBJS) - $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLSVGA_OBJS) $(MESAGLLDFLAGS) $(SVGALDFLAGS) $(LDFLAGS) + $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLSVGA_OBJS) $(MESAGLLDFLAGS) $(SVGALDFLAGS) $(SDL_LIBS) $(LDFLAGS) $(BUILDDIR)/bin/glquake.glx : $(GLQUAKE_OBJS) $(GLX_OBJS) - $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLX_OBJS) $(GLLDFLAGS) $(LDFLAGS) + $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLX_OBJS) $(GLLDFLAGS) $(SDL_LIBS) $(LDFLAGS) $(BUILDDIR)/bin/glquake.3dfxgl : $(GLQUAKE_OBJS) $(GLSVGA_OBJS) - $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLSVGA_OBJS) $(TDFXGLLDFLAGS) $(SVGALDFLAGS) $(LDFLAGS) + $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLSVGA_OBJS) $(TDFXGLLDFLAGS) $(SVGALDFLAGS) $(SDL_LIBS) $(LDFLAGS) $(BUILDDIR)/glquake/cl_demo.o : $(MOUNT_DIR)/cl_demo.c $(DO_GL_CC) |
