config.m4 3.7 KB

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