optimize for size
[maximus:mightymandel.git] / src / Makefile
1 COMPILE := g++
2 COMPILE_FLAGS := \
3         -xc++ -std=c++11 -c \
4         -Wall -pedantic -Wextra -Wno-unused-parameter \
5         -Os -march=native \
6         -ggdb \
7         `pkg-config --cflags gtkglext-1.0`
8 LINK := g++
9 LINK_FLAGS := \
10         -lGLEW -lGL -lrt -lmpfr \
11         `pkg-config --libs gtkglext-1.0`
12
13 OBJECTS := $(patsubst %.h,%.o,$(wildcard *.h))
14 DEPENDS := $(patsubst %.h,%.d,$(wildcard *.h))
15 SHADERS := $(patsubst %.glsl,%.glsl.c,$(wildcard *.glsl))
16
17 all: mightymandel
18
19 clean:
20         -rm -f mightymandel $(OBJECTS) $(DEPENDS) $(SHADERS) Makefile.deps
21
22 .SUFFIXES:
23 .PHONY: all clean
24
25 mightymandel: $(OBJECTS)
26         $(LINK) -o mightymandel $(OBJECTS) $(LINK_FLAGS)
27
28 %.glsl.c: %.glsl s2c.sh
29         bash s2c.sh $* < $< > $@
30
31 %.o: %.cc
32         $(COMPILE) $(COMPILE_FLAGS) -o $@ $<
33
34 %.o: %.c
35         $(COMPILE) $(COMPILE_FLAGS) -o $@ $<
36
37 %.d: %.c $(SHADERS)
38         g++ -MM -MG -E -MF $@ $< `pkg-config --cflags --libs gtkglext-1.0` >/dev/null
39
40 Makefile.deps: $(DEPENDS)
41         cat $(DEPENDS) > Makefile.deps
42
43 include Makefile.deps