From: Michael Wallner Date: Wed, 7 Jun 2006 14:42:04 +0000 (+0000) Subject: - config.m4 moved to config9.m4 X-Git-Tag: RELEASE_1_0_0~6 X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=commitdiff_plain;h=46fc12676a53668d55fe6d02d44210e2eaf4b6b5 - config.m4 moved to config9.m4 - implement --with[out]-http-shared-deps properly --- diff --git a/config.m4 b/config.m4 deleted file mode 100644 index b366a33..0000000 --- a/config.m4 +++ /dev/null @@ -1,271 +0,0 @@ -dnl config.m4 for pecl/http -dnl $Id$ -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_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-zlib-compression], [whether to enable zlib encodings support], -[ --with-http-zlib-compression[=LIBZDIR] - HTTP: with zlib encodings support], $PHP_HTTP, $PHP_HTTP) -PHP_ARG_WITH([http-magic-mime], [whether to enable response content type guessing], -[ --with-http-magic-mime[=LIBMAGICDIR] - HTTP: with magic mime response content type guessing], "no", "no") -PHP_ARG_WITH([http-shared-deps], [whether to depend on shared extensions], -[ --with-http-shared-deps HTTP: disable to not depend on shared extensions - like SPL, hash, iconv and session], $PHP_HTTP, $PHP_HTTP) - -if test "$PHP_HTTP" != "no"; then - - ifdef([AC_PROG_EGREP], [ - AC_PROG_EGREP - ], [ - AC_CHECK_PROG(EGREP, egrep, egrep) - ]) - ifdef([AC_PROG_SED], [ - AC_PROG_SED - ], [ - ifdef([LT_AC_PROG_SED], [ - LT_AC_PROG_SED - ], [ - AC_CHECK_PROG(SED, sed, sed) - ]) - ]) - - if test "PHP_HTTP_SHARED_DEPS" != "no"; then - AC_DEFINE([HTTP_SHARED_DEPS], [1], [ ]) - else - AC_DEFINE([HTTP_SHARED_DEPS], [0], [ ]) - fi - -dnl ------- -dnl HEADERS -dnl ------- - AC_CHECK_HEADERS([netdb.h unistd.h]) - -dnl ---- -dnl ZLIB -dnl ---- - if test "$PHP_HTTP_ZLIB_COMPRESSION" != "no"; then - AC_MSG_CHECKING([for zlib.h]) - ZLIB_DIR= - for i in "$PHP_HTTP_ZLIB_COMPRESSION" "$PHP_ZLIB_DIR" "$PHP_ZLIB" /usr/local /usr /opt; do - if test -f "$i/include/zlib.h"; then - ZLIB_DIR=$i - break; - fi - done - if test -z "$ZLIB_DIR"; then - AC_MSG_RESULT([not found]) - AC_MSG_WARN([could not find zlib.h]) - else - AC_MSG_RESULT([found in $ZLIB_DIR]) - AC_MSG_CHECKING([for zlib version >= 1.2.0.4]) - ZLIB_VERSION=`$EGREP "define ZLIB_VERSION" $ZLIB_DIR/include/zlib.h | $SED -e 's/[[^0-9\.]]//g'` - AC_MSG_RESULT([$ZLIB_VERSION]) - if test `echo $ZLIB_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*1000000 + $2*10000 + $3*100 + $4}'` -lt 1020004; then - AC_MSG_ERROR([libz version greater or equal to 1.2.0.4 required]) - else - PHP_ADD_INCLUDE($ZLIB_DIR/include) - PHP_ADD_LIBRARY_WITH_PATH(z, $ZLIB_DIR/$PHP_LIBDIR, HTTP_SHARED_LIBADD) - AC_DEFINE([HTTP_HAVE_ZLIB], [1], [Have zlib support]) - fi - fi - fi - -dnl ---- -dnl CURL -dnl ---- - if test "$PHP_HTTP_CURL_REQUESTS" != "no"; then - AC_MSG_CHECKING([for curl/curl.h]) - CURL_DIR= - for i in "$PHP_HTTP_CURL_REQUESTS" /usr/local /usr /opt; do - if test -f "$i/include/curl/curl.h"; then - CURL_DIR=$i - break - fi - done - if test -z "$CURL_DIR"; then - AC_MSG_RESULT([not found]) - AC_MSG_ERROR([could not find curl/curl.h]) - else - AC_MSG_RESULT([found in $CURL_DIR]) - fi - - AC_MSG_CHECKING([for curl-config]) - CURL_CONFIG= - for i in "$CURL_DIR/bin/curl-config" "$CURL_DIR/curl-config" `which curl-config`; do - if test -x "$i"; then - CURL_CONFIG=$i - break - fi - done - if test -z "$CURL_CONFIG"; then - AC_MSG_RESULT([not found]) - AC_MSG_ERROR([could not find curl-config]) - else - AC_MSG_RESULT([found: $CURL_CONFIG]) - fi - - dnl Debian stable has currently 7.13.2 (this is not a typo) - AC_MSG_CHECKING([for curl version >= 7.12.3]) - CURL_VERSION=`$CURL_CONFIG --version | $SED -e 's/[[^0-9\.]]//g'` - AC_MSG_RESULT([$CURL_VERSION]) - if test `echo $CURL_VERSION | $AWK '{print $1*10000 + $2*100 + $3}'` -lt 71203; then - AC_MSG_ERROR([libcurl version greater or equal to 7.12.3 required]) - fi - - CURL_LIBS=`$CURL_CONFIG --libs` - - AC_MSG_CHECKING([for SSL support in libcurl]) - CURL_SSL=`$CURL_CONFIG --features | $EGREP SSL` - if test "$CURL_SSL" = "SSL"; then - AC_MSG_RESULT([yes]) - AC_DEFINE([HTTP_HAVE_SSL], [1], [ ]) - - AC_MSG_CHECKING([for SSL library used]) - CURL_SSL_FLAVOUR= - for i in $CURL_LIBS; do - if test "$i" = "-lssl"; then - CURL_SSL_FLAVOUR="openssl" - AC_MSG_RESULT([openssl]) - AC_DEFINE([HTTP_HAVE_OPENSSL], [1], [ ]) - AC_CHECK_HEADERS([openssl/crypto.h]) - break - elif test "$i" = "-lgnutls"; then - CURL_SSL_FLAVOUR="gnutls" - AC_MSG_RESULT([gnutls]) - AC_DEFINE([HTTP_HAVE_GNUTLS], [1], [ ]) - AC_CHECK_HEADERS([gcrypt.h]) - break - fi - done - if test -z "$CURL_SSL_FLAVOUR"; then - AC_MSG_RESULT([unknown!]) - AC_MSG_WARN([Could not determine the type of SSL library used!]) - AC_MSG_WARN([Building will fail in ZTS mode!]) - fi - else - AC_MSG_RESULT([no]) - fi - - PHP_ADD_INCLUDE($CURL_DIR/include) - PHP_ADD_LIBRARY_WITH_PATH(curl, $CURL_DIR/$PHP_LIBDIR, HTTP_SHARED_LIBADD) - PHP_EVAL_LIBLINE($CURL_LIBS, HTTP_SHARED_LIBADD) - AC_DEFINE([HTTP_HAVE_CURL], [1], [Have cURL support]) - - PHP_CHECK_LIBRARY(curl, curl_multi_strerror, - [AC_DEFINE([HAVE_CURL_MULTI_STRERROR], [1], [ ])], [ ], - [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] - ) - PHP_CHECK_LIBRARY(curl, curl_easy_strerror, - [AC_DEFINE([HAVE_CURL_EASY_STRERROR], [1], [ ])], [ ], - [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] - ) - PHP_CHECK_LIBRARY(curl, curl_easy_reset, - [AC_DEFINE([HAVE_CURL_EASY_RESET], [1], [ ])], [ ], - [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] - ) - dnl Debian suddenly (>=7.14.1-2) hides all symbols not starting with "curl" - PHP_CHECK_LIBRARY(curl, Curl_getFormData, - [AC_DEFINE([HAVE_CURL_GETFORMDATA], [1], [ ])], [ ], - [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] - ) - fi - -dnl ---- -dnl MAGIC -dnl ---- - if test "$PHP_HTTP_MAGIC_MIME" != "no"; then - AC_MSG_CHECKING([for magic.h]) - MAGIC_DIR= - for i in "$PHP_HTTP_MAGIC_MIME" /usr/local /usr /opt; do - if test -f "$i/include/magic.h"; then - MAGIC_DIR=$i - break - fi - done - if test -z "$MAGIC_DIR"; then - AC_MSG_RESULT([not found]) - AC_MSG_ERROR([could not find magic.h]) - else - AC_MSG_RESULT([found in $MAGIC_DIR]) - fi - - PHP_ADD_INCLUDE($MAGIC_DIR/include) - PHP_ADD_LIBRARY_WITH_PATH(magic, $MAGIC_DIR/$PHP_LIBDIR, HTTP_SHARED_LIBADD) - AC_DEFINE([HTTP_HAVE_MAGIC], [1], [Have magic mime support]) - fi - -dnl ---- -dnl HASH -dnl ---- - AC_MSG_CHECKING(for ext/hash support) - if test -x "$PHP_EXECUTABLE"; then - if test "`$PHP_EXECUTABLE -m | $EGREP '^hash$'`" = "hash"; then - if test -d ../hash; then - PHP_ADD_INCLUDE([../hash]) - fi - old_CPPFLAGS=$CPPFLAGS - CPPFLAGS=$INCLUDES - AC_MSG_RESULT([looking for php_hash.h]) - AC_CHECK_HEADER([ext/hash/php_hash.h], [ - AC_DEFINE([HTTP_HAVE_EXT_HASH_EXT_HASH], [1], [Have ext/hash support]) - ], [ - AC_CHECK_HEADER([hash/php_hash.h], [ - AC_DEFINE([HTTP_HAVE_HASH_EXT_HASH], [1], [Have ext/hash support]) - ], [ - AC_CHECK_HEADER([php_hash.h], [ - AC_DEFINE([HTTP_HAVE_EXT_HASH], [1], [Have ext/hash support]) - ]) - ]) - ]) - CPPFLAGS=$old_CPPFLAGS; - else - AC_MSG_RESULT(disabled) - fi - elif test "$PHP_HASH" != "no" && test "x$PHP_HASH" != "x"; then - AC_MSG_RESULT(enabled) - ifdef([PHP_ADD_EXTENSION_DEP], [ - PHP_ADD_EXTENSION_DEP([http], [hash], 0) - AC_DEFINE([HTTP_HAVE_EXT_HASH_EXT_HASH], [1], [Have ext/hash support]) - ]) - else - AC_MSG_RESULT(disabled) - fi - -dnl ---- -dnl DONE -dnl ---- - PHP_HTTP_SOURCES="missing.c http.c http_functions.c phpstr/phpstr.c \ - http_util_object.c http_message_object.c http_request_object.c http_request_pool_api.c \ - http_response_object.c http_exception_object.c http_requestpool_object.c \ - http_api.c http_cache_api.c http_request_api.c http_date_api.c \ - http_headers_api.c http_message_api.c http_send_api.c http_url_api.c \ - http_info_api.c http_request_method_api.c http_encoding_api.c \ - http_filter_api.c http_request_body_api.c http_querystring_object.c \ - http_deflatestream_object.c http_inflatestream_object.c http_cookie_api.c \ - http_querystring_api.c" - PHP_NEW_EXTENSION([http], $PHP_HTTP_SOURCES, $ext_shared) - PHP_ADD_BUILD_DIR($ext_builddir/phpstr, 1) - PHP_SUBST([HTTP_SHARED_LIBADD]) - - PHP_HTTP_HEADERS="php_http_std_defs.h php_http.h php_http_api.h php_http_cache_api.h \ - php_http_date_api.h php_http_headers_api.h php_http_info_api.h php_http_message_api.h \ - php_http_request_api.h php_http_request_method_api.h php_http_send_api.h php_http_url_api.h \ - php_http_encoding_api.h phpstr/phpstr.h missing.h php_http_request_body_api.h \ - php_http_exception_object.h php_http_message_object.h php_http_request_object.h \ - php_http_requestpool_object.h php_http_response_object.h php_http_util_object.h \ - php_http_querystring_object.h php_http_deflatestream_object.h php_http_inflatestream_object.h \ - php_http_cookie_api.h php_http_querystring_api.h" - ifdef([PHP_INSTALL_HEADERS], [ - PHP_INSTALL_HEADERS(ext/http, $PHP_HTTP_HEADERS) - ], [ - PHP_SUBST([PHP_HTTP_HEADERS]) - PHP_ADD_MAKEFILE_FRAGMENT - ]) - - AC_DEFINE([HAVE_HTTP], [1], [Have extended HTTP support]) -fi diff --git a/config.w32 b/config.w32 index c07e9d2..638273f 100644 --- a/config.w32 +++ b/config.w32 @@ -61,6 +61,7 @@ if (PHP_HTTP != "no") { "/I\"" + configure_module_dirname + "/phpstr\""); ADD_SOURCES(configure_module_dirname + "/phpstr", "phpstr.c", "http"); AC_DEFINE("HAVE_HTTP", 1, "Have extended HTTP support"); + AC_DEFINE("HTTP_SHARED_DEPS", 1, "Depend on shared extensions"); if (PHP_DEBUG != "no") { ADD_FLAG("CFLAGS_HTTP", "/W3"); diff --git a/config9.m4 b/config9.m4 new file mode 100644 index 0000000..648cc5b --- /dev/null +++ b/config9.m4 @@ -0,0 +1,332 @@ +dnl config.m4 for pecl/http +dnl $Id$ +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_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-zlib-compression], [whether to enable zlib encodings support], +[ --with-http-zlib-compression[=LIBZDIR] + HTTP: with zlib encodings support], $PHP_HTTP, $PHP_HTTP) +PHP_ARG_WITH([http-magic-mime], [whether to enable response content type guessing], +[ --with-http-magic-mime[=LIBMAGICDIR] + HTTP: with magic mime response content type guessing], "no", "no") +PHP_ARG_WITH([http-shared-deps], [whether to depend on shared extensions], +[ --with-http-shared-deps HTTP: disable to not depend on shared extensions + like SPL, hash, iconv and session], $PHP_HTTP, $PHP_HTTP) + +if test "$PHP_HTTP" != "no"; then + + ifdef([AC_PROG_EGREP], [ + AC_PROG_EGREP + ], [ + AC_CHECK_PROG(EGREP, egrep, egrep) + ]) + ifdef([AC_PROG_SED], [ + AC_PROG_SED + ], [ + ifdef([LT_AC_PROG_SED], [ + LT_AC_PROG_SED + ], [ + AC_CHECK_PROG(SED, sed, sed) + ]) + ]) + + if test "$PHP_HTTP_SHARED_DEPS" != "no"; then + AC_DEFINE([HTTP_SHARED_DEPS], [1], [ ]) + else + AC_DEFINE([HTTP_SHARED_DEPS], [0], [ ]) + fi + + dnl + dnl HTTP_SHARED_DEP(name[, code-if-yes[, code-if-not]]) + dnl + AC_DEFUN([HTTP_SHARED_DEP], [ + extname=$1 + haveext=$[HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__) + + AC_MSG_CHECKING([whether to add a dependency on ext/$extname]) + if test "$PHP_HTTP_SHARED_DEPS" = "no"; then + AC_MSG_RESULT([no]) + $3 + elif test "$haveext"; then + AC_MSG_RESULT([yes]) + ifdef([PHP_ADD_EXTENSION_DEP], [ + PHP_ADD_EXTENSION_DEP([http], $1, 0) + ]) + $2 + else + AC_MSG_RESULT([no]) + $3 + fi + ]) + + dnl + dnl HTTP_HAVE_PHP_EXT(name[, code-if-yes[, code-if-not]]) + dnl + AC_DEFUN([HTTP_HAVE_PHP_EXT], [ + extname=$1 + haveext=$[PHP_]translit($1,a-z_-,A-Z__) + + AC_MSG_CHECKING([for ext/$extname support]) + if test -x "$PHP_EXECUTABLE"; then + if test "`$PHP_EXECUTABLE -m | $EGREP '^$extname$'`" = "$extname"; then + [HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)=1 + AC_MSG_RESULT([yes]) + $2 + else + [HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)= + AC_MSG_RESULT([no]) + $3 + fi + elif test "$haveext" != "no" && test "x$haveext" != "x"; then + [HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)=1 + AC_MSG_RESULT([yes]) + $2 + else + [HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)= + AC_MSG_RESULT([no]) + $3 + fi + ]) + +dnl ------- +dnl HEADERS +dnl ------- + AC_CHECK_HEADERS([netdb.h unistd.h]) + +dnl ---- +dnl ZLIB +dnl ---- + if test "$PHP_HTTP_ZLIB_COMPRESSION" != "no"; then + AC_MSG_CHECKING([for zlib.h]) + ZLIB_DIR= + for i in "$PHP_HTTP_ZLIB_COMPRESSION" "$PHP_ZLIB_DIR" "$PHP_ZLIB" /usr/local /usr /opt; do + if test -f "$i/include/zlib.h"; then + ZLIB_DIR=$i + break; + fi + done + if test -z "$ZLIB_DIR"; then + AC_MSG_RESULT([not found]) + AC_MSG_WARN([could not find zlib.h]) + else + AC_MSG_RESULT([found in $ZLIB_DIR]) + AC_MSG_CHECKING([for zlib version >= 1.2.0.4]) + ZLIB_VERSION=`$EGREP "define ZLIB_VERSION" $ZLIB_DIR/include/zlib.h | $SED -e 's/[[^0-9\.]]//g'` + AC_MSG_RESULT([$ZLIB_VERSION]) + if test `echo $ZLIB_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*1000000 + $2*10000 + $3*100 + $4}'` -lt 1020004; then + AC_MSG_ERROR([libz version greater or equal to 1.2.0.4 required]) + else + PHP_ADD_INCLUDE($ZLIB_DIR/include) + PHP_ADD_LIBRARY_WITH_PATH(z, $ZLIB_DIR/$PHP_LIBDIR, HTTP_SHARED_LIBADD) + AC_DEFINE([HTTP_HAVE_ZLIB], [1], [Have zlib support]) + fi + fi + fi + +dnl ---- +dnl CURL +dnl ---- + if test "$PHP_HTTP_CURL_REQUESTS" != "no"; then + AC_MSG_CHECKING([for curl/curl.h]) + CURL_DIR= + for i in "$PHP_HTTP_CURL_REQUESTS" /usr/local /usr /opt; do + if test -f "$i/include/curl/curl.h"; then + CURL_DIR=$i + break + fi + done + if test -z "$CURL_DIR"; then + AC_MSG_RESULT([not found]) + AC_MSG_ERROR([could not find curl/curl.h]) + else + AC_MSG_RESULT([found in $CURL_DIR]) + fi + + AC_MSG_CHECKING([for curl-config]) + CURL_CONFIG= + for i in "$CURL_DIR/bin/curl-config" "$CURL_DIR/curl-config" `which curl-config`; do + if test -x "$i"; then + CURL_CONFIG=$i + break + fi + done + if test -z "$CURL_CONFIG"; then + AC_MSG_RESULT([not found]) + AC_MSG_ERROR([could not find curl-config]) + else + AC_MSG_RESULT([found: $CURL_CONFIG]) + fi + + dnl Debian stable has currently 7.13.2 (this is not a typo) + AC_MSG_CHECKING([for curl version >= 7.12.3]) + CURL_VERSION=`$CURL_CONFIG --version | $SED -e 's/[[^0-9\.]]//g'` + AC_MSG_RESULT([$CURL_VERSION]) + if test `echo $CURL_VERSION | $AWK '{print $1*10000 + $2*100 + $3}'` -lt 71203; then + AC_MSG_ERROR([libcurl version greater or equal to 7.12.3 required]) + fi + + CURL_LIBS=`$CURL_CONFIG --libs` + + AC_MSG_CHECKING([for SSL support in libcurl]) + CURL_SSL=`$CURL_CONFIG --features | $EGREP SSL` + if test "$CURL_SSL" = "SSL"; then + AC_MSG_RESULT([yes]) + AC_DEFINE([HTTP_HAVE_SSL], [1], [ ]) + + AC_MSG_CHECKING([for SSL library used]) + CURL_SSL_FLAVOUR= + for i in $CURL_LIBS; do + if test "$i" = "-lssl"; then + CURL_SSL_FLAVOUR="openssl" + AC_MSG_RESULT([openssl]) + AC_DEFINE([HTTP_HAVE_OPENSSL], [1], [ ]) + AC_CHECK_HEADERS([openssl/crypto.h]) + break + elif test "$i" = "-lgnutls"; then + CURL_SSL_FLAVOUR="gnutls" + AC_MSG_RESULT([gnutls]) + AC_DEFINE([HTTP_HAVE_GNUTLS], [1], [ ]) + AC_CHECK_HEADERS([gcrypt.h]) + break + fi + done + if test -z "$CURL_SSL_FLAVOUR"; then + AC_MSG_RESULT([unknown!]) + AC_MSG_WARN([Could not determine the type of SSL library used!]) + AC_MSG_WARN([Building will fail in ZTS mode!]) + fi + else + AC_MSG_RESULT([no]) + fi + + PHP_ADD_INCLUDE($CURL_DIR/include) + PHP_ADD_LIBRARY_WITH_PATH(curl, $CURL_DIR/$PHP_LIBDIR, HTTP_SHARED_LIBADD) + PHP_EVAL_LIBLINE($CURL_LIBS, HTTP_SHARED_LIBADD) + AC_DEFINE([HTTP_HAVE_CURL], [1], [Have cURL support]) + + PHP_CHECK_LIBRARY(curl, curl_multi_strerror, + [AC_DEFINE([HAVE_CURL_MULTI_STRERROR], [1], [ ])], [ ], + [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] + ) + PHP_CHECK_LIBRARY(curl, curl_easy_strerror, + [AC_DEFINE([HAVE_CURL_EASY_STRERROR], [1], [ ])], [ ], + [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] + ) + PHP_CHECK_LIBRARY(curl, curl_easy_reset, + [AC_DEFINE([HAVE_CURL_EASY_RESET], [1], [ ])], [ ], + [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] + ) + dnl Debian suddenly (>=7.14.1-2) hides all symbols not starting with "curl" + PHP_CHECK_LIBRARY(curl, Curl_getFormData, + [AC_DEFINE([HAVE_CURL_GETFORMDATA], [1], [ ])], [ ], + [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] + ) + fi + +dnl ---- +dnl MAGIC +dnl ---- + if test "$PHP_HTTP_MAGIC_MIME" != "no"; then + AC_MSG_CHECKING([for magic.h]) + MAGIC_DIR= + for i in "$PHP_HTTP_MAGIC_MIME" /usr/local /usr /opt; do + if test -f "$i/include/magic.h"; then + MAGIC_DIR=$i + break + fi + done + if test -z "$MAGIC_DIR"; then + AC_MSG_RESULT([not found]) + AC_MSG_ERROR([could not find magic.h]) + else + AC_MSG_RESULT([found in $MAGIC_DIR]) + fi + + PHP_ADD_INCLUDE($MAGIC_DIR/include) + PHP_ADD_LIBRARY_WITH_PATH(magic, $MAGIC_DIR/$PHP_LIBDIR, HTTP_SHARED_LIBADD) + AC_DEFINE([HTTP_HAVE_MAGIC], [1], [Have magic mime support]) + fi + +dnl ---- +dnl HASH +dnl ---- + HTTP_HAVE_PHP_EXT([hash], [ + if test -d ../hash; then + PHP_ADD_INCLUDE([../hash]) + fi + old_CPPFLAGS=$CPPFLAGS + CPPFLAGS=$INCLUDES + AC_CHECK_HEADER([ext/hash/php_hash.h], [ + AC_DEFINE([HTTP_HAVE_EXT_HASH_EXT_HASH], [1], [Have ext/hash support]) + ], [ + AC_CHECK_HEADER([hash/php_hash.h], [ + AC_DEFINE([HTTP_HAVE_HASH_EXT_HASH], [1], [Have ext/hash support]) + ], [ + AC_CHECK_HEADER([php_hash.h], [ + AC_DEFINE([HTTP_HAVE_EXT_HASH], [1], [Have ext/hash support]) + ]) + ]) + ]) + CPPFLAGS=$old_CPPFLAGS + ]) + +dnl ---- +dnl ICONV +dnl ---- + HTTP_HAVE_PHP_EXT([iconv]) + +dnl ---- +dnl SESSION +dnl ---- + HTTP_HAVE_PHP_EXT([session]) + +dnl ---- +dnl SPL +dnl ---- + HTTP_HAVE_PHP_EXT([spl]) + +dnl ---- +dnl DONE +dnl ---- + PHP_HTTP_SOURCES="missing.c http.c http_functions.c phpstr/phpstr.c \ + http_util_object.c http_message_object.c http_request_object.c http_request_pool_api.c \ + http_response_object.c http_exception_object.c http_requestpool_object.c \ + http_api.c http_cache_api.c http_request_api.c http_date_api.c \ + http_headers_api.c http_message_api.c http_send_api.c http_url_api.c \ + http_info_api.c http_request_method_api.c http_encoding_api.c \ + http_filter_api.c http_request_body_api.c http_querystring_object.c \ + http_deflatestream_object.c http_inflatestream_object.c http_cookie_api.c \ + http_querystring_api.c" + + PHP_NEW_EXTENSION([http], $PHP_HTTP_SOURCES, $ext_shared) + + dnl shared extension deps + HTTP_SHARED_DEP([hash]) + HTTP_SHARED_DEP([iconv]) + HTTP_SHARED_DEP([session]) + HTTP_SHARED_DEP([spl]) + + PHP_ADD_BUILD_DIR($ext_builddir/phpstr, 1) + PHP_SUBST([HTTP_SHARED_LIBADD]) + + PHP_HTTP_HEADERS="php_http_std_defs.h php_http.h php_http_api.h php_http_cache_api.h \ + php_http_date_api.h php_http_headers_api.h php_http_info_api.h php_http_message_api.h \ + php_http_request_api.h php_http_request_method_api.h php_http_send_api.h php_http_url_api.h \ + php_http_encoding_api.h phpstr/phpstr.h missing.h php_http_request_body_api.h \ + php_http_exception_object.h php_http_message_object.h php_http_request_object.h \ + php_http_requestpool_object.h php_http_response_object.h php_http_util_object.h \ + php_http_querystring_object.h php_http_deflatestream_object.h php_http_inflatestream_object.h \ + php_http_cookie_api.h php_http_querystring_api.h" + ifdef([PHP_INSTALL_HEADERS], [ + PHP_INSTALL_HEADERS(ext/http, $PHP_HTTP_HEADERS) + ], [ + PHP_SUBST([PHP_HTTP_HEADERS]) + PHP_ADD_MAKEFILE_FRAGMENT + ]) + + AC_DEFINE([HAVE_HTTP], [1], [Have extended HTTP support]) +fi diff --git a/http.c b/http.c index 843db22..e97c12d 100644 --- a/http.c +++ b/http.c @@ -137,16 +137,16 @@ PHP_MINFO_FUNCTION(http); /* {{{ http_module_dep */ #if ZEND_EXTENSION_API_NO >= 220050617 static zend_module_dep http_module_deps[] = { -# if defined(HAVE_SPL) && !HTTP_SHARED_EXT(SPL) +# if HTTP_HAVE_EXT(SPL) ZEND_MOD_REQUIRED("spl") # endif -# if defined(HTTP_HAVE_EXT_HASH) && !HTTP_SHARED_EXT(HASH) +# if HTTP_HAVE_EXT(HASH) ZEND_MOD_REQUIRED("hash") # endif -# if defined(HAVE_PHP_SESSION) && !HTTP_SHARED_EXT(PHP_SESSION) +# if HTTP_HAVE_EXT(SESSION) ZEND_MOD_REQUIRED("session") # endif -# if defined(HAVE_ICONV) && !HTTP_SHARED_EXT(ICONV) +# if HTTP_HAVE_EXT(ICONV) ZEND_MOD_REQUIRED("iconv") # endif {NULL, NULL, NULL, 0} diff --git a/http_functions.c b/http_functions.c index bdd021b..806cd66 100644 --- a/http_functions.c +++ b/http_functions.c @@ -21,7 +21,7 @@ #include "ext/standard/php_string.h" #include "zend_operators.h" -#ifdef HAVE_PHP_SESSION && !HTTP_SHARED_EXT(PHP_SESSION) +#if HTTP_HAVE_EXT(SESSION) # include "ext/session/php_session.h" #endif @@ -728,7 +728,7 @@ PHP_FUNCTION(http_redirect) RETURN_FALSE; } -#ifdef HAVE_PHP_SESSION && !HTTP_SHARED_EXT(PHP_SESSION) +#if 0 && HTTP_HAVE_EXT(SESSION) /* append session info */ if (session) { if (!params) { diff --git a/http_message_object.c b/http_message_object.c index 824745f..3d736cd 100644 --- a/http_message_object.c +++ b/http_message_object.c @@ -32,7 +32,7 @@ #include "php_http_request_api.h" #include "php_http_request_object.h" -#if defined(HAVE_SPL) && !HTTP_SHARED_EXT(SPL) && !defined(WONKY) +#if HTTP_HAVE_EXT(SPL) && !defined(WONKY) /* SPL doesn't install its headers */ extern PHPAPI zend_class_entry *spl_ce_Countable; #endif @@ -185,7 +185,7 @@ PHP_MINIT_FUNCTION(http_message_object) HTTP_REGISTER_CLASS_EX(HttpMessage, http_message_object, NULL, 0); #ifndef WONKY -# if defined(HAVE_SPL) && !HTTP_SHARED_EXT(SPL) +# if HTTP_HAVE_EXT(SPL) zend_class_implements(http_message_object_ce TSRMLS_CC, 3, spl_ce_Countable, zend_ce_serializable, zend_ce_iterator); # else zend_class_implements(http_message_object_ce TSRMLS_CC, 2, zend_ce_serializable, zend_ce_iterator); diff --git a/http_querystring_api.c b/http_querystring_api.c index b367c20..03fe726 100644 --- a/http_querystring_api.c +++ b/http_querystring_api.c @@ -16,7 +16,7 @@ #include "php_http.h" #include "php_variables.h" -#ifdef HAVE_ICONV && !HTTP_SHARED_EXT(ICONV) +#if HTTP_HAVE_EXT(ICONV) # undef PHP_ATOM_INC # include "ext/iconv/php_iconv.h" # include "ext/standard/url.h" @@ -38,7 +38,7 @@ static inline int _http_querystring_modify_array_ex(zval *qarray, int key_type, static inline int _http_querystring_modify_array(zval *qarray, zval *params TSRMLS_DC); -#ifdef HAVE_ICONV && !HTTP_SHARED_EXT(ICONV) +#if HTTP_HAVE_EXT(ICONV) PHP_HTTP_API int _http_querystring_xlate(zval *array, zval *param, const char *ie, const char *oe TSRMLS_DC) { HashPosition pos; diff --git a/http_querystring_object.c b/http_querystring_object.c index 73ef9d5..580ae6b 100644 --- a/http_querystring_object.c +++ b/http_querystring_object.c @@ -61,7 +61,7 @@ HTTP_BEGIN_ARGS(__getter, 1) HTTP_ARG_VAL(delete, 0) HTTP_END_ARGS; -#ifdef HAVE_ICONV && !HTTP_SHARED_EXT(ICONV) +#if HTTP_HAVE_EXT(ICONV) HTTP_BEGIN_ARGS(xlate, 2) HTTP_ARG_VAL(from_encoding, 0) HTTP_ARG_VAL(to_encoding, 0) @@ -95,7 +95,7 @@ zend_function_entry http_querystring_object_fe[] = { #ifndef WONKY HTTP_QUERYSTRING_ME(singleton, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) #endif -#ifdef HAVE_ICONV && !HTTP_SHARED_EXT(ICONV) +#if HTTP_HAVE_EXT(ICONV) HTTP_QUERYSTRING_ME(xlate, ZEND_ACC_PUBLIC) #endif @@ -431,7 +431,7 @@ HTTP_QUERYSTRING_GETTER(getArray, IS_ARRAY); HTTP_QUERYSTRING_GETTER(getObject, IS_OBJECT); /* }}} */ -#ifdef HAVE_ICONV && !HTTP_SHARED_EXT(ICONV) +#if HTTP_HAVE_EXT(ICONV) /* {{{ proto bool HttpQueryString::xlate(string ie, string oe) * * Converts the query string from the source encoding ie to the target encoding oe. diff --git a/package2.xml b/package2.xml index 41e2c4f..08348ff 100644 --- a/package2.xml +++ b/package2.xml @@ -39,6 +39,7 @@ support. Parallel requests are available for PHP 5 and greater. BSD, revised - + diff --git a/php_http.h b/php_http.h index f3574d3..08b2a4d 100644 --- a/php_http.h +++ b/php_http.h @@ -144,7 +144,7 @@ ZEND_EXTERN_MODULE_GLOBALS(http); # define HTTP_G (&http_globals) #endif -#define HTTP_SHARED_EXT(EXT) (COMPILE_DL_##EXT && !HTTP_SHARED_DEPS) +#define HTTP_HAVE_EXT(EXT) ((defined(HAVE_##EXT) || defined(HAVE_PHP_##EXT)) && (HTTP_SHARED_DEPS || !defined(COMPILE_DL_##EXT))) PHP_FUNCTION(http_test); PHP_FUNCTION(http_date); diff --git a/php_http_cache_api.h b/php_http_cache_api.h index dbbe0a2..5bd727e 100644 --- a/php_http_cache_api.h +++ b/php_http_cache_api.h @@ -20,7 +20,7 @@ #include "ext/standard/crc32.h" #include "ext/standard/sha1.h" #include "ext/standard/md5.h" -#if !HTTP_SHARED_EXT(HASH) +#if HTTP_HAVE_EXT(HASH) # if defined(HTTP_HAVE_EXT_HASH) # include "php_hash.h" # elif defined(HTTP_HAVE_HASH_EXT_HASH) @@ -55,7 +55,7 @@ static inline void *_http_etag_init(TSRMLS_D) void *ctx = NULL; char *mode = HTTP_G->etag.mode; -#if defined(HTTP_HAVE_EXT_HASH) && !HTTP_SHARED_EXT(HASH) +#if HTTP_HAVE_EXT(HASH) php_hash_ops *eho = NULL; if (mode && (eho = php_hash_fetch_ops(mode, strlen(mode)))) { @@ -81,7 +81,7 @@ static inline char *_http_etag_finish(void *ctx TSRMLS_DC) unsigned char digest[128] = {0}; char *etag = NULL, *mode = HTTP_G->etag.mode; -#if defined(HTTP_HAVE_EXT_HASH) && !HTTP_SHARED_EXT(HASH) +#if HTTP_HAVE_EXT(HASH) php_hash_ops *eho = NULL; if (mode && (eho = php_hash_fetch_ops(mode, strlen(mode)))) { @@ -108,7 +108,7 @@ static inline char *_http_etag_finish(void *ctx TSRMLS_DC) static inline void _http_etag_update(void *ctx, const char *data_ptr, size_t data_len TSRMLS_DC) { char *mode = HTTP_G->etag.mode; -#if defined(HTTP_HAVE_EXT_HASH) && !HTTP_SHARED_EXT(HASH) +#if HTTP_HAVE_EXT(HASH) php_hash_ops *eho = NULL; if (mode && (eho = php_hash_fetch_ops(mode, strlen(mode)))) { diff --git a/php_http_querystring_api.h b/php_http_querystring_api.h index d5be364..60b63bc 100644 --- a/php_http_querystring_api.h +++ b/php_http_querystring_api.h @@ -15,7 +15,7 @@ #ifndef PHP_HTTP_QUERYSTRING_API_H #define PHP_HTTP_QUERYSTRING_API_H -#ifdef HAVE_ICONV && !HTTP_SHARED_EXT(ICONV) +#if HTTP_HAVE_EXT(ICONV) #define http_querystring_xlate(a, p, ie, oe) _http_querystring_xlate((a), (p), (ie), (oe) TSRMLS_CC) PHP_HTTP_API int _http_querystring_xlate(zval *array, zval *param, const char *ie, const char *oe TSRMLS_DC); #endif diff --git a/php_http_querystring_object.h b/php_http_querystring_object.h index 4a60d12..76f2513 100644 --- a/php_http_querystring_object.h +++ b/php_http_querystring_object.h @@ -50,7 +50,7 @@ PHP_METHOD(HttpQueryString, getFloat); PHP_METHOD(HttpQueryString, getString); PHP_METHOD(HttpQueryString, getArray); PHP_METHOD(HttpQueryString, getObject); -#ifdef HAVE_ICONV && !HTTP_SHARED_EXT(ICONV) +#if HTTP_HAVE_EXT(ICONV) PHP_METHOD(HttpQueryString, xlate); #endif #ifndef WONKY