From b236261f9ce14bc9fffbb81c61938e0e24b200d6 Mon Sep 17 00:00:00 2001 From: Frank Lichtenheld Date: Tue, 17 Sep 2024 15:32:53 +0200 Subject: [PATCH] configure: Handle libnl-genl and libcap-ng consistent with other libs Do not communicate any of the flags via the global CFLAGS and LIBS, so that users are not confused when overriding them on the command line. Github: closes OpenVPN/openvpn#586 Change-Id: I39a6f58b11b922f5dbd3e55a5bc8574eda8a83fe Signed-off-by: Frank Lichtenheld Acked-by: Gert Doering Message-Id: <20240917133253.19616-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg29282.html Signed-off-by: Gert Doering --- configure.ac | 22 +++++++++++++--------- src/openvpn/Makefile.am | 4 ++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac index 9bc15c85..5d7d0fc5 100644 --- a/configure.ac +++ b/configure.ac @@ -802,8 +802,8 @@ if test "$enable_dco" != "no"; then AC_MSG_ERROR([libnl-genl-3.0 package not found or too old. Is the development package and pkg-config ${pkg_config_found} installed? Must be version 3.4.0 or newer for DCO]) ] ) - CFLAGS="${CFLAGS} ${LIBNL_GENL_CFLAGS}" - LIBS="${LIBS} ${LIBNL_GENL_LIBS}" + OPTIONAL_LIBNL_GENL_CFLAGS="${LIBNL_GENL_CFLAGS}" + OPTIONAL_LIBNL_GENL_LIBS="${LIBNL_GENL_LIBS}" AC_DEFINE(ENABLE_DCO, 1, [Enable shared data channel offload]) AC_MSG_NOTICE([Enabled ovpn-dco support for Linux]) @@ -843,7 +843,6 @@ dnl Depend on libcap-ng on Linux dnl case "$host" in *-*-linux*) - # We require pkg-config PKG_CHECK_MODULES([LIBCAPNG], [libcap-ng], [], @@ -851,8 +850,8 @@ case "$host" in ) AC_CHECK_HEADER([sys/prctl.h],,[AC_MSG_ERROR([sys/prctl.h not found!])]) - CFLAGS="${CFLAGS} ${LIBCAPNG_CFLAGS}" - LIBS="${LIBS} ${LIBCAPNG_LIBS}" + OPTIONAL_LIBCAPNG_CFLAGS="${LIBCAPNG_CFLAGS}" + OPTIONAL_LIBCAPNG_LIBS="${LIBCAPNG_LIBS}" AC_DEFINE(HAVE_LIBCAPNG, 1, [Enable libcap-ng support]) ;; esac @@ -1401,7 +1400,7 @@ fi # When testing a compiler option, we add -Werror to force # an error when the option is unsupported. This is not -# required for gcc, but some compilers such as clang needs it. +# required for gcc, but some compilers such as clang need it. AC_DEFUN([ACL_CHECK_ADD_COMPILE_FLAGS], [ old_cflags="$CFLAGS" CFLAGS="$1 -Werror $CFLAGS" @@ -1477,6 +1476,10 @@ AC_SUBST([OPTIONAL_DL_LIBS]) AC_SUBST([OPTIONAL_SELINUX_LIBS]) AC_SUBST([OPTIONAL_CRYPTO_CFLAGS]) AC_SUBST([OPTIONAL_CRYPTO_LIBS]) +AC_SUBST([OPTIONAL_LIBCAPNG_CFLAGS]) +AC_SUBST([OPTIONAL_LIBCAPNG_LIBS]) +AC_SUBST([OPTIONAL_LIBNL_GENL_CFLAGS]) +AC_SUBST([OPTIONAL_LIBNL_GENL_LIBS]) AC_SUBST([OPTIONAL_LZO_CFLAGS]) AC_SUBST([OPTIONAL_LZO_LIBS]) AC_SUBST([OPTIONAL_LZ4_CFLAGS]) @@ -1521,10 +1524,11 @@ PKG_CHECK_MODULES( AM_CONDITIONAL([ENABLE_UNITTESTS], [test "${enable_unit_tests}" = "yes" -a "${have_cmocka}" = "yes" ]) AC_SUBST([ENABLE_UNITTESTS]) -TEST_LDFLAGS="${OPTIONAL_CRYPTO_LIBS} ${OPTIONAL_PKCS11_HELPER_LIBS}" +TEST_LDFLAGS="${OPTIONAL_CRYPTO_LIBS} ${OPTIONAL_PKCS11_HELPER_LIBS} ${OPTIONAL_LIBCAPNG_LIBS}" +TEST_LDFLAGS="${TEST_LDFLAGS} ${OPTIONAL_LIBNL_GENL_LIBS}" TEST_LDFLAGS="${TEST_LDFLAGS} ${OPTIONAL_LZO_LIBS} ${CMOCKA_LIBS}" -TEST_CFLAGS="${OPTIONAL_CRYPTO_CFLAGS} ${OPTIONAL_PKCS11_HELPER_CFLAGS}" -TEST_CFLAGS="${TEST_CFLAGS} ${OPTIONAL_LZO_CFLAGS}" +TEST_CFLAGS="${OPTIONAL_CRYPTO_CFLAGS} ${OPTIONAL_PKCS11_HELPER_CFLAGS} ${OPTIONAL_LIBCAPNG_CFLAGS}" +TEST_CFLAGS="${TEST_CFLAGS} ${OPTIONAL_LIBNL_GENL_CFLAGS} ${OPTIONAL_LZO_CFLAGS}" TEST_CFLAGS="${TEST_CFLAGS} -I\$(top_srcdir)/include ${CMOCKA_CFLAGS}" AC_SUBST([TEST_LDFLAGS]) diff --git a/src/openvpn/Makefile.am b/src/openvpn/Makefile.am index 56cce9d0..3784a985 100644 --- a/src/openvpn/Makefile.am +++ b/src/openvpn/Makefile.am @@ -24,6 +24,8 @@ AM_CPPFLAGS = \ AM_CFLAGS = \ $(TAP_CFLAGS) \ $(OPTIONAL_CRYPTO_CFLAGS) \ + $(OPTIONAL_LIBCAPNG_CFLAGS) \ + $(OPTIONAL_LIBNL_GENL_CFLAGS) \ $(OPTIONAL_LZO_CFLAGS) \ $(OPTIONAL_LZ4_CFLAGS) \ $(OPTIONAL_PKCS11_HELPER_CFLAGS) \ @@ -147,6 +149,8 @@ openvpn_SOURCES = \ openvpn_LDADD = \ $(top_builddir)/src/compat/libcompat.la \ $(SOCKETS_LIBS) \ + $(OPTIONAL_LIBCAPNG_LIBS) \ + $(OPTIONAL_LIBNL_GENL_LIBS) \ $(OPTIONAL_LZO_LIBS) \ $(OPTIONAL_LZ4_LIBS) \ $(OPTIONAL_PKCS11_HELPER_LIBS) \