need to untangle the vrhands mess
[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                   `pkg-config --libs sdl2 freetype2` -lpng -ljpeg -lz
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         LDFLAGS += -lmingw32 -lSDL2main -lSDL2 -lwinmm -mwindows
30         #CFLAGS += -DGLEW_STATIC
31         #CXXFLAGS += -DGLEW_STATIC
32 endif
33
34 $(bin): .clang_complete $(obj)
35         $(CXX) -o $@ $(obj) $(LDFLAGS)
36
37 .PHONY: cross
38 cross:
39         $(MAKE) CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ sys=mingw
40
41 .PHONY: instalien
42 instalien: demo.exe
43         cp $< /alien/demo/$<
44
45 .clang_complete: Makefile
46         rm -f $@
47         for i in $(CXXFLAGS); do echo $$i >>$@; done
48
49 -include $(dep)
50
51 %.d: %.c
52         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
53
54 %.d: %.cc
55         @$(CPP) $(CXXFLAGS) $< -MM -MT $(@:.d=.o) >$@
56
57 .PHONY: clean
58 clean:
59         rm -f $(obj) $(bin)
60
61 .PHONY: cleandep
62 cleandep:
63         rm -f $(dep)
64
65 .PHONY: data
66 data:
67         tools/prepare_data