> On (05/07/12 11:55), Chris Ferron wrote:
>> > Fix libnl-3 detection and rework libnl configure check.
>> >
>> > Patch replaces AC_CHECK_LIB with AC_SEARCH_LIBS, as proposed at the
>> end of
>> > AC_CHECK_LIB docs:
>> Ok that makes since. Thanks.
>> Won't I still need the AC_SETST to set the *_LIBS? The reason I did this
>> in the first place, is so I could use *_LIBS in the Makefile.am
>> regardless
>> of if there was a package config or not. Some distros (rare) don't have
>> package configs. Im not an autoconf expert so maybe my solution is not
>> correct?
>> -Chris
>>
>
> There were no science behind decision to remove AC_SUBST.
>
>       AC_SEARCH_LIBS (function, search-libs, [action-if-found],
> [action-if-not-found], [other-libraries])
>
>       |
>       | Prepend -llibrary to LIBS for the first library found to contain
> function, and run action-if-found.
>       | If the function is not found, run action-if-not-found.
>       |
>
> I thought that LIBS is enough and *_LIBS are just a sub-sets of LIBS.
>
LIBS might be enough, Im not contending I know what is optimal here,
I was more making an inquiry.

Im going to play with this a bit as well.

-C

> I left a room for AC_SUBST libnl, we can extend has_libnl_ver checks
> (e.g.):
>
>  if (test "${has_libnl_ver}" > "1"); then
>          AC_DEFINE([HAVE_LIBNL20],[1],[Define if you have libnl-2.0 or
> higher])
>  fi
>  if (test "${has_libnl_ver}" = "2"); then
>          AC_SUBST(...  -lnl-2 ...)
>  fi
>  if (test "${has_libnl_ver}" > "2"); then
>          AC_SUBST(... -lnl-3 -lnl-genl ...)
>  fi
>
>
>>
>> Some distros (rare) don't have package configs.
>>
>
> I'll bring them back then.
>
>
> Will resend as soon as fix problem with Debian.
>
>
>       -ss
>
>> >
>> >> 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:
>> >
>> > 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.senozhat...@gmail.com>
>> >
>> > ---
>> >
>> >  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
>> >
>> >
>>
>

_______________________________________________
Power mailing list
Power@bughost.org
https://bughost.org/mailman/listinfo/power

Reply via email to