mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-18 02:12:00 +00:00
087e34bbb3
- Added a cheap pitch shifting for underwater environments that should be fairly close to Duke's. It sounds okay for some sounds, but others like the BFG, where the timing of the sound actually matters, don't sound good. I shall have to replace it with a real pitch shifter DSP unit. SVN r819 (trunk)
157 lines
4.5 KiB
Text
157 lines
4.5 KiB
Text
# created on 4/12/2006 by James Bentler
|
|
|
|
CXX ?= g++
|
|
CC ?= gcc
|
|
NASM ?= nasm
|
|
CCDV = @./ccdv
|
|
ifdef DEBUG
|
|
CFLAGS ?= -pipe -Wall -Wno-unused -fno-strict-aliasing
|
|
else
|
|
CFLAGS ?= -pipe -Wall -Wno-unused -fno-strict-aliasing -O2 -fomit-frame-pointer
|
|
CXXFLAGS ?= -fno-rtti
|
|
endif
|
|
ifdef GC
|
|
CFLAGS += -ffunction-sections
|
|
LDFLAGS += -Wl,--gc-sections
|
|
endif
|
|
CFLAGS += -MMD -DHAVE_FILELENGTH -D__forceinline=inline `sdl-config --cflags` `pkg-config gtk+-2.0 --cflags`
|
|
CFLAGS += -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -DNEED_STRUPR
|
|
LDFLAGS += snes_spc/libsnes_spc.a -lz -ljpeg -lfmodex `sdl-config --libs` `pkg-config gtk+-2.0 --libs`
|
|
NASMFLAGS += -f elf -DM_TARGET_LINUX
|
|
|
|
SRCDIRS = src/ $(addprefix src/,g_doom/ g_heretic/ g_hexen/ g_raven/ g_shared/ g_strife/ oplsynth/ sound/ sdl/ textures/ thingdef/)
|
|
VPATH = $(SRCDIRS)
|
|
INCLUDES = $(addprefix -I,$(SRCDIRS))
|
|
INCLUDES += snes_spc/snes_spc/ /usr/local/include/fmodex/
|
|
CFLAGS += $(INCLUDES)
|
|
|
|
RELEASEOBJ ?= releaseobj
|
|
DEBUGOBJ ?= debugobj
|
|
|
|
CPPSRCS = $(wildcard $(addsuffix *.cpp,$(SRCDIRS))) src/xlat/parse_xlat.cpp
|
|
CSRCS = $(wildcard $(addsuffix *.c,$(SRCDIRS)))
|
|
ifdef NOASM
|
|
CFLAGS += -DNOASM
|
|
else
|
|
ASRCS = $(wildcard src/*.nas)
|
|
CFLAGS += -DUSEASM=1
|
|
endif
|
|
SRCS = $(CSRCS) $(CPPSRCS) $(ASRCS)
|
|
CPPOBJFILES = $(notdir $(patsubst %.cpp,%.o,$(CPPSRCS)))
|
|
COBJFILES = $(notdir $(patsubst %.c,%.o,$(CSRCS)))
|
|
AOBJFILES = $(notdir $(patsubst %.nas,%.o,$(ASRCS)))
|
|
|
|
ZDOOM = zdoom
|
|
ZDOOMDEBUG = zdoomd
|
|
|
|
ifdef DEBUG
|
|
OBJDIR = $(DEBUGOBJ)
|
|
CFLAGS += -D_DEBUG -g3
|
|
NASMFLAGS += -g
|
|
ZDOOMBIN = $(ZDOOMDEBUG)
|
|
else
|
|
OBJDIR = $(RELEASEOBJ)
|
|
CFLAGS += -DNDEBUG
|
|
LDFLAGS += -Wl,-Map=$(ZDOOM).map
|
|
ifndef NOSTRIP
|
|
LDFLAGS += -s
|
|
endif
|
|
ZDOOMBIN = $(ZDOOM)
|
|
endif
|
|
CXXFLAGS += $(CFLAGS)
|
|
|
|
COBJS = $(addprefix $(OBJDIR)/,$(CPPOBJFILES) $(COBJFILES))
|
|
DEPS = $(patsubst %.o,%.d,$(COBJS))
|
|
OBJS = $(addprefix $(OBJDIR)/,$(AOBJFILES)) $(COBJS)
|
|
|
|
all: $(ZDOOMBIN) snes_spc/libsnes_spc.a toolsandpk3 zdoom.pk3
|
|
|
|
$(ZDOOMBIN): ccdv updaterev $(OBJDIR) $(OBJS)
|
|
$(CCDV) $(CXX) $(LDFLAGS) $(OBJDIR)/autostart.o \
|
|
$(filter-out %/autostart.o %/autozend.o,$(OBJS)) \
|
|
$(OBJDIR)/autozend.o -o $(ZDOOMBIN)
|
|
|
|
$(OBJDIR)/%.o: %.cpp
|
|
$(CCDV) $(CXX) $(CXXFLAGS) -o $@ -c $<
|
|
|
|
$(OBJDIR)/%.o: %.c
|
|
$(CCDV) $(CC) $(CFLAGS) -o $@ -c $<
|
|
|
|
$(OBJDIR)/%.o: %.nas
|
|
$(CCDV) $(NASM) -o $@ $(NASMFLAGS) $<
|
|
|
|
# This file needs special handling so that it actually gets compiled with SSE2 support.
|
|
$(OBJDIR)/nodebuild_classify_sse2.o: nodebuild_classify_sse2.cpp
|
|
$(CCDV) $(CXX) $(CXXFLAGS) -msse2 -mfpmath=sse -c -o $@ $<
|
|
|
|
# This file needs special handling because GCC misoptimizes it otherwise.
|
|
$(OBJDIR)/fmopl.o: src/oplsynth/fmopl.cpp
|
|
$(CCDV) $(CXX) $(CXXFLAGS) -fno-tree-dominator-opts -fno-tree-fre -c -o $@ $<
|
|
|
|
src/xlat/xlat_parser.c: src/xlat/xlat_parser.y
|
|
$(CCDV) $(LEMON) -s src/xlat/xlat_parser.y
|
|
|
|
# Dunno why make isn't picking this stuff up automatically for this file.
|
|
$(OBJDIR)/parse_xlat.o: src/xlat/parse_xlat.cpp src/xlat/xlat.h src/xlat/xlat_parser.c src/xlat/xlat_parser.h
|
|
$(CCDV) $(CXX) $(CXXFLAGS) -o $@ -c $<
|
|
|
|
$(OBJDIR):
|
|
mkdir $(OBJDIR)
|
|
|
|
toolsandpk3: ccdv tools/makewad/makewad tools/dehsupp/dehsupp
|
|
$(MAKE) -C wadsrc/
|
|
|
|
zdoom.pk3: toolsandpk3
|
|
ln -sf wadsrc/zdoom.pk3 ./
|
|
|
|
snes_spc/libsnes_spc.a:
|
|
$(MAKE) -C snes_spc/
|
|
|
|
tools/makewad/makewad:
|
|
$(MAKE) -C tools/makewad/
|
|
|
|
tools/dehsupp/dehsupp:
|
|
$(MAKE) -C tools/dehsupp/
|
|
|
|
|
|
updaterev: tools/updaterevision/updaterevision
|
|
@tools/updaterevision/updaterevision . src/svnrevision.h
|
|
|
|
tools/updaterevision/updaterevision:
|
|
$(MAKE) -C tools/updaterevision
|
|
|
|
.PHONY : clean cleandeps cleanobjs distclean toolsandpk3 cleantools updaterev
|
|
|
|
clean: cleanobjs
|
|
rm -f $(ZDOOMDEBUG) $(ZDOOM) $(ZDOOM).map
|
|
rm -f ccdv
|
|
|
|
cleantools:
|
|
@$(MAKE) -C tools/makewad clean
|
|
@$(MAKE) -C tools/dehsupp clean
|
|
@$(MAKE) -C tools/xlatcc clean
|
|
|
|
cleandebug:
|
|
rm -f $(ZDOOMDEBUG) $(DEBUGOBJ)/*.o $(DEBUGOBJ)/*.d
|
|
-rmdir $(DEBUGOBJ)
|
|
|
|
cleanrelease:
|
|
rm -f $(ZDOOM) $(ZDOOM).map $(RELEASEOBJ)/*.o $(RELEASEOBJ)/*.o
|
|
-rmdir $(RELEASEOBJ)
|
|
|
|
# I could use a recursive delete instead, but that could be dangerous...
|
|
distclean: clean cleandeps
|
|
-rmdir $(RELEASEOBJ) $(DEBUGOBJ)
|
|
|
|
cleandeps:
|
|
rm -f $(RELEASEOBJ)/*.d $(DEBUGOBJ)/*.d
|
|
|
|
cleanobjs:
|
|
rm -f $(RELEASEOBJ)/*.o $(DEBUGOBJ)/*.o
|
|
|
|
ccdv: ccdv-posix.c
|
|
@gcc -Os -s ccdv-posix.c -o ccdv
|
|
|
|
ifeq (,$(findstring $(MAKECMDGOALS),clean cleandeps cleanobjs distclean toolsandpk3 cleantools updaterev))
|
|
-include $(DEPS)
|
|
endif
|