- libevent diagnostics
[m6w6/ext-http] / config9.m4
index 6539daf8c9266926d5a62138abb00f1779a85bcb..bebb5a70c22836640bc2f526cb32bd9ba9b9748e 100644 (file)
@@ -4,9 +4,6 @@ dnl vim: noet ts=1 sw=1
 
 PHP_ARG_ENABLE([http], [whether to enable extended HTTP support],
 [  --enable-http           Enable extended HTTP support])
-PHP_ARG_ENABLE([http-persistent-handles], [whether to enable per-process persistent cURL handles],
-[  --enable-http-persistent-handles
-                           HTTP: enable per-process persistent cURL handles], "no", "no")
 PHP_ARG_WITH([http-shared-deps], [whether to depend on extensions which have been built shared],
 [  --with-http-shared-deps
                            HTTP: disable to not depend on extensions like hash,
@@ -14,6 +11,9 @@ PHP_ARG_WITH([http-shared-deps], [whether to depend on extensions which have bee
 PHP_ARG_WITH([http-curl-requests], [whether to enable cURL HTTP request support],
 [  --with-http-curl-requests[=LIBCURLDIR]
                            HTTP: with cURL request support], $PHP_HTTP, $PHP_HTTP)
+PHP_ARG_WITH([http-curl-libevent], [whether to enable libevent support fur cURL],
+[  --with-http-curl-libevent[=LIBEVENTDIR]
+                           HTTP: libevent install directory], $PHP_HTTP_CURL_REQUESTS, "")
 PHP_ARG_WITH([http-zlib-compression], [whether to enable zlib encodings support],
 [  --with-http-zlib-compression[=LIBZDIR]
                            HTTP: with zlib encodings support], $PHP_HTTP, $PHP_HTTP)
@@ -270,13 +270,51 @@ dnl ----
                        [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR]
                )
                
-               dnl persistent cURL handles
-               AC_MSG_CHECKING([whether to enable per-process persistent cURL handles])
-               if test "$PHP_HTTP_PERSISTENT_HANDLES" != "no"; then
-                       AC_DEFINE([HTTP_HAVE_PERSISTENT_HANDLES], [1], [Have per-process persistent cURL handles])
-                       AC_MSG_RESULT([yes])
-               else
-                       AC_MSG_RESULT([no])
+               dnl ----
+               dnl EVENT
+               dnl ----
+               
+               if test "$PHP_HTTP_CURL_LIBEVENT" != "no"; then
+                       AC_MSG_CHECKING([for event.h])
+                       EVENT_DIR=
+                       for i in "$PHP_HTTP_CURL_LIBEVENT" /usr/local /usr /opt; do
+                               if test -f "$i/include/event.h"; then
+                                       EVENT_DIR=$i
+                                       break
+                               fi
+                       done
+                       if test -z "$EVENT_DIR"; then
+                               AC_MSG_RESULT([not found])
+                               AC_MSG_WARN([continuing without libevent support])
+                       else
+                               AC_MSG_RESULT([found in $EVENT_DIR])
+                               
+                               AC_MSG_CHECKING([for libevent version, roughly])
+                               EVENT_VER="1.1b or lower"
+                               if test -f "$EVENT_DIR/include/evhttp.h" && test -f "$EVENT_DIR/include/evdns.h"; then
+                                       if test -f "$EVENT_DIR/include/evrpc.h"; then
+                                               EVENT_VER="1.4 or greater"
+                                       else
+                                               EVENT_VER="1.2 or greater"
+                                       fi
+                               fi
+                               AC_DEFINE_UNQUOTED([HTTP_EVENT_VERSION], ["$EVENT_VER"], [ ])
+                               AC_MSG_RESULT([$EVENT_VER])
+                               
+                               AC_MSG_CHECKING([for libcurl version >= 7.16.0])
+                               AC_MSG_RESULT([$CURL_VERSION])
+                               if test `echo $CURL_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -lt 71600; then
+                                       AC_MSG_WARN([libcurl version greater or equal to 7.16.0 required; continuing without libevent support])
+                               else
+                                       PHP_ADD_INCLUDE($EVENT_DIR/include)
+                                       PHP_ADD_LIBRARY_WITH_PATH(event, $EVENT_DIR/$PHP_LIBDIR, HTTP_SHARED_LIBADD)
+                                       AC_DEFINE([HTTP_HAVE_EVENT], [1], [Have libevent support for cURL])
+                                       PHP_CHECK_LIBRARY(curl, curl_multi_socket_action, 
+                                               [AC_DEFINE([HAVE_CURL_MULTI_SOCKET_ACTION], [1], [ ])], [ ],
+                                               [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR]
+                                       )
+                               fi
+                       fi
                fi
        fi