68 lines
1.5 KiB
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)
|