### Copyright (c) 2025 Freya Murphy CC ?= cc CFLAGS += -O2 CFLAGS += -std=gnu23 CFLAGS += -Wall -Wextra -pedantic CFLAGS += -Isrc -Ilib LDFLAGS += -lglfw -lGL -lGLEW -lcglm -lm -lc ifdef USE_VSYNC CFLAGS += -DUSE_VSYNC endif ifdef ASAN CFLAGS += -fsanitize=address -g LDFLAGS += -fsanitize=address endif .PHONY: build clean run fmt .SILENT: SRC := src lib BIN := bin OUT := voxel H_SRC := $(shell find $(SRC) -type f -name "*.h") C_SRC := $(shell find $(SRC) -type f -name "*.c") C_OBJ := $(patsubst %.c,$(BIN)/%.o,$(C_SRC)) build: $(BIN)/$(OUT) clean: rm -fr $(BIN) run: build $(BIN)/$(OUT) fmt: clang-format -i $(shell find -type f -name "*.[ch]") sed -i 's/[ \t]*$$//' $(shell find -type f -name "*.[chS]" -or -name "*.glsl") $(C_OBJ): $(BIN)/%.o : %.c $(H_SRC) mkdir -p $(@D) printf "\033[34m CC \033[0m%s\n" $< $(CC) -c $(CFLAGS) -o $@ $< $(BIN)/$(OUT): $(C_OBJ) mkdir -p $(@D) printf "\033[32m LD \033[0m%s\n" $@ $(CC) $(LDFLAGS) -o $(BIN)/$(OUT) $(C_OBJ)