Skip to content

Commit 72fb00b

Browse files
authored
Update gd extension preprocessor macros help texts (#15296)
PHP_GD_CHECK_FORMAT macro 2nd argument is changed from automatic AC_DEFINE_UNQUOTED to manual action for easier usage.
1 parent 1e3d918 commit 72fb00b

File tree

2 files changed

+65
-47
lines changed

2 files changed

+65
-47
lines changed

ext/gd/config.m4

+53-35
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,18 @@ AC_DEFUN([PHP_GD_PNG],[
7070
PKG_CHECK_MODULES([PNG], [libpng])
7171
PHP_EVAL_LIBLINE([$PNG_LIBS], [GD_SHARED_LIBADD])
7272
PHP_EVAL_INCLINE([$PNG_CFLAGS])
73-
AC_DEFINE(HAVE_LIBPNG, 1, [ ])
73+
AC_DEFINE([HAVE_LIBPNG], [1], [Define to 1 if you have the libpng library.])
7474
])
7575

7676
AC_DEFUN([PHP_GD_AVIF],[
7777
if test "$PHP_AVIF" != "no"; then
7878
PKG_CHECK_MODULES([AVIF], [libavif >= 0.8.2])
7979
PHP_EVAL_LIBLINE([$AVIF_LIBS], [GD_SHARED_LIBADD])
8080
PHP_EVAL_INCLINE([$AVIF_CFLAGS])
81-
AC_DEFINE(HAVE_LIBAVIF, 1, [ ])
82-
AC_DEFINE(HAVE_GD_AVIF, 1, [ ])
81+
AC_DEFINE([HAVE_LIBAVIF], [1],
82+
[Define to 1 if you have the libavif library.])
83+
AC_DEFINE([HAVE_GD_AVIF], [1],
84+
[Define to 1 if gd extension has AVIF support.])
8385
fi
8486
])
8587

@@ -88,8 +90,10 @@ AC_DEFUN([PHP_GD_WEBP],[
8890
PKG_CHECK_MODULES([WEBP], [libwebp >= 0.2.0])
8991
PHP_EVAL_LIBLINE([$WEBP_LIBS], [GD_SHARED_LIBADD])
9092
PHP_EVAL_INCLINE([$WEBP_CFLAGS])
91-
AC_DEFINE(HAVE_LIBWEBP, 1, [ ])
92-
AC_DEFINE(HAVE_GD_WEBP, 1, [ ])
93+
AC_DEFINE([HAVE_LIBWEBP], [1],
94+
[Define to 1 if you have the libwebp library.])
95+
AC_DEFINE([HAVE_GD_WEBP], [1],
96+
[Define to 1 if gd extension has WebP support.])
9397
fi
9498
])
9599

@@ -98,8 +102,10 @@ AC_DEFUN([PHP_GD_JPEG],[
98102
PKG_CHECK_MODULES([JPEG], [libjpeg])
99103
PHP_EVAL_LIBLINE([$JPEG_LIBS], [GD_SHARED_LIBADD])
100104
PHP_EVAL_INCLINE([$JPEG_CFLAGS])
101-
AC_DEFINE(HAVE_LIBJPEG, 1, [ ])
102-
AC_DEFINE(HAVE_GD_JPG, 1, [ ])
105+
AC_DEFINE([HAVE_LIBJPEG], [1],
106+
[Define to 1 if you have the libjpeg library.])
107+
AC_DEFINE([HAVE_GD_JPG], [1],
108+
[Define to 1 if gd extension has JPEG support.])
103109
fi
104110
])
105111

@@ -108,8 +114,9 @@ AC_DEFUN([PHP_GD_XPM],[
108114
PKG_CHECK_MODULES([XPM], [xpm])
109115
PHP_EVAL_LIBLINE([$XPM_LIBS], [GD_SHARED_LIBADD])
110116
PHP_EVAL_INCLINE([$XPM_CFLAGS])
111-
AC_DEFINE(HAVE_XPM, 1, [ ])
112-
AC_DEFINE(HAVE_GD_XPM, 1, [ ])
117+
AC_DEFINE([HAVE_XPM], [1], [Define to 1 if you have the xpm library.])
118+
AC_DEFINE([HAVE_GD_XPM], [1],
119+
[Define to 1 if gd extension has XPM support.])
113120
fi
114121
])
115122

@@ -119,27 +126,34 @@ AC_DEFUN([PHP_GD_FREETYPE2],[
119126
120127
PHP_EVAL_INCLINE([$FREETYPE2_CFLAGS])
121128
PHP_EVAL_LIBLINE([$FREETYPE2_LIBS], [GD_SHARED_LIBADD])
122-
AC_DEFINE(HAVE_LIBFREETYPE, 1, [ ])
123-
AC_DEFINE(HAVE_GD_FREETYPE, 1, [ ])
129+
AC_DEFINE([HAVE_LIBFREETYPE], [1],
130+
[Define to 1 if you have the FreeType library.])
131+
AC_DEFINE([HAVE_GD_FREETYPE], [1],
132+
[Define to 1 if gd extension has FreeType support.])
124133
fi
125134
])
126135

127136
AC_DEFUN([PHP_GD_JISX0208],[
128137
if test "$PHP_GD_JIS_CONV" = "yes"; then
129-
AC_DEFINE(USE_GD_JISX0208, 1, [ ])
130-
AC_DEFINE(JISX0208, 1, [ ])
138+
AC_DEFINE([USE_GD_JISX0208], [1],
139+
[Define to 1 if gd extension has JIS-mapped Japanese font support.])
140+
AC_DEFINE([JISX0208], [1],
141+
[Define to 1 if GD library has JIS-mapped Japanese font support.])
131142
fi
132143
])
133144

145+
dnl
146+
dnl PHP_GD_CHECK_FORMAT(format, [action-if-found])
147+
dnl
134148
dnl Build and run a program to determine if GD has support for the given
135149
dnl format. The first argument is the proper-noun-capitalized name of the
136150
dnl format -- basically the word Foo in gdImageCreateFromFoo -- such as
137-
dnl Png. If support for format Foo exists, the second argument (the name
138-
dnl of a constant) will be defined to 1. The reason for this charade is
139-
dnl that gd defines "junk" versions of each gdImageCreateFromFoo function
140-
dnl even when it does not support the Foo format. Those junk functions
141-
dnl display a warning but eventually return normally, making a simple link
142-
dnl or run test insufficient.
151+
dnl Png. If support for "format" Foo exists, the "action-if-found" is executed.
152+
dnl The reason for this charade is that gd defines no-op versions of each
153+
dnl gdImageCreateFromFoo function even when it does not support the Foo format.
154+
dnl Those no-op functions display a warning but eventually return normally,
155+
dnl making a simple link or run test insufficient.
156+
dnl
143157
AC_DEFUN([PHP_GD_CHECK_FORMAT],
144158
[AS_VAR_PUSHDEF([php_var], [php_cv_lib_gd_gdImageCreateFrom$1])
145159
old_LIBS="${LIBS}"
@@ -171,33 +185,34 @@ int main(int argc, char** argv) {
171185
[AS_VAR_SET([php_var], [yes])],
172186
[AS_VAR_SET([php_var], [no])],
173187
[AS_VAR_SET([php_var], [no])])])
174-
AS_VAR_IF([php_var], [yes],
175-
[AC_DEFINE_UNQUOTED([$2], [1],
176-
[Define to 1 if GD library has 'gdImageCreateFrom$1'.])])
188+
AS_VAR_IF([php_var], [yes], [$2])
177189
AC_LANG_POP([C])
178190
CFLAGS="${old_CFLAGS}"
179191
LIBS="${old_LIBS}"
180192
AS_VAR_POPDEF([php_var])
181193
])
182194

