diff options
Diffstat (limited to 'ext/curl/config.m4')
-rw-r--r-- | ext/curl/config.m4 | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/ext/curl/config.m4 b/ext/curl/config.m4 new file mode 100644 index 0000000..fbb4f5b --- /dev/null +++ b/ext/curl/config.m4 @@ -0,0 +1,161 @@ +dnl +dnl $Id$ +dnl + +PHP_ARG_WITH(curl, for cURL support, +[ --with-curl[=DIR] Include cURL support]) + +dnl Temporary option while we develop this aspect of the extension +PHP_ARG_WITH(curlwrappers, if we should use cURL for url streams, +[ --with-curlwrappers EXPERIMENTAL: Use cURL for url streams], no, no) + +if test "$PHP_CURL" != "no"; then + if test -r $PHP_CURL/include/curl/easy.h; then + CURL_DIR=$PHP_CURL + else + AC_MSG_CHECKING(for cURL in default path) + for i in /usr/local /usr; do + if test -r $i/include/curl/easy.h; then + CURL_DIR=$i + AC_MSG_RESULT(found in $i) + break + fi + done + fi + + if test -z "$CURL_DIR"; then + AC_MSG_RESULT(not found) + AC_MSG_ERROR(Please reinstall the libcurl distribution - + easy.h should be in <curl-dir>/include/curl/) + fi + + CURL_CONFIG="curl-config" + AC_MSG_CHECKING(for cURL 7.10.5 or greater) + + if ${CURL_DIR}/bin/curl-config --libs > /dev/null 2>&1; then + CURL_CONFIG=${CURL_DIR}/bin/curl-config + else + if ${CURL_DIR}/curl-config --libs > /dev/null 2>&1; then + CURL_CONFIG=${CURL_DIR}/curl-config + fi + fi + + curl_version_full=`$CURL_CONFIG --version` + curl_version=`echo ${curl_version_full} | sed -e 's/libcurl //' | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test "$curl_version" -ge 7010005; then + AC_MSG_RESULT($curl_version_full) + CURL_LIBS=`$CURL_CONFIG --libs` + else + AC_MSG_ERROR(cURL version 7.10.5 or later is required to compile php with cURL support) + fi + + PHP_ADD_INCLUDE($CURL_DIR/include) + PHP_EVAL_LIBLINE($CURL_LIBS, CURL_SHARED_LIBADD) + PHP_ADD_LIBRARY_WITH_PATH(curl, $CURL_DIR/$PHP_LIBDIR, CURL_SHARED_LIBADD) + + AC_MSG_CHECKING([for SSL support in libcurl]) + CURL_SSL=`$CURL_CONFIG --feature | $EGREP SSL` + if test "$CURL_SSL" = "SSL"; then + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_CURL_SSL], [1], [Have cURL with SSL support]) + + save_CFLAGS="$CFLAGS" + CFLAGS="`$CURL_CONFIG --cflags`" + + AC_PROG_CPP + AC_MSG_CHECKING([for openssl support in libcurl]) + AC_TRY_RUN([ +#include <curl/curl.h> + +int main(int argc, char *argv[]) +{ + curl_version_info_data *data = curl_version_info(CURLVERSION_NOW); + + if (data && data->ssl_version && *data->ssl_version) { + const char *ptr = data->ssl_version; + + while(*ptr == ' ') ++ptr; + return strncasecmp(ptr, "OpenSSL", sizeof("OpenSSL")-1); + } + return 1; +} + ],[ + AC_MSG_RESULT([yes]) + AC_CHECK_HEADERS([openssl/crypto.h], [ + AC_DEFINE([HAVE_CURL_OPENSSL], [1], [Have cURL with OpenSSL support]) + ]) + ], [ + AC_MSG_RESULT([no]) + ], [ + AC_MSG_RESULT([no]) + ]) + + AC_MSG_CHECKING([for gnutls support in libcurl]) + AC_TRY_RUN([ +#include <curl/curl.h> + +int main(int argc, char *argv[]) +{ + curl_version_info_data *data = curl_version_info(CURLVERSION_NOW); + + if (data && data->ssl_version && *data->ssl_version) { + const char *ptr = data->ssl_version; + + while(*ptr == ' ') ++ptr; + return strncasecmp(ptr, "GnuTLS", sizeof("GnuTLS")-1); + } + return 1; +} +], [ + AC_MSG_RESULT([yes]) + AC_CHECK_HEADER([gcrypt.h], [ + AC_DEFINE([HAVE_CURL_GNUTLS], [1], [Have cURL with GnuTLS support]) + ]) + ], [ + AC_MSG_RESULT([no]) + ], [ + AC_MSG_RESULT([no]) + ]) + + CFLAGS="$save_CFLAGS" + else + AC_MSG_RESULT([no]) + fi + + PHP_CHECK_LIBRARY(curl,curl_easy_perform, + [ + AC_DEFINE(HAVE_CURL,1,[ ]) + ],[ + AC_MSG_ERROR(There is something wrong. Please check config.log for more information.) + ],[ + $CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR + ]) + + PHP_CHECK_LIBRARY(curl,curl_version_info, + [ + AC_DEFINE(HAVE_CURL_VERSION_INFO,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_multi_strerror, + [ + AC_DEFINE(HAVE_CURL_MULTI_STRERROR,1,[ ]) + ],[],[ + $CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR + ]) + + if test "$PHP_CURLWRAPPERS" != "no" ; then + AC_DEFINE(PHP_CURL_URL_WRAPPERS,1,[ ]) + fi + + PHP_NEW_EXTENSION(curl, interface.c multi.c streams.c, $ext_shared) + PHP_SUBST(CURL_SHARED_LIBADD) +fi |