| 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"], |