]> git.ipfire.org Git - thirdparty/ulogd2.git/commitdiff
build: use pkg-config or pcap-config for libpcap
authorJeremy Sowden <jeremy@azazel.net>
Sun, 9 Jan 2022 11:57:47 +0000 (11:57 +0000)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 11 Jan 2022 21:15:33 +0000 (22:15 +0100)
Recent versions of libpcap support pkg-config.  Older versions provide a
pcap-config script.  Use pkg-config if available, otherwise fall back to
pcap-config.

Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
acinclude.m4
configure.ac
output/pcap/Makefile.am

index a49ed316e65a5452bf6dea2c45eb0b3ca4a1d642..6d88c3a53cff5bf64c95c38a0823e350ea4be697 100644 (file)
@@ -93,82 +93,3 @@ fi
 
 ])
 
-dnl @synopsis CT_CHECK_PCAP
-dnl
-dnl This macro tries to find the headers and libraries for libpcap.
-dnl
-dnl If includes are found, the variable PCAP_INC will be set. If
-dnl libraries are found, the variable PCAP_LIB will be set. if no check
-dnl was successful, the script exits with a error message.
-dnl
-dnl @category InstalledPackages
-dnl @author Harald Welte <laforge@gnumonks.org>
-dnl @version 2006-01-07
-dnl @license AllPermissive
-
-AC_DEFUN([CT_CHECK_PCAP], [
-
-AC_ARG_WITH(pcap,
-       [  --with-pcap=PREFIX           Prefix of your libpcap installation],
-       [pcap_prefix=$withval], [pcap_prefix=])
-AC_ARG_WITH(pcap-inc,
-       [  --with-pcap-inc=PATH         Path to the include directory of pcap],
-       [pcap_inc=$withval], [pcap_inc=/usr/include])
-AC_ARG_WITH(pcap-lib,
-       [  --with-pcap-lib=PATH         Path to the libraries of pcap],
-       [pcap_lib=$withval], [pcap_lib=/usr/lib])
-
-
-AC_SUBST(PCAP_INC)
-AC_SUBST(PCAP_LIB)
-AC_SUBST(HAVE_PCAP_LIB)
-
-if test "$pcap_prefix" != "no"; then
-
-if test "$pcap_prefix" != ""; then
-   AC_MSG_CHECKING([for libpcap includes in $pcap_prefix/include])
-   if test -f "$pcap_prefix/include/pcap.h" ; then
-      PCAP_INC="-I$pcap_prefix/include"
-      AC_MSG_RESULT([yes])
-   else
-      AC_MSG_WARN(pcap.h not found)
-   fi
-   AC_MSG_CHECKING([for libpcap in $pcap_prefix/lib])
-   if test -f "$pcap_prefix/lib/libpcap.so" ; then
-      PCAP_LIB="-L$pcap_prefix/lib -lpcap";
-      AC_MSG_RESULT([yes])
-   else
-      AC_MSG_WARN(libpcap.so not found)
-   fi
-else
-  if test "$pcap_inc" != ""; then
-    AC_MSG_CHECKING([for libpcap includes in $pcap_inc])
-    if test -f "$pcap_inc/pcap.h" ; then
-      PCAP_INC="-I$pcap_inc"
-      AC_MSG_RESULT([yes])
-    else
-      AC_MSG_WARN(pcap.h not found)
-    fi
-  fi
-  if test "$pcap_lib" != ""; then
-    AC_MSG_CHECKING([for libpcap in $pcap_lib])
-    if test -f "$pcap_lib/libpcap.so" ; then
-      PCAP_LIB="-L$pcap_lib -lpcap";
-      AC_MSG_RESULT([yes])
-    else
-      AC_MSG_WARN(libpcap.so not found)
-    fi
-  fi
-fi
-
-if test "$PCAP_INC" = "" ; then
-  AC_CHECK_HEADER([pcap.h], [], AC_MSG_WARN(pcap.h not found))
-fi
-if test "$PCAP_LIB" = "" ; then
-  AC_CHECK_LIB(pcap, pcap_close, [HAVE_PCAP_LIB="yes"], AC_MSG_WARN(libpcap.so not found))
-fi
-
-fi
-
-])
-
index bcdd2f8ed99f481f493fb11ea0432f179a1facbf..6909ea4858bb0eb23ed6d802044abcc75ffc6eff 100644 (file)
@@ -153,9 +153,33 @@ AM_CONDITIONAL([HAVE_DBI], [test "x$libdbi_LIBS" != "x"])
 
 AC_ARG_ENABLE([pcap],
               [AS_HELP_STRING([--enable-pcap], [Enable PCAP output plugin [default=test]])])
-AS_IF([test "x$enable_pcap" != "xno"],
-      [AC_SEARCH_LIBS([pcap_close], [pcap], [libpcap_LIBS="-lpcap"; LIBS=""])
-       AC_SUBST([libpcap_LIBS])])
+AS_IF([test "x$enable_pcap" != "xno"], [
+
+  PKG_CHECK_EXISTS([libpcap], [PKG_CHECK_MODULES([libpcap], [libpcap])], [
+
+    AC_ARG_WITH([pcap-config],
+                [AS_HELP_STRING([--with-pcap-config=PATH], [Path to the pcap-config script])],
+                [pcap_config="$withval"], [pcap_config=pcap-config])
+
+    AC_MSG_CHECKING([for pcap-config])
+
+    AS_IF([command -v "$pcap_config" >/dev/null], [
+
+      libpcap_CFLAGS="`$pcap_config --cflags`"
+      libpcap_LIBS="`$pcap_config --libs`"
+
+      AC_SUBST([libpcap_CFLAGS])
+      AC_SUBST([libpcap_LIBS])
+
+      AC_MSG_RESULT([$pcap_config])
+
+    ], [
+      AC_MSG_RESULT([no])
+    ])
+
+  ])
+
+])
 AS_IF([test "x$libpcap_LIBS" != "x"], [enable_pcap=yes], [enable_pcap=no])
 AM_CONDITIONAL([HAVE_PCAP], [test "x$libpcap_LIBS" != "x"])
 
index 9b4b3dde3a9cc2c7b73a6224cfe7075a78671307..b5064eac9fd3bb2999b016c4e474ea1cd6e0ac80 100644 (file)
@@ -1,5 +1,7 @@
 include $(top_srcdir)/Make_global.am
 
+AM_CPPFLAGS += $(libpcap_CFLAGS)
+
 pkglib_LTLIBRARIES = ulogd_output_PCAP.la
 
 ulogd_output_PCAP_la_SOURCES = ulogd_output_PCAP.c