https://lists.gnu.org/archive/html/bug-recutils/2024-10/msg00002.html From 42e038b1024c4e225b8309bab2438137f2c0a088 Mon Sep 17 00:00:00 2001 Message-ID: <42e038b1024c4e225b8309bab2438137f2c0a088.1728191717.git.sam@gentoo.org> In-Reply-To: <9f08064fef75ce02df9b6133d240c0fa84df458e.1728191717.git.sam@gentoo.org> References: <9f08064fef75ce02df9b6133d240c0fa84df458e.1728191717.git.sam@gentoo.org> From: Sam James Date: Sun, 6 Oct 2024 05:04:15 +0100 Subject: [PATCH 06/10] configure.ac: add options for dependencies Avoid "automagic" dependencies by adding options to control them so they can be easily overridden, rather than detection based on installed packages. 2024-10-06 Sam James * configure.ac: Add --enable-curl, --enable-uuid, --enable-mdb. --- configure.ac | 129 ++++++++++++++++++++++++++------------------------- 1 file changed, 67 insertions(+), 62 deletions(-) diff --git a/configure.ac b/configure.ac index 24495b4..d6ffb01 100644 --- a/configure.ac +++ b/configure.ac @@ -84,18 +84,35 @@ AM_CONDITIONAL([CHECK], [test "x$have_check" != "xno"]) AC_SUBST([CHECK_CFLAGS]) AC_SUBST([CHECK_LIBS]) +AC_ARG_ENABLE([curl], + AS_HELP_STRING([--enable-curl], + [Enable support for remote descriptors using libcurl (default is YES)]), + [curl_enabled=$enableval], [curl_enabled=yes]) have_curl=no -AC_CHECK_LIB([curl],[curl_global_init],[have_curl=yes],) -if test "x$have_curl" = "xyes"; then - CURLLIBS=-lcurl -fi +AS_IF([test "x$curl_enabled" = "xyes"], [ + AC_CHECK_LIB([curl], [curl_global_init], [have_curl=yes], []) + AS_IF([test "x$have_curl" = "xyes"], [ + CURLLIBS=-lcurl + ], [ + AC_MSG_ERROR([curl support enabled but libcurl not found]) + ]) +], []) AC_SUBST([CURLLIBS]) +AC_ARG_ENABLE([uuid], + AS_HELP_STRING([--enable-uuid], + [Compile recutils with support for uuid types (default is YES)]), + [uuid_enabled=$enableval], [uuid_enabled=yes]) + have_uuid=no -AC_CHECK_LIB([uuid],[uuid_generate],[have_uuid=yes],) -if test "x$have_uuid" = "xyes"; then - UUIDLIBS=-luuid -fi +AS_IF([test "x$uuid_enabled" = "xyes"], [ + AC_CHECK_LIB([uuid], [uuid_generate], [have_uuid=yes], []) + AS_IF([test "x$have_uuid" = "xyes"], [ + UUIDLIBS=-luuid + ], [ + AC_MSG_ERROR([uuid support enabled but libuuid not found]) + ]) +], []) AC_SUBST([UUIDLIBS]) AC_SUBST([have_uuid]) @@ -105,45 +122,56 @@ AC_ARG_ENABLE([encryption], [crypt_enabled=$enableval], [crypt_enabled=yes]) crypt_support=no -if test "x$crypt_enabled" = "xyes"; then +AS_IF([test "x$crypt_enabled" = "xyes"], [ + AC_LIB_HAVE_LINKFLAGS([gcrypt], [gpg-error], [#include ]) + crypt_support=$HAVE_LIBGCRYPT - AC_LIB_HAVE_LINKFLAGS([gcrypt],[gpg-error],[#include ]) - crypt_support=$HAVE_LIBGCRYPT - - if test "x$crypt_support" = "xyes"; then - AC_DEFINE([REC_CRYPT_SUPPORT],[1],[Compile encryption support]) - fi -fi + AS_IF([test "x$crypt_support" = "xyes"], [ + AC_DEFINE([REC_CRYPT_SUPPORT], [1], [Compile encryption support]) + ], []) +], []) AM_CONDITIONAL([CRYPT], [test "x$crypt_support" = "xyes"]) AC_SUBST([crypt_support]) -have_glib=no -PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.0.0], - [have_glib=yes], [have_glib=no]) - +AC_ARG_ENABLE([mdb], + AS_HELP_STRING([--enable-mdb], + [Build the mdb2rec utility (default is YES)]), + [mdb_enabled=$enableval], [mdb_enabled=yes]) have_mdb=no -AC_CHECK_LIB([mdb],[mdb_init],[have_mdb=yes],) -if test "x$have_mdb" = "xyes"; then - MDBLIBS=-lmdb - - OLD_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $pkg_cv_GLIB_CFLAGS" - mdb_uses_sdatetime=no - AC_CHECK_DECL([MDB_SDATETIME],[mdb_uses_sdatetime=yes],,[#include -#include ]) - CFLAGS=$OLD_CFLAGS - - if test "x$mdb_uses_sdatetime" = "xyes"; then - MDB_DATETIME="MDB_SDATETIME" - else - MDB_DATETIME="MDB_DATETIME" - fi - - AC_SUBST([MDB_DATETIME]) -fi +AS_IF([test "x$mdb_enabled" = "xyes"], [ + AC_CHECK_LIB([mdb], [mdb_init], [have_mdb=yes], []) + AS_IF([test "x$have_mdb" = "xyes"], [ + MDBLIBS=-lmdb + + OLD_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $pkg_cv_GLIB_CFLAGS" + mdb_uses_sdatetime=no + AC_CHECK_DECL([MDB_SDATETIME], [mdb_uses_sdatetime=yes], [], [ + #include + #include + ]) + CFLAGS=$OLD_CFLAGS + + AS_IF([test "x$mdb_uses_sdatetime" = "xyes"], [ + MDB_DATETIME="MDB_SDATETIME" + ], [ + MDB_DATETIME="MDB_DATETIME" + ]) + ], [ + AC_MSG_ERROR([mdb support enabled but libmdb not found]) + ]) + + AC_SUBST([MDB_DATETIME]) +], []) AC_SUBST([MDBLIBS]) +have_glib=no +AS_IF([test "x$mdb_enabled" = "xyes"], [ + PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.0.0], + [have_glib=yes], [have_glib=no]) +], []) + AM_CONDITIONAL([COMPILE_MDB2REC], [test "x$have_glib" = "xyes" && test "x$have_mdb" = "xyes"]) AM_CONDITIONAL([REMOTE_DESCRIPTORS], [test "x$have_curl" = "xyes"]) @@ -217,29 +245,6 @@ AC_OUTPUT dnl Report warnings -if test "x$have_check" = "xno"; then - echo "warning: libcheck was not found in the system." - echo "warning: unit tests wont be compiled and executed upon make check." -fi - -if test "x$have_mdb" = "xno"; then - echo "warning: libmdb was not found in the system." - echo "warning: the mdb2rec utility won't get built." -fi - -if test "x$have_glib" = "xno"; then - echo "warning: glib was not found in the system." - echo "warning: the mdb2rec utility won't get built." -fi - -if test "x$crypt_support" = "xno"; then - echo "warning: building recutils without encryption support." -fi - -if test "x$have_uuid" = "xno"; then - echo "warning: building recutils without support for uuid types." -fi - if test "x$bash_headers_available" = "xno" || test "x$bash_builtins_enabled" = "xno"; then echo "warning: not building the recutils bash builtins." fi -- 2.46.2