Skip to content

Commit 1d2322b

Browse files
committed
Windows build: Add new function CHECK_HEADER()
The current function `CHECK_HEADER_ADD_INCLUDE()` automatically defines `HAVE_<HEADER_NAME_H>` preprocessor macros, which makes it difficult to sync with other build systems. Specially, if some `HAVE_` macro is used in the code and this function defines this macro but Autotools doesn't. The new `CHECK_HEADER()` function behaves similar except it doesn't define the `HAVE_<HEADER_NAME_H>` preprocessor macro. This removes the following unused compile definitions: HAVE_ARGON2_H HAVE_AVIF_H HAVE_BZLIB_H HAVE_CAPSTONE_CAPSTONE_H HAVE_CURL_EASY_H HAVE_DB_H HAVE_DECODE_H HAVE_DEPOT_H HAVE_EDITLINE_READLINE_H HAVE_ENCHANT_H HAVE_ENCODE_H HAVE_FFI_H HAVE_FIREBIRD_INTERFACE_H HAVE_FT2BUILD_H HAVE_GD_H HAVE_GLIB_H HAVE_GMP_H HAVE_HTTPD_H HAVE_IBASE_H HAVE_IR_IR_H HAVE_KECCAKHASH_H HAVE_LBER_H HAVE_LDAP_H HAVE_LIBEXSLT_EXSLT_H HAVE_LIBINTL_H HAVE_LIBPQ_FE_H HAVE_LIBTIDY_TIDY_H HAVE_LIBXML_PARSER_H HAVE_LIBXML_TREE_H HAVE_LIBXML_XMLWRITER_H HAVE_LIBXSLT_XSLT_H HAVE_LMDB_H HAVE_MBSTRING_H HAVE_MYSQL_H HAVE_ONIGURUMA_H HAVE_OPENSSL_SSL_H HAVE_PNG_H HAVE_SNMP_H HAVE_SODIUM_H HAVE_SQLITE3_H HAVE_SQLITE3EXT_H HAVE_SYBFRONT_H HAVE_TIDY_H HAVE_TIDY_TIDY_H HAVE_TIDYBUFFIO_H HAVE_TIMELIB_CONFIG_H HAVE_UNICODE_USPOOF_H HAVE_UNICODE_UTF_H HAVE_XPM_H HAVE_ZIP_H HAVE_ZIPCONF_H HAVE_ZLIB_H The following compile definitions are defined explicitly: - HAVE_ICONV_H - HAVE_MSCOREE_H - HAVE_SQL_H - HAVE_SQLEXT_H Additionally, the `SETUP_OPENSSL()` function doesn't accept the 6th argument anymore.
1 parent af69d3a commit 1d2322b

File tree

42 files changed

+141
-79
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+141
-79
lines changed

UPGRADING.INTERNALS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,14 @@ PHP 8.6 INTERNALS UPGRADE NOTES
9292
. Symbol HAVE_ST_BLOCKS has been removed from php_config.h (use
9393
HAVE_STRUCT_STAT_ST_BLOCKS).
9494

95+
- Windows build system changes:
96+
. Function SETUP_OPENSSL() doesn't accept 6th argument anymore and doesn't
97+
define the HAVE_OPENSSL_SSL_H preprocessor macro anymore.
98+
. Function SETUP_SQLITE3() doesn't define HAVE_SQLITE3_H and HAVE_SQLITE3EXT_H
99+
preprocessor macros anymore.
100+
. Added a new function CHECK_HEADER() which is intended to be used instead of
101+
the CHECK_HEADER_ADD_INCLUDE().
102+
95103
========================
96104
3. Module changes
97105
========================

ext/bz2/config.w32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ARG_WITH("bz2", "BZip2", "no");
44

