Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/make
- print-%:; @echo $* = $($*)
- ifeq ($(shell uname -m), x86_64)
- VULKAN_SDK_PATH = ./VulkanSDK/1.1.77.0/x86_64
- endif
- ODIR = ./build/bin
- EXE = $(ODIR)/Test
- vpath %.cpp %.cc ./sources
- vpath %.vert %.tess %.geom %.frag ./shaders
- #vpath %.spv $(ODIR)/shaders
- CFLAGS = -std=c++17 -I$(VULKAN_SDK_PATH)/include -Iinclude -Isources
- GLFLAGS = -V
- LDFLAGS = -L$(VULKAN_SDK_PATH)/lib `pkg-config --static --libs glfw3` -lvulkan -lpthread
- CPP = $(wildcard ./sources/*.cpp)
- OBJ = $(patsubst ./sources/%,$(ODIR)/%,$(CPP:.cpp=.o))
- GLSL = $(wildcard ./shaders/*.vert ./shaders/*.frag)
- SPV = $(patsubst ./shaders/%,$(ODIR)/shaders/%,$(GLSL:=.spv))
- $(EXE): $(OBJ)|$(ODIR); g++ $(CFLAGS) $^ -o $@ $(LDFLAGS)
- $(ODIR)/shaders/%.spv: ./shaders/%
- $(VULKAN_SDK_PATH)/bin/glslangValidator $(GLFLAGS) $< -o $@
- $(ODIR)/%.o : %.cpp; g++ $(CFLAGS) -c $< -o $@
- $(ODIR):; @mkdir -p $^
- all: $(EXE) $(SPV)
- clean:; @mv $(EXE) $(OBJ) $(SPV) ~/.local/share/Trash
- test: all
- @sh $(VULKAN_SDK_PATH)/../setup-env.sh
- ./$(EXE)
- .PHONY: all clean
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement