blob: 2fb2614d49b7b2bdb0f103ed0e707c1afa24d35b [file] [log] [blame]
Add configure flags for optional libraries.
This enables distributions to force disable features based on optional
dependencies to avoid unexpected behavior when extra headers are present.
Author: Allen Webb <allenwebb@google.com>
Pull Request: https://github.com/USBGuard/usbguard/pull/368
diff --git a/configure.ac b/configure.ac
index 2ccd714..4328cfb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -231,35 +231,67 @@ AC_SUBST([crypto_LIBS])
#
# Check for optional libraries
#
-PKG_CHECK_MODULES([audit], [audit >= 2.7.7],
-[AC_DEFINE([HAVE_LINUX_AUDIT], [1], [Linux Audit API available])
-AC_CHECK_DECLS([audit_encode_nv_string], [], [], [[#include<libaudit.h>]])
-libaudit_summary="system-wide; $audit_LIBS"],
-[AC_MSG_NOTICE([libaudit development files not found! Linux Audit support wille be turned OFF])
-libaudit_summary="not found"]
-)
+AC_ARG_ENABLE([audit],
+ [AS_HELP_STRING([--enable-audit], [Enables Linux Audit support if available (default=yes)])],
+ [use_audit=$enableval], [use_audit=yes])
+
+if test "x$use_audit" = xyes; then
+ PKG_CHECK_MODULES([audit], [audit >= 2.7.7],
+ [AC_DEFINE([HAVE_LINUX_AUDIT], [1], [Linux Audit API available])
+ AC_CHECK_DECLS([audit_encode_nv_string], [], [], [[#include<libaudit.h>]])
+ libaudit_summary="system-wide; $audit_LIBS"],
+ [AC_MSG_NOTICE([libaudit development files not found! Linux Audit support wille be turned OFF])
+ libaudit_summary="not found"]
+ )
+else
+ libaudit_summary="not enabled"
+fi
-PKG_CHECK_MODULES([seccomp], [libseccomp >= 2.0.0],
-[AC_DEFINE([HAVE_SECCOMP], [1], [seccomp API usable])
-libseccomp_summary="system-wide; $seccomp_LIBS"],
-[AC_MSG_NOTICE([libseccomp development files not found! Seccomp support will be turned OFF])
-libseccomp_summary="not found"]
-)
+AC_ARG_ENABLE([seccomp],
+ [AS_HELP_STRING([--enable-seccomp], [Enables Seccomp support if available (default=yes)])],
+ [use_seccomp=$enableval], [use_seccomp=yes])
-PKG_CHECK_MODULES([libcapng], [libcap-ng >= 0.7.0],
-[AC_DEFINE([HAVE_LIBCAPNG], [1], [cap-ng API usable])
-libcap_ng_summary="system-wide; $libcapng_LIBS"],
-[AC_MSG_NOTICE([libseccomp development files not found! Seccomp support will be turned OFF])
-libcap_ng_summary="not found"]
-)
+if test "x$use_seccomp" = xyes; then
+ PKG_CHECK_MODULES([seccomp], [libseccomp >= 2.0.0],
+ [AC_DEFINE([HAVE_SECCOMP], [1], [seccomp API usable])
+ libseccomp_summary="system-wide; $seccomp_LIBS"],
+ [AC_MSG_NOTICE([libseccomp development files not found! Seccomp support will be turned OFF])
+ libseccomp_summary="not found"]
+ )
+else
+ libseccomp_summary="not enabled"
+fi
-PKG_CHECK_MODULES([umockdev], [umockdev-1.0 >= 0.8.0],
-[AC_DEFINE([HAVE_UMOCKDEV], [1], [umockdev API usable])
-umockdev_summary="system-wide; $umockdev_LIBS"
-umockdev_available=yes],
-[AC_MSG_NOTICE([umockdev development files not found! umockdev device manager won't be available])
-umockdev_summary="not found"]
-)
+AC_ARG_ENABLE([libcapng],
+ [AS_HELP_STRING([--enable-libcapng], [Enables POSIX 1003.1e capability support if available (default=yes)])],
+ [use_libcapng=$enableval], [use_libcapng=yes])
+
+if test "x$use_libcapng" = xyes; then
+ PKG_CHECK_MODULES([libcapng], [libcap-ng >= 0.7.0],
+ [AC_DEFINE([HAVE_LIBCAPNG], [1], [cap-ng API usable])
+ libcap_ng_summary="system-wide; $libcapng_LIBS"],
+ [AC_MSG_NOTICE([libcap-ng development files not found! Support for POSIX 1003.1e capabilities will be turned OFF])
+ libcap_ng_summary="not found"]
+ )
+else
+ libcap_ng_summary="not enabled"
+fi
+
+AC_ARG_ENABLE([umockdev],
+ [AS_HELP_STRING([--enable-umockdev], [Enables Seccomp support if available (default=yes)])],
+ [use_umockdev=$enableval], [use_umockdev=yes])
+
+if test "x$use_umockdev" = xyes; then
+ PKG_CHECK_MODULES([umockdev], [umockdev-1.0 >= 0.8.0],
+ [AC_DEFINE([HAVE_UMOCKDEV], [1], [umockdev API usable])
+ umockdev_summary="system-wide; $umockdev_LIBS"
+ umockdev_available=yes],
+ [AC_MSG_NOTICE([umockdev development files not found! umockdev device manager won't be available])
+ umockdev_summary="not found"]
+ )
+else
+ umockdev_summary="not enabled"
+fi
PKG_CHECK_MODULES([protobuf], [protobuf >= 2.5.0],
[protobuf_summary="system-wide; $protobuf_CFLAGS $protobuf_LIBS"],