qzdoom-gpl/Makefile.linux
Randy Heit 735e6d72c4 - Added Jim's Makefile.linux;
- Changed: Decal scales now use full precision fixed point numbers.
- Changed: Keeping impact decals in their own statlist is enough to keep track
  of them for when one needs to be destroyed. There's no need to maintain a
  separate list for them.
- Fixed: Decal actors did not spread their decals across neighboring walls.
- Fixed: Decal groups did not initialize their IDs and could not be reliably
  used with the decal actor.
- Fixed: Decals on moving polyobjects were not interpolated. R_RenderDecal()
  now uses the decal's LeftDistance to calculate its visible location, so it
  always stays in sync with the wall's vertices. This also lets me dump some
  code from the polyobjects that maintained the decals' (x, y) coordinates.
  Also, the decals' x and y information is redundant and can be removed.
  Doing this revealed a bug with slider decals and horizontal sliding:
  That is, it didn't work at all. I have opted to simply remove the horizontal
  sliding support so that I don't have to worry about what happens when a
  decal slides across the edge of a wall.
- Fixed: DBaseDecal::LeftDistance was calculated as a 30.2 fixed point number.
  It should be 2.30 fixed point.


SVN r35 (trunk)
2006-04-13 02:01:40 +00:00

91 lines
2.4 KiB
Text

# created on 4/12/2006 by James Bentler
CXX ?= g++
CPPFLAGS ?= -Wall -Wno-unused -O2 -fomit-frame-pointer
CXXFLAGS += -DHAVE_FILELENGTH -D__forceinline=inline -Izlib -IFLAC `sdl-config --cflags`
CXXFLAGS += -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp
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))
CXXFLAGS += $(INCLUDES)
RELEASEOBJ ?= releaseobj
DEBUGOBJ ?= debugobj
CSRCS = $(wildcard $(addsuffix *.cpp,$(SRCDIRS)))
ASRCS = $(wildcard src/*.nas)
SRCS = $(ASRCS) $(CSRCS)
COBJFILES = $(notdir $(patsubst %.cpp,%.o,$(CSRCS)))
AOBJFILES = $(notdir $(patsubst %.nas,%.o,$(ASRCS)))
ZDOOM = zdoom
ZDOOMDEBUG = zdoomd
ifndef DEBUG
OBJDIR = $(RELEASEOBJ)
CXXFLAGS += -DNDEBUG
ZDOOMBIN = $(ZDOOM)
else
OBJDIR = $(DEBUGOBJ)
CXXFLAGS += -g
ZDOOMBIN = $(ZDOOMDEBUG)
endif
COBJS = $(addprefix $(OBJDIR)/,$(COBJFILES))
DEPS = $(patsubst %.o,%.d,$(COBJS))
OBJS = $(addprefix $(OBJDIR)/,$(AOBJFILES)) $(COBJS)
# rule pattern for dependencies
define DEPBUILD_PATTERN
_dep_: _src_
echo "_dep_: _src_"
$(CXX) _src_ -MM $(CXXFLAGS) -MT "$$(patsubst %.d,%.o,_dep_) _dep_" -MF _dep_
-include _dep_
endef
# rule pattern for assembly files
define ASMBUILD_PATTERN
_obj_: _src_
echo "_obj_: _src_"
$(NASM) -o _obj_ $(NASMFLAGS) _src_
endef
all: $(ZDOOMBIN) zdoom.wad
$(ZDOOMBIN): $(DEPS) $(OBJDIR) $(OBJS)
$(CXX) $(LDFLAGS) $(OBJS) -o $(ZDOOMBIN)
# 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 _dep_ and the _src_ it depends on to create rules
$(foreach src,$(CSRCS), $(eval $(subst _src_,$(src),$(subst \
_dep_,$(OBJDIR)/$(patsubst %.cpp,%.d,$(notdir $$$(src))),$(DEPBUILD_PATTERN)))))
$(OBJDIR)/%.o:
$(CXX) -c $(CXXFLAGS) -o $@ -c $<
-include $(DEPS)
$(OBJDIR):
mkdir -p $(OBJDIR)
zdoom.wad:
make -C wadsrc/ -f Makefile
.PHONY : clean cleandeps cleanobjs
clean:
rm -f $(RELEASEOBJ)/* $(DEBUGOBJ)/* $(ZDOOMDEBUG) $(ZDOOM)
cleandeps:
rm -f $(RELEASEOBJ)/*.d $(DEBUGOBJ)/*.d
cleanobjs:
rm -f $(RELEASEOBJ)/*.o $(DEBUGOBJ)/*.o