CFLAGS = -std=c++17 -o2 -I. -I$(VULKAN_SDK_PATH)/include LDFLAGS = -L$(VULKAN_SDK_PATH)/lib `pkg-config --static --libs glfw3` -lvulkan -ldl -lpthread -lX11 -lXrandr -lXi # create list of all spv files and set as dependency vertSources = $(shell find ./shaders -type f -name "*.vert") vertSpvs = $(patsubst %.vert, %.vert.spv, $(vertSources)) fragSources = $(shell find ./shaders -type f -name "*.frag") fragSpvs = $(patsubst %.frag, %.frag.spv, $(fragSources)) TARGET = VulkanTest $(TARGET): $(vertSpvs) $(fragSpvs) $(TARGET): *.cpp *.hpp g++ $(CFLAGS) -o $(TARGET) *.cpp $(LDFLAGS) # make shader targets %.spv: % ${GLSLC} $< -o $@ .PHONY: test clean test: VulkanTest ./VulkanTest clean: rm -f VulkanTest rm -f *.spv