config.m4 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. PHP_ARG_WITH([curl],
  2. [for cURL support],
  3. [AS_HELP_STRING([--with-curl],
  4. [Include cURL support])])
  5. if test "$PHP_CURL" != "no"; then
  6. PKG_CHECK_MODULES([CURL], [libcurl >= 7.29.0])
  7. PKG_CHECK_VAR([CURL_FEATURES], [libcurl], [supported_features])
  8. PHP_EVAL_LIBLINE($CURL_LIBS, CURL_SHARED_LIBADD)
  9. PHP_EVAL_INCLINE($CURL_CFLAGS)
  10. AC_MSG_CHECKING([for SSL support in libcurl])
  11. case "$CURL_FEATURES" in
  12. *SSL*)
  13. CURL_SSL=yes
  14. AC_MSG_RESULT([yes])
  15. ;;
  16. *)
  17. CURL_SSL=no
  18. AC_MSG_RESULT([no])
  19. ;;
  20. esac
  21. if test "$CURL_SSL" = yes; then
  22. save_LDFLAGS="$LDFLAGS"
  23. LDFLAGS="$LDFLAGS $CURL_LIBS"
  24. AC_MSG_CHECKING([for libcurl linked against old openssl])
  25. AC_RUN_IFELSE([AC_LANG_SOURCE([[
  26. #include <strings.h>
  27. #include <curl/curl.h>
  28. int main(int argc, char *argv[])
  29. {
  30. curl_version_info_data *data = curl_version_info(CURLVERSION_NOW);
  31. if (data && data->ssl_version && *data->ssl_version) {
  32. const char *ptr = data->ssl_version;
  33. while(*ptr == ' ') ++ptr;
  34. if (strncasecmp(ptr, "OpenSSL/1.1", sizeof("OpenSSL/1.1")-1) == 0) {
  35. /* New OpenSSL version */
  36. return 3;
  37. }
  38. if (strncasecmp(ptr, "OpenSSL", sizeof("OpenSSL")-1) == 0) {
  39. /* Old OpenSSL version */
  40. return 0;
  41. }
  42. /* Different SSL library */
  43. return 2;
  44. }
  45. /* No SSL support */
  46. return 1;
  47. }
  48. ]])],[
  49. AC_MSG_RESULT([yes])
  50. AC_DEFINE([HAVE_CURL_OLD_OPENSSL], [1], [Have cURL with old OpenSSL])
  51. PKG_CHECK_MODULES([OPENSSL], [openssl], [
  52. PHP_EVAL_LIBLINE($OPENSSL_LIBS, CURL_SHARED_LIBADD)
  53. PHP_EVAL_INCLINE($OPENSSL_CFLAGS)
  54. AC_CHECK_HEADERS([openssl/crypto.h])
  55. ], [])
  56. ], [
  57. AC_MSG_RESULT([no])
  58. ], [
  59. AC_MSG_RESULT([no])
  60. ])
  61. LDFLAGS="$save_LDFLAGS"
  62. else
  63. AC_MSG_RESULT([no])
  64. fi
  65. PHP_CHECK_LIBRARY(curl,curl_easy_perform,
  66. [
  67. AC_DEFINE(HAVE_CURL,1,[ ])
  68. ],[
  69. AC_MSG_ERROR(There is something wrong. Please check config.log for more information.)
  70. ],[
  71. $CURL_LIBS
  72. ])
  73. PHP_NEW_EXTENSION(curl, interface.c multi.c share.c curl_file.c, $ext_shared)
  74. PHP_INSTALL_HEADERS([ext/curl], [php_curl.h])
  75. PHP_SUBST(CURL_SHARED_LIBADD)
  76. fi