--- a/ext/gd/config.m4	2018-04-24 11:09:54.000000000 -0400
+++ b/ext/gd/config.m4	2018-05-04 15:18:49.867283889 -0400
@@ -186,21 +186,36 @@
 AC_DEFUN([PHP_GD_FREETYPE2],[
   if test "$PHP_FREETYPE_DIR" != "no"; then
 
-    for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-      if test -f "$i/bin/freetype-config"; then
-        FREETYPE2_DIR=$i
-        FREETYPE2_CONFIG="$i/bin/freetype-config"
-        break
+    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+    AC_MSG_CHECKING(for freetype2)
+
+    if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
+
+      FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
+      FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
+      FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
+      FREETYPE2_DIR="found"
+
+      AC_MSG_RESULT(from pkgconfig: version $FREETYPE2_VERSION found)
+    else
+
+      for i in $PHP_FREETYPE_DIR /usr/local /usr; do
+        if test -f "$i/bin/freetype-config"; then
+          FREETYPE2_DIR=$i
+          FREETYPE2_CONFIG="$i/bin/freetype-config"
+          break
+        fi
+      done
+
+      if test -z "$FREETYPE2_DIR"; then
+        AC_MSG_ERROR([freetype-config not found.])
       fi
-    done
 
-    if test -z "$FREETYPE2_DIR"; then
-      AC_MSG_ERROR([freetype-config not found.])
+      FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
+      FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
+      AC_MSG_RESULT(found via freetype-config)
     fi
 
-    FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-    FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
-
     PHP_EVAL_INCLINE($FREETYPE2_CFLAGS)
     PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD)
     AC_DEFINE(HAVE_LIBFREETYPE,1,[ ])
--- a/configure	2018-04-24 11:10:05.000000000 -0400
+++ b/configure	2018-05-04 15:18:45.626367913 -0400
@@ -34348,21 +34348,79 @@
 
   if test "$PHP_FREETYPE_DIR" != "no"; then
 
-    for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-      if test -f "$i/bin/freetype-config"; then
-        FREETYPE2_DIR=$i
-        FREETYPE2_CONFIG="$i/bin/freetype-config"
-        break
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
+$as_echo_n "checking for freetype2... " >&6; }
+
+
+    if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
+
+      FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
+      FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
+      FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
+      FREETYPE2_DIR="found"
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE2_VERSION found" >&5
+$as_echo "from pkgconfig: version $FREETYPE2_VERSION found" >&6; }
+    else
+
+      for i in $PHP_FREETYPE_DIR /usr/local /usr; do
+        if test -f "$i/bin/freetype-config"; then
+          FREETYPE2_DIR=$i
+          FREETYPE2_CONFIG="$i/bin/freetype-config"
+          break
+        fi
+      done
+
+      if test -z "$FREETYPE2_DIR"; then
+        as_fn_error $? "freetype-config not found." "$LINENO" 5
       fi
-    done
 
-    if test -z "$FREETYPE2_DIR"; then
-      as_fn_error $? "freetype-config not found." "$LINENO" 5
+      FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
+      FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5
+$as_echo "found via freetype-config" >&6; }
     fi
 
-    FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-    FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
-
 
   for ac_i in $FREETYPE2_CFLAGS; do
     case $ac_i in
@@ -36019,21 +36076,78 @@
 
   if test "$PHP_FREETYPE_DIR" != "no"; then
 
-    for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-      if test -f "$i/bin/freetype-config"; then
-        FREETYPE2_DIR=$i
-        FREETYPE2_CONFIG="$i/bin/freetype-config"
-        break
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
+$as_echo_n "checking for freetype2... " >&6; }
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
+
+      FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
+      FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
+      FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE_VERSON found" >&5
+$as_echo "from pkgconfig: version $FREETYPE_VERSON found" >&6; }
+    else
+
+      for i in $PHP_FREETYPE_DIR /usr/local /usr; do
+        if test -f "$i/bin/freetype-config"; then
+          FREETYPE2_DIR=$i
+          FREETYPE2_CONFIG="$i/bin/freetype-config"
+          break
+        fi
+      done
+
+      if test -z "$FREETYPE2_DIR"; then
+        as_fn_error $? "freetype-config not found." "$LINENO" 5
       fi
-    done
 
-    if test -z "$FREETYPE2_DIR"; then
-      as_fn_error $? "freetype-config not found." "$LINENO" 5
+      FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
+      FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5
+$as_echo "found via freetype-config" >&6; }
     fi
 
-    FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-    FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
-
 
   for ac_i in $FREETYPE2_CFLAGS; do
     case $ac_i in