183195
AC_DEFUN([PHP_GD_CHECK_VERSION],[
184-
PHP_GD_CHECK_FORMAT([Png], [HAVE_GD_PNG])
185-
PHP_GD_CHECK_FORMAT([Avif], [HAVE_GD_AVIF])
186-
PHP_GD_CHECK_FORMAT([Webp], [HAVE_GD_WEBP])
187-
PHP_GD_CHECK_FORMAT([Jpeg], [HAVE_GD_JPG])
188-
PHP_GD_CHECK_FORMAT([Xpm], [HAVE_GD_XPM])
189-
PHP_GD_CHECK_FORMAT([Bmp], [HAVE_GD_BMP])
190-
PHP_GD_CHECK_FORMAT([Tga], [HAVE_GD_TGA])
196+
PHP_GD_CHECK_FORMAT([Png], [AC_DEFINE([HAVE_GD_PNG], [1])])
197+
PHP_GD_CHECK_FORMAT([Avif], [AC_DEFINE([HAVE_GD_AVIF], [1])])
198+
PHP_GD_CHECK_FORMAT([Webp], [AC_DEFINE([HAVE_GD_WEBP], [1])])
199+
PHP_GD_CHECK_FORMAT([Jpeg], [AC_DEFINE([HAVE_GD_JPG], [1])])
200+
PHP_GD_CHECK_FORMAT([Xpm], [AC_DEFINE([HAVE_GD_XPM], [1])])
201+
PHP_GD_CHECK_FORMAT([Bmp], [AC_DEFINE([HAVE_GD_BMP], [1])])
202+
PHP_GD_CHECK_FORMAT([Tga], [AC_DEFINE([HAVE_GD_TGA], [1])])
191203
PHP_CHECK_LIBRARY([gd], [gdFontCacheShutdown],
192-
[AC_DEFINE([HAVE_GD_FREETYPE], [1], [ ])],
204+
[AC_DEFINE([HAVE_GD_FREETYPE], [1])],
193205
[],
194206
[$GD_SHARED_LIBADD])
195207
PHP_CHECK_LIBRARY([gd], [gdVersionString],
196-
[AC_DEFINE([HAVE_GD_LIBVERSION], [1], [ ])],
208+
[AC_DEFINE([HAVE_GD_LIBVERSION], [1],
209+
[Define to 1 if GD library has the 'gdVersionString' function.])],
197210
[],
198211
[$GD_SHARED_LIBADD])
199212
PHP_CHECK_LIBRARY([gd], [gdImageGetInterpolationMethod],
200-
[AC_DEFINE([HAVE_GD_GET_INTERPOLATION], [1], [ ])],
213+
[AC_DEFINE([HAVE_GD_GET_INTERPOLATION], [1],
214+
[Define to 1 if GD library has the 'gdImageGetInterpolationMethod'
215+
function.])],
201216
[],
202217
[$GD_SHARED_LIBADD])
203218
])
@@ -255,9 +270,12 @@ if test "$PHP_GD" != "no"; then
255270
dnl These are always available with bundled library
256271
AC_DEFINE([HAVE_GD_BUNDLED], [1],
257272
[Define to 1 if gd extension uses GD library bundled in PHP.])
258-
AC_DEFINE(HAVE_GD_PNG, 1, [ ])
259-
AC_DEFINE(HAVE_GD_BMP, 1, [ ])
260-
AC_DEFINE(HAVE_GD_TGA, 1, [ ])
273+
AC_DEFINE([HAVE_GD_PNG], [1],
274+
[Define to 1 if gd extension has PNG support.])
275+
AC_DEFINE([HAVE_GD_BMP], [1],
276+
[Define to 1 if gd extension has BMP support.])
277+
AC_DEFINE([HAVE_GD_TGA], [1],
278+
[Define to 1 if gd extension has TGA support.])
261279

