4b65ac3d06dce88f5b04836f9f4ade91dfcec439
[laserbrain_demo] / Makefile
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)
4 dep = $(obj:.o=.d)
5 bin = demo
6
7 #opt = -O3 -ffast-math
8 dbg = -g
9
10 incpath = -Isrc -Isrc/machine -I/usr/local/include `pkg-config --cflags sdl2`
11 libpath = -L/usr/local/lib
12
13 warn = -pedantic -Wall
14
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 \
18                   -lresman -lpthread -lassimp -ltreestore -lgoatvr \
19                   -lz -lpng -ljpeg `pkg-config --libs sdl2 freetype2`
20
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
25 #libgl_mingw = -lglu32 -Wl,-Bstatic -lglew32 -Wl,-Bdynamic -lopengl32
26
27 ifeq ($(sys), mingw)
28         bin = demo.exe
29         #CFLAGS += -DGLEW_STATIC
30         #CXXFLAGS += -DGLEW_STATIC
31 endif
32
33 $(bin): .clang_complete $(obj)
34         $(CXX) -o $@ $(obj) $(LDFLAGS)
35
36 .PHONY: cross
37 cross:
38         $(MAKE) CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++
39
40 .PHONY: instalien
41 instalien: demo.exe
42         cp $< /alien/demo/$<
43
44 .clang_complete: Makefile
45         rm -f $@
46         for i in $(CXXFLAGS); do echo $$i >>$@; done
47
48 -include $(dep)
49
50 %.d: %.c
51         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
52
53 %.d: %.cc
54         @$(CPP) $(CXXFLAGS) $< -MM -MT $(@:.d=.o) >$@
55
56 .PHONY: clean
57 clean:
58         rm -f $(obj) $(bin)
59
60 .PHONY: cleandep
61 cleandep:
62         rm -f $(dep)
63
64 .PHONY: data
65 data:
66         tools/prepare_data