topaz/makefile

68 lines
1.5 KiB
Makefile

# 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)