/
Makefile
85 lines (67 loc) · 1.85 KB
/
Makefile
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
81
82
83
84
LIBRARY_OBJ_FILES = \
obj/glew.o \
obj/AssetBundle.o \
obj/CirclePlotter.o \
obj/CollisionContext.o \
obj/FkContext.o \
obj/LinePlotter.o \
obj/SampleAsset.o \
obj/SplinePlotter.o \
obj/SpriteBatch.o \
obj/SpritePlotter.o \
obj/TextureAsset.o \
obj/TilemapAsset.o \
obj/utils.o
PLATFORMER_OBJ_FILES = \
obj/Environment.o \
obj/Hero.o \
obj/Kitten.o \
obj/platformer.o
# COMPILER
CC = clang
CPP = clang++
# NOTE: Depedencies were installed using homebrew. I had to monkeypatch a few formulas
# to ensure that all libraries were using universal binaries so I can support 32-bit builds
# as well.
# BASE FLAGS
CFLAGS = -Iinclude -Wall -ffast-math
CCFLAGS = -std=c++11 -fno-rtti -fno-exceptions
LIBS = -Llib -framework OpenGL -framework Cocoa -llittlepolygon -lz
# SDL2
#CFLAGS += -D_THREAD_SAFE
LIBS += -framework SDL2 -framework SDL2_mixer
# VECTORIAL
CFLAGS += -Ivectorial/include
# DEBUG FLAGS
CFLAGS += -g -DDEBUG
# OPTIMIZATION FLAGS
# CFLAGS += -Os -flto
# 32 BITS
CFLAGS += -arch i386
AFLAGS = 32
# AFLAGS = 64
test : bin/platformer bin/platformer.bin
cp demo/assets/song.mid bin/song.mid
bin/platformer
bin/platformer: lib/liblittlepolygon.a $(PLATFORMER_OBJ_FILES)
mkdir -p bin
$(CPP) -o $@ $(CFLAGS) $(CCFLAGS) $(LIBS) $(PLATFORMER_OBJ_FILES)
bin/platformer.bin: demo/assets/* tools/*.py demo/tools/*.py
mkdir -p bin
demo/tools/export_game_assets.py demo/assets/assets.yaml $@ $(AFLAGS)
clean:
rm -f lib/*
rm -f obj/*
rm -f bin/*
lib/liblittlepolygon.a: $(LIBRARY_OBJ_FILES)
mkdir -p lib
ar rcs $@ $^
obj/%.o: src/%.c
mkdir -p obj
$(CC) $(CFLAGS) -c -o $@ $<
obj/%.o: src/%.cpp include/*.h
mkdir -p obj
$(CPP) $(CFLAGS) $(CCFLAGS) -c -o $@ $<
obj/%.o: demo/src/%.cpp demo/src/*.h
mkdir -p obj
$(CPP) $(CFLAGS) $(CCFLAGS) -c -o $@ $<