php上でGDを利用したい場合、–with-gd と./configure に記載したりしますが、GDのバージョンによっては、phpのmake中にコンパイルエラーを起こす事があります。
例えば、php-4.3.4 + GD 2.0.33 の場合・・・
./configure \
–with-apache=../apache_1.3.29 \
–prefix=/usr/local/php \
–enable-track-vars \
–with-mysql=/usr/local/mysql \
–enable-mbstring \
–enable-mbstr-enc-trans \
–enable-mbregex \
–with-sablot \
–enable-xslt \
–with-xslt-sablot \
–with-openssl \
–with-xml \
–with-zlib \
–with-dom \
–with-dom-xslt \
–with-dom-exslt \
–with-gd \
–with-freetype \
–with-freetype-dir=/usr/local/include/freetype2/freetype \
–with-png \
–with-jpeg
こんなオプションをつけてコンパイルしようとすると・・・
/usr/local/include/freetype2/freetype/freetype.h:20: #error “`ft2build.h’ hasn’t been included yet!”
/usr/local/include/freetype2/freetype/freetype.h:21: #error “Please always use macros to include FreeType header files.”
/usr/local/include/freetype2/freetype/freetype.h:22: #error “Example:”
/usr/local/include/freetype2/freetype/freetype.h:23: #error ” #include”
/usr/local/include/freetype2/freetype/freetype.h:24: #error ” #include FT_FREETYPE_H”
*** Error code 1
というエラーがでてしまいます。freetype.hは直接includeすんな!という事らしいです。
なので、回避するために gdft.c を編集します。
php-4.*.*/ext/gd/libgd/gdft.c
ファイルは上記に存在します。
#include “gdcache.h”
#include “freetype/freetype.h”
#include “freetype/ftglyph.h”↓
#include “gdcache.h”
#include
#include FT_FREETYPE_H
#include “freetype/ftglyph.h”
これでmakeが通るはずです。ちなみに、php-4.4.1では修正されているようで、上記編集をしなくてもコンパイルは通りました。
以下、確認です。
/usr/local/php/bin/php -i | less
gd
GD Support => enabled
GD Version => bundled (2.0.15 compatible)
FreeType Support => enabled
FreeType Linkage => with freetype
GIF Read Support => enabled
PNG Support => enabled
WBMP Support => enabled
XBM Support => enabled
freetypeがGD上でenableになっています。