summary refs log tree commit diff
path: root/Makefile
blob: d8f241e9fe9a023d2a323bf8661163c61ea85d1a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
CC := gcc
CXX := g++
LINKER := g++
ASM := nasm
SRCDIR := ./src
BINDIR := ./build
EXE := $(BINDIR)/blackshades

CFLAGS := -O2 -Wall -g $(shell sdl-config --cflags) -I$(SRCDIR)
CXXFLAGS := $(CFLAGS)
LDFLAGS := $(shell sdl-config --libs) -lSDL_image -lGL -lGLU -lopenal -lalut # -framework QuickTime

# Don't want ogg?
#CFLAGS += -DNOOGG
# Got ogg?
LDFLAGS += -lvorbisfile -lvorbis

SRCS := Camera.cpp \
        Decals.cpp \
        Fog.cpp \
        Frustum.cpp \
        GameDraw.cpp \
	GameInitDispose.cpp \
	GameLoop.cpp \
	GameTick.cpp \
        Globals.cpp \
	MacInput.cpp \
	Main.cpp \
        Maths.cpp \
	Models.cpp \
	Person.cpp \
        Quaternions.cpp \
	Serialize.cpp \
	Skeleton.cpp \
        Sprites.cpp \
	Support.cpp \
        TGALoader.cpp \
        Text.cpp \
	Timer.cpp \
	Textures.cpp

OBJS1 := $(SRCS:.c=.o)
OBJS2 := $(OBJS1:.cpp=.o)
OBJS3 := $(OBJS2:.asm=.o)
OBJS := $(foreach f,$(OBJS3),$(BINDIR)/$(f))
SRCS := $(foreach f,$(SRCS),$(SRCDIR)/$(f))

CLEANUP = $(wildcard *.exe) $(wildcard *.obj) \
          $(wildcard $(BINDIR)/*.exe) $(wildcard $(BINDIR)/*.obj) \
          $(wildcard *~) $(wildcard *.err) \
          $(wildcard .\#*) core $(EXE)

# Rules for compiling individual source files...

$(BINDIR)/%.o: $(SRCDIR)/%.cpp
	$(CXX) -c -o $@ $< $(CXXFLAGS)

$(BINDIR)/%.o: $(SRCDIR)/%.c
	$(CC) -c -o $@ $< $(CFLAGS)

$(BINDIR)/%.o: $(SRCDIR)/%.asm
	$(ASM) $(ASMFLAGS) -o $@ $<

.PHONY: all bindir blackshades
all: $(EXE)

$(EXE): $(BINDIR) $(OBJS)
	$(LINKER) -o $(EXE) $(OBJS) $(LDFLAGS)

$(BINDIR) :
	$(MAKE) bindir

bindir:
	mkdir -p $(BINDIR)

distclean: clean

clean:
	rm -f $(CLEANUP)
	rm -rf $(BINDIR)