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