mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-14 00:21:34 +00:00
af13d6d686
const char * with a string inside its buffer, it released the buffer before copying the string. - Added a new FString constructor that creates the string from a lump. - Fixed: G_DoReborn() calls G_InitNew() with mapname set to level.mapname. G_InitNew() then copies it onto level.mapname, which is undefined behavior (although it does work as we want it to). - Modified FMemLump to store its data using FString. That class provides a convenient method of storing reference counted data, so now FMemLump doesn't need to muck about sneakily using const_casts and possibly tricking its users into thinking that an old one is still valid after being assigned to a new one. - Fixed: The IMGZ, PNG, PCX, and JPEG loaders assumed the files were large enough for their headers without actually checking. SVN r463 (trunk)
145 lines
3.9 KiB
Text
145 lines
3.9 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 -Izlib -IFLAC `sdl-config --cflags` `pkg-config gtk+-2.0 --cflags`
|
|
CFLAGS += -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -DNEED_STRUPR
|
|
LDFLAGS += -lFLAC++ -lFLAC -lz -ljpeg -lfmod `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/ )
|
|
VPATH = $(SRCDIRS)
|
|
INCLUDES = $(addprefix -I,$(SRCDIRS))
|
|
CFLAGS += $(INCLUDES)
|
|
|
|
RELEASEOBJ ?= releaseobj
|
|
DEBUGOBJ ?= debugobj
|
|
|
|
CPPSRCS = $(wildcard $(addsuffix *.cpp,$(SRCDIRS)))
|
|
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) 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 $@ $<
|
|
|
|
$(OBJDIR):
|
|
mkdir $(OBJDIR)
|
|
|
|
toolsandpk3: ccdv tools/makewad/makewad tools/dehsupp/dehsupp tools/xlatcc/xlatcc
|
|
$(MAKE) -C wadsrc/
|
|
|
|
zdoom.pk3: toolsandpk3
|
|
ln -sf wadsrc/zdoom.pk3 ./
|
|
|
|
tools/makewad/makewad:
|
|
$(MAKE) -C tools/makewad/
|
|
|
|
tools/dehsupp/dehsupp:
|
|
$(MAKE) -C tools/dehsupp/
|
|
|
|
tools/xlatcc/xlatcc:
|
|
$(MAKE) -C tools/xlatcc/
|
|
|
|
|
|
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
|