# 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