handle failure to get an sRGB framebuffer correctly
[laserbrain_demo] / Makefile
1 src = $(wildcard src/*.cc) \
2           $(wildcard src/audio/*.cc) \
3           $(wildcard src/machine/*.cc) \
4           $(wildcard src/blobs/*.cc)
5 csrc = $(wildcard src/*.c) \
6            $(wildcard src/machine/*.c) \
7            $(wildcard src/blobs/*.c)
8 obj = $(src:.cc=.o) $(csrc:.c=.o)
9 dep = $(obj:.o=.d)
10 bin = demo
11
12 #opt = -O3 -ffast-math
13 dbg = -g
14
15 incpath = -Isrc -Isrc/machine -I/usr/local/include `pkg-config --cflags sdl2`
16 #libpath = -L/usr/local/lib
17
18 warn = -pedantic -Wall
19
20 CFLAGS = $(warn) $(opt) $(dbg) $(incpath)
21 CXXFLAGS = -std=c++11 $(warn) $(opt) $(dbg) $(incpath)
22 LDFLAGS = $(libpath) -ldrawtext $(libgl_$(sys)) $(libal_$(sys)) -lm -lgmath -lvmath \
23                   -limago -lresman -lpthread -lassimp -ltreestore -lgoatvr \
24                   `pkg-config --libs sdl2 freetype2` -lpng -ljpeg -lz -lvorbisfile
25
26 sys = $(shell uname -s | sed 's/MINGW.*/mingw/')
27 libgl_Linux = -lGL -lGLU -lGLEW
28 libgl_Darwin = -framework OpenGL -lGLEW
29 libgl_mingw = -lopengl32 -lglu32 -lglew32
30 #libgl_mingw = -lglu32 -Wl,-Bstatic -lglew32 -Wl,-Bdynamic -lopengl32
31
32 libal_Linux = -lopenal
33 libal_Darwin = -framework OpenAL
34 libal_mingw = #?
35
36 ifeq ($(sys), mingw)
37         bin = demo.exe
38         LDFLAGS += -lmingw32 -lSDL2main -lSDL2 -lwinmm -mwindows
39         #CFLAGS += -DGLEW_STATIC
40         #CXXFLAGS += -DGLEW_STATIC
41 endif
42
43 $(bin): .clang_complete $(obj)
44         $(CXX) -o $@ $(obj) $(LDFLAGS)
45
46 .PHONY: cross
47 cross:
48         $(MAKE) CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ sys=mingw
49
50 .PHONY: instalien
51 instalien: demo.exe
52         cp $< /alien/demo/$<
53
54 .clang_complete: Makefile
55         rm -f $@
56         for i in $(CXXFLAGS); do echo $$i >>$@; done
57
58 -include $(dep)
59
60 %.d: %.c
61         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
62
63 %.d: %.cc
64         @$(CPP) $(CXXFLAGS) $< -MM -MT $(@:.d=.o) >$@
65
66 .PHONY: clean
67 clean:
68         rm -f $(obj) $(bin)
69
70 .PHONY: cleandep
71 cleandep:
72         rm -f $(dep)
73
74 .PHONY: data
75 data:
76         tools/prepare_data