1 src = $(wildcard src/*.cc) $(wildcard src/machine/*.cc) $(wildcard src/blobs/*.cc)
2 csrc = $(wildcard src/*.c) $(wildcard src/machine/*.c) $(wildcard src/blobs/*.c)
3 obj = $(src:.cc=.o) $(csrc:.c=.o)
10 incpath = -Isrc -Isrc/machine -I/usr/local/include `pkg-config --cflags sdl2`
11 libpath = -L/usr/local/lib
13 warn = -pedantic -Wall
15 CFLAGS = $(warn) $(opt) $(dbg) $(incpath)
16 CXXFLAGS = -std=c++11 $(warn) $(opt) $(dbg) $(incpath)
17 LDFLAGS = $(libpath) -ldrawtext $(libgl_$(sys)) -lm -lgmath -lvmath -limago -lresman \
18 -lpthread -lassimp -ltreestore -lgoatvr \
19 -lz -lpng -ljpeg `pkg-config --libs sdl2 freetype2`
21 sys = $(shell uname -s | sed 's/MINGW.*/mingw/')
22 libgl_Linux = -lGL -lGLU -lGLEW
23 libgl_Darwin = -framework OpenGL -lGLEW
24 libgl_mingw = -lopengl32 -lglu32 -lglew32.dll
31 $(bin): .clang_complete $(obj)
32 $(CXX) -o $@ $(obj) $(LDFLAGS)
34 .clang_complete: Makefile
36 for i in $(CXXFLAGS); do echo $$i >>$@; done
41 @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
44 @$(CPP) $(CXXFLAGS) $< -MM -MT $(@:.d=.o) >$@