1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
CC = clang
CFLAGS = -std=c99 -Wall -Wextra -Werror -pedantic
LDFLAGS = $(shell pkg-config --libs glfw3)
LIBS = $(shell pkg-config --cflags glfw3) -I./glad/include
.PHONY: run clean
all: baselayout dist engine
baselayout:
mkdir -p bin
mkdir -p obj
dist: present.glsl
present.glsl: shaders/present.frg.glsl shaders/present.vrt.glsl
cp shaders/present.vrt.glsl bin/present.vs
cp shaders/present.frg.glsl bin/present.fs
glad.o: glad/src/gl.c
$(CC) -I./glad/include -c glad/src/gl.c -o obj/glad.o
main.o: main.c render.o canvas.o
$(CC) $(CFLAGS) $(LIBS) -c main.c -o obj/main.o
render.o: render.c
$(CC) $(CFLAGS) $(LIBS) -c render.c -o obj/render.o
canvas.o: canvas.c color.o
$(CC) $(CFLAGS) $(LIBS) -c canvas.c -o obj/canvas.o
color.o: color.c
$(CC) $(CFLAGS) $(LIBS) -c color.c -o obj/color.o
engine: main.o glad.o
$(CC) $(CFLAGS) \
$(LDFLAGS) \
obj/main.o \
obj/glad.o \
obj/render.o \
obj/canvas.o \
obj/color.o \
-o bin/engine
run: engine
cd bin; \
./engine
clean:
rm -r obj bin