1CC := gcc
2CXX := g++
3LINKER := g++
4ASM := nasm
5SRCDIR := ./Source
6BINDIR := ./objs
7EXE := $(BINDIR)/blackshades
8
9CFLAGS := -g $(shell sdl-config --cflags) -I/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/Headers -I/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers -I/System/Library/Frameworks/GLUT.framework/Versions/A/Headers -I/System/Library/Frameworks/DrawSprocket.framework/Versions/A/Headers -I/Developer/Headers/FlatCarbon -I/System/Library/Frameworks/AGL.framework/Versions/A/Headers -I/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/sw/include -I/sw/include/AL -I/usr/X11R6/include -D POOLOOPS -I$(SRCDIR)
10CXXFLAGS := $(CFLAGS)
11LDFLAGS := $(shell sdl-config --libs) -framework QuickTime
12
13SRCS := Camera.cpp \
14        Decals.cpp \
15        Files.cpp \
16        Fog.cpp \
17        Frustum.cpp \
18        GameDraw.cpp \
19        GameInitDispose.cpp \
20        GameLoop.cpp \
21        GameTick.cpp \
22        Globals.cpp \
23        Main.cpp \
24        Maths.cpp \
25        Models.cpp \
26        Person.cpp \
27        Quaternions.cpp \
28        Skeleton.cpp \
29        Sprites.cpp \
30        TGALoader.cpp \
31        Text.cpp \
32        Timer.cpp
33
34OBJS1 := $(SRCS:.c=.o)
35OBJS2 := $(OBJS1:.cpp=.o)
36OBJS3 := $(OBJS2:.asm=.o)
37OBJS := $(foreach f,$(OBJS3),$(BINDIR)/$(f))
38SRCS := $(foreach f,$(SRCS),$(SRCDIR)/$(f))
39
40CLEANUP = $(wildcard *.exe) $(wildcard *.obj) \
41          $(wildcard $(BINDIR)/*.exe) $(wildcard $(BINDIR)/*.obj) \
42          $(wildcard *~) $(wildcard *.err) \
43          $(wildcard .\#*) core $(EXE)
44
45
46# Rules for compiling individual source files...
47
48$(BINDIR)/%.o: $(SRCDIR)/%.cpp
49	$(CC) -c -o $@ $< $(CXXFLAGS)
50
51$(BINDIR)/%.o: $(SRCDIR)/%.c
52	$(CC) -c -o $@ $< $(CFLAGS)
53
54$(BINDIR)/%.o: $(SRCDIR)/%.asm
55	$(ASM) $(ASMFLAGS) -o $@ $<
56
57.PHONY: all bindir blackshades
58all: blackshades
59
60blackshades: $(BINDIR) $(OBJS)
61	$(LINKER) -o $(EXE) $(OBJS) $(LDFLAGS)
62
63$(BINDIR) :
64	$(MAKE) bindir
65
66bindir:
67	mkdir -p $(BINDIR)
68
69distclean: clean
70
71clean:
72	rm -f $(CLEANUP)
73	rm -rf $(BINDIR)
74
75# end of Makefile.
76
77
78