Hi,
I've patched the GD extension to support true color and alpha blending as found in GD
2.0.1, plus some other functions from earlier GD versions.
Before I commit it I would like a build guru to double check the config.m4 part to
make sure it's safe.
GD 2.0 builds as a shared library by default, and requires freetype 2 rather than
libttf.
If you give me the go ahead, I will commit it.
--Wez.
The config.m4 part follows (also attached):
diff -u -r1.54 config.m4
--- config.m4 2001/03/27 20:34:26 1.54
+++ config.m4 2001/04/12 17:23:44
@@ -23,7 +23,32 @@
])
])
+AC_DEFUN(PHP_GD_PNG,[
+ AC_MSG_CHECKING([for libpng (needed by gd-2.0)])
+ AC_ARG_WITH(png-dir,
+ [ --with-png-dir[=DIR] GD: png dir for gd-2.0+],[
+ AC_MSG_RESULT(yes)
+ if test "$withval" = "yes"; then
+ withval="/usr/local"
+ fi
+ jold_LIBS=$LIBS
+ LIBS="$LIBS -L$withval/lib"
+ AC_CHECK_LIB(png,png_info_init, [LIBS="$LIBS -lpng"],[AC_MSG_RESULT(no)],)
+ LIBS=$jold_LIBS
+ if test "$shared" = "yes"; then
+ GD_LIBS="$GD_LIBS -lpng"
+ GD_LFLAGS="$GD_LFLAGS -L$withval/lib"
+ else
+ PHP_ADD_LIBRARY_WITH_PATH(png, $withval/lib)
+ fi
+ LIBS="$LIBS -L$withval/lib -lpng"
+ ],[
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(If configure fails try --with-png-dir=<DIR>)
+ ])
+])
+
AC_DEFUN(PHP_GD_XPM,[
AC_MSG_CHECKING([for libXpm (needed by gd-1.8+)])
AC_ARG_WITH(xpm-dir,
@@ -44,8 +69,31 @@
AC_MSG_WARN(If configure fails try --with-xpm-dir=<DIR>)
])
])
-
+AC_DEFUN(PHP_GD_FREETYPE,[
+ AC_MSG_CHECKING([for freetype(2) (needed by gd 2.0+)])
+ AC_ARG_WITH(freetype-dir,
+ [ --with-freetype-dir[=DIR] GD: freetype 2 dir for gd 2.0+],[
+ for i in /usr /usr/local "$CHECK_FREETYPE" ; do
+ if test -f "$i/include/freetype2/freetype/freetype.h"; then
+ FREETYPE2_DIR="$i"
+ FREETYPE2_INC_DIR="$i/include/freetype/freetype2"
+ fi
+ done
+ if test -n "$FREETYPE2_DIR" ; then
+ AC_DEFINE(HAVE_LIBFREETYPE,1,[ ])
+ PHP_ADD_LIBRARY_WITH_PATH(freetype, $FREETYPE2_DIR/lib)
+ PHP_ADD_INCLUDE($FREETYPE2_INC_DIR)
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no (freetype2 not found))
+ fi
+ ],[
+ AC_MSG_RESULT(no)
+ AC_MSG_RESULT(If configure fails, try --with-freetype2-dir=<DIR>)
+ ])
+])
+
AC_DEFUN(PHP_GD_CHECK_VERSION,[
AC_CHECK_LIB(z, compress, LIBS="-lz $LIBS",,)
AC_CHECK_LIB(png,png_info_init, LIBS="-lpng $LIBS",,)
@@ -58,6 +106,9 @@
AC_CHECK_LIB(gd, gdImageWBMP, [AC_DEFINE(HAVE_GD_WBMP, 1, [ ])])
AC_CHECK_LIB(gd, gdImageCreateFromJpeg, [AC_DEFINE(HAVE_GD_JPG, 1, [ ])])
AC_CHECK_LIB(gd, gdImageCreateFromXpm, [AC_DEFINE(HAVE_GD_XPM, 1, [ ])])
+ AC_CHECK_LIB(gd, gdImageCreateTrueColor, [AC_DEFINE(HAVE_LIBGD20, 1, [ ])])
+ AC_CHECK_LIB(gd, gdImageSetTile, [AC_DEFINE(HAVE_GD_IMAGESETTILE, 1,
+[ ])])
+ AC_CHECK_LIB(gd, gdImageSetBrush,
+[AC_DEFINE(HAVE_GD_IMAGESETBRUSH, 1, [ ])])
])
@@ -84,7 +135,9 @@
PHP_WITH_SHARED
old_withval=$withval
PHP_GD_JPEG
+ PHP_GD_PNG
PHP_GD_XPM
+ PHP_GD_FREETYPE
withval=$old_withval
AC_MSG_CHECKING(whether to include GD support)
@@ -183,6 +236,8 @@
if test "$with_gd" != "no" && test "$ac_cv_lib_gd_gdImageLine" = "yes"; then
CHECK_TTF="yes"
+
+
AC_ARG_WITH(ttf,
[ --with-ttf[=DIR] GD: Include FreeType 1.x support],[
if test $withval = "no" ; then
@@ -191,7 +246,7 @@
CHECK_TTF="$withval"
fi
])
-
+
AC_MSG_CHECKING(whether to include FreeType 1.x support)
if test -n "$CHECK_TTF" ; then
for i in /usr /usr/local "$CHECK_TTF" ; do
RCS file: /repository/php4/ext/gd/config.m4,v
retrieving revision 1.54
diff -u -r1.54 config.m4
--- config.m4 2001/03/27 20:34:26 1.54
+++ config.m4 2001/04/12 17:23:44
@@ -23,7 +23,32 @@
])
])
+AC_DEFUN(PHP_GD_PNG,[
+ AC_MSG_CHECKING([for libpng (needed by gd-2.0)])
+ AC_ARG_WITH(png-dir,
+ [ --with-png-dir[=DIR] GD: png dir for gd-2.0+],[
+ AC_MSG_RESULT(yes)
+ if test "$withval" = "yes"; then
+ withval="/usr/local"
+ fi
+ jold_LIBS=$LIBS
+ LIBS="$LIBS -L$withval/lib"
+ AC_CHECK_LIB(png,png_info_init, [LIBS="$LIBS -lpng"],[AC_MSG_RESULT(no)],)
+ LIBS=$jold_LIBS
+ if test "$shared" = "yes"; then
+ GD_LIBS="$GD_LIBS -lpng"
+ GD_LFLAGS="$GD_LFLAGS -L$withval/lib"
+ else
+ PHP_ADD_LIBRARY_WITH_PATH(png, $withval/lib)
+ fi
+ LIBS="$LIBS -L$withval/lib -lpng"
+ ],[
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(If configure fails try --with-png-dir=<DIR>)
+ ])
+])
+
AC_DEFUN(PHP_GD_XPM,[
AC_MSG_CHECKING([for libXpm (needed by gd-1.8+)])
AC_ARG_WITH(xpm-dir,
@@ -44,8 +69,31 @@
AC_MSG_WARN(If configure fails try --with-xpm-dir=<DIR>)
])
])
-
+AC_DEFUN(PHP_GD_FREETYPE,[
+ AC_MSG_CHECKING([for freetype(2) (needed by gd 2.0+)])
+ AC_ARG_WITH(freetype-dir,
+ [ --with-freetype-dir[=DIR] GD: freetype 2 dir for gd 2.0+],[
+ for i in /usr /usr/local "$CHECK_FREETYPE" ; do
+ if test -f "$i/include/freetype2/freetype/freetype.h"; then
+ FREETYPE2_DIR="$i"
+ FREETYPE2_INC_DIR="$i/include/freetype/freetype2"
+ fi
+ done
+ if test -n "$FREETYPE2_DIR" ; then
+ AC_DEFINE(HAVE_LIBFREETYPE,1,[ ])
+ PHP_ADD_LIBRARY_WITH_PATH(freetype, $FREETYPE2_DIR/lib)
+ PHP_ADD_INCLUDE($FREETYPE2_INC_DIR)
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no (freetype2 not found))
+ fi
+ ],[
+ AC_MSG_RESULT(no)
+ AC_MSG_RESULT(If configure fails, try
+--with-freetype2-dir=<DIR>)
+ ])
+])
+
AC_DEFUN(PHP_GD_CHECK_VERSION,[
AC_CHECK_LIB(z, compress, LIBS="-lz $LIBS",,)
AC_CHECK_LIB(png,png_info_init, LIBS="-lpng $LIBS",,)
@@ -58,6 +106,9 @@
AC_CHECK_LIB(gd, gdImageWBMP, [AC_DEFINE(HAVE_GD_WBMP, 1, [ ])])
AC_CHECK_LIB(gd, gdImageCreateFromJpeg, [AC_DEFINE(HAVE_GD_JPG, 1, [ ])])
AC_CHECK_LIB(gd, gdImageCreateFromXpm, [AC_DEFINE(HAVE_GD_XPM, 1, [ ])])
+ AC_CHECK_LIB(gd, gdImageCreateTrueColor, [AC_DEFINE(HAVE_LIBGD20, 1, [ ])])
+ AC_CHECK_LIB(gd, gdImageSetTile,
+[AC_DEFINE(HAVE_GD_IMAGESETTILE, 1, [ ])])
+ AC_CHECK_LIB(gd, gdImageSetBrush,
+[AC_DEFINE(HAVE_GD_IMAGESETBRUSH, 1, [ ])])
])
@@ -84,7 +135,9 @@
PHP_WITH_SHARED
old_withval=$withval
PHP_GD_JPEG
+ PHP_GD_PNG
PHP_GD_XPM
+ PHP_GD_FREETYPE
withval=$old_withval
AC_MSG_CHECKING(whether to include GD support)
@@ -183,6 +236,8 @@
if test "$with_gd" != "no" && test "$ac_cv_lib_gd_gdImageLine" = "yes"; then
CHECK_TTF="yes"
+
+
AC_ARG_WITH(ttf,
[ --with-ttf[=DIR] GD: Include FreeType 1.x support],[
if test $withval = "no" ; then
@@ -191,7 +246,7 @@
CHECK_TTF="$withval"
fi
])
-
+
AC_MSG_CHECKING(whether to include FreeType 1.x support)
if test -n "$CHECK_TTF" ; then
for i in /usr /usr/local "$CHECK_TTF" ; do
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]