← Back to team overview

maria-developers team mailing list archive

[Branch ~maria-captains/maria/5.1] Rev 2809: Support building with system libevent

 

------------------------------------------------------------
revno: 2809
committer: Sergei Golubchik <sergii@xxxxxxxxx>
branch nick: maria-5.1
timestamp: Fri 2010-01-29 21:35:56 +0100
message:
  Support building with system libevent
modified:
  config/ac-macros/libevent.m4


--
lp:maria
https://code.launchpad.net/~maria-captains/maria/5.1

Your team Maria developers is subscribed to branch lp:maria.
To unsubscribe from this branch go to https://code.launchpad.net/~maria-captains/maria/5.1/+edit-subscription.
=== modified file 'config/ac-macros/libevent.m4'
--- config/ac-macros/libevent.m4	2009-09-29 23:36:15 +0000
+++ config/ac-macros/libevent.m4	2010-01-29 20:35:56 +0000
@@ -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_NOTICE([checking what libevent library to use])
+
+  AC_ARG_WITH([libevent],
+              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, event_get_version,[with_libevent=system],
+                   [with_libevent=bundled])
+      AC_CHECK_HEADER(event.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/event.h"; then
+        libevent_includes="-I$with_libevent/include"
+        libevent_libs="-L$with_libevent/lib -levent"
+        AC_CHECK_LIB(event, event_get_version,[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_ARG_WITH([libevent],
-      [  --with-libevent         use libevent and have connection pooling],
-      [with_libevent=$withval],
-      [with_libevent=no]
-  )
+  AC_MSG_RESULT([$with_libevent])
 
-  if test "$with_libevent" != "no"; then
-    MYSQL_USE_BUNDLED_LIBEVENT
-  else
-    AC_MSG_RESULT([disabled])
+  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" ])
 ])
+


Follow ups