1dnl 2dnl $Id$ 3dnl 4 5PHP_ARG_WITH(curl, for cURL support, 6[ --with-curl[=DIR] Include cURL support]) 7 8if test "$PHP_CURL" != "no"; then 9 if test -r $PHP_CURL/include/curl/easy.h; then 10 CURL_DIR=$PHP_CURL 11 else 12 AC_MSG_CHECKING(for cURL in default path) 13 for i in /usr/local /usr; do 14 if test -r $i/include/curl/easy.h; then 15 CURL_DIR=$i 16 AC_MSG_RESULT(found in $i) 17 break 18 fi 19 done 20 fi 21 22 if test -z "$CURL_DIR"; then 23 AC_MSG_RESULT(not found) 24 AC_MSG_ERROR(Please reinstall the libcurl distribution - 25 easy.h should be in <curl-dir>/include/curl/) 26 fi 27 28 CURL_CONFIG="curl-config" 29 AC_MSG_CHECKING(for cURL 7.10.5 or greater) 30 31 if ${CURL_DIR}/bin/curl-config --libs > /dev/null 2>&1; then 32 CURL_CONFIG=${CURL_DIR}/bin/curl-config 33 else 34 if ${CURL_DIR}/curl-config --libs > /dev/null 2>&1; then 35 CURL_CONFIG=${CURL_DIR}/curl-config 36 fi 37 fi 38 39 curl_version_full=`$CURL_CONFIG --version` 40 curl_version=`echo ${curl_version_full} | sed -e 's/libcurl //' | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` 41 if test "$curl_version" -ge 7010005; then 42 AC_MSG_RESULT($curl_version_full) 43 CURL_LIBS=`$CURL_CONFIG --libs` 44 else 45 AC_MSG_ERROR(cURL version 7.10.5 or later is required to compile php with cURL support) 46 fi 47 48 PHP_ADD_INCLUDE($CURL_DIR/include) 49 PHP_EVAL_LIBLINE($CURL_LIBS, CURL_SHARED_LIBADD) 50 PHP_ADD_LIBRARY_WITH_PATH(curl, $CURL_DIR/$PHP_LIBDIR, CURL_SHARED_LIBADD) 51 52 AC_MSG_CHECKING([for SSL support in libcurl]) 53 CURL_SSL=`$CURL_CONFIG --feature | $EGREP SSL` 54 if test "$CURL_SSL" = "SSL"; then 55 AC_MSG_RESULT([yes]) 56 AC_DEFINE([HAVE_CURL_SSL], [1], [Have cURL with SSL support]) 57 58 save_CFLAGS="$CFLAGS" 59 CFLAGS="`$CURL_CONFIG --cflags`" 60 61 AC_PROG_CPP 62 AC_MSG_CHECKING([for openssl support in libcurl]) 63 AC_TRY_RUN([ 64#include <curl/curl.h> 65 66int main(int argc, char *argv[]) 67{ 68 curl_version_info_data *data = curl_version_info(CURLVERSION_NOW); 69 70 if (data && data->ssl_version && *data->ssl_version) { 71 const char *ptr = data->ssl_version; 72 73 while(*ptr == ' ') ++ptr; 74 return strncasecmp(ptr, "OpenSSL", sizeof("OpenSSL")-1); 75 } 76 return 1; 77} 78 ],[ 79 AC_MSG_RESULT([yes]) 80 AC_CHECK_HEADERS([openssl/crypto.h], [ 81 AC_DEFINE([HAVE_CURL_OPENSSL], [1], [Have cURL with OpenSSL support]) 82 ]) 83 ], [ 84 AC_MSG_RESULT([no]) 85 ], [ 86 AC_MSG_RESULT([no]) 87 ]) 88 89 AC_MSG_CHECKING([for gnutls support in libcurl]) 90 AC_TRY_RUN([ 91#include <curl/curl.h> 92 93int main(int argc, char *argv[]) 94{ 95 curl_version_info_data *data = curl_version_info(CURLVERSION_NOW); 96 97 if (data && data->ssl_version && *data->ssl_version) { 98 const char *ptr = data->ssl_version; 99 100 while(*ptr == ' ') ++ptr; 101 return strncasecmp(ptr, "GnuTLS", sizeof("GnuTLS")-1); 102 } 103 return 1; 104} 105], [ 106 AC_MSG_RESULT([yes]) 107 AC_CHECK_HEADER([gcrypt.h], [ 108 AC_DEFINE([HAVE_CURL_GNUTLS], [1], [Have cURL with GnuTLS support]) 109 ]) 110 ], [ 111 AC_MSG_RESULT([no]) 112 ], [ 113 AC_MSG_RESULT([no]) 114 ]) 115 116 CFLAGS="$save_CFLAGS" 117 else 118 AC_MSG_RESULT([no]) 119 fi 120 121 PHP_CHECK_LIBRARY(curl,curl_easy_perform, 122 [ 123 AC_DEFINE(HAVE_CURL,1,[ ]) 124 ],[ 125 AC_MSG_ERROR(There is something wrong. Please check config.log for more information.) 126 ],[ 127 $CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR 128 ]) 129 130 PHP_CHECK_LIBRARY(curl,curl_easy_strerror, 131 [ 132 AC_DEFINE(HAVE_CURL_EASY_STRERROR,1,[ ]) 133 ],[],[ 134 $CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR 135 ]) 136 137 PHP_CHECK_LIBRARY(curl,curl_multi_strerror, 138 [ 139 AC_DEFINE(HAVE_CURL_MULTI_STRERROR,1,[ ]) 140 ],[],[ 141 $CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR 142 ]) 143 144 PHP_NEW_EXTENSION(curl, interface.c multi.c share.c curl_file.c, $ext_shared) 145 PHP_SUBST(CURL_SHARED_LIBADD) 146fi 147