Advertisement
Guest User

Untitled

a guest
Aug 10th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 1.04 KB | None | 0 0
  1. #!/usr/bin/make
  2.  
  3. print-%:; @echo $* = $($*)
  4.  
  5. ifeq ($(shell uname -m), x86_64)
  6. VULKAN_SDK_PATH = ./VulkanSDK/1.1.77.0/x86_64
  7. endif
  8.  
  9. ODIR = ./build/bin
  10. EXE = $(ODIR)/Test
  11.  
  12. vpath %.cpp %.cc ./sources
  13. vpath %.vert %.tess %.geom %.frag ./shaders
  14. #vpath %.spv $(ODIR)/shaders
  15.  
  16. CFLAGS = -std=c++17 -I$(VULKAN_SDK_PATH)/include -Iinclude -Isources
  17. GLFLAGS = -V
  18. LDFLAGS = -L$(VULKAN_SDK_PATH)/lib `pkg-config --static --libs glfw3` -lvulkan -lpthread
  19.  
  20. CPP = $(wildcard ./sources/*.cpp)
  21. OBJ = $(patsubst ./sources/%,$(ODIR)/%,$(CPP:.cpp=.o))
  22. GLSL = $(wildcard ./shaders/*.vert ./shaders/*.frag)
  23. SPV = $(patsubst ./shaders/%,$(ODIR)/shaders/%,$(GLSL:=.spv))
  24.  
  25. $(EXE): $(OBJ)|$(ODIR); g++ $(CFLAGS) $^ -o $@ $(LDFLAGS)
  26.  
  27. $(ODIR)/shaders/%.spv: ./shaders/%
  28.     $(VULKAN_SDK_PATH)/bin/glslangValidator $(GLFLAGS) $< -o $@
  29.  
  30. $(ODIR)/%.o : %.cpp; g++ $(CFLAGS) -c $< -o $@
  31. $(ODIR):; @mkdir -p $^
  32.  
  33. all: $(EXE) $(SPV)
  34.  
  35. clean:; @mv $(EXE) $(OBJ) $(SPV) ~/.local/share/Trash
  36.  
  37. test: all
  38.     @sh $(VULKAN_SDK_PATH)/../setup-env.sh
  39.     ./$(EXE)
  40.  
  41. .PHONY: all clean
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement