--- config/ac-macros/libevent.m4 2010-01-31 04:17:56.000000000 -0500 +++ config/ac-macros/libevent.m4 2010-01-31 04:17:56.000000000 -0500 @@ -14,13 +14,6 @@ libevent_libs="\$(top_builddir)/extra/libevent/libevent.a" libevent_includes="-I\$(top_srcdir)/extra/libevent" - libevent_test_option="--mysqld=--thread-handling=pool-of-threads" - AC_SUBST(libevent_libs) - AC_SUBST(libevent_includes) - AC_SUBST(libevent_test_option) - - AC_DEFINE([HAVE_LIBEVENT], [1], [If we want to use libevent and have connection pooling]) - AC_MSG_RESULT([using bundled libevent]) dnl Get the upstream file with the original libevent configure macros. dnl Use builtin include for this, to work around path problems in old versions of aclocal. @@ -39,17 +32,64 @@ AC_CONFIG_FILES(extra/libevent/Makefile) - AC_MSG_CHECKING(for libevent) + AC_MSG_NOTICE([checking what libevent library to use]) + AC_ARG_WITH([libevent], - [ --with-libevent use libevent and have connection pooling], - [with_libevent=$withval], - [with_libevent=no] - ) - - if test "$with_libevent" != "no"; then - MYSQL_USE_BUNDLED_LIBEVENT - else - AC_MSG_RESULT([disabled]) + AC_HELP_STRING([--with-libevent=yes|no|bundled|DIR], + [Use libevent and have connection pooling. + A location of libevent library can be specified. + Given DIR, libevent library is + assumed to be in $DIR/lib and header files + in $DIR/include.]), + [with_libevent=${withval}], + [with_libevent=no]) + + case "$with_libevent" in + "no") + with_libevent=disabled + ;; + "bundled") + MYSQL_USE_BUNDLED_LIBEVENT + ;; + "" | "yes") + libevent_includes="" + libevent_libs="-levent" + AC_CHECK_LIB(event, evutil_socketpair,[with_libevent=system], + [with_libevent=bundled]) + AC_CHECK_HEADER(evutil.h,,[with_libevent=bundled]) + if test "$with_libevent" = "bundled"; then + MYSQL_USE_BUNDLED_LIBEVENT + fi + ;; + *) + # Test for libevent using all known library file endings + if test \( -f "$with_libevent/lib/libevent.a" -o \ + -f "$with_libevent/lib/libevent.so" -o \ + -f "$with_libevent/lib/libevent.sl" -o \ + -f "$with_libevent/lib/libevent.dylib" \) \ + -a -f "$with_libevent/include/evutil.h"; then + libevent_includes="-I$with_libevent/include" + libevent_libs="-L$with_libevent/lib -levent" + AC_CHECK_LIB(event, evutil_socketpair,[with_libevent=$with_libevent], + [with_libevent=no], [$libevent_libs]) + else + with_libevent=no + fi + if test "$with_libevent" = "no"; then + AC_MSG_ERROR([libevent headers or binaries were not found]) + fi + ;; + esac + AC_MSG_CHECKING(for libevent) + AC_MSG_RESULT([$with_libevent]) + + if test "$with_libevent" != "disabled"; then + libevent_test_option="--mysqld=--thread-handling=pool-of-threads" + AC_SUBST(libevent_libs) + AC_SUBST(libevent_includes) + AC_SUBST(libevent_test_option) + AC_DEFINE([HAVE_LIBEVENT], [1], [If we want to use libevent and have connection pooling]) fi - AM_CONDITIONAL([HAVE_LIBEVENT], [ test "$with_libevent" != "no" ]) + AM_CONDITIONAL([HAVE_LIBEVENT], [ test "$with_libevent" != "disabled" ]) ]) +