aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac79
1 files changed, 29 insertions, 50 deletions
diff --git a/configure.ac b/configure.ac
index 744694d..959b07c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,9 +5,14 @@ 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 src/spvshaders/Makefile])
AC_REQUIRE_AUX_FILE([tap-driver.sh])
+CXXFLAGS_save="$CXXFLAGS"
+LIBS_save="$LIBS"
+CXXFLAGS=
+LIBS=
+
AC_PROG_CXX
AC_PROG_AWK
AC_PROG_INSTALL
@@ -43,59 +48,33 @@ PKG_CHECK_MODULES([GLFW3], [glfw3 >= 3.3.10])
PKG_CHECK_MODULES([VULKAN], [vulkan])
PKG_HAVE_DEFINE_WITH_MODULES([NCURSES], [ncurses >= 6.4.20230625])
-AC_LANG([C++])
-CXXFLAGS_save="$CXXFLAGS"
-LIBS_save="$LIBS"
-
-# ENGINE_VULKAN_VER(VARIANT, MAJOR, MINOR, PATCH, [CMP])
-# ------------------------------------------------------
-m4_define([ENGINE_VULKAN_VER], [[variant ]$1[ version ]ifelse([$#], [5], [$5[ ]], [[]])$2[.]$3[.]$4])
+AC_LANG_PUSH([C++])
m4_define([vulkan_required_api_variant], [[0]])
-m4_define([vulkan_required_api_major], [[1]])
-m4_define([vulkan_required_api_minor], [[4]])
-m4_define([vulkan_required_api_patch], [[313]])
-m4_define([vulkan_required_api_str],
- [ENGINE_VULKAN_VER(
- [vulkan_required_api_variant],
- [vulkan_required_api_major],
- [vulkan_required_api_minor],
- [vulkan_required_api_patch],
- [[>=]])])
-AC_MSG_CHECKING([for Vulkan headers ]vulkan_required_api_str)
+m4_define([vulkan_required_api], [[1.4.313]])
+AC_MSG_CHECKING(
+ [if Vulkan headers are variant ]vulkan_required_api_variant[ and version at least ]vulkan_required_api)
CXXFLAGS="$VULKAN_CFLAGS"
-AC_COMPUTE_INT([vulkan_api], [VK_HEADER_VERSION_COMPLETE], [
-#include <vulkan/vulkan.h>
-], [AC_MSG_ERROR([cannot check Vulkan headers version])])
-AS_VAR_ARITH([vulkan_api_variant], [$vulkan_api \>\> 29])
-AS_VAR_ARITH([vulkan_api_major], [\( $vulkan_api \>\> 22 \) \& 127])
-AS_VAR_ARITH([vulkan_api_minor], [\( $vulkan_api \>\> 12 \) \& 1023])
-AS_VAR_ARITH([vulkan_api_patch], [$vulkan_api \& 4095])
-vulkan_api_str="ENGINE_VULKAN_VER([[$vulkan_api_variant]], [[$vulkan_api_major]], [[$vulkan_api_minor]], [[$vulkan_api_patch]])"
-vulkan_version_ok=no
-AS_VAR_IF([vulkan_api_variant], vulkan_required_api_variant, [
- AS_VAR_ARITH([vulkan_version_cmp], [$vulkan_api_major \>= ]vulkan_required_api_major)
- AS_VAR_IF([vulkan_version_cmp], [1], [
- AS_VAR_ARITH([vulkan_version_cmp], [$vulkan_api_major \> ]vulkan_required_api_major)
- AS_VAR_IF([vulkan_version_cmp], [1], [vulkan_version_ok=yes], [
- AS_VAR_ARITH([vulkan_version_cmp], [$vulkan_api_minor \>= ]vulkan_required_api_minor)
- AS_VAR_IF([vulkan_version_cmp], [1], [
- AS_VAR_ARITH([vulkan_version_cmp], [$vulkan_api_minor \> ]vulkan_required_api_minor)
- AS_VAR_IF([vulkan_version_cmp], [1], [vulkan_version_ok=yes], [
- AS_VAR_ARITH([vulkan_version_cmp], [$vulkan_api_patch \>= ]vulkan_required_api_patch)
- AS_VAR_IF([vulkan_version_cmp], [1], [vulkan_version_ok=yes])
- ])
- ])
- ])
- ])
+AC_COMPUTE_INT([vulkan_api_int], [VK_HEADER_VERSION_COMPLETE],
+ [#include <vulkan/vulkan.h>],
+ [AC_MSG_ERROR([cannot check Vulkan headers version])])
+AS_VAR_ARITH([vulkan_api_variant], [$][vulkan_api_int \>\> 29])
+AS_VAR_ARITH([vulkan_api_major], [\( ][$][vulkan_api_int \>\> 22 \) \& 127])
+AS_VAR_ARITH([vulkan_api_minor], [\( ][$][vulkan_api_int \>\> 12 \) \& 1023])
+AS_VAR_ARITH([vulkan_api_patch], [$][vulkan_api_int \& 4095])
+vulkan_api="[$]vulkan_api_major.[$]vulkan_api_minor.[$]vulkan_api_patch"
+AS_VAR_IF([vulkan_api_variant], vulkan_required_api_variant,, [
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR(
+ [Vulkan headers are variant ][$][vulkan_api_variant, but variant ]vulkan_required_api_variant[ required])
])
-AS_VAR_IF([vulkan_version_ok], [yes],
- [AC_MSG_RESULT([yes])],
- [
- AC_MSG_RESULT([no])
- AC_MSG_ERROR(
- [Vulkan headers $vulkan_api_str found, but ]vulkan_required_api_str[ required])
- ])
+AX_COMPARE_VERSION([$][vulkan_api], [ge], vulkan_required_api, [AC_MSG_RESULT([yes])], [
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR(
+ [Vulkan headers are version ][$][vulkan_api, but version at least ]vulkan_required_api[ required])
+])
+
+AC_LANG_POP([C++])
CXXFLAGS="$CXXFLAGS_save"
LIBS="$LIBS_save"