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]

Reply via email to