diff options
author | Adam Harvey <aharvey@php.net> | 2013-12-07 19:39:40 -0800 |
---|---|---|
committer | Adam Harvey <aharvey@php.net> | 2013-12-07 19:39:40 -0800 |
commit | a0955f351c7eb1022da7ae36970ffef3b00c8aff (patch) | |
tree | 5b4e301d8aa015f2673856aaf3e0f72255e057b1 | |
parent | ff89066b3d52c2e124b8e893ccca3147f40e2061 (diff) | |
download | php-git-a0955f351c7eb1022da7ae36970ffef3b00c8aff.tar.gz |
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)).
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | ext/gd/config.m4 | 27 |
2 files changed, 15 insertions, 16 deletions
@@ -20,6 +20,10 @@ PHP NEWS - Filter: . Fixed bug #66229 (128.0.0.0/16 isn't reserved any longer). (Adam) +- GD: + . Fixed bug #64405 (Use freetype-config for determining freetype2 dir(s)). + (Adam) + - XSL . Fixed bug #49634 (Segfault throwing an exception in a XSL registered function). (Mike) diff --git a/ext/gd/config.m4 b/ext/gd/config.m4 index 0e35eceba3..732e14c82e 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 |