# SPDX-License-Identifier: BSD-3-Clause include config.mk ifeq (${DEBUG_BUILD},1) CFLAGS += -ggdb -fsanitize=address,undefined -DDEBUG endif SHADER_DIR := assets/shaders SHADER_SRC := $(wildcard $(SHADER_DIR)/*.vert) $(wildcard $(SHADER_DIR)/*.frag) SHADER_SPV := $(SHADER_SRC:%=%.spv) SRC:=\ topaz.c\ core/linear.c\ core/vector.c\ core/arena.c ifeq (${GRAPHICS_BACKEND},gl) SRC += rendering/gl/gl.c\ rendering/gl/platform.c\ rendering/gl/renderer.c endif ifeq (${GRAPHICS_BACKEND},vk) SRC += rendering/vk/platform.c\ rendering/vk/renderer.c\ rendering/vk/instance.c\ rendering/vk/physical_device.c\ rendering/vk/device.c\ rendering/vk/surface.c\ rendering/vk/swapchain.c\ rendering/vk/renderpass.c\ rendering/vk/pipeline.c\ rendering/vk/framebuffer.c\ rendering/vk/command.c\ rendering/vk/sync.c\ rendering/vk/buffer.c ifeq (${PLATFORM},Darwin) SRC += rendering/vk/macos_platform.c endif endif OBJ:=${SRC:.c=.o} all: shaders ${OBJ} ${CC} ${LIBS} ${CFLAGS} ${OBJ} -o topaz shaders: ${SHADER_SPV} $(SHADER_DIR)/%.spv: $(SHADER_DIR)/% glslc $< -o $@ %.o: %.c ${CC} ${CFLAGS} -c $< -o $@ .PHONY: clean shaders clean: @rm -rfv ${OBJ} ${SHADER_SPV} topaz INDENTABLE := $(shell find . -name "*.c" -o -name "*.h") INDENTABLE := $(filter-out ./gl/gl.h,$(INDENTABLE)) INDENTABLE := $(filter-out ./rgfw.h,$(INDENTABLE)) indent: $(INDENTABLE:%=%.indent) %.indent: % indent $< @rm $(notdir $<.BAK)