Files
RedScarfEngine/Makefile
T

46 lines
939 B
Makefile

CC := /usr/bin/g++
INCLUDE_DIR := -I./include -I./third_party/vma/include
LFLAGS := -lglfw -lvulkan
CFLAGS := -g -Wall -Werror -std=c++20 $(INCLUDE_DIR) $(LFLAGS)
SRC_DIR := src
BUILD_DIR := ./build
TARGET := RedScarfEngine
SOURCES := main.cpp \
vulkanBase.cpp \
window.cpp \
logger.cpp \
OBJECTS := $(SOURCES:%=$(BUILD_DIR)/%)
OBJECTS := $(OBJECTS:cpp=o)
SHADERS_DIR := ./shaders
SHADER_OBJECTS := vertex.spv \
fragments.spv \
all: prepare_dirs $(OBJECTS) $(SHADER_OBJECTS)
$(CC) $(CFLAGS) -o $(BUILD_DIR)/$(TARGET) $(OBJECTS)
# Build shader files
vertex.spv: $(SHADERS_DIR)/shader.vert
glslc $^ -o $(BUILD_DIR)/$@
fragments.spv: $(SHADERS_DIR)/shader.frag
glslc $^ -o $(BUILD_DIR)/$@
$(BUILD_DIR)/%.spv:
echo $(basename $^)
glslc $^ -o $@
# Generic build command
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp
$(CC) $(CFLAGS) -c $^ -o $@
.PHONY: prepare_dirs
prepare_dirs:
mkdir -p ./build
.PHONY: clean
clean:
rm -rf ./build