Sergey Senozhatsky
2012-05-06 18:24:52 UTC
Fix libnl-3 detection and rework libnl configure check.
configure.ac:60: the top level
configure.ac:60: warning: AC_LANG_CALL: no function given
../../lib/autoconf/lang.m4:272: AC_LANG_CALL is expanded from...
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2661: _AC_LINK_IFELSE is expanded from...
../../lib/autoconf/general.m4:2678: AC_LINK_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from...
../../lib/autoconf/libs.m4:99: AC_CHECK_LIB is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/libs.m4:99: AC_CHECK_LIB is expanded from...
automake: warnings are treated as errors
/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libparseevent.la': linking libtool libraries using a non-POSIX
/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
pevent/Makefile.am:1: while processing Libtool library 'libparseevent.la'
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky-***@public.gmane.org>
---
configure.ac | 33 ++++++++++++++++-----------------
1 file changed, 16 insertions(+), 17 deletions(-)
diff --git a/configure.ac b/configure.ac
index 753a374..64076ec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,6 +16,7 @@ AC_SUBST(GETTEXT_PACKAGE)
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.18])
+AM_PROG_AR
# Checks for programs.
AC_PROG_CPP
AC_PROG_CXX
@@ -47,32 +48,30 @@ AC_FUNC_STRTOD
AC_CHECK_FUNCS([fdatasync getpagesize gettimeofday memmove memset mkdir munmap pow realpath regcomp select setlocale socket sqrt strcasecmp strchr strdup strerror strncasecmp strstr strtoul strtoull])
PKG_CHECK_MODULES([NCURSES], [ncurses],[],[
- AC_CHECK_LIB([ncurses], [main],[AC_SUBST(NCURSES_LIBS, "-lncurses"," ")],AC_MSG_ERROR([ncurses is required but was not found]))
+ AC_SEARCH_LIBS([delwin], [ncurses], [], AC_MSG_ERROR([ncurses is required but was not found]), [])
])
PKG_CHECK_MODULES([PCIUTILS], [libpci],[],[
- AC_CHECK_LIB([libpci], [main],[AC_SUBST(PCIUTILS_LIBS, "-lpci"," ")],AC_MSG_ERROR([libpci is required but was not found]))
+ AC_SEARCH_LIBS([pci_get_dev], [pci], [], AC_MSG_ERROR([libpci is required but was not found]), [])
])
PKG_CHECK_MODULES([LIBZ], [zlib],[],[
- AC_CHECK_LIB([zlib], [main],[AC_SUBST(LIBZ_LIBS, "-lz"," ")],AC_MSG_ERROR([zlib is required but was not found]))
+ AC_SEARCH_LIBS([deflate], [z], [], AC_MSG_ERROR([zlib is required but was not found]), [])
])
-has_libnl=no
-PKG_CHECK_MODULES([LIBNL], [libnl-1], [has_libnl=yes],[
- AC_CHECK_LIB([libnl], [main],[has_libnl=yes AC_SUBST(LIBNL_LIBS, "-lnl","Update LIBNL_LIBS based on AC_CHECK_LIB")],[
- PKG_CHECK_MODULES([LIBNL], [libnl-2.0 libnl-3.0 libnl-genl-3.0], [has_libnl=yes AC_DEFINE([HAVE_LIBNL20],[1],[Define if you have libnl-2.0 or higher])],[
- AC_CHECK_LIB([libnl>= 2.0 libnl-genl], [main],[has_libnl=yes AC_SUBST(LIBNL_LIBS, "-lnl","Update LIBNL_LIBS based on AC_CHECK_LIB") AC_DEFINE([HAVE_LIBNL20],[1],[Define if you have libnl-2.0 or higher])],[dummy=no])
- ])
- ])
+has_libnl_ver=0
+PKG_CHECK_MODULES([LIBNL], [libnl-1], [has_libnl_ver=1], [
+ AC_SEARCH_LIBS([nl_socket_alloc], [nl], [has_libnl_ver=2], [
+ PKG_CHECK_MODULES([LIBNL], [libnl-3.0 libnl-genl-3.0], [has_libnl_ver=3],
+ [AC_SEARCH_LIBS([nl_socket_alloc], [nl-3 nl-genl-3], [has_libnl_ver=3], [], [])])
+ ], [])
])
-if (test "${has_libnl}" = "no"); then
+if (test "${has_libnl_ver}" = "0"); then
AC_MSG_ERROR(libnl is required but not found)
fi
+if (test "${has_libnl_ver}" > "1"); then
+ AC_DEFINE([HAVE_LIBNL20],[1],[Define if you have libnl-2.0 or higher])
+fi
-AC_CHECK_LIB([pthread], [pthread_create],[AC_SUBST(PTHREAD_LIBS, "-lpthread"," ")] , AC_MSG_ERROR([libpthread is required but was not found]))
-
-# FIXME: Replace `main' with a function in `-lresolv':
-AC_CHECK_LIB([resolv], [main],[AC_SUBST(RESOLV_LIBS, "-lresolv"," ")], AC_MSG_ERROR([libresolv is required but was not found]))
-
-
+AC_SEARCH_LIBS([pthread_create], [pthread], [], AC_MSG_ERROR([libpthread is required but was not found]), [])
+AC_SEARCH_LIBS([inet_aton], [resolv], [], AC_MSG_ERROR([libresolv is required but was not found]), [])
AC_OUTPUT
AC_CHECK_LIB requires some care in usage, and should be avoided in some common cases. Many standard functions
like gethostbyname appear in the standard C library on some hosts, and in special libraries like nsl on other
hosts. On some hosts the special libraries contain variant implementations that you may not want to use.
These days it is normally better to use AC_SEARCH_LIBS([gethostbyname], [nsl]) instead of AC_CHECK_LIB([nsl], [gethostbyname]).
The following autoreconf warnings were also fixed:like gethostbyname appear in the standard C library on some hosts, and in special libraries like nsl on other
hosts. On some hosts the special libraries contain variant implementations that you may not want to use.
These days it is normally better to use AC_SEARCH_LIBS([gethostbyname], [nsl]) instead of AC_CHECK_LIB([nsl], [gethostbyname]).
configure.ac:60: the top level
configure.ac:60: warning: AC_LANG_CALL: no function given
../../lib/autoconf/lang.m4:272: AC_LANG_CALL is expanded from...
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2661: _AC_LINK_IFELSE is expanded from...
../../lib/autoconf/general.m4:2678: AC_LINK_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from...
../../lib/autoconf/libs.m4:99: AC_CHECK_LIB is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/libs.m4:99: AC_CHECK_LIB is expanded from...
automake: warnings are treated as errors
/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libparseevent.la': linking libtool libraries using a non-POSIX
/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
pevent/Makefile.am:1: while processing Libtool library 'libparseevent.la'
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky-***@public.gmane.org>
---
configure.ac | 33 ++++++++++++++++-----------------
1 file changed, 16 insertions(+), 17 deletions(-)
diff --git a/configure.ac b/configure.ac
index 753a374..64076ec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,6 +16,7 @@ AC_SUBST(GETTEXT_PACKAGE)
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.18])
+AM_PROG_AR
# Checks for programs.
AC_PROG_CPP
AC_PROG_CXX
@@ -47,32 +48,30 @@ AC_FUNC_STRTOD
AC_CHECK_FUNCS([fdatasync getpagesize gettimeofday memmove memset mkdir munmap pow realpath regcomp select setlocale socket sqrt strcasecmp strchr strdup strerror strncasecmp strstr strtoul strtoull])
PKG_CHECK_MODULES([NCURSES], [ncurses],[],[
- AC_CHECK_LIB([ncurses], [main],[AC_SUBST(NCURSES_LIBS, "-lncurses"," ")],AC_MSG_ERROR([ncurses is required but was not found]))
+ AC_SEARCH_LIBS([delwin], [ncurses], [], AC_MSG_ERROR([ncurses is required but was not found]), [])
])
PKG_CHECK_MODULES([PCIUTILS], [libpci],[],[
- AC_CHECK_LIB([libpci], [main],[AC_SUBST(PCIUTILS_LIBS, "-lpci"," ")],AC_MSG_ERROR([libpci is required but was not found]))
+ AC_SEARCH_LIBS([pci_get_dev], [pci], [], AC_MSG_ERROR([libpci is required but was not found]), [])
])
PKG_CHECK_MODULES([LIBZ], [zlib],[],[
- AC_CHECK_LIB([zlib], [main],[AC_SUBST(LIBZ_LIBS, "-lz"," ")],AC_MSG_ERROR([zlib is required but was not found]))
+ AC_SEARCH_LIBS([deflate], [z], [], AC_MSG_ERROR([zlib is required but was not found]), [])
])
-has_libnl=no
-PKG_CHECK_MODULES([LIBNL], [libnl-1], [has_libnl=yes],[
- AC_CHECK_LIB([libnl], [main],[has_libnl=yes AC_SUBST(LIBNL_LIBS, "-lnl","Update LIBNL_LIBS based on AC_CHECK_LIB")],[
- PKG_CHECK_MODULES([LIBNL], [libnl-2.0 libnl-3.0 libnl-genl-3.0], [has_libnl=yes AC_DEFINE([HAVE_LIBNL20],[1],[Define if you have libnl-2.0 or higher])],[
- AC_CHECK_LIB([libnl>= 2.0 libnl-genl], [main],[has_libnl=yes AC_SUBST(LIBNL_LIBS, "-lnl","Update LIBNL_LIBS based on AC_CHECK_LIB") AC_DEFINE([HAVE_LIBNL20],[1],[Define if you have libnl-2.0 or higher])],[dummy=no])
- ])
- ])
+has_libnl_ver=0
+PKG_CHECK_MODULES([LIBNL], [libnl-1], [has_libnl_ver=1], [
+ AC_SEARCH_LIBS([nl_socket_alloc], [nl], [has_libnl_ver=2], [
+ PKG_CHECK_MODULES([LIBNL], [libnl-3.0 libnl-genl-3.0], [has_libnl_ver=3],
+ [AC_SEARCH_LIBS([nl_socket_alloc], [nl-3 nl-genl-3], [has_libnl_ver=3], [], [])])
+ ], [])
])
-if (test "${has_libnl}" = "no"); then
+if (test "${has_libnl_ver}" = "0"); then
AC_MSG_ERROR(libnl is required but not found)
fi
+if (test "${has_libnl_ver}" > "1"); then
+ AC_DEFINE([HAVE_LIBNL20],[1],[Define if you have libnl-2.0 or higher])
+fi
-AC_CHECK_LIB([pthread], [pthread_create],[AC_SUBST(PTHREAD_LIBS, "-lpthread"," ")] , AC_MSG_ERROR([libpthread is required but was not found]))
-
-# FIXME: Replace `main' with a function in `-lresolv':
-AC_CHECK_LIB([resolv], [main],[AC_SUBST(RESOLV_LIBS, "-lresolv"," ")], AC_MSG_ERROR([libresolv is required but was not found]))
-
-
+AC_SEARCH_LIBS([pthread_create], [pthread], [], AC_MSG_ERROR([libpthread is required but was not found]), [])
+AC_SEARCH_LIBS([inet_aton], [resolv], [], AC_MSG_ERROR([libresolv is required but was not found]), [])
AC_OUTPUT