Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
configure.ac | 60 ++---------------------------------------
m4/virt-libnl.m4 | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 83 insertions(+), 58 deletions(-)
create mode 100644 m4/virt-libnl.m4
diff --git a/configure.ac b/configure.ac
index b870ab68bc..94812e8edd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -112,7 +112,6 @@ fi
dnl Required minimum versions of all libs we depend on
PARTED_REQUIRED="1.8.0"
DEVMAPPER_REQUIRED=1.0.0
-LIBNL_REQUIRED="1.1"
PARALLELS_SDK_REQUIRED="7.0.22"
dnl Where we look for daemons and admin binaries during configure
LIBVIRT_SBIN_PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
@@ -1808,58 +1807,7 @@ AC_CHECK_DECLS([GET_VLAN_VID_CMD], [], [], [[#include
<linux/if_vlan.h>]])
dnl netlink library
-have_libnl=no
-
-if test "$with_linux" = "yes"; then
- # When linking with netcf, we must ensure that we pick the same version
- # of libnl that netcf picked. Prefer libnl-3 unless we can prove
- # netcf linked against libnl-1, or unless the user set LIBNL_CFLAGS.
- # (Setting LIBNL_CFLAGS is already used by PKG_CHECK_MODULES to
- # override any probing, so if it set, you know which libnl is in use.)
- libnl_ldd=
- for dir in /usr/lib64 /usr/lib /usr/lib/*-linux-gnu*; do
- if test -f $dir/libnetcf.so; then
- libnl_ldd=`(ldd $dir/libnetcf.so) 2>&1`
- break
- fi
- done
- case $libnl_ldd:${LIBNL_CFLAGS+set} in
- *libnl-3.so.*:) LIBNL_REQUIRED=3.0 ;;
- esac
- case $libnl_ldd:${LIBNL_CFLAGS+set} in
- *libnl.so.1*:) ;;
- *)
- PKG_CHECK_MODULES([LIBNL], [libnl-3.0], [
- have_libnl=yes
- AC_DEFINE([HAVE_LIBNL3], [1], [Use libnl-3.0])
- AC_DEFINE([HAVE_LIBNL], [1], [whether the netlink library is available])
- PKG_CHECK_MODULES([LIBNL_ROUTE3], [libnl-route-3.0])
- LIBNL_CFLAGS="$LIBNL_CFLAGS $LIBNL_ROUTE3_CFLAGS"
- LIBNL_LIBS="$LIBNL_LIBS $LIBNL_ROUTE3_LIBS"
- ], [:]) ;;
- esac
- if test "$have_libnl" = no; then
- PKG_CHECK_MODULES([LIBNL], [libnl-1 >= $LIBNL_REQUIRED], [
- have_libnl=yes
- AC_DEFINE_UNQUOTED([HAVE_LIBNL], [1],
- [whether the netlink library is available])
- AC_DEFINE_UNQUOTED([HAVE_LIBNL1], [1],
- [whether the netlink v1 library is available])
- ], [
- if test "$with_macvtap" = "yes"; then
- if test "$LIBNL_REQUIRED" = "3.0";then
- AC_MSG_ERROR([libnl3-devel >= $LIBNL_REQUIRED is required for
macvtap support])
- else
- AC_MSG_ERROR([libnl-devel >= $LIBNL_REQUIRED is required for
macvtap support])
- fi
- fi
- ])
- fi
-fi
-AM_CONDITIONAL([HAVE_LIBNL], [test "$have_libnl" = "yes"])
-
-AC_SUBST([LIBNL_CFLAGS])
-AC_SUBST([LIBNL_LIBS])
+LIBVIRT_CHECK_LIBNL
# Check for Linux vs. BSD ifreq members
AC_CHECK_MEMBERS([struct ifreq.ifr_newname,
@@ -2067,6 +2015,7 @@ LIBVIRT_RESULT_FUSE
LIBVIRT_RESULT_GLUSTER
LIBVIRT_RESULT_GNUTLS
LIBVIRT_RESULT_HAL
+LIBVIRT_RESULT_LIBNL
LIBVIRT_RESULT_LIBPCAP
LIBVIRT_RESULT_LIBSSH
LIBVIRT_RESULT_LIBXML
@@ -2101,11 +2050,6 @@ AC_MSG_NOTICE([xenlight: $LIBXL_CFLAGS $LIBXL_LIBS])
else
AC_MSG_NOTICE([xenlight: no])
fi
-if test "$have_libnl" = "yes" ; then
-AC_MSG_NOTICE([ nl: $LIBNL_CFLAGS $LIBNL_LIBS])
-else
-AC_MSG_NOTICE([ nl: no])
-fi
if test "$with_vbox" = "yes" && test -n
"$MSCOM_LIBS" ; then
AC_MSG_NOTICE([ mscom: $MSCOM_LIBS])
else
diff --git a/m4/virt-libnl.m4 b/m4/virt-libnl.m4
new file mode 100644
index 0000000000..c106d545ec
--- /dev/null
+++ b/m4/virt-libnl.m4
@@ -0,0 +1,81 @@
+dnl The libnl library
+dnl
+dnl Copyright (C) 2012-2013 Red Hat, Inc.
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU Lesser General Public
+dnl License as published by the Free Software Foundation; either
+dnl version 2.1 of the License, or (at your option) any later version.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl Lesser General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU Lesser General Public
+dnl License along with this library. If not, see
+dnl <
http://www.gnu.org/licenses/>.
+dnl
+
+AC_DEFUN([LIBVIRT_CHECK_LIBNL], [
+ AC_REQUIRE([LIBVIRT_CHECK_NETCF])
+ AC_REQUIRE([LIBVIRT_CHECK_MACVTAP])
+
+ LIBNL_REQUIRED="1.1"
+ with_libnl=no
+
+ if test "$with_linux" = "yes"; then
+ # When linking with netcf, we must ensure that we pick the same version
+ # of libnl that netcf picked. Prefer libnl-3 unless we can prove
+ # netcf linked against libnl-1, or unless the user set LIBNL_CFLAGS.
+ # (Setting LIBNL_CFLAGS is already used by PKG_CHECK_MODULES to
+ # override any probing, so if it set, you know which libnl is in use.)
+ libnl_ldd=
+ for dir in /usr/lib64 /usr/lib /usr/lib/*-linux-gnu*; do
+ if test -f $dir/libnetcf.so; then
+ libnl_ldd=`(ldd $dir/libnetcf.so) 2>&1`
+ break
+ fi
+ done
+ case $libnl_ldd:${LIBNL_CFLAGS+set} in
+ *libnl-3.so.*:) LIBNL_REQUIRED=3.0 ;;
+ esac
+ case $libnl_ldd:${LIBNL_CFLAGS+set} in
+ *libnl.so.1*:) ;;
+ *)
+ PKG_CHECK_MODULES([LIBNL], [libnl-3.0], [
+ with_libnl=yes
+ AC_DEFINE([HAVE_LIBNL3], [1], [Use libnl-3.0])
+ AC_DEFINE([HAVE_LIBNL], [1], [whether the netlink library is available])
+ PKG_CHECK_MODULES([LIBNL_ROUTE3], [libnl-route-3.0])
+ LIBNL_CFLAGS="$LIBNL_CFLAGS $LIBNL_ROUTE3_CFLAGS"
+ LIBNL_LIBS="$LIBNL_LIBS $LIBNL_ROUTE3_LIBS"
+ ], [:]) ;;
+ esac
+ if test "$with_libnl" = no; then
+ PKG_CHECK_MODULES([LIBNL], [libnl-1 >= $LIBNL_REQUIRED], [
+ with_libnl=yes
+ AC_DEFINE_UNQUOTED([HAVE_LIBNL], [1],
+ [whether the netlink library is available])
+ AC_DEFINE_UNQUOTED([HAVE_LIBNL1], [1],
+ [whether the netlink v1 library is available])
+ ], [
+ if test "$with_macvtap" = "yes"; then
+ if test "$LIBNL_REQUIRED" = "3.0";then
+ AC_MSG_ERROR([libnl3-devel >= $LIBNL_REQUIRED is required for macvtap
support])
+ else
+ AC_MSG_ERROR([libnl-devel >= $LIBNL_REQUIRED is required for macvtap
support])
+ fi
+ fi
+ ])
+ fi
+ fi
+ AM_CONDITIONAL([HAVE_LIBNL], [test "$with_libnl" = "yes"])
+
+ AC_SUBST([LIBNL_CFLAGS])
+ AC_SUBST([LIBNL_LIBS])
+])
+
+AC_DEFUN([LIBVIRT_RESULT_LIBNL], [
+ LIBVIRT_RESULT_LIB([LIBNL])
+])
--
2.11.0