mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 23:32:04 +00:00
66c663e9d8
partially because the background patch has to be drawn always to overwrite the old display. - Fixed: Giving a health item to a non-player caused a crash. - Added a compatibility option to limit deh.MaxHealth to the health bonus. Originally this value wasn't used for health packs. Doing this was a bug in Boom but since there's quite a few maps out there which require Boom's altered behavior it has to be compatibility optioned. - Fixed: The health bonus's max health must be defined by deh.MaxHealth, not deh.MaxSoulsphere. To achieve this deh.MaxHealth's handling had to be altered because it has to default to 100. - Fixed: ZDBSP created incorrect side references with compressed sidedefs and both sidedefs of a linedef being the same. This only affects the external tool because the internal node builder is run after uncompressing the sidedefs. - Added Jim's latest makefile.linux. - Added a consistency check to the PNAMES loader because one crash log indicated that it crashed due to a corrupt PNAMES lump. - Brought back the sector based sound target handling as a compatibility option. This radical change just broke far too many maps that depend on the original behavior. Strife's special AI functions are excluded though because they work better with the new method. SVN r56 (trunk)
126 lines
3.6 KiB
Text
126 lines
3.6 KiB
Text
# created on 4/12/2006 by James Bentler
|
|
CXX ?= g++
|
|
CC ?= gcc
|
|
CFLAGS ?= -Wall -Wno-unused -O2 -fomit-frame-pointer
|
|
CFLAGS += -DHAVE_FILELENGTH -D__forceinline=inline -Izlib -IFLAC `sdl-config --cflags`
|
|
CFLAGS += -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -DNEED_STRUPR
|
|
LDFLAGS += -lFLAC++ -lFLAC -lz -lfmod `sdl-config --libs`
|
|
|
|
NASM ?= nasm
|
|
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/)
|
|
INCLUDES = $(addprefix -I,$(SRCDIRS))
|
|
CFLAGS += $(INCLUDES)
|
|
|
|
RELEASEOBJ ?= releaseobj
|
|
DEBUGOBJ ?= debugobj
|
|
|
|
CPPSRCS = $(wildcard $(addsuffix *.cpp,$(SRCDIRS)))
|
|
CSRCS = $(wildcard $(addsuffix *.c,$(SRCDIRS)))
|
|
ifndef NOASM
|
|
ASRCS = $(wildcard src/*.nas)
|
|
CFLAGS += -DUSEASM=1
|
|
else
|
|
CFLAGS += -DNOASM
|
|
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
|
|
|
|
ifndef DEBUG
|
|
OBJDIR = $(RELEASEOBJ)
|
|
CFLAGS += -DNDEBUG
|
|
LDFLAGS += -Wl,-Map=$(ZDOOM).map
|
|
ZDOOMBIN = $(ZDOOM)
|
|
else
|
|
OBJDIR = $(DEBUGOBJ)
|
|
CFLAGS += -D_DEBUG -g3
|
|
ZDOOMBIN = $(ZDOOMDEBUG)
|
|
endif
|
|
CXXFLAGS += $(CFLAGS)
|
|
|
|
COBJS = $(addprefix $(OBJDIR)/,$(CPPOBJFILES) $(COBJFILES))
|
|
DEPS = $(patsubst %.o,%.d,$(COBJS))
|
|
OBJS = $(addprefix $(OBJDIR)/,$(AOBJFILES)) $(COBJS)
|
|
|
|
# controls whether to start another instance of make at deps
|
|
RESTART?=1
|
|
|
|
# rule pattern for dependencies
|
|
define DEPBUILD_PATTERN
|
|
_dep_: _src_
|
|
$(CXX) _src_ -MM $(CXXFLAGS) -MT "$$(patsubst %.d,%.o,_dep_) _dep_" -MF _dep_
|
|
endef
|
|
|
|
# rule pattern for assembly files
|
|
define ASMBUILD_PATTERN
|
|
_obj_: _src_
|
|
$(NASM) -o _obj_ $(NASMFLAGS) _src_
|
|
endef
|
|
|
|
define CBUILD_PATTERN
|
|
_obj_: _src_
|
|
$(CC) -c $(CFLAGS) -o _obj_ -c _src_
|
|
endef
|
|
|
|
all: $(ZDOOMBIN) zdoom.wad
|
|
|
|
$(ZDOOMBIN): $(OBJDIR) $(if $(RESTART),deps) $(OBJS)
|
|
ifndef RESTART
|
|
$(CXX) $(LDFLAGS) $(OBJDIR)/autostart.o \
|
|
$(filter-out %/autostart.o %/autozend.o,$(OBJS)) \
|
|
$(OBJDIR)/autozend.o -o $(ZDOOMBIN)
|
|
endif
|
|
|
|
# include any of the dep files that already exist
|
|
$(foreach dep,$(DEPS),$(if $(wildcard $(dep)),$(eval include $(dep))))
|
|
|
|
# textually substitute in the _dep_ and the _src_ it depends on to create rules
|
|
# for creating dependency files without any existing dependency files
|
|
$(foreach src,$(CPPSRCS) $(CSRCS), $(eval $(subst _src_,$(src),$(subst \
|
|
_dep_,$(OBJDIR)/$(patsubst %.c,%.d,$(patsubst %.cpp,%.d,$(notdir $$$(src)))),\
|
|
$(DEPBUILD_PATTERN)))))
|
|
|
|
# textually substitute in the _obj_ and the _src_ it depends on to create rules
|
|
$(foreach src,$(ASRCS), $(eval $(subst _src_,$(src),$(subst \
|
|
_obj_,$(OBJDIR)/$(patsubst %.nas,%.o,$(notdir $$$(src))),$(ASMBUILD_PATTERN)))))
|
|
|
|
# textually substitute in the _obj_ and the _src_ it depends on to create rules
|
|
$(foreach src,$(CSRCS), $(eval $(subst _src_,$(src),$(subst \
|
|
_obj_,$(OBJDIR)/$(patsubst %.c,%.o,$(notdir $$$(src))),$(CBUILD_PATTERN)))))
|
|
|
|
$(OBJDIR)/%.o:
|
|
$(CXX) -c $(CXXFLAGS) -o $@ -c $<
|
|
|
|
# start a new instance of make after dependency files have been made
|
|
deps: $(DEPS)
|
|
ifdef RESTART
|
|
@make -f $(firstword $(MAKEFILE_LIST)) RESTART=
|
|
endif
|
|
|
|
$(OBJDIR):
|
|
mkdir $(OBJDIR)
|
|
|
|
zdoom.wad:
|
|
make -C wadsrc/ -f Makefile
|
|
|
|
.PHONY : clean cleandeps cleanobjs distclean deps
|
|
|
|
clean: cleanobjs
|
|
rm -f $(ZDOOMDEBUG) $(ZDOOM) $(ZDOOM).map
|
|
|
|
# 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
|
|
|