]> granicus.if.org Git - php/commitdiff
Required GD >= 2.1.0 or GD bundled, this allows us to remove most of the #ifdef
authorOndřej Surý <ondrej@sury.org>
Fri, 3 May 2013 11:53:55 +0000 (13:53 +0200)
committerRemi Collet <remi@php.net>
Sat, 4 May 2013 14:50:06 +0000 (16:50 +0200)
ext/gd/config.m4
ext/gd/gd.c
ext/gd/gd_ctx.c
ext/gd/gdcache.c
ext/gd/php_gd.h

index dc38562935155847555874f3db3b6081b4ab3e20..c440782df9a32f3dab62445e22338a502fff786f 100644 (file)
@@ -259,43 +259,33 @@ AC_DEFUN([PHP_GD_JISX0208],[
 ])
 
 AC_DEFUN([PHP_GD_CHECK_VERSION],[
-  PHP_CHECK_LIBRARY(gd, gdImageString16,        [AC_DEFINE(HAVE_LIBGD13,             1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImagePaletteCopy,     [AC_DEFINE(HAVE_LIBGD15,             1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
   PHP_CHECK_LIBRARY(gd, gdImageCreateFromPng,   [AC_DEFINE(HAVE_GD_PNG,              1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageCreateFromGif,   [AC_DEFINE(HAVE_GD_GIF_READ,         1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageGif,             [AC_DEFINE(HAVE_GD_GIF_CREATE,       1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageWBMP,            [AC_DEFINE(HAVE_GD_WBMP,             1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
   PHP_CHECK_LIBRARY(gd, gdImageCreateFromWebp,  [AC_DEFINE(HAVE_GD_WEBP,             1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
   PHP_CHECK_LIBRARY(gd, gdImageCreateFromJpeg,  [AC_DEFINE(HAVE_GD_JPG,              1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
   PHP_CHECK_LIBRARY(gd, gdImageCreateFromXpm,   [AC_DEFINE(HAVE_GD_XPM,              1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageCreateFromGd2,   [AC_DEFINE(HAVE_GD_GD2,              1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageCreateTrueColor, [AC_DEFINE(HAVE_LIBGD20,             1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageSetTile,         [AC_DEFINE(HAVE_GD_IMAGESETTILE,     1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageEllipse,         [AC_DEFINE(HAVE_GD_IMAGEELLIPSE,     1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageSetBrush,        [AC_DEFINE(HAVE_GD_IMAGESETBRUSH,    1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageStringTTF,       [AC_DEFINE(HAVE_GD_STRINGTTF,        1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageStringFT,        [AC_DEFINE(HAVE_GD_STRINGFT,         1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageStringFTEx,      [AC_DEFINE(HAVE_GD_STRINGFTEX,       1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageColorClosestHWB, [AC_DEFINE(HAVE_COLORCLOSESTHWB,     1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageColorResolve,    [AC_DEFINE(HAVE_GDIMAGECOLORRESOLVE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageGifCtx,          [AC_DEFINE(HAVE_GD_GIF_CTX,          1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdCacheCreate,          [AC_DEFINE(HAVE_GD_CACHE_CREATE,     1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdFontCacheShutdown,    [AC_DEFINE(HAVE_GD_FONTCACHESHUTDOWN,1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdFreeFontCache,        [AC_DEFINE(HAVE_GD_FREEFONTCACHE,    1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdFontCacheMutexSetup,  [AC_DEFINE(HAVE_GD_FONTMUTEX,        1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdNewDynamicCtxEx,      [AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX,   1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageConvolution,     [AC_DEFINE(HAVE_GD_IMAGE_CONVOLUTION,      1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImagePixelate,        [AC_DEFINE(HAVE_GD_IMAGE_PIXELATE,         1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageFlipBoth,        [AC_DEFINE(HAVE_GD_IMAGE_FLIP,       1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageCreateFromJpegEx,[AC_DEFINE(HAVE_GD_JPGEX,            1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdImageCreateFromXbm,   [AC_DEFINE(HAVE_GD_XBM,              1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-  PHP_CHECK_LIBRARY(gd, gdSetErrorMethod,       [AC_DEFINE(HAVE_LIBGD21,             1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
+  PHP_CHECK_LIBRARY(gd, gdImageStringFT,        [AC_DEFINE(HAVE_GD_FREETYPE,         1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
 ])
 
 dnl
 dnl Main GD configure
 dnl
 
+dnl
+dnl Common for both builtin and external GD
+dnl
+if test "$PHP_GD" != "no"; then
+dnl Various checks for GD features
+  PHP_GD_ZLIB
+  PHP_GD_TTSTR
+  PHP_GD_VPX
+  PHP_GD_JPEG
+  PHP_GD_PNG
+  PHP_GD_XPM
+  PHP_GD_FREETYPE2
+  PHP_GD_T1LIB
+  PHP_GD_JISX0208
+fi
+
 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 \
@@ -305,7 +295,7 @@ if test "$PHP_GD" = "yes"; then
                  libgd/gdcache.c libgd/gdkanji.c libgd/wbmp.c libgd/gd_wbmp.c libgd/gdhelpers.c \
                  libgd/gd_topal.c libgd/gd_gif_in.c libgd/xbm.c libgd/gd_gif_out.c libgd/gd_security.c \
                  libgd/gd_filter.c libgd/gd_pixelate.c libgd/gd_arc.c libgd/gd_rotate.c libgd/gd_color.c \
-                                libgd/gd_transform.c libgd/gd_crop.c libgd/gd_interpolation.c libgd/gd_matrix.c"
+                 libgd/gd_transform.c libgd/gd_crop.c libgd/gd_interpolation.c libgd/gd_matrix.c"
 
 dnl check for fabsf and floorf which are available since C99
   AC_CHECK_FUNCS(fabsf floorf)
@@ -313,41 +303,10 @@ dnl check for fabsf and floorf which are available since C99
 dnl PNG is required by GD library
   test "$PHP_PNG_DIR" = "no" && PHP_PNG_DIR=yes
 
-dnl Various checks for GD features
-  PHP_GD_ZLIB
-  PHP_GD_TTSTR
-  PHP_GD_JISX0208
-  PHP_GD_JPEG
-  PHP_GD_VPX
-  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_LIBGD21,             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, [ ])
-  AC_DEFINE(HAVE_GD_PNG,              1, [ ])
-  AC_DEFINE(HAVE_GD_XBM,              1, [ ])
   AC_DEFINE(HAVE_GD_BUNDLED,          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_FONTMUTEX,        1, [ ])
-  AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX,   1, [ ])
-  AC_DEFINE(HAVE_GD_GIF_CTX,          1, [ ])
-  AC_DEFINE(HAVE_GD_IMAGE_FLIP,       1, [ ])
+  AC_DEFINE(HAVE_GD_PNG,              1, [ ])
+  AC_DEFINE(HAVE_GD_CACHE_CREATE      1, [ ])
 
 dnl Make sure the libgd/ is first in the include path
   GDLIB_CFLAGS="-DHAVE_LIBPNG"
@@ -362,7 +321,6 @@ dnl enable the support in bundled GD library
 
   if test -n "$GD_JPEG_DIR"; then
     AC_DEFINE(HAVE_GD_JPG, 1, [ ])
-    AC_DEFINE(HAVE_GD_JPGEX, 1, [ ])
     GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_LIBJPEG"
   fi
 
@@ -372,8 +330,7 @@ dnl enable the support in bundled GD library
   fi
 
   if test -n "$FREETYPE2_DIR"; then
-    AC_DEFINE(HAVE_GD_STRINGFT,   1, [ ])
-    AC_DEFINE(HAVE_GD_STRINGFTEX, 1, [ ])
+    AC_DEFINE(HAVE_GD_FREETYPE,   1, [ ])
     AC_DEFINE(ENABLE_GD_TTF, 1, [ ])
     GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_LIBFREETYPE -DENABLE_GD_TTF"
   fi
@@ -387,12 +344,7 @@ else
 
  if test "$PHP_GD" != "no"; then
   GD_MODULE_TYPE=external
-  if test -n "$HAVE_LIBGD21"; then
-    extra_sources="libgd/gd_compat.c"
-  else
-    extra_sources="gdcache.c libgd/gd_compat.c libgd/gd_filter.c libgd/gd_pixelate.c libgd/gd_arc.c \
-                   libgd/gd_rotate.c libgd/gd_color.c"
-  fi
+  extra_sources="libgd/gd_compat.c"
 
 dnl Various checks for GD features
   PHP_GD_ZLIB
@@ -405,48 +357,29 @@ dnl Various checks for GD features
   PHP_GD_T1LIB
 
 dnl Header path
-  for i in include/gd1.3 include/gd include gd1.3 gd ""; do
+  for i in include/gd include gd ""; do
     test -f "$PHP_GD/$i/gd.h" && GD_INCLUDE="$PHP_GD/$i"
   done
 
-dnl Library path
-  for i in $PHP_LIBDIR/gd1.3 $PHP_LIBDIR/gd $PHP_LIBDIR gd1.3 gd ""; do
-    test -f "$PHP_GD/$i/libgd.$SHLIB_SUFFIX_NAME" || test -f "$PHP_GD/$i/libgd.a" && GD_LIB="$PHP_GD/$i"
-  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
+  if 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
 
-  PHP_EXPAND_PATH($GD_INCLUDE, GD_INCLUDE)
+dnl Library path
 
-  if test -n "$HAVE_LIBGD21"; then
-    AC_DEFINE(HAVE_LIBGD204, 1, [ ])
-  else
-    dnl
-    dnl Check for gd 2.0.4 greater availability
-    dnl
-    old_CPPFLAGS=$CPPFLAGS
-    CPPFLAGS=-I$GD_INCLUDE
-    AC_TRY_COMPILE([
-#include <gd.h>
-#include <stdlib.h>
-  ], [
-gdIOCtx *ctx;
-ctx = malloc(sizeof(gdIOCtx));
-ctx->gd_free = 1;
-    ], [
-      AC_DEFINE(HAVE_LIBGD204, 1, [ ])
-    ])
-    CPPFLAGS=$old_CPPFLAGS
-  fi
+  PHP_CHECK_LIBRARY(gd, gdSetErrorMethod,
+  [
+    PHP_ADD_LIBRARY_WITH_PATH(gd, $PHP_GD/$PHP_LIBDIR, GD_SHARED_LIBADD)
+    AC_DEFINE(HAVE_LIBGD, 1, [ ])
+  ],[
+    AC_MSG_ERROR([Unable to find libgd.(a|so) >= 2.1.0 anywhere under $PHP_GD])
+  ],[
+    -L$GD_PHP/$PHP_LIBDIR
+  ])
+
+  PHP_GD_CHECK_VERSION
 
+  PHP_EXPAND_PATH($GD_INCLUDE, GD_INCLUDE)
  fi
 fi
 
@@ -465,9 +398,6 @@ if test "$PHP_GD" != "no"; then
       AC_MSG_ERROR([GD build test failed. Please check the config.log for details.])
     ], [ $GD_SHARED_LIBADD ], [char foobar () {}])
   else
-    if test "$HAVE_LIBGD21" = "no"; then
-      PHP_ADD_BUILD_DIR($ext_builddir/libgd)
-    fi
     GD_HEADER_DIRS="ext/gd/"
     GDLIB_CFLAGS="-I$GD_INCLUDE $GDLIB_CFLAGS"
     PHP_ADD_INCLUDE($GD_INCLUDE)
index 94b057fb16c53413039333691fec994827869ef7..eefa5df8017b441c01e75369230f603056d4e939 100644 (file)
@@ -83,38 +83,7 @@ static void php_free_ps_enc(zend_rsrc_list_entry *rsrc TSRMLS_DC);
 static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int, int);
 #endif
 
-#if HAVE_LIBGD15
-/* it's >= 1.5, i.e. has IOCtx */
-#define USE_GD_IOCTX 1
-#else
-#undef USE_GD_IOCTX
-#endif
-
-#ifdef USE_GD_IOCTX
 #include "gd_ctx.c"
-#else
-#define gdImageCreateFromGdCtx      NULL
-#define gdImageCreateFromGd2Ctx     NULL
-#define gdImageCreateFromGd2partCtx NULL
-#define gdImageCreateFromGifCtx     NULL
-#define gdImageCreateFromJpegCtx    NULL
-#define gdImageCreateFromPngCtx     NULL
-#define gdImageCreateFromWBMPCtx    NULL
-typedef FILE gdIOCtx;
-#define CTX_PUTC(c, fp) fputc(c, fp)
-#endif
-
-#ifndef HAVE_GDIMAGECOLORRESOLVE
-extern int gdImageColorResolve(gdImagePtr, int, int, int);
-#endif
-
-#if HAVE_COLORCLOSESTHWB
-int gdImageColorClosestHWB(gdImagePtr im, int r, int g, int b);
-#endif
-
-#ifndef HAVE_GD_DYNAMIC_CTX_EX
-#define gdNewDynamicCtxEx(len, data, val) gdNewDynamicCtx(len, data)
-#endif
 
 /* Section Filters Declarations */
 /* IMPORTANT NOTE FOR NEW FILTER
@@ -231,12 +200,10 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagesavealpha, 0)
        ZEND_ARG_INFO(0, save)
 ZEND_END_ARG_INFO()
 
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
 ZEND_BEGIN_ARG_INFO(arginfo_imagelayereffect, 0)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, effect)
 ZEND_END_ARG_INFO()
-#endif
 
 ZEND_BEGIN_ARG_INFO(arginfo_imagecolorallocatealpha, 0)
        ZEND_ARG_INFO(0, im)
@@ -300,19 +267,15 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_imagerotate, 0, 0, 3)
        ZEND_ARG_INFO(0, ignoretransparent)
 ZEND_END_ARG_INFO()
 
-#if HAVE_GD_IMAGESETTILE
 ZEND_BEGIN_ARG_INFO(arginfo_imagesettile, 0)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, tile)
 ZEND_END_ARG_INFO()
-#endif
 
-#if HAVE_GD_IMAGESETBRUSH
 ZEND_BEGIN_ARG_INFO(arginfo_imagesetbrush, 0)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, brush)
 ZEND_END_ARG_INFO()
-#endif
 
 ZEND_BEGIN_ARG_INFO(arginfo_imagecreate, 0)
        ZEND_ARG_INFO(0, x_size)
@@ -322,17 +285,13 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_INFO(arginfo_imagetypes, 0)
 ZEND_END_ARG_INFO()
 
-#if HAVE_LIBGD15
 ZEND_BEGIN_ARG_INFO(arginfo_imagecreatefromstring, 0)
        ZEND_ARG_INFO(0, image)
 ZEND_END_ARG_INFO()
-#endif
 
-#ifdef HAVE_GD_GIF_READ
 ZEND_BEGIN_ARG_INFO(arginfo_imagecreatefromgif, 0)
        ZEND_ARG_INFO(0, filename)
 ZEND_END_ARG_INFO()
-#endif
 
 #ifdef HAVE_GD_JPG
 ZEND_BEGIN_ARG_INFO(arginfo_imagecreatefromjpeg, 0)
@@ -352,29 +311,24 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagecreatefromwebp, 0)
 ZEND_END_ARG_INFO()
 #endif
 
-#ifdef HAVE_GD_XBM
 ZEND_BEGIN_ARG_INFO(arginfo_imagecreatefromxbm, 0)
        ZEND_ARG_INFO(0, filename)
 ZEND_END_ARG_INFO()
-#endif
 
-#if defined(HAVE_GD_XPM) && (defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21))
+#if defined(HAVE_GD_XPM)
 ZEND_BEGIN_ARG_INFO(arginfo_imagecreatefromxpm, 0)
        ZEND_ARG_INFO(0, filename)
 ZEND_END_ARG_INFO()
 #endif
 
-#ifdef HAVE_GD_WBMP
 ZEND_BEGIN_ARG_INFO(arginfo_imagecreatefromwbmp, 0)
        ZEND_ARG_INFO(0, filename)
 ZEND_END_ARG_INFO()
-#endif
 
 ZEND_BEGIN_ARG_INFO(arginfo_imagecreatefromgd, 0)
        ZEND_ARG_INFO(0, filename)
 ZEND_END_ARG_INFO()
 
-#ifdef HAVE_GD_GD2
 ZEND_BEGIN_ARG_INFO(arginfo_imagecreatefromgd2, 0)
        ZEND_ARG_INFO(0, filename)
 ZEND_END_ARG_INFO()
@@ -386,22 +340,17 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagecreatefromgd2part, 0)
        ZEND_ARG_INFO(0, width)
        ZEND_ARG_INFO(0, height)
 ZEND_END_ARG_INFO()
-#endif
 
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
 ZEND_BEGIN_ARG_INFO_EX(arginfo_imagexbm, 0, 0, 2)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, filename)
        ZEND_ARG_INFO(0, foreground)
 ZEND_END_ARG_INFO()
-#endif
 
-#ifdef HAVE_GD_GIF_CREATE
 ZEND_BEGIN_ARG_INFO_EX(arginfo_imagegif, 0, 0, 1)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, filename)
 ZEND_END_ARG_INFO()
-#endif
 
 #ifdef HAVE_GD_PNG
 ZEND_BEGIN_ARG_INFO_EX(arginfo_imagepng, 0, 0, 1)
@@ -425,27 +374,23 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_imagejpeg, 0, 0, 1)
 ZEND_END_ARG_INFO()
 #endif
 
-#ifdef HAVE_GD_WBMP
 ZEND_BEGIN_ARG_INFO_EX(arginfo_imagewbmp, 0, 0, 1)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, filename)
        ZEND_ARG_INFO(0, foreground)
 ZEND_END_ARG_INFO()
-#endif
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_imagegd, 0, 0, 1)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, filename)
 ZEND_END_ARG_INFO()
 
-#ifdef HAVE_GD_GD2
 ZEND_BEGIN_ARG_INFO_EX(arginfo_imagegd2, 0, 0, 1)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, filename)
        ZEND_ARG_INFO(0, chunk_size)
        ZEND_ARG_INFO(0, type)
 ZEND_END_ARG_INFO()
-#endif
 
 ZEND_BEGIN_ARG_INFO(arginfo_imagedestroy, 0)
        ZEND_ARG_INFO(0, im)
@@ -458,12 +403,10 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagecolorallocate, 0)
        ZEND_ARG_INFO(0, blue)
 ZEND_END_ARG_INFO()
 
-#if HAVE_LIBGD15
 ZEND_BEGIN_ARG_INFO(arginfo_imagepalettecopy, 0)
        ZEND_ARG_INFO(0, dst)
        ZEND_ARG_INFO(0, src)
 ZEND_END_ARG_INFO()
-#endif
 
 ZEND_BEGIN_ARG_INFO(arginfo_imagecolorat, 0)
        ZEND_ARG_INFO(0, im)
@@ -478,14 +421,12 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagecolorclosest, 0)
        ZEND_ARG_INFO(0, blue)
 ZEND_END_ARG_INFO()
 
-#if HAVE_COLORCLOSESTHWB
 ZEND_BEGIN_ARG_INFO(arginfo_imagecolorclosesthwb, 0)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, red)
        ZEND_ARG_INFO(0, green)
        ZEND_ARG_INFO(0, blue)
 ZEND_END_ARG_INFO()
-#endif
 
 ZEND_BEGIN_ARG_INFO(arginfo_imagecolordeallocate, 0)
        ZEND_ARG_INFO(0, im)
@@ -687,7 +628,6 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagecopy, 0)
        ZEND_ARG_INFO(0, src_h)
 ZEND_END_ARG_INFO()
 
-#if HAVE_LIBGD15
 ZEND_BEGIN_ARG_INFO(arginfo_imagecopymerge, 0)
        ZEND_ARG_INFO(0, src_im)
        ZEND_ARG_INFO(0, dst_im)
@@ -711,7 +651,6 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagecopymergegray, 0)
        ZEND_ARG_INFO(0, src_h)
        ZEND_ARG_INFO(0, pct)
 ZEND_END_ARG_INFO()
-#endif
 
 ZEND_BEGIN_ARG_INFO(arginfo_imagecopyresized, 0)
        ZEND_ARG_INFO(0, dst_im)
@@ -735,7 +674,7 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagesy, 0)
 ZEND_END_ARG_INFO()
 
 #ifdef ENABLE_GD_TTF
-#if HAVE_LIBFREETYPE && HAVE_GD_STRINGFTEX
+#if HAVE_LIBFREETYPE
 ZEND_BEGIN_ARG_INFO_EX(arginfo_imageftbbox, 0, 0, 4)
        ZEND_ARG_INFO(0, size)
        ZEND_ARG_INFO(0, angle)
@@ -831,15 +770,13 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_imagepsbbox, 0, 0, 3)
 ZEND_END_ARG_INFO()
 #endif
 
-#ifdef HAVE_GD_WBMP
 ZEND_BEGIN_ARG_INFO_EX(arginfo_image2wbmp, 0, 0, 1)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, filename)
        ZEND_ARG_INFO(0, threshold)
 ZEND_END_ARG_INFO()
-#endif
 
-#if defined(HAVE_GD_JPG) && defined(HAVE_GD_WBMP)
+#if defined(HAVE_GD_JPG)
 ZEND_BEGIN_ARG_INFO(arginfo_jpeg2wbmp, 0)
        ZEND_ARG_INFO(0, f_org)
        ZEND_ARG_INFO(0, f_dest)
@@ -849,7 +786,7 @@ ZEND_BEGIN_ARG_INFO(arginfo_jpeg2wbmp, 0)
 ZEND_END_ARG_INFO()
 #endif
 
-#if defined(HAVE_GD_PNG) && defined(HAVE_GD_WBMP)
+#if defined(HAVE_GD_PNG)
 ZEND_BEGIN_ARG_INFO(arginfo_png2wbmp, 0)
        ZEND_ARG_INFO(0, f_org)
        ZEND_ARG_INFO(0, f_dest)
@@ -875,12 +812,10 @@ ZEND_BEGIN_ARG_INFO(arginfo_imageconvolution, 0)
        ZEND_ARG_INFO(0, offset)
 ZEND_END_ARG_INFO()
 
-#ifdef HAVE_GD_IMAGE_FLIP
 ZEND_BEGIN_ARG_INFO(arginfo_imageflip, 0)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, mode)
 ZEND_END_ARG_INFO()
-#endif
 
 #ifdef HAVE_GD_BUNDLED
 ZEND_BEGIN_ARG_INFO(arginfo_imageantialias, 0)
@@ -889,7 +824,6 @@ ZEND_BEGIN_ARG_INFO(arginfo_imageantialias, 0)
 ZEND_END_ARG_INFO()
 #endif
 
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
 ZEND_BEGIN_ARG_INFO(arginfo_imagecrop, 0)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, rect)
@@ -930,8 +864,6 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagesetinterpolation, 0)
        ZEND_ARG_INFO(0, method)
 ZEND_END_ARG_INFO()
 
-#endif
-
 /* }}} */
 
 /* {{{ gd_functions[]
@@ -944,14 +876,10 @@ const zend_function_entry gd_functions[] = {
        PHP_FE(imagecharup,                                                             arginfo_imagecharup)
        PHP_FE(imagecolorat,                                                    arginfo_imagecolorat)
        PHP_FE(imagecolorallocate,                                              arginfo_imagecolorallocate)
-#if HAVE_LIBGD15
        PHP_FE(imagepalettecopy,                                                arginfo_imagepalettecopy)
        PHP_FE(imagecreatefromstring,                                   arginfo_imagecreatefromstring)
-#endif
        PHP_FE(imagecolorclosest,                                               arginfo_imagecolorclosest)
-#if HAVE_COLORCLOSESTHWB
        PHP_FE(imagecolorclosesthwb,                                    arginfo_imagecolorclosesthwb)
-#endif
        PHP_FE(imagecolordeallocate,                                    arginfo_imagecolordeallocate)
        PHP_FE(imagecolorresolve,                                               arginfo_imagecolorresolve)
        PHP_FE(imagecolorexact,                                                 arginfo_imagecolorexact)
@@ -960,10 +888,8 @@ const zend_function_entry gd_functions[] = {
        PHP_FE(imagecolorstotal,                                                arginfo_imagecolorstotal)
        PHP_FE(imagecolorsforindex,                                             arginfo_imagecolorsforindex)
        PHP_FE(imagecopy,                                                               arginfo_imagecopy)
-#if HAVE_LIBGD15
        PHP_FE(imagecopymerge,                                                  arginfo_imagecopymerge)
        PHP_FE(imagecopymergegray,                                              arginfo_imagecopymergegray)
-#endif
        PHP_FE(imagecopyresized,                                                arginfo_imagecopyresized)
        PHP_FE(imagecreate,                                                             arginfo_imagecreate)
        PHP_FE(imagecreatetruecolor,                                    arginfo_imagecreatetruecolor)
@@ -987,15 +913,11 @@ const zend_function_entry gd_functions[] = {
 #endif
 
        PHP_FE(imagerotate,                                                     arginfo_imagerotate)
-
-#ifdef HAVE_GD_IMAGE_FLIP
        PHP_FE(imageflip,                                                               arginfo_imageflip)
-#endif
 
 #ifdef HAVE_GD_BUNDLED
        PHP_FE(imageantialias,                                                  arginfo_imageantialias)
 #endif
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
        PHP_FE(imagecrop,                                                               arginfo_imagecrop)
        PHP_FE(imagecropauto,                                                   arginfo_imagecropauto)
        PHP_FE(imagescale,                                                              arginfo_imagescale)
@@ -1003,16 +925,8 @@ const zend_function_entry gd_functions[] = {
        PHP_FE(imageaffinematrixconcat,                                 arginfo_imageaffinematrixconcat)
        PHP_FE(imageaffinematrixget,                                    arginfo_imageaffinematrixget)
        PHP_FE(imagesetinterpolation,                   arginfo_imagesetinterpolation)
-#endif
-
-#if HAVE_GD_IMAGESETTILE
        PHP_FE(imagesettile,                                                    arginfo_imagesettile)
-#endif
-
-#if HAVE_GD_IMAGESETBRUSH
        PHP_FE(imagesetbrush,                                                   arginfo_imagesetbrush)
-#endif
-
        PHP_FE(imagesetstyle,                                                   arginfo_imagesetstyle)
 
 #ifdef HAVE_GD_PNG
@@ -1021,45 +935,31 @@ const zend_function_entry gd_functions[] = {
 #ifdef HAVE_GD_WEBP
        PHP_FE(imagecreatefromwebp,                                             arginfo_imagecreatefromwebp)
 #endif
-#ifdef HAVE_GD_GIF_READ
        PHP_FE(imagecreatefromgif,                                              arginfo_imagecreatefromgif)
-#endif
 #ifdef HAVE_GD_JPG
        PHP_FE(imagecreatefromjpeg,                                             arginfo_imagecreatefromjpeg)
 #endif
-#ifdef HAVE_GD_WBMP
        PHP_FE(imagecreatefromwbmp,                                             arginfo_imagecreatefromwbmp)
-#endif
-#ifdef HAVE_GD_XBM
        PHP_FE(imagecreatefromxbm,                                              arginfo_imagecreatefromxbm)
-#endif
-#if defined(HAVE_GD_XPM) && (defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21))
+#if defined(HAVE_GD_XPM)
        PHP_FE(imagecreatefromxpm,                                              arginfo_imagecreatefromxpm)
 #endif
        PHP_FE(imagecreatefromgd,                                               arginfo_imagecreatefromgd)
-#ifdef HAVE_GD_GD2
        PHP_FE(imagecreatefromgd2,                                              arginfo_imagecreatefromgd2)
        PHP_FE(imagecreatefromgd2part,                                  arginfo_imagecreatefromgd2part)
-#endif
 #ifdef HAVE_GD_PNG
        PHP_FE(imagepng,                                                                arginfo_imagepng)
 #endif
 #ifdef HAVE_GD_WEBP
        PHP_FE(imagewebp,                                                               arginfo_imagewebp)
 #endif
-#ifdef HAVE_GD_GIF_CREATE
        PHP_FE(imagegif,                                                                arginfo_imagegif)
-#endif
 #ifdef HAVE_GD_JPG
        PHP_FE(imagejpeg,                                                               arginfo_imagejpeg)
 #endif
-#ifdef HAVE_GD_WBMP
        PHP_FE(imagewbmp,                               arginfo_imagewbmp)
-#endif
        PHP_FE(imagegd,                                                                 arginfo_imagegd)
-#ifdef HAVE_GD_GD2
        PHP_FE(imagegd2,                                                                arginfo_imagegd2)
-#endif
 
        PHP_FE(imagedestroy,                                                    arginfo_imagedestroy)
        PHP_FE(imagegammacorrect,                                               arginfo_imagegammacorrect)
@@ -1084,7 +984,7 @@ const zend_function_entry gd_functions[] = {
 #ifdef ENABLE_GD_TTF
        PHP_FE(imagettfbbox,                                                    arginfo_imagettfbbox)
        PHP_FE(imagettftext,                                                    arginfo_imagettftext)
-#if HAVE_LIBFREETYPE && HAVE_GD_STRINGFTEX
+#if HAVE_GD_FREETYPE && HAVE_LIBFREETYPE
        PHP_FE(imageftbbox,                                                             arginfo_imageftbbox)
        PHP_FE(imagefttext,                                                             arginfo_imagefttext)
 #endif
@@ -1104,19 +1004,15 @@ const zend_function_entry gd_functions[] = {
 #endif
        PHP_FE(imagetypes,                                                              arginfo_imagetypes)
 
-#if defined(HAVE_GD_JPG) && defined(HAVE_GD_WBMP)
+#if defined(HAVE_GD_JPG)
        PHP_FE(jpeg2wbmp,                                                               arginfo_jpeg2wbmp)
 #endif
-#if defined(HAVE_GD_PNG) && defined(HAVE_GD_WBMP)
+#if defined(HAVE_GD_PNG)
        PHP_FE(png2wbmp,                                                                arginfo_png2wbmp)
 #endif
-#ifdef HAVE_GD_WBMP
        PHP_FE(image2wbmp,                                                              arginfo_image2wbmp)
-#endif
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
        PHP_FE(imagelayereffect,                                                arginfo_imagelayereffect)
        PHP_FE(imagexbm,                                arginfo_imagexbm)
-#endif
 
        PHP_FE(imagecolormatch,                                                 arginfo_imagecolormatch)
 
@@ -1133,13 +1029,13 @@ zend_module_entry gd_module_entry = {
        "gd",
        gd_functions,
        PHP_MINIT(gd),
-#if HAVE_LIBT1 || HAVE_GD_FONTMUTEX
+#if HAVE_LIBT1
        PHP_MSHUTDOWN(gd),
 #else
        NULL,
 #endif
        NULL,
-#if HAVE_GD_STRINGFT && (HAVE_LIBFREETYPE && (HAVE_GD_FONTCACHESHUTDOWN || HAVE_GD_FREEFONTCACHE))
+#if HAVE_GD_FREETYPE && HAVE_LIBFREETYPE
        PHP_RSHUTDOWN(gd),
 #else
        NULL,
@@ -1181,7 +1077,7 @@ static void php_free_gd_font(zend_rsrc_list_entry *rsrc TSRMLS_DC)
 }
 /* }}} */
 
-#ifdef HAVE_LIBGD21
+#ifndef HAVE_GD_BUNDLED
 /* {{{ php_gd_error_method
  */
 void php_gd_error_method(int type, const char *format, va_list args)
@@ -1195,13 +1091,11 @@ void php_gd_error_method(int type, const char *format, va_list args)
 
 /* {{{ PHP_MSHUTDOWN_FUNCTION
  */
-#if HAVE_LIBT1 || HAVE_GD_FONTMUTEX
+#if HAVE_LIBT1
 PHP_MSHUTDOWN_FUNCTION(gd)
 {
-#if HAVE_LIBT1
        T1_CloseLib();
-#endif
-#if HAVE_GD_FONTMUTEX && HAVE_LIBFREETYPE
+#if HAVE_GD_BUNDLED && HAVE_LIBFREETYPE
        gdFontCacheMutexShutdown();
 #endif
        UNREGISTER_INI_ENTRIES();
@@ -1218,7 +1112,7 @@ PHP_MINIT_FUNCTION(gd)
        le_gd = zend_register_list_destructors_ex(php_free_gd_image, NULL, "gd", module_number);
        le_gd_font = zend_register_list_destructors_ex(php_free_gd_font, NULL, "gd font", module_number);
 
-#if HAVE_GD_FONTMUTEX && HAVE_LIBFREETYPE
+#if HAVE_GD_BUNDLED && HAVE_LIBFREETYPE
        gdFontCacheMutexSetup();
 #endif
 #if HAVE_LIBT1
@@ -1228,7 +1122,7 @@ PHP_MINIT_FUNCTION(gd)
        le_ps_font = zend_register_list_destructors_ex(php_free_ps_font, NULL, "gd PS font", module_number);
        le_ps_enc = zend_register_list_destructors_ex(php_free_ps_enc, NULL, "gd PS encoding", module_number);
 #endif
-#ifdef HAVE_LIBGD21
+#ifndef HAVE_GD_BUNDLED
        gdSetErrorMethod(php_gd_error_method);
 #endif
        REGISTER_INI_ENTRIES();
@@ -1239,14 +1133,14 @@ PHP_MINIT_FUNCTION(gd)
        REGISTER_LONG_CONSTANT("IMG_PNG", 4, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_WBMP", 8, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_XPM", 16, CONST_CS | CONST_PERSISTENT);
-#ifdef gdTiled
+
        /* special colours for gd */
        REGISTER_LONG_CONSTANT("IMG_COLOR_TILED", gdTiled, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_COLOR_STYLED", gdStyled, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_COLOR_BRUSHED", gdBrushed, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_COLOR_STYLEDBRUSHED", gdStyledBrushed, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_COLOR_TRANSPARENT", gdTransparent, CONST_CS | CONST_PERSISTENT);
-#endif
+
        /* for imagefilledarc */
        REGISTER_LONG_CONSTANT("IMG_ARC_ROUNDED", gdArc, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_ARC_PIE", gdPie, CONST_CS | CONST_PERSISTENT);
@@ -1254,24 +1148,16 @@ PHP_MINIT_FUNCTION(gd)
        REGISTER_LONG_CONSTANT("IMG_ARC_NOFILL", gdNoFill, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_ARC_EDGED", gdEdged, CONST_CS | CONST_PERSISTENT);
 
-/* GD2 image format types */
-#ifdef GD2_FMT_RAW
+    /* GD2 image format types */
        REGISTER_LONG_CONSTANT("IMG_GD2_RAW", GD2_FMT_RAW, CONST_CS | CONST_PERSISTENT);
-#endif
-#ifdef GD2_FMT_COMPRESSED
        REGISTER_LONG_CONSTANT("IMG_GD2_COMPRESSED", GD2_FMT_COMPRESSED, CONST_CS | CONST_PERSISTENT);
-#endif
-#ifdef HAVE_GD_IMAGE_FLIP
        REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORINZONTAL, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", GD_FLIP_VERTICAL, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", GD_FLIP_BOTH, CONST_CS | CONST_PERSISTENT);
-#endif
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
        REGISTER_LONG_CONSTANT("IMG_EFFECT_REPLACE", gdEffectReplace, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_EFFECT_ALPHABLEND", gdEffectAlphaBlend, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_EFFECT_NORMAL", gdEffectNormal, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_EFFECT_OVERLAY", gdEffectOverlay, CONST_CS | CONST_PERSISTENT);
-       REGISTER_LONG_CONSTANT("GD_BUNDLED", 1, CONST_CS | CONST_PERSISTENT);
 
        REGISTER_LONG_CONSTANT("IMG_CROP_DEFAULT", GD_CROP_DEFAULT, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_CROP_TRANSPARENT", GD_CROP_TRANSPARENT, CONST_CS | CONST_PERSISTENT);
@@ -1309,6 +1195,8 @@ PHP_MINIT_FUNCTION(gd)
        REGISTER_LONG_CONSTANT("IMG_AFFINE_SHEAR_HORIZONTAL", GD_AFFINE_SHEAR_HORIZONTAL, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_AFFINE_SHEAR_VERTICAL", GD_AFFINE_SHEAR_VERTICAL, CONST_CS | CONST_PERSISTENT);
 
+#if defined(HAVE_GD_BUNDLED)
+       REGISTER_LONG_CONSTANT("GD_BUNDLED", 1, CONST_CS | CONST_PERSISTENT);
 #else
        REGISTER_LONG_CONSTANT("GD_BUNDLED", 0, CONST_CS | CONST_PERSISTENT);
 #endif
@@ -1362,14 +1250,10 @@ PHP_MINIT_FUNCTION(gd)
 
 /* {{{ PHP_RSHUTDOWN_FUNCTION
  */
-#if HAVE_GD_STRINGFT && (HAVE_LIBFREETYPE && (HAVE_GD_FONTCACHESHUTDOWN || HAVE_GD_FREEFONTCACHE))
+#if HAVE_GD_FREETYPE && HAVE_LIBFREETYPE
 PHP_RSHUTDOWN_FUNCTION(gd)
 {
-#if HAVE_GD_FONTCACHESHUTDOWN
        gdFontCacheShutdown();
-#else
-       gdFreeFontCache();
-#endif
        return SUCCESS;
 }
 #endif
@@ -1378,11 +1262,7 @@ PHP_RSHUTDOWN_FUNCTION(gd)
 #if defined(HAVE_GD_BUNDLED)
 #define PHP_GD_VERSION_STRING "bundled (2.1.0 compatible)"
 #else
-# ifdef GD_VERSION_STRING
-#  define PHP_GD_VERSION_STRING GD_VERSION_STRING
-# else
-#  define PHP_GD_VERSION_STRING "2.0"
-# endif
+# define PHP_GD_VERSION_STRING GD_VERSION_STRING
 #endif
 
 /* {{{ PHP_MINFO_FUNCTION
@@ -1421,12 +1301,9 @@ PHP_MINFO_FUNCTION(gd)
        php_info_print_table_row(2, "T1Lib Support", "enabled");
 #endif
 
-#ifdef HAVE_GD_GIF_READ
        php_info_print_table_row(2, "GIF Read Support", "enabled");
-#endif
-#ifdef HAVE_GD_GIF_CREATE
        php_info_print_table_row(2, "GIF Create Support", "enabled");
-#endif
+
 #ifdef HAVE_GD_JPG
        {
                php_info_print_table_row(2, "JPEG Support", "enabled");
@@ -1437,10 +1314,8 @@ PHP_MINFO_FUNCTION(gd)
        php_info_print_table_row(2, "PNG Support", "enabled");
        php_info_print_table_row(2, "libPNG Version", gdPngGetVersionString());
 #endif
-#ifdef HAVE_GD_WBMP
        php_info_print_table_row(2, "WBMP Support", "enabled");
-#endif
-#if defined(HAVE_GD_XPM) && (defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21))
+#if defined(HAVE_GD_XPM)
        php_info_print_table_row(2, "XPM Support", "enabled");
        {
                char tmp[12];
@@ -1448,10 +1323,8 @@ PHP_MINFO_FUNCTION(gd)
                php_info_print_table_row(2, "libXpm Version", tmp);
        }
 #endif
-#ifdef HAVE_GD_XBM
        php_info_print_table_row(2, "XBM Support", "enabled");
-#endif
-#if defined(USE_GD_JISX0208) && (defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21))
+#if defined(USE_GD_JISX0208)
        php_info_print_table_row(2, "JIS-mapped Japanese Font Support", "enabled");
 #endif
 #ifdef HAVE_GD_WEBP
@@ -1490,16 +1363,8 @@ PHP_FUNCTION(gd_info)
 #else
        add_assoc_bool(return_value, "T1Lib Support", 0);
 #endif
-#ifdef HAVE_GD_GIF_READ
        add_assoc_bool(return_value, "GIF Read Support", 1);
-#else
-       add_assoc_bool(return_value, "GIF Read Support", 0);
-#endif
-#ifdef HAVE_GD_GIF_CREATE
        add_assoc_bool(return_value, "GIF Create Support", 1);
-#else
-       add_assoc_bool(return_value, "GIF Create Support", 0);
-#endif
 #ifdef HAVE_GD_JPG
        add_assoc_bool(return_value, "JPEG Support", 1);
 #else
@@ -1510,22 +1375,14 @@ PHP_FUNCTION(gd_info)
 #else
        add_assoc_bool(return_value, "PNG Support", 0);
 #endif
-#ifdef HAVE_GD_WBMP
        add_assoc_bool(return_value, "WBMP Support", 1);
-#else
-       add_assoc_bool(return_value, "WBMP Support", 0);
-#endif
-#if defined(HAVE_GD_XPM) && (defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21))
+#if defined(HAVE_GD_XPM)
        add_assoc_bool(return_value, "XPM Support", 1);
 #else
        add_assoc_bool(return_value, "XPM Support", 0);
 #endif
-#ifdef HAVE_GD_XBM
        add_assoc_bool(return_value, "XBM Support", 1);
-#else
-       add_assoc_bool(return_value, "XBM Support", 0);
-#endif
-#if defined(USE_GD_JISX0208) && (defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21))
+#if defined(USE_GD_JISX0208)
        add_assoc_bool(return_value, "JIS-mapped Japanese Font Support", 1);
 #else
        add_assoc_bool(return_value, "JIS-mapped Japanese Font Support", 0);
@@ -1540,62 +1397,6 @@ PHP_GD_API int phpi_get_le_gd(void)
 }
 /* }}} */
 
-#ifndef HAVE_GDIMAGECOLORRESOLVE
-
-/* {{{ gdImageColorResolve
- */
-/********************************************************************/
-/* gdImageColorResolve is a replacement for the old fragment:       */
-/*                                                                  */
-/*      if ((color=gdImageColorExact(im,R,G,B)) < 0)                */
-/*        if ((color=gdImageColorAllocate(im,R,G,B)) < 0)           */
-/*          color=gdImageColorClosest(im,R,G,B);                    */
-/*                                                                  */
-/* in a single function                                             */
-
-int gdImageColorResolve(gdImagePtr im, int r, int g, int b)
-{
-       int c;
-       int ct = -1;
-       int op = -1;
-       long rd, gd, bd, dist;
-       long mindist = 3*255*255;  /* init to max poss dist */
-
-       for (c = 0; c < im->colorsTotal; c++) {
-               if (im->open[c]) {
-                       op = c;             /* Save open slot */
-                       continue;           /* Color not in use */
-               }
-               rd = (long) (im->red  [c] - r);
-               gd = (long) (im->green[c] - g);
-               bd = (long) (im->blue [c] - b);
-               dist = rd * rd + gd * gd + bd * bd;
-               if (dist < mindist) {
-                       if (dist == 0) {
-                               return c;       /* Return exact match color */
-                       }
-                       mindist = dist;
-                       ct = c;
-               }
-       }
-       /* no exact match.  We now know closest, but first try to allocate exact */
-       if (op == -1) {
-               op = im->colorsTotal;
-               if (op == gdMaxColors) {    /* No room for more colors */
-                       return ct;          /* Return closest available color */
-               }
-               im->colorsTotal++;
-       }
-       im->red  [op] = r;
-       im->green[op] = g;
-       im->blue [op] = b;
-       im->open [op] = 0;
-       return op;                  /* Return newly allocated color */
-}
-/* }}} */
-
-#endif
-
 #define FLIPWORD(a) (((a & 0xff000000) >> 24) | ((a & 0x00ff0000) >> 8) | ((a & 0x0000ff00) << 8) | ((a & 0x000000ff) << 24))
 
 /* {{{ proto int imageloadfont(string filename)
@@ -1983,7 +1784,6 @@ PHP_FUNCTION(imagesavealpha)
 }
 /* }}} */
 
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
 /* {{{ proto bool imagelayereffect(resource im, int effect)
    Set the alpha blending flag to use the bundled libgd layering effects */
 PHP_FUNCTION(imagelayereffect)
@@ -2002,7 +1802,6 @@ PHP_FUNCTION(imagelayereffect)
        RETURN_TRUE;
 }
 /* }}} */
-#endif
 
 /* {{{ proto int imagecolorallocatealpha(resource im, int red, int green, int blue, int alpha)
    Allocate a color with an alpha level.  Works for true color and palette based images */
@@ -2287,7 +2086,6 @@ PHP_FUNCTION(imagerotate)
 }
 /* }}} */
 
-#if HAVE_GD_IMAGESETTILE
 /* {{{ proto bool imagesettile(resource image, resource tile)
    Set the tile image to $tile when filling $image with the "IMG_COLOR_TILED" color */
 PHP_FUNCTION(imagesettile)
@@ -2307,9 +2105,7 @@ PHP_FUNCTION(imagesettile)
        RETURN_TRUE;
 }
 /* }}} */
-#endif
 
-#if HAVE_GD_IMAGESETBRUSH
 /* {{{ proto bool imagesetbrush(resource image, resource brush)
    Set the brush image to $brush when filling $image with the "IMG_COLOR_BRUSHED" color */
 PHP_FUNCTION(imagesetbrush)
@@ -2329,7 +2125,6 @@ PHP_FUNCTION(imagesetbrush)
        RETURN_TRUE;
 }
 /* }}} */
-#endif
 
 /* {{{ proto resource imagecreate(int x_size, int y_size)
    Create a new image */
@@ -2362,19 +2157,15 @@ PHP_FUNCTION(imagecreate)
 PHP_FUNCTION(imagetypes)
 {
        int ret=0;
-#ifdef HAVE_GD_GIF_CREATE
        ret = 1;
-#endif
 #ifdef HAVE_GD_JPG
        ret |= 2;
 #endif
 #ifdef HAVE_GD_PNG
        ret |= 4;
 #endif
-#ifdef HAVE_GD_WBMP
        ret |= 8;
-#endif
-#if defined(HAVE_GD_XPM) && (defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21))
+#if defined(HAVE_GD_XPM)
        ret |= 16;
 #endif
 
@@ -2411,7 +2202,6 @@ static const char php_sig_gd2[3] = {'g', 'd', '2'};
 
 static int _php_image_type (char data[8])
 {
-#ifdef HAVE_LIBGD15
        /* Based on ext/standard/image.c */
 
        if (data == NULL) {
@@ -2429,34 +2219,22 @@ static int _php_image_type (char data[8])
        } else if (!memcmp(data, php_sig_gif, 3)) {
                return PHP_GDIMG_TYPE_GIF;
        }
-#ifdef HAVE_GD_WBMP
        else {
                gdIOCtx *io_ctx;
                io_ctx = gdNewDynamicCtxEx(8, data, 0);
                if (io_ctx) {
                        if (_php_ctx_getmbi(io_ctx) == 0 && _php_ctx_getmbi(io_ctx) >= 0) {
-#if HAVE_LIBGD204
                                io_ctx->gd_free(io_ctx);
-#else
-                               io_ctx->free(io_ctx);
-#endif
                                return PHP_GDIMG_TYPE_WBM;
                        } else {
-#if HAVE_LIBGD204
                                io_ctx->gd_free(io_ctx);
-#else
-                               io_ctx->free(io_ctx);
-#endif
                        }
                }
        }
-#endif
        return -1;
-#endif
 }
 /* }}} */
 
-#ifdef HAVE_LIBGD15
 /* {{{ _php_image_create_from_string
  */
 gdImagePtr _php_image_create_from_string(zval **data, char *tn, gdImagePtr (*ioctx_func_p)() TSRMLS_DC)
@@ -2473,19 +2251,11 @@ gdImagePtr _php_image_create_from_string(zval **data, char *tn, gdImagePtr (*ioc
        im = (*ioctx_func_p)(io_ctx);
        if (!im) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Passed data is not in '%s' format", tn);
-#if HAVE_LIBGD204
                io_ctx->gd_free(io_ctx);
-#else
-               io_ctx->free(io_ctx);
-#endif
                return NULL;
        }
 
-#if HAVE_LIBGD204
        io_ctx->gd_free(io_ctx);
-#else
-       io_ctx->free(io_ctx);
-#endif
 
        return im;
 }
@@ -2534,30 +2304,15 @@ PHP_FUNCTION(imagecreatefromstring)
                        break;
 
                case PHP_GDIMG_TYPE_GIF:
-#ifdef HAVE_GD_GIF_READ
                        im = _php_image_create_from_string(data, "GIF", gdImageCreateFromGifCtx TSRMLS_CC);
-#else
-                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "No GIF support in this PHP build");
-                       RETURN_FALSE;
-#endif
                        break;
 
                case PHP_GDIMG_TYPE_WBM:
-#ifdef HAVE_GD_WBMP
                        im = _php_image_create_from_string(data, "WBMP", gdImageCreateFromWBMPCtx TSRMLS_CC);
-#else
-                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "No WBMP support in this PHP build");
-                       RETURN_FALSE;
-#endif
                        break;
 
                case PHP_GDIMG_TYPE_GD2:
-#ifdef HAVE_GD_GD2
                        im = _php_image_create_from_string(data, "GD2", gdImageCreateFromGd2Ctx TSRMLS_CC);
-#else
-                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "No GD2 support in this PHP build");
-                       RETURN_FALSE;
-#endif
                        break;
 
                default:
@@ -2573,7 +2328,6 @@ PHP_FUNCTION(imagecreatefromstring)
        ZEND_REGISTER_RESOURCE(return_value, im, le_gd);
 }
 /* }}} */
-#endif
 
 /* {{{ _php_image_create_from
  */
@@ -2585,9 +2339,8 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
        gdImagePtr im = NULL;
        php_stream *stream;
        FILE * fp = NULL;
-#ifdef HAVE_GD_JPGEX
        long ignore_warning;
-#endif
+
        if (image_type == PHP_GDIMG_TYPE_GD2PART) {
                if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sllll", &file, &file_len, &srcx, &srcy, &width, &height) == FAILURE) {
                        return;
@@ -2607,9 +2360,7 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
                RETURN_FALSE;
        }
 
-#ifndef USE_GD_IOCTX
        ioctx_func_p = NULL; /* don't allow sockets without IOCtx */
-#endif
 
        if (image_type == PHP_GDIMG_TYPE_WEBP) {
                size_t buff_size;
@@ -2634,7 +2385,6 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
                        goto out_err;
                }
        } else if (ioctx_func_p) {
-#ifdef USE_GD_IOCTX
                /* we can create an io context */
                gdIOCtx* io_ctx;
                size_t buff_size;
@@ -2660,13 +2410,8 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
                } else {
                        im = (*ioctx_func_p)(io_ctx);
                }
-#if HAVE_LIBGD204
                io_ctx->gd_free(io_ctx);
-#else
-               io_ctx->free(io_ctx);
-#endif
                pefree(buff, 1);
-#endif
        }
        else {
                /* try and force the stream to be FILE* */
@@ -2680,7 +2425,7 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
                        case PHP_GDIMG_TYPE_GD2PART:
                                im = (*func_p)(fp, srcx, srcy, width, height);
                                break;
-#if defined(HAVE_GD_XPM) && (defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21))
+#if defined(HAVE_GD_XPM)
                        case PHP_GDIMG_TYPE_XPM:
                                im = gdImageCreateFromXpm(file);
                                break;
@@ -2688,12 +2433,8 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
 
 #ifdef HAVE_GD_JPG
                        case PHP_GDIMG_TYPE_JPG:
-#ifdef HAVE_GD_JPGEX
                                ignore_warning = INI_INT("gd.jpeg_ignore_warning");
                                im = gdImageCreateFromJpegEx(fp, ignore_warning);
-#else
-                               im = gdImageCreateFromJpeg(fp);
-#endif
                        break;
 #endif
 
@@ -2720,7 +2461,6 @@ out_err:
 }
 /* }}} */
 
-#ifdef HAVE_GD_GIF_READ
 /* {{{ proto resource imagecreatefromgif(string filename)
    Create a new image from GIF file or URL */
 PHP_FUNCTION(imagecreatefromgif)
@@ -2728,7 +2468,6 @@ PHP_FUNCTION(imagecreatefromgif)
        _php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GIF, "GIF", gdImageCreateFromGif, gdImageCreateFromGifCtx);
 }
 /* }}} */
-#endif /* HAVE_GD_GIF_READ */
 
 #ifdef HAVE_GD_JPG
 /* {{{ proto resource imagecreatefromjpeg(string filename)
@@ -2760,7 +2499,6 @@ PHP_FUNCTION(imagecreatefromwebp)
 /* }}} */
 #endif /* HAVE_GD_VPX */
 
-#ifdef HAVE_GD_XBM
 /* {{{ proto resource imagecreatefromxbm(string filename)
    Create a new image from XBM file or URL */
 PHP_FUNCTION(imagecreatefromxbm)
@@ -2768,9 +2506,8 @@ PHP_FUNCTION(imagecreatefromxbm)
        _php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_XBM, "XBM", gdImageCreateFromXbm, NULL);
 }
 /* }}} */
-#endif /* HAVE_GD_XBM */
 
-#if defined(HAVE_GD_XPM) && (defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21))
+#if defined(HAVE_GD_XPM)
 /* {{{ proto resource imagecreatefromxpm(string filename)
    Create a new image from XPM file or URL */
 PHP_FUNCTION(imagecreatefromxpm)
@@ -2780,7 +2517,6 @@ PHP_FUNCTION(imagecreatefromxpm)
 /* }}} */
 #endif
 
-#ifdef HAVE_GD_WBMP
 /* {{{ proto resource imagecreatefromwbmp(string filename)
    Create a new image from WBMP file or URL */
 PHP_FUNCTION(imagecreatefromwbmp)
@@ -2788,7 +2524,6 @@ PHP_FUNCTION(imagecreatefromwbmp)
        _php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_WBM, "WBMP", gdImageCreateFromWBMP, gdImageCreateFromWBMPCtx);
 }
 /* }}} */
-#endif /* HAVE_GD_WBMP */
 
 /* {{{ proto resource imagecreatefromgd(string filename)
    Create a new image from GD file or URL */
@@ -2798,7 +2533,6 @@ PHP_FUNCTION(imagecreatefromgd)
 }
 /* }}} */
 
-#ifdef HAVE_GD_GD2
 /* {{{ proto resource imagecreatefromgd2(string filename)
    Create a new image from GD2 file or URL */
 PHP_FUNCTION(imagecreatefromgd2)
@@ -2814,7 +2548,6 @@ PHP_FUNCTION(imagecreatefromgd2part)
        _php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GD2PART, "GD2", gdImageCreateFromGd2Part, gdImageCreateFromGd2PartCtx);
 }
 /* }}} */
-#endif /* HAVE_GD_GD2 */
 
 /* {{{ _php_image_output
  */
@@ -2859,7 +2592,6 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
                }
 
                switch (image_type) {
-#ifdef HAVE_GD_WBMP
                        case PHP_GDIMG_CONVERT_WBM:
                                if (q == -1) {
                                        q = 0;
@@ -2869,7 +2601,6 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
                                }
                                gdImageWBMP(im, q, fp);
                                break;
-#endif
                        case PHP_GDIMG_TYPE_JPG:
                                (*func_p)(im, fp, q);
                                break;
@@ -2885,14 +2616,12 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
                                }
                                (*func_p)(im, fp);
                                break;
-#ifdef HAVE_GD_GD2
                        case PHP_GDIMG_TYPE_GD2:
                                if (q == -1) {
                                        q = 128;
                                }
                                (*func_p)(im, fp, q, t);
                                break;
-#endif
                        default:
                                if (q == -1) {
                                        q = 128;
@@ -2915,7 +2644,6 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
                }
 
                switch (image_type) {
-#ifdef HAVE_GD_WBMP
                        case PHP_GDIMG_CONVERT_WBM:
                                if (q == -1) {
                                        q = 0;
@@ -2925,7 +2653,6 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
                                }
                                gdImageWBMP(im, q, tmp);
                                break;
-#endif
                        case PHP_GDIMG_TYPE_JPG:
                                (*func_p)(im, tmp, q);
                                break;
@@ -2943,14 +2670,12 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
                                }
                                (*func_p)(im, tmp);
                                break;
-#ifdef HAVE_GD_GD2
                        case PHP_GDIMG_TYPE_GD2:
                                if (q == -1) {
                                        q = 128;
                                }
                                (*func_p)(im, tmp, q, t);
                                break;
-#endif
                        default:
                                (*func_p)(im, tmp);
                                break;
@@ -2978,15 +2703,12 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
 
 /* {{{ proto int imagexbm(int im, string filename [, int foreground])
    Output XBM image to browser or file */
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
 PHP_FUNCTION(imagexbm)
 {
        _php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_XBM, "XBM", gdImageXbmCtx);
 }
-#endif
 /* }}} */
 
-#ifdef HAVE_GD_GIF_CREATE
 /* {{{ proto bool imagegif(resource im [, string filename])
    Output GIF image to browser or file */
 PHP_FUNCTION(imagegif)
@@ -2994,7 +2716,6 @@ PHP_FUNCTION(imagegif)
        _php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GIF, "GIF", gdImageGifCtx);
 }
 /* }}} */
-#endif /* HAVE_GD_GIF_CREATE */
 
 #ifdef HAVE_GD_PNG
 /* {{{ proto bool imagepng(resource im [, string filename])
@@ -3028,7 +2749,6 @@ PHP_FUNCTION(imagejpeg)
 /* }}} */
 #endif /* HAVE_GD_JPG */
 
-#ifdef HAVE_GD_WBMP
 /* {{{ proto bool imagewbmp(resource im [, string filename, [, int foreground]])
    Output WBMP image to browser or file */
 PHP_FUNCTION(imagewbmp)
@@ -3036,7 +2756,6 @@ PHP_FUNCTION(imagewbmp)
        _php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_WBM, "WBMP", gdImageWBMPCtx);
 }
 /* }}} */
-#endif /* HAVE_GD_WBMP */
 
 /* {{{ proto bool imagegd(resource im [, string filename])
    Output GD image to browser or file */
@@ -3046,7 +2765,6 @@ PHP_FUNCTION(imagegd)
 }
 /* }}} */
 
-#ifdef HAVE_GD_GD2
 /* {{{ proto bool imagegd2(resource im [, string filename, [, int chunk_size, [, int type]]])
    Output GD2 image to browser or file */
 PHP_FUNCTION(imagegd2)
@@ -3054,7 +2772,6 @@ PHP_FUNCTION(imagegd2)
        _php_image_output(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GD2, "GD2", gdImageGd2);
 }
 /* }}} */
-#endif /* HAVE_GD_GD2 */
 
 /* {{{ proto bool imagedestroy(resource im)
    Destroy an image */
@@ -3099,7 +2816,6 @@ PHP_FUNCTION(imagecolorallocate)
 }
 /* }}} */
 
-#if HAVE_LIBGD15
 /* {{{ proto void imagepalettecopy(resource dst, resource src)
    Copy the palette from the src image onto the dst image */
 PHP_FUNCTION(imagepalettecopy)
@@ -3117,7 +2833,6 @@ PHP_FUNCTION(imagepalettecopy)
        gdImagePaletteCopy(dst, src);
 }
 /* }}} */
-#endif
 
 /* {{{ proto int imagecolorat(resource im, int x, int y)
    Get the index of the color of a pixel */
@@ -3169,7 +2884,6 @@ PHP_FUNCTION(imagecolorclosest)
 }
 /* }}} */
 
-#if HAVE_COLORCLOSESTHWB
 /* {{{ proto int imagecolorclosesthwb(resource im, int red, int green, int blue)
    Get the index of the color which has the hue, white and blackness nearest to the given color */
 PHP_FUNCTION(imagecolorclosesthwb)
@@ -3187,7 +2901,6 @@ PHP_FUNCTION(imagecolorclosesthwb)
        RETURN_LONG(gdImageColorClosestHWB(im, red, green, blue));
 }
 /* }}} */
-#endif
 
 /* {{{ proto bool imagecolordeallocate(resource im, int index)
    De-allocate a color for an image */
@@ -3909,7 +3622,6 @@ PHP_FUNCTION(imagecopy)
 }
 /* }}} */
 
-#if HAVE_LIBGD15
 /* {{{ proto bool imagecopymerge(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)
    Merge one part of an image with another */
 PHP_FUNCTION(imagecopymerge)
@@ -3967,7 +3679,6 @@ PHP_FUNCTION(imagecopymergegray)
        RETURN_TRUE;
 }
 /* }}} */
-#endif
 
 /* {{{ proto bool imagecopyresized(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)
    Copy and resize part of an image */
@@ -4045,7 +3756,7 @@ PHP_FUNCTION(imagesy)
 
 #ifdef ENABLE_GD_TTF
 
-#if  HAVE_LIBFREETYPE && HAVE_GD_STRINGFTEX
+#if HAVE_GD_FREETYPE && HAVE_LIBFREETYPE
 /* {{{ proto array imageftbbox(float size, float angle, string font_file, string text [, array extrainfo])
    Give the bounding box of a text using fonts via freetype2 */
 PHP_FUNCTION(imageftbbox)
@@ -4061,7 +3772,7 @@ PHP_FUNCTION(imagefttext)
        php_imagettftext_common(INTERNAL_FUNCTION_PARAM_PASSTHRU, TTFTEXT_DRAW, 1);
 }
 /* }}} */
-#endif
+#endif /* HAVE_GD_FREETYPE && HAVE_LIBFREETYPE */
 
 /* {{{ proto array imagettfbbox(float size, float angle, string font_file, string text)
    Give the bounding box of a text using TrueType fonts */
@@ -4091,13 +3802,7 @@ static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int mode, int
        char *str = NULL, *fontname = NULL;
        char *error = NULL;
        int argc = ZEND_NUM_ARGS();
-#if HAVE_GD_STRINGFTEX
        gdFTStringExtra strex = {0};
-#endif
-
-#if !HAVE_GD_STRINGFTEX
-       assert(!extended);
-#endif
 
        if (mode == TTFTEXT_BBOX) {
                if (argc < 4 || argc > ((extended) ? 5 : 4)) {
@@ -4117,7 +3822,6 @@ static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int mode, int
        /* convert angle to radians */
        angle = angle * (M_PI/180);
 
-#if HAVE_GD_STRINGFTEX
        if (extended && EXT) {  /* parse extended info */
                HashPosition pos;
 
@@ -4144,7 +3848,6 @@ static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int mode, int
 
                } while (zend_hash_move_forward_ex(HASH_OF(EXT), &pos) == SUCCESS);
        }
-#endif
 
 #ifdef VIRTUAL_DIR
        {
@@ -4154,25 +3857,18 @@ static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int mode, int
                        fontname = NULL;
                }
        }
-#endif
+#endif /* VIRTUAL_DIR */
 
        PHP_GD_CHECK_OPEN_BASEDIR(fontname, "Invalid font filename");
        
-#ifdef USE_GD_IMGSTRTTF
-# if HAVE_GD_STRINGFTEX
+#ifdef HAVE_GD_FREETYPE
        if (extended) {
                error = gdImageStringFTEx(im, brect, col, fontname, ptsize, angle, x, y, str, &strex);
        }
        else
-# endif
+               error = gdImageStringFT(im, brect, col, fontname, ptsize, angle, x, y, str);
 
-# if HAVE_GD_STRINGFT
-       error = gdImageStringFT(im, brect, col, fontname, ptsize, angle, x, y, str);
-# elif HAVE_GD_STRINGTTF
-       error = gdImageStringTTF(im, brect, col, fontname, ptsize, angle, x, y, str);
-# endif
-
-#endif
+#endif /* HAVE_GD_FREETYPE */
 
        if (error) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", error);
@@ -4643,7 +4339,6 @@ PHP_FUNCTION(imagepsbbox)
 /* }}} */
 #endif
 
-#ifdef HAVE_GD_WBMP
 /* {{{ proto bool image2wbmp(resource im [, string filename [, int threshold]])
    Output WBMP image to browser or file */
 PHP_FUNCTION(image2wbmp)
@@ -4651,9 +4346,8 @@ PHP_FUNCTION(image2wbmp)
        _php_image_output(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_CONVERT_WBM, "WBMP", _php_image_bw_convert);
 }
 /* }}} */
-#endif /* HAVE_GD_WBMP */
 
-#if defined(HAVE_GD_JPG) && defined(HAVE_GD_WBMP)
+#if defined(HAVE_GD_JPG)
 /* {{{ proto bool jpeg2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)
    Convert JPEG image to WBMP image */
 PHP_FUNCTION(jpeg2wbmp)
@@ -4663,7 +4357,7 @@ PHP_FUNCTION(jpeg2wbmp)
 /* }}} */
 #endif
 
-#if defined(HAVE_GD_PNG) && defined(HAVE_GD_WBMP)
+#if defined(HAVE_GD_PNG)
 /* {{{ proto bool png2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)
    Convert PNG image to WBMP image */
 PHP_FUNCTION(png2wbmp)
@@ -4673,7 +4367,6 @@ PHP_FUNCTION(png2wbmp)
 /* }}} */
 #endif
 
-#ifdef HAVE_GD_WBMP
 /* {{{ _php_image_bw_convert
  * It converts a gd Image to bw using a threshold value */
 static void _php_image_bw_convert(gdImagePtr im_org, gdIOCtx *out, int threshold)
@@ -4720,11 +4413,7 @@ static void _php_image_bw_convert(gdImagePtr im_org, gdIOCtx *out, int threshold
                        gdImageSetPixel (im_dest, x, y, color);
                }
        }
-#ifdef USE_GD_IOCTX
        gdImageWBMPCtx (im_dest, black, out);
-#else
-       gdImageWBMP (im_dest, black, out);
-#endif
 
 }
 /* }}} */
@@ -4748,9 +4437,7 @@ static void _php_image_convert(INTERNAL_FUNCTION_PARAMETERS, int image_type )
        int int_threshold;
        int x, y;
        float x_ratio, y_ratio;
-#ifdef HAVE_GD_JPGEX
     long ignore_warning;
-#endif
        
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "pplll", &f_org, &f_org_len, &f_dest, &f_dest_len, &height, &width, &threshold) == FAILURE) {
                return;
@@ -4789,7 +4476,6 @@ static void _php_image_convert(INTERNAL_FUNCTION_PARAMETERS, int image_type )
        }
 
        switch (image_type) {
-#ifdef HAVE_GD_GIF_READ
                case PHP_GDIMG_TYPE_GIF:
                        im_org = gdImageCreateFromGif(org);
                        if (im_org == NULL) {
@@ -4797,16 +4483,11 @@ static void _php_image_convert(INTERNAL_FUNCTION_PARAMETERS, int image_type )
                                RETURN_FALSE;
                        }
                        break;
-#endif /* HAVE_GD_GIF_READ */
 
 #ifdef HAVE_GD_JPG
                case PHP_GDIMG_TYPE_JPG:
-#ifdef HAVE_GD_JPGEX
                        ignore_warning = INI_INT("gd.jpeg_ignore_warning");
                        im_org = gdImageCreateFromJpegEx(org, ignore_warning);
-#else
-                       im_org = gdImageCreateFromJpeg(org);
-#endif
                        if (im_org == NULL) {
                                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to open '%s' Not a valid JPEG file", fn_dest);
                                RETURN_FALSE;
@@ -4814,7 +4495,6 @@ static void _php_image_convert(INTERNAL_FUNCTION_PARAMETERS, int image_type )
                        break;
 #endif /* HAVE_GD_JPG */
 
-
 #ifdef HAVE_GD_PNG
                case PHP_GDIMG_TYPE_PNG:
                        im_org = gdImageCreateFromPng(org);
@@ -4915,9 +4595,6 @@ static void _php_image_convert(INTERNAL_FUNCTION_PARAMETERS, int image_type )
        RETURN_TRUE;
 }
 /* }}} */
-#endif /* HAVE_GD_WBMP */
-
-#endif /* HAVE_LIBGD */
 
 /* Section Filters */
 #define PHP_GD_SINGLE_RES      \
@@ -5215,7 +4892,6 @@ PHP_FUNCTION(imageconvolution)
 /* }}} */
 /* End section: Filters */
 
-#ifdef HAVE_GD_IMAGE_FLIP
 /* {{{ proto void imageflip(resource im, int mode)
    Flip an image (in place) horizontally, vertically or both directions. */
 PHP_FUNCTION(imageflip)
@@ -5251,7 +4927,6 @@ PHP_FUNCTION(imageflip)
        RETURN_TRUE;
 }
 /* }}} */
-#endif
 
 #ifdef HAVE_GD_BUNDLED
 /* {{{ proto bool imageantialias(resource im, bool on)
@@ -5273,8 +4948,6 @@ PHP_FUNCTION(imageantialias)
 /* }}} */
 #endif
 
-
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
 /* {{{ proto void imagecrop(resource im, array rect)
    Crop an image using the given coordinates and size, x, y, width and height. */
 PHP_FUNCTION(imagecrop)
@@ -5696,8 +5369,6 @@ PHP_FUNCTION(imagesetinterpolation)
        RETURN_BOOL(gdImageSetInterpolationMethod(im, (gdInterpolationMethod) method));
 }
 /* }}} */
-#endif
-
 
 /*
  * Local variables:
index b0e8aa66abdeac766747f244003729123d729f19..2a0b500e9eec61563a46c689d59c8bf3b3b148cf 100644 (file)
@@ -189,11 +189,7 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
                        break;
        }
 
-#if HAVE_LIBGD204
        ctx->gd_free(ctx);
-#else
-       ctx->free(ctx);
-#endif
 
        RETURN_TRUE;
 }
index 231a1f791ff256578329d91f47b5153cdc2d7f37..2af6737f7467e9a1a16d8c384e7bf016a1e05c3b 100644 (file)
@@ -44,7 +44,7 @@
 #else
 #include <php_config.h>
 #endif
-#if HAVE_LIBFREETYPE && !defined(HAVE_GD_CACHE_CREATE)
+#if HAVE_LIBFREETYPE && !defined(HAVE_GD_BUNDLED)
 
 #include "gdcache.h"
 
index 280705436a0726f0e04686359a5177faa73bdf6d..c9c9e9de905a8d96bb49a1c72e3a7602180f5c69 100644 (file)
@@ -22,8 +22,6 @@
 #ifndef PHP_GD_H
 #define PHP_GD_H
 
-#define HAVE_GDIMAGECREATEFROMPNG 1
-
 #if HAVE_LIBFREETYPE
 # ifndef ENABLE_GD_TTF
 #  define ENABLE_GD_TTF
@@ -69,10 +67,10 @@ extern zend_module_entry gd_module_entry;
 /* gd.c functions */
 PHP_MINFO_FUNCTION(gd);
 PHP_MINIT_FUNCTION(gd);
-#if HAVE_LIBT1 || HAVE_GD_FONTMUTEX
+#if HAVE_LIBT1
 PHP_MSHUTDOWN_FUNCTION(gd);
 #endif
-#if HAVE_GD_STRINGFT
+#if HAVE_GD_FREETYPE && HAVE_LIBFREETYPE
 PHP_RSHUTDOWN_FUNCTION(gd);
 #endif
 
@@ -123,15 +121,12 @@ PHP_FUNCTION(imagegrabscreen);
 
 PHP_FUNCTION(imagerotate);
 
-#ifdef HAVE_GD_IMAGE_FLIP
 PHP_FUNCTION(imageflip);
-#endif
 
 #ifdef HAVE_GD_BUNDLED
 PHP_FUNCTION(imageantialias);
 #endif
 
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
 PHP_FUNCTION(imagecrop);
 PHP_FUNCTION(imagecropauto);
 PHP_FUNCTION(imagescale);
@@ -139,7 +134,6 @@ PHP_FUNCTION(imageaffine);
 PHP_FUNCTION(imageaffinematrixget);
 PHP_FUNCTION(imageaffinematrixconcat);
 PHP_FUNCTION(imagesetinterpolation);
-#endif
 
 PHP_FUNCTION(imagesetthickness);
 PHP_FUNCTION(imagecopymergegray);
@@ -157,7 +151,7 @@ PHP_FUNCTION(imagecreatefromwbmp);
 PHP_FUNCTION(imagecreatefromgd);
 PHP_FUNCTION(imagecreatefromgd2);
 PHP_FUNCTION(imagecreatefromgd2part);
-#if defined(HAVE_GD_XPM) && (defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21))
+#if defined(HAVE_GD_XPM)
 PHP_FUNCTION(imagecreatefromxpm);
 #endif
 
@@ -208,10 +202,8 @@ PHP_FUNCTION(image2wbmp);
 
 PHP_FUNCTION(imagecolormatch);
 
-#if defined(HAVE_GD_BUNDLED) || defined(HAVE_LIBGD21)
 PHP_FUNCTION(imagelayereffect);
 PHP_FUNCTION(imagexbm);
-#endif
 
 PHP_FUNCTION(imagefilter);
 PHP_FUNCTION(imageconvolution);