diff options
| author | vimene <vincent.menegaux@gmail.com> | 2025-12-10 17:16:12 +0100 |
|---|---|---|
| committer | vimene <vincent.menegaux@gmail.com> | 2025-12-10 17:16:12 +0100 |
| commit | c666035bc6a51e4dd76daebefffaf8bbc951977c (patch) | |
| tree | dabb19c541ef66faebb508ba3a06642737e31a3f | |
| parent | 625d18a6053e28762c77efd3dd0d79fc01b0b0ef (diff) | |
| download | engine-c666035bc6a51e4dd76daebefffaf8bbc951977c.tar.gz | |
improved autotools usage
| -rw-r--r-- | Makefile.am | 41 | ||||
| -rw-r--r-- | build-debug/share/config.site | 1 | ||||
| -rwxr-xr-x | build-win/full-build-win.sh (renamed from full-build-win.sh) | 6 | ||||
| -rw-r--r-- | build-win/share/config.site | 0 | ||||
| -rw-r--r-- | configure.ac | 52 | ||||
| -rw-r--r-- | src/Makefile.am | 38 | ||||
| -rw-r--r-- | src/engine.cpp | 10 |
7 files changed, 56 insertions, 92 deletions
diff --git a/Makefile.am b/Makefile.am index 0a27d41..6def371 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,40 +1,7 @@ EXTRA_DIST = m4/NOTES -SUBDIRS = -if ENABLE_TESTS - SUBDIRS += tests -endif +SUBDIRS = src ACLOCAL_AMFLAGS = -Im4 --install -CXXFLAGS = -if DEBUG -CXXFLAGS += -ggdb -else -CXXFLAGS += -DNDEBUG -endif -CXXFLAGS += -O2 - -bin_PROGRAMS = engine - -engine_SOURCES = \ - src/engine.cpp \ - src/renderer.h src/renderer.cpp \ - src/obj_parser.h src/obj_parser.cpp \ - src/fb/fb.h src/fb/chfb.h src/fb/chfb.cpp src/fb/pixfb.h src/fb/pixfb.cpp \ - src/math/vector.h \ - src/math/mat4.h \ - src/math/quat.h \ - src/math/tform.h \ - src/o3d/mesh.h src/o3d/mesh.cpp \ - src/o3d/obj3d.h \ - src/o3d/vertex_data.h \ - src/o3d/vertex.h \ - src/o3d/deriv_vertex.h \ - src/o3d/tri.h \ - src/o3d/tri_deriv.h src/o3d/tri_deriv.cpp \ - src/o3d/camera.h \ - src/o3d/scene.h \ - src/ctrl/keyboard.h \ - src/ctrl/mouse.h -engine_CPPFLAGS = -std=gnu++23 -Wall -Wextra $(DEPS_CPPFLAGS) -engine_LDFLAGS = -std=gnu++23 -Wall -Wextra -engine_LDADD = $(DEPS_LIBS) +assetsdir = $(datadir)/assets +assets_DATA = ../assets/suzanne.obj +EXTRA_DIST += $(assets_DATA) diff --git a/build-debug/share/config.site b/build-debug/share/config.site new file mode 100644 index 0000000..378d94f --- /dev/null +++ b/build-debug/share/config.site @@ -0,0 +1 @@ +CXXFLAGS='-ggdb -O2' diff --git a/full-build-win.sh b/build-win/full-build-win.sh index b031606..9661d46 100755 --- a/full-build-win.sh +++ b/build-win/full-build-win.sh @@ -2,10 +2,10 @@ set -euo pipefail [[ -f engine-win.zip ]] && rm -f engine-win.zip -PKG_CONFIG_PATH=../local/x86_64-w64-mingw32/lib/pkgconfig/ \ - ./configure --build=x86_64-pc-linux-gnu --host=x86_64-w64-mingw32 +PKG_CONFIG_PATH=../../local/x86_64-w64-mingw32/lib/pkgconfig/ \ + ../configure --prefix "$(realpath .)" --build x86_64-pc-linux-gnu --host x86_64-w64-mingw32 make zip -jg engine-win engine.exe zip -jg engine-win /usr/lib/gcc/x86_64-w64-mingw32/13-win32/libstdc++-6.dll zip -jg engine-win /usr/lib/gcc/x86_64-w64-mingw32/13-win32/libgcc_s_seh-1.dll -zip -jg engine-win ../local/x86_64-w64-mingw32/bin/SDL2.dll +zip -jg engine-win ../../local/x86_64-w64-mingw32/bin/SDL2.dll diff --git a/build-win/share/config.site b/build-win/share/config.site new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/build-win/share/config.site diff --git a/configure.ac b/configure.ac index ebdbcad..d26e69b 100644 --- a/configure.ac +++ b/configure.ac @@ -5,54 +5,12 @@ AC_CONFIG_HEADERS([src/config.h]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([foreign subdir-objects]) -AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([Makefile src/Makefile]) -DEPS_CPPFLAGS="" -DEPS_LIBS="" - -PKG_CHECK_MODULES([GLFW3], [glfw3 >= 3.3.10]) -DEPS_CPPFLAGS="$GLFW3_CFLAGS $DEPS_CPPFLAGS" -DEPS_LIBS="$GLFW3_LIBS $DEPS_LIBS" - -PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.3.275]) -DEPS_CPPFLAGS="$VULKAN_CFLAGS $DEPS_CPPFLAGS" -# Not sure why they are needed -DEPS_LIBS="-ldl -lpthread -lX11 -lXxf86vm -lXrandr -lXi $DEPS_LIBS" -DEPS_LIBS="$VULKAN_LIBS $DEPS_LIBS" - -// TODO: add check for Vulkan Utility Library - -PKG_CHECK_MODULES([NCURSES], [ncurses >= 6.4.20230625], [ - DEPS_CPPFLAGS="$NCURSES_CFLAGS $DEPS_CPPFLAGS" - DEPS_LIBS="$NCURSES_LIBS $DEPS_LIBS" - AC_DEFINE([ENABLE_NCURSES], [], [Enable ncurses]) -], :) - -AC_SUBST(DEPS_CPPFLAGS) -AC_SUBST(DEPS_LIBS) - -TESTS_DEPS_CPPFLAGS="" -TESTS_DEPS_LIBS="" - -PKG_CHECK_MODULES([CRITERION], [criterion >= 2.4.1], [ - enable_tests=yes - TESTS_DEPS_CPPFLAGS="$CRITERION_CFLAGS $TESTS_DEPS_CPPFLAGS" - TESTS_DEPS_LIBS="$CRITERION_LIBS $TESTS_DEPS_LIBS" - AC_CONFIG_FILES([tests/Makefile]) -], [enable_tests=no]) -AM_CONDITIONAL([ENABLE_TESTS], [test x$enable_tests = xyes]) - -AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], [enable debugging, default: no]), - [case "${enableval}" in - yes) debug=true ;; - no) debug=false ;; - *) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;; - esac], - [debug=false]) -AM_CONDITIONAL([DEBUG], test x"$debug" = x"true") - -AC_SUBST(TESTS_DEPS_CPPFLAGS) -AC_SUBST(TESTS_DEPS_LIBS) +dnl TODO: add check for Vulkan Utility Library +PKG_CHECK_MODULES( [GLFW3], [glfw3 >= 3.3.10]) +PKG_CHECK_MODULES( [VULKAN], [vulkan >= 1.3.275]) +PKG_HAVE_DEFINE_WITH_MODULES([NCURSES], [ncurses >= 6.4.20230625]) AC_PROG_CXX AC_TYPE_UINT32_T diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..5a3b41d --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,38 @@ +bin_PROGRAMS = engine + +engine_SOURCES = \ + engine.cpp \ + renderer.h renderer.cpp \ + obj_parser.h obj_parser.cpp \ + fb/fb.h fb/chfb.h fb/chfb.cpp fb/pixfb.h fb/pixfb.cpp \ + math/vector.h \ + math/mat4.h \ + math/quat.h \ + math/tform.h \ + o3d/mesh.h o3d/mesh.cpp \ + o3d/obj3d.h \ + o3d/vertex_data.h \ + o3d/vertex.h \ + o3d/deriv_vertex.h \ + o3d/tri.h \ + o3d/tri_deriv.h o3d/tri_deriv.cpp \ + o3d/camera.h \ + o3d/scene.h \ + ctrl/keyboard.h \ + ctrl/mouse.h +engine_CPPFLAGS = -std=gnu++23 -Wall -Wextra +engine_LDFLAGS = -std=gnu++23 -Wall -Wextra + +engine_CPPFLAGS += -DDATADIR='"$(datadir)"' + +# Not sure why they are needed +engine_LDADD =# -ldl -lpthread -lX11 -lXxf86vm -lXrandr -lXi +engine_CPPFLAGS += $(GLFW3_CFLAGS) +engine_LDADD += $(GLFW3_LIBS) +engine_CPPFLAGS += $(VULKAN_CFLAGS) +engine_LDADD += $(VULKAN_LIBS) + +if HAVE_NCURSES +engine_CPPFLAGS += $(NCURSES_CFLAGS) +engine_LDADD += $(NCURSES_LIBS) +endif diff --git a/src/engine.cpp b/src/engine.cpp index da28f75..2acba89 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -19,7 +19,7 @@ #include <GLFW/glfw3.h> #include <vulkan/vk_enum_string_helper.h> -#ifdef ENABLE_NCURSES +#ifdef HAVE_NCURSES #include <ncurses.h> #endif @@ -106,7 +106,7 @@ static void scene_main(Renderer<FrameBuffer>& renderer, const Matrix4& final_tra }, #elif GAME == GAME_SUZANNE { - engine::parse_object("../assets/suzanne.obj"), + engine::parse_object(DATADIR "/assets/suzanne.obj"), { Vector3(0.f, 0.f, 0.f), Quaternion::one(), @@ -123,7 +123,7 @@ static void scene_main(Renderer<FrameBuffer>& renderer, const Matrix4& final_tra } }, { - engine::parse_object("../assets/suzanne.obj"), + engine::parse_object(DATADIR "/assets/suzanne.obj"), { Vector3(0.f, 1.f, 0.f), Quaternion::one(), @@ -184,7 +184,7 @@ static void scene_main(Renderer<FrameBuffer>& renderer, const Matrix4& final_tra } } -#ifdef ENABLE_NCURSES +#ifdef HAVE_NCURSES #define MKEY_ESC 27 static int main_term() { @@ -521,7 +521,7 @@ int main(int argc, char *argv[]) { print_usage(std::cout); return EXIT_SUCCESS; case MODE_TERM: -#ifdef ENABLE_NCURSES +#ifdef HAVE_NCURSES return main_term(); #else std::cerr << "Error: ncurses was not enabled during compilation." << std::endl; |
