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]