Merge branch 'master' of goat:git/laserbrain_demo
[laserbrain_demo] / Makefile
index 616c71b..4b65ac3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,20 +1,50 @@
-src = $(wildcard src/*.cc)
-csrc = $(wildcard src/*.c)
+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 = anti
+bin = demo
 
-CFLAGS = -pedantic -Wall -g
-CXXFLAGS = -std=c++11 -pedantic -Wall -g
-LDFLAGS = $(libgl_$(sys)) -lm -lgmath -lvmath -limago -lresman -lpthread
+#opt = -O3 -ffast-math
+dbg = -g
 
-sys = $(shell uname -s)
-libgl_Linux = -lGL -lGLU -lglut -lGLEW
-libgl_Darwin = -framework OpenGL -framework GLUT -lGLEW
+incpath = -Isrc -Isrc/machine -I/usr/local/include `pkg-config --cflags sdl2`
+libpath = -L/usr/local/lib
 
-$(bin): $(obj)
+warn = -pedantic -Wall
+
+CFLAGS = $(warn) $(opt) $(dbg) $(incpath)
+CXXFLAGS = -std=c++11 $(warn) $(opt) $(dbg) $(incpath)
+LDFLAGS = $(libpath) -ldrawtext $(libgl_$(sys)) -lm -lgmath -lvmath -limago \
+                 -lresman -lpthread -lassimp -ltreestore -lgoatvr \
+                 -lz -lpng -ljpeg `pkg-config --libs sdl2 freetype2`
+
+sys = $(shell uname -s | sed 's/MINGW.*/mingw/')
+libgl_Linux = -lGL -lGLU -lGLEW
+libgl_Darwin = -framework OpenGL -lGLEW
+libgl_mingw = -lopengl32 -lglu32 -lglew32
+#libgl_mingw = -lglu32 -Wl,-Bstatic -lglew32 -Wl,-Bdynamic -lopengl32
+
+ifeq ($(sys), mingw)
+       bin = demo.exe
+       #CFLAGS += -DGLEW_STATIC
+       #CXXFLAGS += -DGLEW_STATIC
+endif
+
+$(bin): .clang_complete $(obj)
        $(CXX) -o $@ $(obj) $(LDFLAGS)
 
+.PHONY: cross
+cross:
+       $(MAKE) CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++
+
+.PHONY: instalien
+instalien: demo.exe
+       cp $< /alien/demo/$<
+
+.clang_complete: Makefile
+       rm -f $@
+       for i in $(CXXFLAGS); do echo $$i >>$@; done
+
 -include $(dep)
 
 %.d: %.c
@@ -30,3 +60,7 @@ clean:
 .PHONY: cleandep
 cleandep:
        rm -f $(dep)
+
+.PHONY: data
+data:
+       tools/prepare_data