dnl
PHP_ARG_WITH(gd, for GD support,
-[ --with-gd[=DIR] Include GD support where DIR is GD install prefix.
- If DIR is not set, the bundled GD library will be used])
+[ --with-gd[=FILE] Include GD support. FILE is the optional pathname to gdlib-config.
+ If FILE is not set, the bundled GD library will be used])
if test -z "$PHP_JPEG_DIR"; then
PHP_ARG_WITH(jpeg-dir, for the location of libjpeg,
dnl Checks for the configure options
dnl
-AC_DEFUN([PHP_GD_JPEG],[
+AC_DEFUN([PHP_GD_JPEG],
+[
if test "$PHP_JPEG_DIR" != "no"; then
for i in $PHP_JPEG_DIR /usr/local /usr; do
AC_MSG_ERROR([libjpeg.(a|so) not found.])
fi
- PHP_CHECK_LIBRARY(jpeg,jpeg_read_header,
+ PHP_CHECK_LIBRARY(jpeg, jpeg_read_header,
[
PHP_ADD_INCLUDE($GD_JPEG_DIR/include)
PHP_ADD_LIBRARY_WITH_PATH(jpeg, $GD_JPEG_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD)
+ AC_DEFINE(HAVE_GD_JPG, 1, [ ])
+ GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_LIBJPEG"
],[
AC_MSG_ERROR([Problem with libjpeg.(a|so). Please check config.log for more information.])
],[
-L$GD_JPEG_DIR/$PHP_LIBDIR
])
- else
- AC_MSG_RESULT([If configure fails try --with-jpeg-dir=<DIR>])
fi
])
-AC_DEFUN([PHP_GD_PNG],[
- if test "$PHP_PNG_DIR" != "no"; then
-
- for i in $PHP_PNG_DIR /usr/local /usr; do
- test -f $i/$PHP_LIBDIR/libpng.$SHLIB_SUFFIX_NAME -o -f $i/$PHP_LIBDIR/libpng.a && GD_PNG_DIR=$i && break
- done
-
- if test -z "$GD_PNG_DIR"; then
- AC_MSG_ERROR([libpng.(a|so) not found.])
- fi
+AC_DEFUN([PHP_GD_PNG],
+[
+ if test "$PHP_PNG_DIR" = "no"; then
+ AC_MSG_RESULT([If configure fails try --with-png-dir=<DIR> and --with-zlib-dir=<DIR>])
+ PHP_PNG_DIR=
+ fi
- if test "$PHP_ZLIB_DIR" = "no"; then
- AC_MSG_ERROR([PNG support requires ZLIB. Use --with-zlib-dir=<DIR>])
- fi
+ for i in $PHP_PNG_DIR /usr/local /usr; do
+ test -f $i/$PHP_LIBDIR/libpng.$SHLIB_SUFFIX_NAME -o -f $i/$PHP_LIBDIR/libpng.a && GD_PNG_DIR=$i && break
+ done
- if test ! -f $GD_PNG_DIR/include/png.h; then
- AC_MSG_ERROR([png.h not found.])
- fi
+ if test -z "$GD_PNG_DIR"; then
+ AC_MSG_ERROR([libpng.(a|so) not found.])
+ fi
- PHP_CHECK_LIBRARY(png,png_write_image,
- [
- PHP_ADD_INCLUDE($GD_PNG_DIR/include)
- PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD)
- PHP_ADD_LIBRARY_WITH_PATH(png, $GD_PNG_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD)
- ],[
- AC_MSG_ERROR([Problem with libpng.(a|so) or libz.(a|so). Please check config.log for more information.])
- ],[
- -L$PHP_ZLIB_DIR/$PHP_LIBDIR -lz -L$GD_PNG_DIR/$PHP_LIBDIR
- ])
+ if test "$PHP_ZLIB_DIR" = "no"; then
+ AC_MSG_ERROR([PNG support requires ZLIB. Use --with-zlib-dir=<DIR>])
+ fi
- else
- AC_MSG_RESULT([If configure fails try --with-png-dir=<DIR> and --with-zlib-dir=<DIR>])
+ if test ! -f $GD_PNG_DIR/include/png.h; then
+ AC_MSG_ERROR([png.h not found.])
fi
+
+ PHP_CHECK_LIBRARY(png, png_write_image,
+ [
+ PHP_ADD_INCLUDE($GD_PNG_DIR/include)
+ PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD)
+ PHP_ADD_LIBRARY_WITH_PATH(png, $GD_PNG_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD)
+ GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_LIBPNG"
+ ],[
+ AC_MSG_ERROR([Problem with libpng.(a|so) or libz.(a|so). Please check config.log for more information.])
+ ],[
+ -L$PHP_ZLIB_DIR/$PHP_LIBDIR -lz -L$GD_PNG_DIR/$PHP_LIBDIR
+ ])
])
-AC_DEFUN([PHP_GD_XPM],[
+AC_DEFUN([PHP_GD_XPM],
+[
if test "$PHP_XPM_DIR" != "no"; then
-
for i in $PHP_XPM_DIR /usr/local /usr/X11R6 /usr; do
test -f $i/$PHP_LIBDIR/libXpm.$SHLIB_SUFFIX_NAME -o -f $i/$PHP_LIBDIR/libXpm.a && GD_XPM_DIR=$i && break
done
AC_MSG_ERROR([xpm.h not found.])
fi
- PHP_CHECK_LIBRARY(Xpm,XpmFreeXpmImage,
+ PHP_CHECK_LIBRARY(Xpm, XpmFreeXpmImage,
[
PHP_ADD_INCLUDE($GD_XPM_INC)
PHP_ADD_LIBRARY_WITH_PATH(Xpm, $GD_XPM_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(X11, $GD_XPM_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD)
+ AC_DEFINE(HAVE_GD_XPM, 1, [ ])
+ GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_XPM"
],[
AC_MSG_ERROR([Problem with libXpm.(a|so) or libX11.(a|so). Please check config.log for more information.])
],[
-L$GD_XPM_DIR/$PHP_LIBDIR -lX11
])
- else
- AC_MSG_RESULT(If configure fails try --with-xpm-dir=<DIR>)
fi
])
-AC_DEFUN([PHP_GD_FREETYPE2],[
+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
FREETYPE2_DIR=$i
break
fi
done
-
+
if test -n "$FREETYPE2_DIR" ; then
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(HAVE_GD_STRINGFT, 1, [ ])
+ AC_DEFINE(HAVE_GD_STRINGFTEX, 1, [ ])
+ GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_LIBFREETYPE"
else
AC_MSG_ERROR([freetype2 not found!])
fi
- else
- AC_MSG_RESULT([If configure fails try --with-freetype-dir=<DIR>])
fi
])
-AC_DEFUN([PHP_GD_T1LIB],[
+AC_DEFUN([PHP_GD_T1LIB],
+[
if test "$PHP_T1LIB" != "no"; then
-
for i in $PHP_T1LIB /usr/local /usr; do
test -f "$i/include/t1lib.h" && GD_T1_DIR=$i && break
done
fi
])
-AC_DEFUN([PHP_GD_TTSTR],[
+AC_DEFUN([PHP_GD_TTSTR],
+[
if test "$PHP_GD_NATIVE_TTF" = "yes"; then
AC_DEFINE(USE_GD_IMGSTRTTF, 1, [ ])
fi
])
-AC_DEFUN([PHP_GD_JISX0208],[
+AC_DEFUN([PHP_GD_JISX0208],
+[
if test "$PHP_GD_JIS_CONV" = "yes"; then
- USE_GD_JIS_CONV=1
+ AC_DEFINE(USE_GD_JISX0208, 1, [ ])
+ GDLIB_CFLAGS="$GDLIB_CFLAGS -DJISX0208"
fi
])
-AC_DEFUN([PHP_GD_CHECK_VERSION],[
- GD_VERSION_MAJOR=`gdlib-config --majorversion`
- GD_VERSION_MINOR=`gdlib-config --minorversion`
- GD_VERSION_REVISION=`gdlib-config --revision`
+AC_DEFUN([PHP_GD_CHECK_VERSION],
+[
+ AC_MSG_CHECKING([for GD library version])
+ GD_VERSION=`$GDLIB_CONFIG --version`
+ AC_DEFINE_UNQUOTED(PHP_GD_VERSION_STRING, "$GD_VERSION", [GD library version])
- if test 2 -gt $GD_VERSION_MAJOR; then
- AC_MSG_ERROR("No GD 2.x found")
- fi
+ ac_IFS=[$]IFS
+ IFS="."
+ set $GD_VERSION
+ IFS=$ac_IFS
- if test 0 -le $GD_VERSION_MINOR; then
- AC_MSG_ERROR("No GD 2.x found")
- fi
+ GD_VERNUM=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
- if test 33 -gt $GD_VERSION_REVISION; then
- AC_MSG_ERROR("the minimum version required for GD is 2.0.33")
+ if test "$GD_VERNUM" -lt "2000033"; then
+ AC_MSG_ERROR([GD version 2.0.33 or greater required.])
+ else
+ AC_MSG_RESULT([$GD_VERSION])
fi
-
- GD_FEATURES=`gdlib-config --features`
- for i in $GD_FEATURES; do
- if test "$i" = "GD_PNG"; then
- AC_DEFINE(HAVE_GD_PNG, 1, [ ])
- fi
- if test "$i" = "GD_JPEG"; then
- AC_DEFINE(HAVE_GD_JPG, 1, [ ])
- fi
- if test "$i" = "GD_XPM"; then
- AC_DEFINE(HAVE_GD_XPM, 1, [ ])
- fi
- if test "$i" = "GD_GIF"; then
- AC_DEFINE(HAVE_GD_GIF_CTX, 1, [ ])
- AC_DEFINE(HAVE_GD_GIF_READ, 1, [ ])
- AC_DEFINE(HAVE_GD_GIF_CREATE, 1, [ ])
- fi
- if test "$i" = "GD_FREETYPE"; then
- AC_DEFINE(HAVE_GD_STRINGTTF, 1, [ ])
- AC_DEFINE(HAVE_GD_STRINGFT, 1, [ ])
- AC_DEFINE(HAVE_GD_STRINGFTEX, 1, [ ])
- AC_DEFINE(HAVE_GD_CACHE_CREATE, 1, [ ])
- AC_DEFINE(HAVE_GD_FONTCACHESHUTDOWN,1, [ ])
- AC_DEFINE(HAVE_GD_FREEFONTCACHE, 1, [ ])
- fi
- done
-
- AC_DEFINE(HAVE_GD_GD2, 1, [ ])
- AC_DEFINE(HAVE_GD_WBMP, 1, [ ])
- AC_DEFINE(HAVE_LIBGD20, 1, [ ])
- AC_DEFINE(HAVE_GD_IMAGESETTILE, 1, [ ])
- AC_DEFINE(HAVE_GD_IMAGEELLIPSE, 1, [ ])
- AC_DEFINE(HAVE_GD_IMAGESETBRUSH, 1, [ ])
- AC_DEFINE(HAVE_COLORCLOSESTHWB, 1, [ ])
- AC_DEFINE(HAVE_GDIMAGECOLORRESOLVE, 1, [ ])
- AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX, 1, [ ])
- AC_DEFINE(HAVE_LIBGD13, 1, [ ])
- AC_DEFINE(HAVE_LIBGD15, 1, [ ])
- AC_DEFINE(HAVE_LIBGD204, 1, [ ])
])
dnl
dnl
if test "$PHP_GD" = "yes"; then
+
GD_MODULE_TYPE=builtin
extra_sources="libgd/gd.c libgd/gd_gd.c libgd/gd_gd2.c libgd/gd_io.c libgd/gd_io_dp.c \
libgd/gd_io_file.c libgd/gd_ss.c libgd/gd_io_ss.c libgd/gd_png.c libgd/gd_jpeg.c \
libgd/xbm.c libgd/gd_gif_out.c "
dnl check for fabsf and floorf which are available since C99
- AC_CHECK_FUNCS(fabsf floorf)
+ AC_CHECK_FUNCS([fabsf floorf])
+
+dnl Depending which libraries were included to PHP configure,
+dnl enable the support in bundled GD library
-dnl PNG is required by GD library
- test "$PHP_PNG_DIR" = "no" && PHP_PNG_DIR=yes
-
-dnl Various checks for GD features
PHP_GD_TTSTR
PHP_GD_JISX0208
PHP_GD_JPEG
PHP_GD_PNG
PHP_GD_XPM
PHP_GD_FREETYPE2
- PHP_GD_T1LIB
-dnl These are always available with bundled library
- AC_DEFINE(HAVE_LIBGD, 1, [ ])
- AC_DEFINE(HAVE_LIBGD13, 1, [ ])
- AC_DEFINE(HAVE_LIBGD15, 1, [ ])
- AC_DEFINE(HAVE_LIBGD20, 1, [ ])
- AC_DEFINE(HAVE_LIBGD204, 1, [ ])
- AC_DEFINE(HAVE_GD_IMAGESETTILE, 1, [ ])
- AC_DEFINE(HAVE_GD_IMAGESETBRUSH, 1, [ ])
- AC_DEFINE(HAVE_GDIMAGECOLORRESOLVE, 1, [ ])
- AC_DEFINE(HAVE_COLORCLOSESTHWB, 1, [ ])
- AC_DEFINE(HAVE_GD_WBMP, 1, [ ])
- AC_DEFINE(HAVE_GD_GD2, 1, [ ])
+dnl These are always defined with bundled library
+ AC_DEFINE(HAVE_GD_BUNDLED, 1, [ ])
AC_DEFINE(HAVE_GD_PNG, 1, [ ])
AC_DEFINE(HAVE_GD_XBM, 1, [ ])
- AC_DEFINE(HAVE_GD_BUNDLED, 1, [ ])
+ AC_DEFINE(HAVE_GD_GIF_CTX, 1, [ ])
AC_DEFINE(HAVE_GD_GIF_READ, 1, [ ])
AC_DEFINE(HAVE_GD_GIF_CREATE, 1, [ ])
- AC_DEFINE(HAVE_GD_IMAGEELLIPSE, 1, [ ])
AC_DEFINE(HAVE_GD_FONTCACHESHUTDOWN,1, [ ])
- AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX, 1, [ ])
- AC_DEFINE(HAVE_GD_GIF_CTX, 1, [ ])
-
-dnl Make sure the libgd/ is first in the include path
- GDLIB_CFLAGS="-DHAVE_LIBPNG"
+elif test "$PHP_GD" != "no"; then
-dnl Depending which libraries were included to PHP configure,
-dnl enable the support in bundled GD library
-
- if test -n "$GD_JPEG_DIR"; then
- AC_DEFINE(HAVE_GD_JPG, 1, [ ])
- GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_LIBJPEG"
- fi
-
- if test -n "$GD_XPM_DIR"; then
- AC_DEFINE(HAVE_GD_XPM, 1, [ ])
- GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_XPM"
- fi
-
- if test -n "$FREETYPE2_DIR"; then
- AC_DEFINE(HAVE_GD_STRINGFT, 1, [ ])
- AC_DEFINE(HAVE_GD_STRINGFTEX, 1, [ ])
- GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_LIBFREETYPE"
- fi
-
- if test -n "$USE_GD_JIS_CONV"; then
- AC_DEFINE(USE_GD_JISX0208, 1, [ ])
- GDLIB_CFLAGS="$GDLIB_CFLAGS -DJISX0208"
+ if test -x "$PHP_GD"; then
+ GDLIB_CONFIG=$PHP_GD
+ PHP_GD_CHECK_VERSION
+ else
+ AC_MSG_ERROR([gdlib-config not found.])
fi
-else
-
- if test "$PHP_GD" != "no"; then
GD_MODULE_TYPE=external
extra_sources="gdcache.c"
-dnl Various checks for GD features
+ GD_FEATURES=`$GDLIB_CONFIG --features`
-dnl T1LIB support is gdlib independent
- PHP_GD_T1LIB
-
-dnl Header path
- for i in include/gd include gd ""; do
- test -f "$PHP_GD/$i/gd.h" && GD_INCLUDE="$PHP_GD/$i"
- done
- GD_INCLUDE=`gdlib-config --includedir`
-
-dnl Library path
- for i in $PHP_LIBDIR/gd $PHP_LIBDIR gd ""; do
- test -f "$PHP_GD/$i/libgd.$SHLIB_SUFFIX_NAME" -o -f "$PHP_GD/$i/libgd.a" && GD_LIB="$PHP_GD/$i"
+ for i in $GD_FEATURES; do
+ case $i in
+ GD_PNG[)]
+ AC_DEFINE(HAVE_GD_PNG, 1, [ ])
+ ;;
+ GD_JPEG[)]
+ AC_DEFINE(HAVE_GD_JPG, 1, [ ])
+ ;;
+ GD_XPM[)]
+ AC_DEFINE(HAVE_GD_XPM, 1, [ ])
+ ;;
+ GD_GIF[)]
+ AC_DEFINE(HAVE_GD_GIF_CTX, 1, [ ])
+ AC_DEFINE(HAVE_GD_GIF_READ, 1, [ ])
+ AC_DEFINE(HAVE_GD_GIF_CREATE, 1, [ ])
+ ;;
+ GD_FREETYPE[)]
+ AC_DEFINE(HAVE_GD_STRINGTTF, 1, [ ])
+ AC_DEFINE(HAVE_GD_STRINGFT, 1, [ ])
+ AC_DEFINE(HAVE_GD_STRINGFTEX, 1, [ ])
+ AC_DEFINE(HAVE_GD_CACHE_CREATE, 1, [ ])
+ AC_DEFINE(HAVE_GD_FONTCACHESHUTDOWN,1, [ ])
+ AC_DEFINE(HAVE_GD_FREEFONTCACHE, 1, [ ])
+ ;;
+ GD_FONTCONFIG[)]
+ dnl Not supported (yet?)
+ ;;
+ esac
done
- if test -n "$GD_INCLUDE" && test -n "$GD_LIB"; then
- PHP_ADD_LIBRARY_WITH_PATH(gd, $GD_LIB, GD_SHARED_LIBADD)
- AC_DEFINE(HAVE_LIBGD,1,[ ])
- PHP_GD_CHECK_VERSION
- elif test -z "$GD_INCLUDE"; then
- AC_MSG_ERROR([Unable to find gd.h anywhere under $PHP_GD])
- else
- AC_MSG_ERROR([Unable to find libgd.(a|so) anywhere under $PHP_GD])
- fi
+dnl GD library path
+ GD_LIBDIR=`$GDLIB_CONFIG --libdir`
+
+dnl Extra libraries and libpaths needed to link with libgd
+ GD_LDFLAGS=`$GDLIB_CONFIG --ldflags`
+ GD_LIBS=`$GDLIB_CONFIG --libs`
- PHP_EXPAND_PATH($GD_INCLUDE, GD_INCLUDE)
+ PHP_EVAL_LIBLINE([$GD_LDFLAGS $GD_LIBS -L$GD_LIBDIR -lgd], GD_SHARED_LIBADD)
- fi
+dnl Build test
+ PHP_CHECK_LIBRARY(gd, gdImageCreate, [], [
+ AC_MSG_ERROR([GD build test failed. Please check the config.log for details.])
+ ], [ -L$GD_LIBDIR $GD_SHARED_LIBADD ])
fi
dnl
dnl Common for both builtin and external GD
dnl
if test "$PHP_GD" != "no"; then
+
+dnl These defines are always available
+dnl FIXME: Cleanup the sources so that these are not needed!
+ AC_DEFINE(HAVE_GD_GD2, 1, [ ])
+ AC_DEFINE(HAVE_GD_WBMP, 1, [ ])
+ AC_DEFINE(HAVE_LIBGD13, 1, [ ])
+ AC_DEFINE(HAVE_LIBGD15, 1, [ ])
+ AC_DEFINE(HAVE_LIBGD20, 1, [ ])
+ AC_DEFINE(HAVE_LIBGD204, 1, [ ])
+ AC_DEFINE(HAVE_GD_IMAGESETTILE, 1, [ ])
+ AC_DEFINE(HAVE_GD_IMAGEELLIPSE, 1, [ ])
+ AC_DEFINE(HAVE_GD_IMAGESETBRUSH, 1, [ ])
+ AC_DEFINE(HAVE_COLORCLOSESTHWB, 1, [ ])
+ AC_DEFINE(HAVE_GDIMAGECOLORRESOLVE, 1, [ ])
+ AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX, 1, [ ])
+
+dnl T1LIB support is gdlib independent
+ PHP_GD_T1LIB
+
PHP_NEW_EXTENSION(gd, gd.c $extra_sources, $ext_shared,, \\$(GDLIB_CFLAGS))
+ AC_DEFINE(HAVE_LIBGD,1,[ ])
if test "$GD_MODULE_TYPE" = "builtin"; then
GDLIB_CFLAGS="-I$ext_srcdir/libgd $GDLIB_CFLAGS"
PHP_ADD_BUILD_DIR($ext_builddir/libgd)
GD_HEADER_DIRS="ext/gd/ ext/gd/libgd/"
else
+ GD_INCDIR=`$GDLIB_CONFIG --includedir`
+ GD_CFLAGS=`$GDLIB_CONFIG --cflags`
+ GDLIB_CFLAGS="-I$GD_INCDIR $GD_CFLAGS"
GD_HEADER_DIRS="ext/gd/"
- GD_INCLUDE=`gdlib-config --includedir`
- GDLIB_CFLAGS=`gdlib-config --cflags`
- GDLIB_LIBS=`gdlib-config --libs`
- GDLIB_CFLAGS="-I$GD_INCLUDE $GDLIB_CFLAGS $GDLIB_LIBS"
- PHP_ADD_INCLUDE($GD_INCLUDE)
-
- PHP_CHECK_LIBRARY(gd, gdImageCreate, [], [
- AC_MSG_ERROR([GD build test failed. Please check the config.log for details.])
- ], [ -L$GD_LIB $GD_SHARED_LIBADD ])
fi
PHP_INSTALL_HEADERS([$GD_HEADER_DIRS])
- PHP_SUBST(GDLIB_CFLAGS)
PHP_SUBST(GD_SHARED_LIBADD)
+ PHP_SUBST(GDLIB_CFLAGS)
fi