-src = $(wildcard src/*.cc)
-obj = $(src:.cc=.o)
+src = $(wildcard src/*.cc) $(wildcard src/machine/*.cc)
+csrc = $(wildcard src/*.c) $(wildcard src/machine/*.c)
+obj = $(src:.cc=.o) $(csrc:.c=.o)
dep = $(obj:.o=.d)
-bin = anti
+bin = demo
-CXXFLAGS = -std=c++11 -pedantic -Wall -g
-LDFLAGS = $(libgl_$(sys)) -lm -lgmath
+opt = -O0
+dbg = -g
+
+incpath = -Isrc -Isrc/machine -I/usr/local/include `pkg-config --cflags sdl2`
+libpath = -L/usr/local/lib
+
+warn = -pedantic -Wall
+
+CFLAGS = $(warn) $(opt) $(dbg) $(incpath)
+CXXFLAGS = -std=c++11 $(warn) $(opt) $(dbg) $(incpath)
+LDFLAGS = $(libpath) $(libgl_$(sys)) -lm -lgmath -lvmath -limago -lresman \
+ -lpthread -lassimp -ltreestore -ldrawtext -loptcfg -lgoatvr `pkg-config --libs sdl2`
sys = $(shell uname -s)
-libgl_Linux = -lGL -lGLU -lglut -lGLEW
-libgl_Darwin = -framework OpenGL -framework GLUT -lGLEW
+libgl_Linux = -lGL -lGLU -lGLEW
+libgl_Darwin = -framework OpenGL -lGLEW
-$(bin): $(obj)
+$(bin): .clang_complete $(obj)
$(CXX) -o $@ $(obj) $(LDFLAGS)
+.clang_complete: Makefile
+ rm -f $@
+ for i in $(CXXFLAGS); do echo $$i >>$@; done
+
-include $(dep)
+%.d: %.c
+ @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
+
%.d: %.cc
@$(CPP) $(CXXFLAGS) $< -MM -MT $(@:.d=.o) >$@