1LINKER := $(CXX) 2ASM := nasm 3SRCDIR := ./Source 4NET_SRCDIR := ./Source/Net 5BINDIR := ./objs 6NET_BINDIR := ./objs/Net 7EXE := $(BINDIR)/blackshades #$(BINDIR)/bse_viewer 8 9CFLAGS += -Wall `${SDL_CONFIG} --cflags` -I$(SRCDIR) -I$(NET_SRCDIR) -include Source/Support.h 10CXXFLAGS += -Wall `${SDL_CONFIG} --cflags` -I$(SRCDIR) -I$(NET_SRCDIR) -include Source/Support.h 11LDFLAGS += `${SDL_CONFIG} --libs` -lGL -lGLU -lopenal -lalut # -framework QuickTime 12 13# Don't want ogg? 14#CFLAGS += -DNOOGG 15# Got ogg? 16LDFLAGS += -lvorbisfile -lvorbis 17 18SRCS := Button.cpp \ 19 Camera.cpp \ 20 Config.cpp \ 21 Decals.cpp \ 22 Fog.cpp \ 23 Font.cpp \ 24 Frustum.cpp \ 25 Game.cpp \ 26 GameDraw.cpp \ 27 GameInitDispose.cpp \ 28 GameLoop.cpp \ 29 GameTick.cpp \ 30 Globals.cpp \ 31 Image.cpp \ 32 Label.cpp \ 33 MacInput.cpp \ 34 Main.cpp \ 35 Maths.cpp \ 36 Models.cpp \ 37 Person.cpp \ 38 Quaternions.cpp \ 39 SDL_funcs.cpp \ 40 Serialize.cpp \ 41 Skeleton.cpp \ 42 Sprites.cpp \ 43 Support.cpp \ 44 TGALoader.cpp \ 45 Text.cpp \ 46 Weapon.cpp \ 47 Window.cpp 48 49NET_SRCS := \ 50 Client.cpp \ 51 NetCommon.cpp \ 52 Server.cpp 53# Viewer.cpp \ 54 55OBJS1 := $(SRCS:.c=.o) 56OBJS2 := $(OBJS1:.cpp=.o) 57OBJS3 := $(OBJS2:.asm=.o) 58NET_OBJS1 := $(NET_SRCS:.cpp=.o) 59OBJS := $(foreach f,$(OBJS3),$(BINDIR)/$(f)) 60SRCS := $(foreach f,$(SRCS),$(SRCDIR)/$(f)) 61NET_OBJS := $(foreach f,$(NET_OBJS1),$(NET_BINDIR)/$(f)) 62 63CLEANUP = $(wildcard *.exe) $(wildcard *.obj) \ 64 $(wildcard $(BINDIR)/*.exe) $(wildcard $(BINDIR)/*.obj) \ 65 $(wildcard *~) $(wildcard *.err) \ 66 $(wildcard .\#*) core $(EXE) 67 68# Rules for compiling individual source files... 69 70$(BINDIR)/%.o: $(SRCDIR)/%.cpp 71 $(CXX) -c -o $@ $< $(CXXFLAGS) 72 73$(BINDIR)/%.o: $(SRCDIR)/%.c 74 $(CC) -c -o $@ $< $(CFLAGS) 75 76$(NET_BINDIR)/%.o: $(NET_SRCDIR)/%.cpp 77 $(CXX) -c -o $@ $< $(CFLAGS) 78 79$(BINDIR)/%.o: $(SRCDIR)/%.asm 80 $(ASM) $(ASMFLAGS) -o $@ $< 81 82.PHONY: all bindir blackshades 83all: $(EXE) 84 85$(EXE): $(BINDIR) $(OBJS) $(NET_OBJS) 86 $(LINKER) -o $(EXE) $(OBJS) $(NET_OBJS) $(LDFLAGS) 87 88$(BINDIR) : 89 $(MAKE) bindir 90 91bindir: 92 mkdir -p $(BINDIR) 93 mkdir -p $(NET_BINDIR) 94 95distclean: clean 96 97clean: 98 rm -f $(CLEANUP) 99 rm -rf $(BINDIR) 100 101# end of Makefile. 102 103 104