CXX ?= g++ CCACHE := $(shell command -v ccache 2>/dev/null) ifneq ($(CCACHE),) CXX := ccache $(CXX) endif CXXFLAGS = -std=c++17 -O2 -MMD -MP LDFLAGS = -lglfw -lvulkan -ldl -lpthread -lX11 -lXxf86vm -lXrandr -lXi SOURCES = $(wildcard *.cpp) HEADERS = $(wildcard *.hpp) OBJECTS = $(SOURCES:%.cpp=build/%.o) DEPS = $(OBJECTS:.o=.d) SHADERS = shaders/simple_shader.vert shaders/simple_shader.frag SPV = $(SHADERS:=.spv) VulkanTest: $(SPV) $(OBJECTS) $(CXX) $(CXXFLAGS) -o VulkanTest $(OBJECTS) $(LDFLAGS) build/%.o: %.cpp $(HEADERS) | build $(CXX) $(CXXFLAGS) -c $< -o $@ shaders/%.spv: shaders/% /usr/local/bin/glslc $< -o $@ build: mkdir -p build .PHONY: test clean test: VulkanTest ./VulkanTest clean: rm -f VulkanTest rm -rf build rm -f $(SPV) -include $(DEPS)