aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am41
-rw-r--r--build-debug/share/config.site1
-rwxr-xr-xbuild-win/full-build-win.sh (renamed from full-build-win.sh)6
-rw-r--r--build-win/share/config.site0
-rw-r--r--configure.ac52
-rw-r--r--src/Makefile.am38
-rw-r--r--src/engine.cpp10
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;