dnl A macro to check if this particular version of libnl supports particular common libnl functions
AC_DEFUN([AM_CHECK_LIBNL_FCS],
[
AC_CHECK_LIB($1,
[nl_socket_add_membership],
[AC_DEFINE([HAVE_NL_SOCKET_ADD_MEMBERSHIP], 1, [Does libnl have nl_socket_add_membership?])
],
)
AC_CHECK_LIB($1,
[nl_socket_modify_cb],
[AC_DEFINE([HAVE_NL_SOCKET_MODIFY_CB], 1, [Does libnl have nl_socket_modify_cb?])
],
)
AC_CHECK_LIB($1,
[rtnl_route_get_oif],
[AC_DEFINE([HAVE_RTNL_ROUTE_GET_OIF], 1, [Does libnl have rtnl_route_get_oif?])
],
)
AC_CHECK_LIB($1,
[nl_set_passcred],
[AC_DEFINE([HAVE_NL_SET_PASSCRED], 1, [Does libnl have nl_set_passcred?])
],
)
AC_CHECK_LIB($1,
[nl_socket_set_passcred],
[AC_DEFINE([HAVE_NL_SOCKET_SET_PASSCRED], 1, [Does libnl have nl_socket_set_passcred?])
],
)
])
dnl A macro to check the availability and version of libnetlink
AC_DEFUN([AM_CHECK_LIBNL1],
[
PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.1,[
HAVE_LIBNL=1
HAVE_LIBNL1=1
LIBNL_CFLAGS="$LIBNL1_CFLAGS"
LIBNL_LIBS="$LIBNL1_LIBS"
AC_DEFINE_UNQUOTED(HAVE_LIBNL, 1, [Build with libnetlink support])
AC_DEFINE_UNQUOTED(HAVE_LIBNL1, 1, [Libnetlink version = 1])
AC_MSG_NOTICE([Building with libnl])
AC_CHECK_HEADERS(netlink.h)
AC_CHECK_LIB(nl, nl_connect, [ LIBNL_LIBS="-lnl" ], [AC_MSG_ERROR([libnl is required])])
AM_CHECK_LIBNL_FCS(nl)
],[AC_MSG_WARN([Netlink v1 support unavailable or too old])])
AC_SUBST(LIBNL_CFLAGS)
AC_SUBST(LIBNL_LIBS)
])
dnl A macro to check the availability of libnetlink version 3
AC_DEFUN([AM_CHECK_LIBNL3],
[
PKG_CHECK_MODULES(LIBNL3, [
libnl-3.0 >= 3.0
libnl-route-3.0 >= 3.0], [
HAVE_LIBNL=1
HAVE_LIBNL3=1
LIBNL_CFLAGS="$LIBNL3_CFLAGS"
LIBNL_LIBS="$LIBNL3_LIBS"
AC_DEFINE_UNQUOTED(HAVE_LIBNL, 1, [Build with libnetlink support])
AC_DEFINE_UNQUOTED(HAVE_LIBNL3, 1, [Libnetlink version = 3])
AC_MSG_NOTICE([Building with libnl3])
AM_CHECK_LIBNL_FCS(nl-3)
],[AC_MSG_WARN([Netlink v3 support unavailable or too old])])
AC_SUBST(LIBNL_CFLAGS)
AC_SUBST(LIBNL_LIBS)
])