mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-10 14:51:51 +00:00
e666cde418
- Updated project files for nasm 2.0, which is now named nasm.exe for the Windows version, rather than nasmw.exe. Also fixed the annoying new warnings it generated. SVN r593 (trunk)
143 lines
4.2 KiB
Text
143 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 -Isrc/g_hexen -Isrc/g_raven -Isrc/g_strife -Isrc/g_shared -Isrc/oplsynth -Isrc/sound -Isrc/textures -Isrc/thingdef
|
|
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/ thingdef/)
|
|
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) nasm -o $@ -f win32 $<
|
|
@tools/fixrtext/fixrtext $@
|
|
|
|
$(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
|