diff options
Diffstat (limited to 'configure.ac')
| -rw-r--r-- | configure.ac | 79 |
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" |
