-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
35 lines (26 loc) · 827 Bytes
/
Makefile
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
OUTPUTNAME=renderer
CC=gcc
CFLAGS=-g -D DEBUG -Wall
LDFLAGS=-lglfw -lvulkan -lcglm -lm
SRC=$(shell find src -type f -name "*.c")
HEADERS=$(shell find src -type f -name "*.h")
OBJ=$(patsubst src/%.c, obj/%.o, $(SRC))
.PHONY: all run clean
all: $(OUTPUTNAME) hello.vert.spv hello.frag.spv voxel_block.vert.spv voxel_block.frag.spv
$(OUTPUTNAME): $(OBJ)
$(CC) $(OBJ) -o $@ $(LDFLAGS)
obj/%.o: src/%.c $(HEADERS)
mkdir -p $(dir $@)
$(CC) -c $(CFLAGS) $< -o $@
hello.vert.spv: shaders/hello.vert
glslc $< -o $@
hello.frag.spv: shaders/hello.frag
glslc $< -o $@
voxel_block.vert.spv: shaders/voxel_block.vert
glslc $< -o $@
voxel_block.frag.spv: shaders/voxel_block.frag
glslc $< -o $@
run: all
./$(OUTPUTNAME)
clean:
rm -fr obj $(OUTPUTNAME) hello.vert.spv hello.frag.spv voxel_block.vert.spv voxel_block.frag.spv