EXTRA_DIST = m4/NOTES ACLOCAL_AMFLAGS = -Im4 --install # TODO: right now, the source tree and the install tree must share the same structure, which is very # bad, because for example this causes "src" to be used as a final directory # TODO: make variable for each subdirectory name, instead of copying it everywhere # TODO: we shouldn't have everything in a single Makefile.am if DEBUG ASSETS_DIR_CPP = $(srcdir)/assets ASSETS_OBJS_DIR_CPP = $(srcdir)/assets/objs ASSETS_TEXTURES_DIR_CPP = $(srcdir)/assets/textures SHADERS_DIR_CPP = $(builddir) else ASSETS_DIR_CPP = assets ASSETS_OBJS_DIR_CPP = assets/objs ASSETS_TEXTURES_DIR_CPP = assets/textures SHADERS_DIR_CPP = shaders endif enginedir = $(datarootdir)/engine assetsdir = $(enginedir)/assets assets_objsdir = $(assetsdir)/objs assets_texturesdir = $(assetsdir)/textures shadersdir = $(enginedir)/shaders assets_objs_DATA = \ assets/objs/suzanne.obj \ assets/objs/viking_room.obj assets_textures_DATA = \ assets/textures/texture.jpg \ assets/textures/viking_room.png EXTRA_DIST += $(assets_objs_DATA) $(assets_textures_DATA) # assets origin: # - assets/suzanne.obj # taken from Blender # - assets/texture.jpg # comes from here https://pixabay.com/photos/statue-sculpture-figure-1275469/, modified by the # author(s) of the vulkan tutorials (see # https://docs.vulkan.org/tutorial/latest/06_Texture_mapping/00_Images.html#_loading_an_image) # - assets/viking_room.obj & assets/textures/viking_room.png # comes from here https://sketchfab.com/3d-models/viking-room-a49f1b8e4f5c4ecf9e1fe7d81915ad38, # modified by the author(s) of the vulkan tutorials (see # https://docs.vulkan.org/tutorial/latest/08_Loading_models.html#_sample_mesh) engine_PROGRAMS = engine shaders_SCRIPTS = shader.spv noinst_PROGRAMS = shader.spv.rmext CLEANFILES = shader.spv shader.spv.rmext engine_SOURCES = \ src/engine.cpp \ src/renderer.hpp src/renderer.cpp \ src/obj_parser.hpp src/obj_parser.cpp \ src/vulkan_utils.hpp \ src/path_utils.hpp src/path_utils.cpp \ src/stb_image.h \ src/stb_image.cpp \ src/fb/fb.hpp \ src/fb/chfb.hpp src/fb/chfb.cpp \ src/fb/pixfb.hpp src/fb/pixfb.cpp \ src/math/utils.hpp \ src/math/vector.hpp \ src/math/mat4.hpp \ src/math/quat.hpp \ src/math/tform.hpp \ src/o3d/mesh.hpp src/o3d/mesh.cpp \ src/o3d/obj3d.hpp \ src/o3d/vertex.hpp \ src/o3d/deriv_vertex.hpp \ src/o3d/tri.hpp \ src/o3d/tri_deriv.hpp \ src/o3d/polygon.hpp \ src/o3d/camera.hpp \ src/o3d/scene.hpp \ src/ctrl/keyboard.hpp \ src/ctrl/mouse.hpp \ src/shaders/shaders.hpp \ src/shaders/simple_shaders.hpp src/shaders/simple_shaders.cpp shader_spv_rmext_SOURCES = src/shaders/shader.slang engine_CPPFLAGS = -std=gnu++23 -Wall -Wextra -I'$(srcdir)/src' \ -DASSETS_DIR='"$(ASSETS_DIR_CPP)"' \ -DASSETS_OBJS_DIR='"$(ASSETS_OBJS_DIR_CPP)"' \ -DASSETS_TEXTURES_DIR='"$(ASSETS_TEXTURES_DIR_CPP)"' \ -DSHADERS_DIR='"$(SHADERS_DIR_CPP)"' \ $(GLFW3_CFLAGS) $(VULKAN_CFLAGS) if !DEBUG engine_CPPFLAGS += -DNDEBUG endif engine_LDFLAGS = -std=gnu++23 -Wall -Wextra engine_LDADD = $(GLFW3_LIBS) $(VULKAN_LIBS) if HAVE_NCURSES engine_CPPFLAGS += $(NCURSES_CFLAGS) engine_LDADD += $(NCURSES_LIBS) endif src/engine-stb_image.$(OBJEXT): CXXFLAGS += -Wno-unused-but-set-variable shader_spv_rmext_SLANGFLAGS = -target spirv -profile spirv_1_4 -emit-spirv-directly -fvk-use-entrypoint-name -entry vert_main -entry frag_main shader.spv.rmext$(EXEEXT): src/shaders/shader.slang $(SLANGC) $(shader_spv_rmext_SLANGFLAGS) -o $@ $< shader.spv: shader.spv.rmext$(EXEEXT) cp -f $< $@