mirror of
https://github.com/php/php-src.git
synced 2024-11-23 18:04:36 +08:00
8bfcbdc5ee
When PHP gd extension uses the external system GD library, the HAVE_LIBGD preprocessor macro gets defined in Autotools. On Windows it was previously always defined when bundled library is used. This fixes the usage and adds help texts.
82 lines
4.0 KiB
JavaScript
82 lines
4.0 KiB
JavaScript
// vim:ft=javascript
|
|
|
|
ARG_WITH("gd", "Bundled GD support", "yes,shared");
|
|
ARG_WITH("libwebp", "webp support", "yes");
|
|
ARG_WITH("libavif", "avif support", "yes");
|
|
|
|
if (PHP_GD != "no") {
|
|
if (
|
|
CHECK_LIB("libjpeg_a.lib;libjpeg.lib", "gd", PHP_GD) &&
|
|
CHECK_LIB("freetype_a.lib;freetype.lib", "gd", PHP_GD) &&
|
|
CHECK_HEADER_ADD_INCLUDE("ft2build.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\freetype2;" + PHP_PHP_BUILD + "\\include\\freetype") &&
|
|
CHECK_LIB("libpng_a.lib;libpng.lib", "gd", PHP_GD) &&
|
|
CHECK_HEADER_ADD_INCLUDE("gd.h", "CFLAGS_GD", PHP_GD + ";ext\\gd\\libgd") &&
|
|
(CHECK_HEADER_ADD_INCLUDE("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng16") ||
|
|
CHECK_HEADER_ADD_INCLUDE("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng15") ||
|
|
CHECK_HEADER_ADD_INCLUDE("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng12")) &&
|
|
(CHECK_LIB("libiconv_a.lib;libiconv.lib", "gd", PHP_GD) || CHECK_LIB("iconv_a.lib;iconv.lib", "gd", PHP_GD)) &&
|
|
CHECK_HEADER_ADD_INCLUDE("iconv.h", "CFLAGS_GD", PHP_GD) &&
|
|
(((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib", "gd", PHP_GD) )) ||
|
|
(PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib", "gd", PHP_GD)) || (PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED))) &&
|
|
CHECK_LIB("libXpm_a.lib", "gd", PHP_GD) &&
|
|
CHECK_HEADER_ADD_INCLUDE("xpm.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\X11")
|
|
) {
|
|
|
|
if (PHP_LIBWEBP != "no") {
|
|
if ((CHECK_LIB("libwebp_a.lib", "gd", PHP_GD) || CHECK_LIB("libwebp.lib", "gd", PHP_GD)) &&
|
|
CHECK_HEADER_ADD_INCLUDE("decode.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\webp") &&
|
|
CHECK_HEADER_ADD_INCLUDE("encode.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\webp")) {
|
|
AC_DEFINE("HAVE_LIBWEBP", 1, "WebP support");
|
|
AC_DEFINE("HAVE_GD_WEBP", 1, "WebP support");
|
|
} else {
|
|
WARNING("libwebp not enabled; libraries and headers not found");
|
|
}
|
|
}
|
|
if (PHP_LIBAVIF != "no") {
|
|
if (CHECK_LIB("avif_a.lib", "gd", PHP_GD) &&
|
|
CHECK_LIB("aom_a.lib", "gd", PHP_GD) &&
|
|
CHECK_HEADER_ADD_INCLUDE("avif.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\avif")) {
|
|
ADD_FLAG("CFLAGS_GD", "/D HAVE_LIBAVIF /D HAVE_GD_AVIF");
|
|
} else if (CHECK_LIB("avif.lib", "gd", PHP_GD) &&
|
|
CHECK_HEADER_ADD_INCLUDE("avif.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\avif")) {
|
|
ADD_FLAG("CFLAGS_GD", "/D HAVE_LIBAVIF /D HAVE_GD_AVIF");
|
|
} else {
|
|
WARNING("libavif not enabled; libraries and headers not found");
|
|
}
|
|
}
|
|
CHECK_LIB("User32.lib", "gd", PHP_GD);
|
|
CHECK_LIB("Gdi32.lib", "gd", PHP_GD);
|
|
|
|
EXTENSION("gd", "gd.c", null, "-Iext/gd/libgd");
|
|
ADD_SOURCES("ext/gd/libgd", "gd2copypal.c gd.c \
|
|
gdcache.c gdfontg.c gdfontl.c gdfontmb.c gdfonts.c gdfontt.c \
|
|
gdft.c gd_gd2.c gd_gd.c gd_gif_in.c gd_gif_out.c gdhelpers.c gd_io.c gd_io_dp.c \
|
|
gd_io_file.c gd_io_ss.c gd_jpeg.c gdkanji.c gd_png.c gd_ss.c \
|
|
gdtables.c gd_topal.c gd_wbmp.c gdxpm.c wbmp.c gd_xbm.c gd_security.c gd_transform.c \
|
|
gd_filter.c gd_pixelate.c gd_rotate.c gd_color_match.c gd_webp.c gd_avif.c \
|
|
gd_crop.c gd_interpolation.c gd_matrix.c gd_bmp.c gd_tga.c", "gd");
|
|
AC_DEFINE('HAVE_GD_BUNDLED', 1, "Define to 1 if gd extension uses GD library bundled in PHP.");
|
|
AC_DEFINE('HAVE_GD_PNG', 1, "PNG support");
|
|
AC_DEFINE('HAVE_GD_BMP', 1, "BMP support");
|
|
AC_DEFINE('HAVE_GD_TGA', 1, "TGA support");
|
|
AC_DEFINE('HAVE_LIBPNG', 1, "PNG support");
|
|
AC_DEFINE('HAVE_LIBJPEG', 1, "JPEG support");
|
|
AC_DEFINE('HAVE_GD_JPG', 1, "JPEG support");
|
|
AC_DEFINE('HAVE_XPM', 1, "XPM support");
|
|
AC_DEFINE('HAVE_GD_XPM', 1, "XPM support");
|
|
AC_DEFINE('HAVE_LIBFREETYPE', 1, "Freetype support");
|
|
AC_DEFINE('HAVE_GD_FREETYPE', 1, "Freetype support");
|
|
ADD_FLAG("CFLAGS_GD", " \
|
|
/D PHP_GD_EXPORTS=1 \
|
|
/D HAVE_GD_GET_INTERPOLATION \
|
|
");
|
|
if (ICC_TOOLSET) {
|
|
ADD_FLAG("LDFLAGS_GD", "/nodefaultlib:libcmt");
|
|
}
|
|
|
|
PHP_INSTALL_HEADERS("ext/gd", "php_gd.h libgd/");
|
|
} else {
|
|
WARNING("gd not enabled; libraries and headers not found");
|
|
}
|
|
}
|