]> granicus.if.org Git - php/commitdiff
ext/curl: port to pkg-config macro and consistently require its use
authorEli Schwartz <eschwartz@archlinux.org>
Mon, 22 Oct 2018 16:13:31 +0000 (12:13 -0400)
committerNikita Popov <nikita.ppv@gmail.com>
Sun, 9 Dec 2018 16:28:02 +0000 (17:28 +0100)
curl 7.15.1 in December 2006 first added pkg-config support, which is
earlier than the minimum supported version for php. This should
therefore be uiversally supported.

ext/curl/config.m4
travis/compile.sh

index 7d36458aef517c0b5ebcff9ff3b5f3225b70b54e..3ec89c1f71c666dd8c6d3d0324d4eee652e634a8 100644 (file)
 dnl config.m4 for extension curl
 
 PHP_ARG_WITH(curl, for cURL support,
-[  --with-curl[=DIR]         Include cURL support])
+[  --with-curl               Include cURL support])
 
 if test "$PHP_CURL" != "no"; then
-  if test -z "$PKG_CONFIG"; then
-    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-  fi
-
-  if test -x "$PKG_CONFIG"; then
-    dnl using pkg-config output
-
-    AC_MSG_CHECKING(for libcurl.pc)
-    if test "$PHP_CURL" = "yes" -o "$PHP_CURL" = "/usr"; then
-      PKNAME=libcurl
-      AC_MSG_RESULT(using default path)
-    elif test -r $PHP_CURL/$PHP_LIBDIR/pkgconfig/libcurl.pc; then
-      PKNAME=$PHP_CURL/$PHP_LIBDIR/pkgconfig/libcurl.pc
-      AC_MSG_RESULT(using $PKNAME)
-    elif test -r $PHP_CURL/lib/pkgconfig/libcurl.pc; then
-      PKNAME=$PHP_CURL/lib/pkgconfig/libcurl.pc
-      AC_MSG_RESULT(using $PKNAME)
-    else
-      AC_MSG_RESULT(not found)
-      AC_MSG_WARN(Could not find libcurl.pc. Try without $PHP_CURL or set PKG_CONFIG_PATH)
-    fi
-  fi
-
-  if test -n "$PKNAME"; then
-    AC_MSG_CHECKING(for cURL 7.15.5 or greater)
-    if $PKG_CONFIG --atleast-version 7.15.5 $PKNAME; then
-      curl_version_full=`$PKG_CONFIG --modversion $PKNAME`
-      AC_MSG_RESULT($curl_version_full)
-    else
-      AC_MSG_ERROR(cURL version 7.15.5 or later is required to compile php with cURL support)
-    fi
-
-    CURL_LIBS=`$PKG_CONFIG --libs   $PKNAME`
-    CURL_INCL=`$PKG_CONFIG --cflags $PKNAME`
-    CURL_SSL=`$PKG_CONFIG --variable=supported_features $PKNAME| $EGREP SSL`
-  else
-    dnl fallback to old vay, using curl-config
-    AC_MSG_WARN(Fallback: search for curl headers and curl-config)
-
-    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.15.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 7015005; then
-      AC_MSG_RESULT($curl_version_full)
-      CURL_LIBS=`$CURL_CONFIG --libs`
-      CURL_INCL=`$CURL_CONFIG --cflags`
-      CURL_SSL=`$CURL_CONFIG --feature | $EGREP SSL`
-    else
-      AC_MSG_ERROR(cURL version 7.15.5 or later is required to compile php with cURL support)
-    fi
-  fi
+  PKG_CHECK_MODULES([CURL], [libcurl >= 7.15.5])
+  PKG_CHECK_VAR([CURL_FEATURES], [libcurl], [supported_features])
 
   dnl common stuff (pkg-config / curl-config)
 
   PHP_EVAL_LIBLINE($CURL_LIBS, CURL_SHARED_LIBADD)
-  PHP_EVAL_INCLINE($CURL_INCL, CURL_SHARED_LIBADD)
+  PHP_EVAL_INCLINE($CURL_CFLAGS, CURL_SHARED_LIBADD)
 
   AC_MSG_CHECKING([for SSL support in libcurl])
-  if test -n "$CURL_SSL"; then
-    AC_MSG_RESULT([yes])
+  case "$CURL_FEATURES" in
+    *SSL*)
+      CURL_SSL=yes
+      AC_MSG_RESULT([yes])
+      ;;
+    *)
+      CURL_SSL=no
+      AC_MSG_RESULT([no])
+      ;;
+  esac
+
+  if test "$CURL_SSL" = yes; then
     AC_DEFINE([HAVE_CURL_SSL], [1], [Have cURL with  SSL support])
 
     save_CFLAGS="$CFLAGS"
-    CFLAGS=$CURL_INCL
+    CFLAGS=$CURL_CFLAGS
     save_LDFLAGS="$LDFLAGS"
     LDFLAGS=$CURL_LIBS
 
index d5c1a50c916396668c0b885fbfd7b05ebb5cb9f8..d6bd887c85da5494262d0460ffafda99e88291f4 100755 (executable)
@@ -50,7 +50,6 @@ $TS \
 --enable-soap \
 --enable-xmlreader \
 --with-xsl \
---with-curl=/usr \
 --with-tidy \
 --with-xmlrpc \
 --enable-sysvsem \