src = $(wildcard src/*.cc) $(wildcard src/machine/*.cc) $(wildcard src/blobs/*.cc) csrc = $(wildcard src/*.c) $(wildcard src/machine/*.c) $(wildcard src/blobs/*.c) obj = $(src:.cc=.o) $(csrc:.c=.o) dep = $(obj:.o=.d) bin = demo #opt = -O3 -ffast-math 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 -lgoatvr `pkg-config --libs sdl2` sys = $(shell uname -s | sed 's/MINGW.*/mingw/') libgl_Linux = -lGL -lGLU -lGLEW libgl_Darwin = -framework OpenGL -lGLEW libgl_mingw = -lopengl32 -lglu32 -lglew32 ifeq ($(sys), msys) CFLAGS += -mwin32 CXXFLAGS += -mwin32 endif $(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) >$@ .PHONY: clean clean: rm -f $(obj) $(bin) .PHONY: cleandep cleandep: rm -f $(dep) .PHONY: data data: tools/prepare_data