| From a0955f351c7eb1022da7ae36970ffef3b00c8aff Mon Sep 17 00:00:00 2001 |
| From: Adam Harvey <aharvey@php.net> |
| Date: Sat, 7 Dec 2013 19:39:40 -0800 |
| Subject: [PATCH] Switch to using freetype-config for freetype detection. |
| |
| This fixes GD compilation against libfreetype 2.5.1 and later after they made |
| the rather interesting decision to change their include directory layout in a |
| point release. |
| |
| The original suggestion in the bug was to use pkg-config, but my inclination is |
| to use freetype-config instead: we should be able to get the same configuration |
| information without actually needing pkg-config installed, since pkg-config is |
| by no means guaranteed to exist on many Unices and distros, whereas |
| freetype-config should always be present if a libfreetype build environment is |
| installed. Let's try it out and see what happens. |
| |
| Fixes bug #64405 (Use freetype-config for determining freetype2 dir(s)). |
| |
| diff --git a/ext/gd/config.m4 b/ext/gd/config.m4 |
| index 0e35ece..732e14c 100644 |
| --- a/ext/gd/config.m4 |
| +++ b/ext/gd/config.m4 |
| @@ -193,30 +193,25 @@ 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/include/freetype2/freetype/freetype.h"; then |
| + if test -f "$i/bin/freetype-config"; then |
| FREETYPE2_DIR=$i |
| - FREETYPE2_INC_DIR=$i/include/freetype2 |
| + FREETYPE2_CONFIG="$i/bin/freetype-config" |
| break |
| fi |
| done |
| |
| if test -z "$FREETYPE2_DIR"; then |
| - AC_MSG_ERROR([freetype.h not found.]) |
| + AC_MSG_ERROR([freetype-config not found.]) |
| fi |
| |
| - PHP_CHECK_LIBRARY(freetype, FT_New_Face, |
| - [ |
| - PHP_ADD_LIBRARY_WITH_PATH(freetype, $FREETYPE2_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD) |
| - PHP_ADD_INCLUDE($FREETYPE2_DIR/include) |
| - PHP_ADD_INCLUDE($FREETYPE2_INC_DIR) |
| - AC_DEFINE(USE_GD_IMGSTRTTF, 1, [ ]) |
| - AC_DEFINE(HAVE_LIBFREETYPE,1,[ ]) |
| - AC_DEFINE(ENABLE_GD_TTF,1,[ ]) |
| - ],[ |
| - AC_MSG_ERROR([Problem with freetype.(a|so). Please check config.log for more information.]) |
| - ],[ |
| - -L$FREETYPE2_DIR/$PHP_LIBDIR |
| - ]) |
| + 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(USE_GD_IMGSTRTTF, 1, [ ]) |
| + AC_DEFINE(HAVE_LIBFREETYPE,1,[ ]) |
| + AC_DEFINE(ENABLE_GD_TTF,1,[ ]) |
| else |
| AC_MSG_RESULT([If configure fails try --with-freetype-dir=<DIR>]) |
| fi |