shadersdir = $(datarootdir)/shaders SLANGC = slangc bin_PROGRAMS = engine shaders_PROGRAMS = shader.spv engine_SOURCES = \ engine.cpp \ renderer.hpp renderer.cpp \ obj_parser.hpp obj_parser.cpp \ vulkan_utils.hpp \ stb_image.c \ fb/chfb.hpp fb/chfb.cpp fb/pixfb.hpp fb/pixfb.cpp \ math/utils.hpp \ math/vector.hpp \ math/mat4.hpp \ math/quat.hpp \ math/tform.hpp \ o3d/mesh.hpp o3d/mesh.cpp \ o3d/obj3d.hpp \ o3d/vertex_data.hpp \ o3d/vertex.hpp \ o3d/deriv_vertex.hpp \ o3d/tri.hpp \ o3d/tri_deriv.hpp \ o3d/polygon.hpp \ o3d/camera.hpp \ o3d/scene.hpp \ ctrl/keyboard.hpp \ ctrl/mouse.hpp # TODO: we should somehow pass assetsdir and texturesdir from ../Makefile.am to this Makefile.am. # We assume that they will always be relative to datadir, which might not be true if they are # configured differently engine_CPPFLAGS = -std=gnu++23 -Wall -Wextra \ -DDATADIR='"$(datadir)"' -DSHADERSDIR='"$(shadersdir)"' \ $(GLFW3_CFLAGS) $(STB_CFLAGS) $(VULKAN_CFLAGS) engine_LDFLAGS = -std=gnu++23 -Wall -Wextra engine_LDADD = $(GLFW3_LIBS) $(STB_LIBS) $(VULKAN_LIBS) if HAVE_NCURSES engine_CPPFLAGS += $(NCURSES_CFLAGS) engine_LDADD += $(NCURSES_LIBS) endif shader_spv_SOURCES = shaders/shader.slang shader_spv_SPVFLAGS = -target spirv -profile spirv_1_4 -emit-spirv-directly -fvk-use-entrypoint-name -entry vert_main -entry frag_main shader.spv$(EXEEXT): shaders/shader.slang $(SLANGC) $(shader_spv_SPVFLAGS) -o $@ $<