mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 14:01:45 +00:00
2536eca01d
The lump is open anyway at that time so deferring this action until the information is needed doesn't give any speed improvements. Now GetDimensions and all its associated overhead is gone. - Added support for TGA textures. It can handle all of the common variations of this format. - Changed: GI_PAGESARERAW is no longer checked. It wasn't really necessary before because the chance of texture misidentification is absolutely minimal. But raw pages are now restricted to textures of type TEX_MiscPatch only. - Changed the automap parchment to use a regular texture. The previous FAutomapTexture is only used as a last resort fallback now. If the code finds a recognizable graphic it will create a proper texture for it now. - Fixed: Flats were only auto-scaled when in Doom flat format. - Fixed: FMultiPatchTexture::CheckForHacks blindly assumed that all patches were FPstchTextures. Since the texture code does not have any type information I added a new flag bIsPatch for this purpose. - Moved all texture classes into their own source files and created a new subdirectory 'textures' for that. - Cleaned up the texture management code and added some stricter checks for the validity of Doom patches. The old code liked to crash when being passed some non-graphic data. SVN r300 (trunk)
142 lines
4.2 KiB
Text
142 lines
4.2 KiB
Text
# Sub-makefile autogenerated by premake
|
|
# And then tweaked by hand
|
|
|
|
# Where did you install the FMOD API to? Change this line so that the build process can find it.
|
|
FMODDIR = "c:/program files/fmodapi375win"
|
|
|
|
ifeq (msys,$(OSTYPE))
|
|
WINCMD=0
|
|
else
|
|
WINCMD=1
|
|
endif
|
|
|
|
CC ?= gcc
|
|
CXX ?= g++
|
|
|
|
CONFIG ?= Release
|
|
OPTLEVEL ?= 2
|
|
ARCH_TYPE ?= pentium
|
|
TUNE_TYPE ?= i686
|
|
RELEASETARGET ?= zdoomgcc.exe
|
|
DEBUGTARGET ?= zdoomgccd.exe
|
|
DEBUGOBJDIR ?= debugobj
|
|
RELEASEOBJDIR ?= releaseobj
|
|
|
|
CCDV = @ccdv
|
|
RE2C = tools/re2c/re2c
|
|
|
|
CPPFLAGS = -DWIN32 -D_WIN32 -D_WINDOWS -DHAVE_STRUPR -DHAVE_FILELENGTH -DI_DO_NOT_LIKE_BIG_DOWNLOADS -D__forceinline=inline -MMD -Izlib -IFLAC -Ijpeg-6b -Isrc -Isrc/win32 -Isrc/g_doom -Isrc/g_heretic -I src/g_hexen -Isrc/g_raven -Isrc/g_strife -Isrc/g_shared -Isrc/oplsynth -Isrc/sound
|
|
LDFLAGS += flac/libflac.a zlib/libz.a jpeg-6b/libjpeg.a -lfmod -lwsock32 -lwinmm -lddraw -ldsound -ldxguid -ldinput8 -lole32 -luser32 -lgdi32 -lcomctl32 -lcomdlg32 -lsetupapi -lws2_32 -Wl,--subsystem,windows
|
|
|
|
ifdef FMODDIR
|
|
CPPFLAGS += -I$(FMODDIR)/api/inc
|
|
LDFLAGS += -L$(FMODDIR)/api/lib
|
|
endif
|
|
|
|
CFLAGS += -fno-strict-aliasing
|
|
|
|
ifeq ($(CONFIG),Debug)
|
|
OBJDIR = $(DEBUGOBJDIR)
|
|
CFLAGS += $(CPPFLAGS) -Wall -Wno-unused -g3
|
|
CPPFLAGS += -D_DEBUG
|
|
CXXFLAGS = $(CFLAGS)
|
|
TARGET = $(DEBUGTARGET)
|
|
endif
|
|
ifeq ($(CONFIG),Release)
|
|
OBJDIR = $(RELEASEOBJDIR)
|
|
CFLAGS += $(CPPFLAGS) -march=$(ARCH_TYPE) -mtune=$(TUNE_TYPE) -Wall -Wno-unused -O$(OPTLEVEL) -fomit-frame-pointer -pipe
|
|
CFLAGS += -ffunction-sections -fno-rtti
|
|
CPPFLAGS += -DNDEBUG
|
|
CXXFLAGS = $(CFLAGS)
|
|
LDFLAGS += -s -Wl,-Map=zdoomgcc.map -Wl,--gc-sections
|
|
TARGET = $(RELEASETARGET)
|
|
endif
|
|
|
|
SRCDIRS = src/ $(addprefix src/,g_doom/ g_heretic/ g_hexen/ g_raven/ g_shared/ g_strife/ oplsynth/ sound/ win32/ textures/)
|
|
VPATH = $(SRCDIRS)
|
|
|
|
CPPSRCS = $(wildcard $(addsuffix *.cpp,$(SRCDIRS)))
|
|
CSRCS = $(wildcard $(addsuffix *.c,$(SRCDIRS)))
|
|
RCSRCS = $(wildcard $(addsuffix *.rc,$(SRCDIRS)))
|
|
ifdef NOASM
|
|
CFLAGS += -DNOASM
|
|
else
|
|
ASRCS = $(wildcard src/*.nas)
|
|
CFLAGS += -DUSEASM=1
|
|
endif
|
|
SRCS = $(CSRCS) $(CPPSRCS) $(ASRCS)
|
|
CPPOBJFILES = $(notdir $(CPPSRCS:%.cpp=%.o))
|
|
COBJFILES = $(notdir $(CSRCS:%.c=%.o))
|
|
# win32/wrappers.nas should be built *only* for Visual C++ 2005 to enable execution on Windows 95
|
|
AOBJFILES = $(filter-out %/wrappers.o,$(notdir $(ASRCS:%.nas=%.o)))
|
|
RCOBJFILES = $(notdir $(RCSRCS:%.rc=%.o))
|
|
|
|
COBJS = $(addprefix $(OBJDIR)/,$(CPPOBJFILES) $(COBJFILES) $(RCOBJFILES))
|
|
DEPS = $(patsubst %.o,%.d,$(COBJS))
|
|
UNORDEREDOBJS = $(addprefix $(OBJDIR)/,$(AOBJFILES)) $(COBJS)
|
|
|
|
OBJS = $(OBJDIR)/autostart.o $(filter-out %/autostart.o %/autozend.o,$(UNORDEREDOBJS)) $(OBJDIR)/autozend.o
|
|
|
|
all: $(TARGET)
|
|
|
|
# This file needs special handling so that it actually gets compiled with SSE2 support.
|
|
$(OBJDIR)/nodebuild_classify_sse2.o: src/nodebuild_classify_sse2.cpp
|
|
$(CCDV) $(CXX) $(CXXFLAGS) -msse2 -mfpmath=sse -c -o $@ $<
|
|
|
|
src/sc_man_scanner.h: src/sc_man_scanner.re
|
|
$(CCDV) $(RE2C) -s -o $@ $<
|
|
|
|
$(OBJDIR)/%.o : %.cpp
|
|
$(CCDV) $(CXX) $(CXXFLAGS) -o $@ -c $<
|
|
|
|
$(OBJDIR)/%.o : %.nas
|
|
$(CCDV) nasmw -o $@ -f win32 $<
|
|
|
|
$(OBJDIR)/%.o : %.rc
|
|
$(CCDV) windres --include-dir=src/win32 -o $@ -i $<
|
|
|
|
|
|
$(TARGET): testobjdir updaterev $(OBJS)
|
|
$(CCDV) $(CXX) -o $@ $(OBJS) $(LDFLAGS)
|
|
|
|
ifeq (1,$(WINCMD))
|
|
clean:
|
|
-del /q /f $(RELEASETARGET) 2>nul
|
|
-del /q /f $(DEBUGTARGET) 2>nul
|
|
-del /q /f $(DEBUGOBJDIR) 2>nul
|
|
-del /q /f $(RELEASEOBJDIR) 2>nul
|
|
|
|
cleandep:
|
|
-del /q /f $(DEBUGOBJDIR)\*.d 2>nul
|
|
-del /q /f $(RELEASEOBJDIR)\*.d 2>nul
|
|
else
|
|
clean:
|
|
rm -f $(RELEASETARGET)
|
|
rm -f $(DEBUGTARGET)
|
|
rm -fr $(DEBUGOBJDIR)
|
|
rm -fr $(RELEASEOBJDIR)
|
|
|
|
cleandep:
|
|
rm -f $(DEBUGOBJDIR)\*.d
|
|
rm -f $(RELEASEOBJDIR)\*.d
|
|
endif
|
|
|
|
testobjdir:
|
|
ifeq (1,$(WINCMD))
|
|
-@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
else
|
|
-@if [ ! -e $(OBJDIR) ]; then mkdir $(OBJDIR); fi
|
|
endif
|
|
|
|
updaterev: tools/updaterevision/updaterevision.exe
|
|
@tools/updaterevision/updaterevision . src/svnrevision.h
|
|
|
|
tools/updaterevision/updaterevision.exe:
|
|
$(MAKE) -C tools/updaterevision
|
|
|
|
|
|
ifeq (,$(findstring $(MAKECMDGOALS),clean cleandep updaterev))
|
|
-include $(DEPS)
|
|
endif
|
|
|
|
.PHONY: clean all updaterev testobjdir cleandep
|