GD Patch

From: Date: Thu, 12 Apr 2001 17:38:58 +0000
Subject: GD Patch
Groups: php.dev 
Request: Send a blank email to php-dev+get-51505@lists.php.net to get a copy of this message
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
« previous php.dev (#51505) next »