262280
dnl Various checks for GD features
263281
PHP_SETUP_ZLIB([GD_SHARED_LIBADD])

ext/gd/config.w32

+12-12
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ if (PHP_GD != "no") {
2626
if ((CHECK_LIB("libwebp_a.lib", "gd", PHP_GD) || CHECK_LIB("libwebp.lib", "gd", PHP_GD)) &&
2727
CHECK_HEADER_ADD_INCLUDE("decode.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\webp") &&
2828
CHECK_HEADER_ADD_INCLUDE("encode.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\webp")) {
29-
AC_DEFINE("HAVE_LIBWEBP", 1, "WebP support");
30-
AC_DEFINE("HAVE_GD_WEBP", 1, "WebP support");
29+
AC_DEFINE("HAVE_LIBWEBP", 1, "Define to 1 if you have the libwebp library.");
30+
AC_DEFINE("HAVE_GD_WEBP", 1, "Define to 1 if gd extension has WebP support.");
3131
} else {
3232
WARNING("libwebp not enabled; libraries and headers not found");
3333
}
@@ -56,16 +56,16 @@ if (PHP_GD != "no") {
5656
gd_filter.c gd_pixelate.c gd_rotate.c gd_color_match.c gd_webp.c gd_avif.c \
5757
gd_crop.c gd_interpolation.c gd_matrix.c gd_bmp.c gd_tga.c", "gd");
5858
AC_DEFINE('HAVE_GD_BUNDLED', 1, "Define to 1 if gd extension uses GD library bundled in PHP.");
59-
AC_DEFINE('HAVE_GD_PNG', 1, "PNG support");
60-
AC_DEFINE('HAVE_GD_BMP', 1, "BMP support");
61-
AC_DEFINE('HAVE_GD_TGA', 1, "TGA support");
62-
AC_DEFINE('HAVE_LIBPNG', 1, "PNG support");
63-
AC_DEFINE('HAVE_LIBJPEG', 1, "JPEG support");
64-
AC_DEFINE('HAVE_GD_JPG', 1, "JPEG support");
65-
AC_DEFINE('HAVE_XPM', 1, "XPM support");
66-
AC_DEFINE('HAVE_GD_XPM', 1, "XPM support");
67-
AC_DEFINE('HAVE_LIBFREETYPE', 1, "Freetype support");
68-
AC_DEFINE('HAVE_GD_FREETYPE', 1, "Freetype support");
59+
AC_DEFINE('HAVE_GD_PNG', 1, "Define to 1 if gd extension has PNG support.");
60+
AC_DEFINE('HAVE_GD_BMP', 1, "Define to 1 if gd extension has BMP support.");
61+
AC_DEFINE('HAVE_GD_TGA', 1, "Define to 1 if gd extension has TGA support.");
62+
AC_DEFINE('HAVE_LIBPNG', 1, "Define to 1 if you have the libpng library.");
63+
AC_DEFINE('HAVE_LIBJPEG', 1, "Define to 1 if you have the libjpeg library.");
64+
AC_DEFINE('HAVE_GD_JPG', 1, "Define to 1 if gd extension has JPEG support.");
65+
AC_DEFINE('HAVE_XPM', 1, "Define to 1 if you have the xpm library.");
66+
AC_DEFINE('HAVE_GD_XPM', 1, "Define to 1 if gd extension has XPM support.");
67+
AC_DEFINE('HAVE_LIBFREETYPE', 1, "Define to 1 if you have the FreeType library.");
68+
AC_DEFINE('HAVE_GD_FREETYPE', 1, "Define to 1 if gd extension has FreeType support.");
6969
ADD_FLAG("CFLAGS_GD", " \
7070
/D PHP_GD_EXPORTS=1 \
7171
/D HAVE_GD_GET_INTERPOLATION \

0 commit comments

Comments
 (0)