55
if (PHP_BZ2 != "no") {
66
if (CHECK_LIB("libbz2_a.lib;libbz2.lib", "bz2", PHP_BZ2) &&
7-
CHECK_HEADER_ADD_INCLUDE("bzlib.h", "CFLAGS_BZ2")) {
7+
CHECK_HEADER("bzlib.h", "CFLAGS_BZ2")) {
88
EXTENSION("bz2", "bz2.c bz2_filter.c");
99
AC_DEFINE('HAVE_BZ2', 1, "Define to 1 if the PHP extension 'bz2' is available.");
1010
// BZ2 extension does this slightly differently from others

ext/com_dotnet/config.w32

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ if (PHP_COM_DOTNET == "yes") {
99
com_typeinfo.c com_variant.c com_wrapper.c com_saproxy.c com_persist.c",
1010
null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
1111
AC_DEFINE('HAVE_COM_DOTNET', 1, "Define to 1 if the PHP extension 'com_dotnet' is available.");
12-
CHECK_HEADER_ADD_INCLUDE('mscoree.h', 'CFLAGS_COM_DOTNET');
12+
13+
if(CHECK_HEADER('mscoree.h', 'CFLAGS_COM_DOTNET')) {
14+
AC_DEFINE('HAVE_MSCOREE_H', 1, 'Define to 1 if you have the <mscoree.h> header file.');
15+
}
16+
1317
ADD_MAKEFILE_FRAGMENT();
1418
}

ext/curl/config.w32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ARG_WITH("curl", "cURL support", "no");
55
if (PHP_CURL != "no") {
66
var curl_location;
77
if ((curl_location = CHECK_LIB("libcurl_a.lib;libcurl.lib", "curl", PHP_CURL)) &&
8-
CHECK_HEADER_ADD_INCLUDE("curl/easy.h", "CFLAGS_CURL") &&
8+
CHECK_HEADER("curl/easy.h", "CFLAGS_CURL") &&
99
SETUP_OPENSSL("curl", PHP_CURL) >= 2 &&
1010
CHECK_LIB("winmm.lib", "curl", PHP_CURL) &&
1111
CHECK_LIB("wldap32.lib", "curl", PHP_CURL) &&

ext/dba/config.w32

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ if (PHP_DBA != "no") {
1515

1616
if (PHP_DB != "no") {
1717
if (CHECK_LIB("libdb31s.lib;libdb61.lib", "dba", PHP_DBA) &&
18-
CHECK_HEADER_ADD_INCLUDE("db.h", "CFLAGS_DBA")) {
18+
CHECK_HEADER("db.h", "CFLAGS_DBA")) {
1919
ADD_FLAG("CFLAGS_DBA", "/D DB1_VERSION=\"\\\"Berkeley DB 1.85 emulation in DB3\\\"\" /D DB1_INCLUDE_FILE=\"\\\"db_185.h\\\"\" /D DBA_DB3=1 /D DB3_INCLUDE_FILE=\"\\\"db.h\\\"\"");
2020
} else {
2121
WARNING("dba: db handlers not enabled; libraries and headers not found");
@@ -24,7 +24,7 @@ if (PHP_DBA != "no") {
2424

2525
if (PHP_QDBM != "no") {
2626
if (CHECK_LIB("qdbm_a.lib;qdbm.lib", "dba", PHP_DBA) &&
27-
CHECK_HEADER_ADD_INCLUDE("depot.h", "CFLAGS_DBA", PHP_DBA + ";" + PHP_PHP_BUILD + "\\include\\qdbm")) {
27+
CHECK_HEADER("depot.h", "CFLAGS_DBA", PHP_DBA + ";" + PHP_PHP_BUILD + "\\include\\qdbm")) {
2828
ADD_SOURCES("ext/dba", "dba_qdbm.c", "dba");
2929
AC_DEFINE("QDBM_INCLUDE_FILE", "<depot.h>", "The QDBM handler header file.", false);
3030
AC_DEFINE("DBA_QDBM", 1, "Define to 1 if the dba extension uses the QDBM handler.");
@@ -35,7 +35,7 @@ if (PHP_DBA != "no") {
3535

3636
if (PHP_LMDB != "no") {
3737
if (CHECK_LIB("liblmdb_a.lib", "dba", PHP_DBA) &&
38-
CHECK_HEADER_ADD_INCLUDE("lmdb.h", "CFLAGS_DBA") &&
38+
CHECK_HEADER("lmdb.h", "CFLAGS_DBA") &&
3939
CHECK_LIB("ntdll.lib", "dba", PHP_DBA)) {
4040
ADD_SOURCES("ext/dba", "dba_lmdb.c", "dba");
4141
AC_DEFINE("LMDB_INCLUDE_FILE", "<lmdb.h>", "The LMDB handler header file.", false);

ext/dom/config.w32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ARG_WITH("dom", "DOM support", "yes");
55
if (PHP_DOM == "yes") {
66
if (PHP_LIBXML == "yes" &&
77
ADD_EXTENSION_DEP('dom', 'libxml') &&
8-
CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_DOM", PHP_PHP_BUILD + "\\include\\libxml2")
8+
CHECK_HEADER("libxml/parser.h", "CFLAGS_DOM", PHP_PHP_BUILD + "\\include\\libxml2")
99
) {
1010
EXTENSION("dom", "php_dom.c attr.c document.c infra.c \
1111
xml_document.c html_document.c xml_serializer.c html5_serializer.c html5_parser.c namespace_compat.c private_data.c \

ext/enchant/config.w32

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
ARG_WITH("enchant", "Enchant Support", "no");
44

55
if (PHP_ENCHANT == "yes") {
6-
if (CHECK_HEADER_ADD_INCLUDE("enchant.h", "CFLAGS_ENCHANT", PHP_ENCHANT+ ";" + PHP_PHP_BUILD + "\\include\\enchant") &&
7-
CHECK_HEADER_ADD_INCLUDE("glib.h", "CFLAGS_ENCHANT", PHP_ENCHANT+ ";" + PHP_PHP_BUILD + "\\include\\glib-2.0")) {
6+
if (CHECK_HEADER("enchant.h", "CFLAGS_ENCHANT", PHP_ENCHANT+ ";" + PHP_PHP_BUILD + "\\include\\enchant") &&
7+
CHECK_HEADER("glib.h", "CFLAGS_ENCHANT", PHP_ENCHANT+ ";" + PHP_PHP_BUILD + "\\include\\glib-2.0")) {
88
if (CHECK_LIB("libenchant2.lib", "enchant", PHP_ENCHANT)) {
99
have_enchant = true;
1010
} else if (CHECK_LIB("libenchant.lib", "enchant", PHP_ENCHANT)) {

ext/ffi/config.w32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
ARG_WITH('ffi', 'ffi support', 'no');
22

33
if (PHP_FFI != 'no') {
4-
if (CHECK_HEADER_ADD_INCLUDE("ffi.h", "CFLAGS_FFI", PHP_FFI+ ";" + PHP_PHP_BUILD + "\\include") &&
4+
if (CHECK_HEADER("ffi.h", "CFLAGS_FFI", PHP_FFI+ ";" + PHP_PHP_BUILD + "\\include") &&
55
CHECK_LIB("libffi.lib", "ffi", PHP_FFI)) {
66
AC_DEFINE('HAVE_FFI', 1, "Define to 1 if the PHP extension 'ffi' is available.");
77

ext/gd/config.w32

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,29 @@ if (PHP_GD != "no") {
88
if (
99
CHECK_LIB("libjpeg_a.lib;libjpeg.lib", "gd", PHP_GD) &&
1010
CHECK_LIB("freetype_a.lib;freetype.lib", "gd", PHP_GD) &&
11-
CHECK_HEADER_ADD_INCLUDE("ft2build.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\freetype2;" + PHP_PHP_BUILD + "\\include\\freetype") &&
11+
CHECK_HEADER("ft2build.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\freetype2;" + PHP_PHP_BUILD + "\\include\\freetype") &&
1212
CHECK_LIB("libpng_a.lib;libpng.lib", "gd", PHP_GD) &&
13-
CHECK_HEADER_ADD_INCLUDE("gd.h", "CFLAGS_GD", PHP_GD + ";ext\\gd\\libgd") &&
14-
(CHECK_HEADER_ADD_INCLUDE("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng16") ||
15-
CHECK_HEADER_ADD_INCLUDE("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng15") ||
16-
CHECK_HEADER_ADD_INCLUDE("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng12")) &&
13+
CHECK_HEADER("gd.h", "CFLAGS_GD", PHP_GD + ";ext\\gd\\libgd") &&
14+
(CHECK_HEADER("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng16") ||
15+
CHECK_HEADER("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng15") ||
16+
CHECK_HEADER("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng12")) &&
1717
(CHECK_LIB("libiconv_a.lib;libiconv.lib", "gd", PHP_GD) || CHECK_LIB("iconv_a.lib;iconv.lib", "gd", PHP_GD)) &&
18-
CHECK_HEADER_ADD_INCLUDE("iconv.h", "CFLAGS_GD", PHP_GD) &&
18+
CHECK_HEADER("iconv.h", "CFLAGS_GD", PHP_GD) &&
1919
SETUP_ZLIB_LIB("gd", PHP_GD) &&
20-
CHECK_HEADER_ADD_INCLUDE("zlib.h", "CFLAGS", "..\\zlib;" + php_usual_include_suspects)
20+
CHECK_HEADER("zlib.h", "CFLAGS", "..\\zlib;" + php_usual_include_suspects)
2121
) {
22+
AC_DEFINE('HAVE_ICONV_H', 1, 'Define to 1 if you have the <iconv.h> header');
2223

2324
if (CHECK_LIB("libXpm_a.lib", "gd", PHP_GD) &&
24-
CHECK_HEADER_ADD_INCLUDE("xpm.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\X11")
25+
CHECK_HEADER("xpm.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\X11")
2526
) {
2627
AC_DEFINE('HAVE_XPM', 1, "Define to 1 if you have the xpm library.");
2728
AC_DEFINE('HAVE_GD_XPM', 1, "Define to 1 if gd extension has XPM support.");
2829
}
2930
if (PHP_LIBWEBP != "no") {
3031
if ((CHECK_LIB("libwebp_a.lib", "gd", PHP_GD) || CHECK_LIB("libwebp.lib", "gd", PHP_GD)) &&
31-
CHECK_HEADER_ADD_INCLUDE("decode.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\webp") &&
32-
CHECK_HEADER_ADD_INCLUDE("encode.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\webp")) {
32+
CHECK_HEADER("decode.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\webp") &&
33+
CHECK_HEADER("encode.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\webp")) {
3334
AC_DEFINE("HAVE_LIBWEBP", 1, "Define to 1 if you have the libwebp library.");
3435
AC_DEFINE("HAVE_GD_WEBP", 1, "Define to 1 if gd extension has WebP support.");
3536
} else {
@@ -39,10 +40,10 @@ if (PHP_GD != "no") {
3940
if (PHP_LIBAVIF != "no") {
4041
if (CHECK_LIB("avif_a.lib", "gd", PHP_GD) &&
4142
CHECK_LIB("aom_a.lib", "gd", PHP_GD) &&
42-
CHECK_HEADER_ADD_INCLUDE("avif.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\avif")) {
43+
CHECK_HEADER("avif.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\avif")) {
4344
ADD_FLAG("CFLAGS_GD", "/D HAVE_LIBAVIF /D HAVE_GD_AVIF");
4445
} else if (CHECK_LIB("avif.lib", "gd", PHP_GD) &&
45-
CHECK_HEADER_ADD_INCLUDE("avif.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\avif")) {
46+
CHECK_HEADER("avif.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\avif")) {
4647
ADD_FLAG("CFLAGS_GD", "/D HAVE_LIBAVIF /D HAVE_GD_AVIF");
4748
} else {
4849
WARNING("libavif not enabled; libraries and headers not found");

ext/gettext/config.w32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
ARG_WITH("gettext", "gettext support", "no");
44

55
if (PHP_GETTEXT != "no") {
6-
if (CHECK_LIB("libintl_a.lib;libintl.lib", "gettext", PHP_GETTEXT) && CHECK_HEADER_ADD_INCLUDE("libintl.h", "CFLAGS_GETTEXT")) {
6+
if (CHECK_LIB("libintl_a.lib;libintl.lib", "gettext", PHP_GETTEXT) && CHECK_HEADER("libintl.h", "CFLAGS_GETTEXT")) {
77
EXTENSION("gettext", "gettext.c", PHP_GETTEXT_SHARED, "-DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_DNGETTEXT=1 -DHAVE_NGETTEXT=1 -DHAVE_LIBINTL=1 -DHAVE_DCNGETTEXT=1");
88
} else {
99
WARNING("gettext not enabled; libraries and headers not found");

0 commit comments

Comments
 (0)