Commit f17c5ad83b6 for php.net
commit f17c5ad83b67a61ec33c893c2009c0c4aeb50be7
Author: Peter Kokot <peterkokot@gmail.com>
Date: Tue Mar 3 20:06:40 2026 +0100
Windows build: Add new function CHECK_HEADER() (#21191)
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.
diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS
index fc672ac54a8..ccdba855ec5 100644
--- a/UPGRADING.INTERNALS
+++ b/UPGRADING.INTERNALS
@@ -92,6 +92,14 @@ PHP 8.6 INTERNALS UPGRADE NOTES
. Symbol HAVE_ST_BLOCKS has been removed from php_config.h (use
HAVE_STRUCT_STAT_ST_BLOCKS).
+- Windows build system changes:
+ . Function SETUP_OPENSSL() doesn't accept 6th argument anymore and doesn't
+ define the HAVE_OPENSSL_SSL_H preprocessor macro anymore.
+ . Function SETUP_SQLITE3() doesn't define HAVE_SQLITE3_H and HAVE_SQLITE3EXT_H
+ preprocessor macros anymore.
+ . Added a new function CHECK_HEADER() which is intended to be used instead of
+ the CHECK_HEADER_ADD_INCLUDE().
+
========================
3. Module changes
========================
diff --git a/ext/bz2/config.w32 b/ext/bz2/config.w32
index afbb8c648cc..a716320d2ff 100644
--- a/ext/bz2/config.w32
+++ b/ext/bz2/config.w32
@@ -4,7 +4,7 @@ ARG_WITH("bz2", "BZip2", "no");
if (PHP_BZ2 != "no") {
if (CHECK_LIB("libbz2_a.lib;libbz2.lib", "bz2", PHP_BZ2) &&
- CHECK_HEADER_ADD_INCLUDE("bzlib.h", "CFLAGS_BZ2")) {
+ CHECK_HEADER("bzlib.h", "CFLAGS_BZ2")) {
EXTENSION("bz2", "bz2.c bz2_filter.c");
AC_DEFINE('HAVE_BZ2', 1, "Define to 1 if the PHP extension 'bz2' is available.");
// BZ2 extension does this slightly differently from others
diff --git a/ext/com_dotnet/config.w32 b/ext/com_dotnet/config.w32
index c4fba4fc539..0fca82e1dd7 100644
--- a/ext/com_dotnet/config.w32
+++ b/ext/com_dotnet/config.w32
@@ -9,6 +9,10 @@ if (PHP_COM_DOTNET == "yes") {
com_typeinfo.c com_variant.c com_wrapper.c com_saproxy.c com_persist.c",
null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE('HAVE_COM_DOTNET', 1, "Define to 1 if the PHP extension 'com_dotnet' is available.");
- CHECK_HEADER_ADD_INCLUDE('mscoree.h', 'CFLAGS_COM_DOTNET');
+
+ if (CHECK_HEADER('mscoree.h', 'CFLAGS_COM_DOTNET')) {
+ AC_DEFINE('HAVE_MSCOREE_H', 1, 'Define to 1 if you have the <mscoree.h> header file.');
+ }
+
ADD_MAKEFILE_FRAGMENT();
}
diff --git a/ext/curl/config.w32 b/ext/curl/config.w32
index e097a697eb5..a4bdce59ccb 100644
--- a/ext/curl/config.w32
+++ b/ext/curl/config.w32
@@ -5,7 +5,7 @@ ARG_WITH("curl", "cURL support", "no");
if (PHP_CURL != "no") {
var curl_location;
if ((curl_location = CHECK_LIB("libcurl_a.lib;libcurl.lib", "curl", PHP_CURL)) &&
- CHECK_HEADER_ADD_INCLUDE("curl/easy.h", "CFLAGS_CURL") &&
+ CHECK_HEADER("curl/easy.h", "CFLAGS_CURL") &&
SETUP_OPENSSL("curl", PHP_CURL) >= 2 &&
CHECK_LIB("winmm.lib", "curl", PHP_CURL) &&
CHECK_LIB("wldap32.lib", "curl", PHP_CURL) &&
diff --git a/ext/dba/config.w32 b/ext/dba/config.w32
index 5017097fe75..0bb9bcc3f4e 100644
--- a/ext/dba/config.w32
+++ b/ext/dba/config.w32
@@ -15,7 +15,7 @@ if (PHP_DBA != "no") {
if (PHP_DB != "no") {
if (CHECK_LIB("libdb31s.lib;libdb61.lib", "dba", PHP_DBA) &&
- CHECK_HEADER_ADD_INCLUDE("db.h", "CFLAGS_DBA")) {
+ CHECK_HEADER("db.h", "CFLAGS_DBA")) {
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\\\"\"");
} else {
WARNING("dba: db handlers not enabled; libraries and headers not found");
@@ -24,7 +24,7 @@ if (PHP_DBA != "no") {
if (PHP_QDBM != "no") {
if (CHECK_LIB("qdbm_a.lib;qdbm.lib", "dba", PHP_DBA) &&
- CHECK_HEADER_ADD_INCLUDE("depot.h", "CFLAGS_DBA", PHP_DBA + ";" + PHP_PHP_BUILD + "\\include\\qdbm")) {
+ CHECK_HEADER("depot.h", "CFLAGS_DBA", PHP_DBA + ";" + PHP_PHP_BUILD + "\\include\\qdbm")) {
ADD_SOURCES("ext/dba", "dba_qdbm.c", "dba");
AC_DEFINE("QDBM_INCLUDE_FILE", "<depot.h>", "The QDBM handler header file.", false);
AC_DEFINE("DBA_QDBM", 1, "Define to 1 if the dba extension uses the QDBM handler.");
@@ -35,7 +35,7 @@ if (PHP_DBA != "no") {
if (PHP_LMDB != "no") {
if (CHECK_LIB("liblmdb_a.lib", "dba", PHP_DBA) &&
- CHECK_HEADER_ADD_INCLUDE("lmdb.h", "CFLAGS_DBA") &&
+ CHECK_HEADER("lmdb.h", "CFLAGS_DBA") &&
CHECK_LIB("ntdll.lib", "dba", PHP_DBA)) {
ADD_SOURCES("ext/dba", "dba_lmdb.c", "dba");
AC_DEFINE("LMDB_INCLUDE_FILE", "<lmdb.h>", "The LMDB handler header file.", false);
diff --git a/ext/dom/config.w32 b/ext/dom/config.w32
index 2d8f3f3519c..e045e29c6ba 100644
--- a/ext/dom/config.w32
+++ b/ext/dom/config.w32
@@ -5,7 +5,7 @@ ARG_WITH("dom", "DOM support", "yes");
if (PHP_DOM == "yes") {
if (PHP_LIBXML == "yes" &&
ADD_EXTENSION_DEP('dom', 'libxml') &&
- CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_DOM", PHP_PHP_BUILD + "\\include\\libxml2")
+ CHECK_HEADER("libxml/parser.h", "CFLAGS_DOM", PHP_PHP_BUILD + "\\include\\libxml2")
) {
EXTENSION("dom", "php_dom.c attr.c document.c infra.c \
xml_document.c html_document.c xml_serializer.c html5_serializer.c html5_parser.c namespace_compat.c private_data.c \
diff --git a/ext/enchant/config.w32 b/ext/enchant/config.w32
index c50f48ffb6c..45a194cdb7f 100644
--- a/ext/enchant/config.w32
+++ b/ext/enchant/config.w32
@@ -3,8 +3,8 @@
ARG_WITH("enchant", "Enchant Support", "no");
if (PHP_ENCHANT == "yes") {
- if (CHECK_HEADER_ADD_INCLUDE("enchant.h", "CFLAGS_ENCHANT", PHP_ENCHANT+ ";" + PHP_PHP_BUILD + "\\include\\enchant") &&
- CHECK_HEADER_ADD_INCLUDE("glib.h", "CFLAGS_ENCHANT", PHP_ENCHANT+ ";" + PHP_PHP_BUILD + "\\include\\glib-2.0")) {
+ if (CHECK_HEADER("enchant.h", "CFLAGS_ENCHANT", PHP_ENCHANT+ ";" + PHP_PHP_BUILD + "\\include\\enchant") &&
+ CHECK_HEADER("glib.h", "CFLAGS_ENCHANT", PHP_ENCHANT+ ";" + PHP_PHP_BUILD + "\\include\\glib-2.0")) {
if (CHECK_LIB("libenchant2.lib", "enchant", PHP_ENCHANT)) {
have_enchant = true;
} else if (CHECK_LIB("libenchant.lib", "enchant", PHP_ENCHANT)) {
diff --git a/ext/ffi/config.w32 b/ext/ffi/config.w32
index cfe54706a87..c3d3e728918 100644
--- a/ext/ffi/config.w32
+++ b/ext/ffi/config.w32
@@ -1,7 +1,7 @@
ARG_WITH('ffi', 'ffi support', 'no');
if (PHP_FFI != 'no') {
- if (CHECK_HEADER_ADD_INCLUDE("ffi.h", "CFLAGS_FFI", PHP_FFI+ ";" + PHP_PHP_BUILD + "\\include") &&
+ if (CHECK_HEADER("ffi.h", "CFLAGS_FFI", PHP_FFI+ ";" + PHP_PHP_BUILD + "\\include") &&
CHECK_LIB("libffi.lib", "ffi", PHP_FFI)) {
AC_DEFINE('HAVE_FFI', 1, "Define to 1 if the PHP extension 'ffi' is available.");
diff --git a/ext/gd/config.w32 b/ext/gd/config.w32
index a86693ad74b..506bb05cf2e 100644
--- a/ext/gd/config.w32
+++ b/ext/gd/config.w32
@@ -8,28 +8,29 @@ 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_HEADER("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_HEADER("gd.h", "CFLAGS_GD", PHP_GD + ";ext\\gd\\libgd") &&
+ (CHECK_HEADER("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng16") ||
+ CHECK_HEADER("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng15") ||
+ CHECK_HEADER("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) &&
+ CHECK_HEADER("iconv.h", "CFLAGS_GD", PHP_GD) &&
SETUP_ZLIB_LIB("gd", PHP_GD) &&
- CHECK_HEADER_ADD_INCLUDE("zlib.h", "CFLAGS", "..\\zlib;" + php_usual_include_suspects)
+ CHECK_HEADER("zlib.h", "CFLAGS", "..\\zlib;" + php_usual_include_suspects)
) {
+ AC_DEFINE('HAVE_ICONV_H', 1, 'Define to 1 if you have the <iconv.h> header');
if (CHECK_LIB("libXpm_a.lib", "gd", PHP_GD) &&
- CHECK_HEADER_ADD_INCLUDE("xpm.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\X11")
+ CHECK_HEADER("xpm.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\X11")
) {
AC_DEFINE('HAVE_XPM', 1, "Define to 1 if you have the xpm library.");
AC_DEFINE('HAVE_GD_XPM', 1, "Define to 1 if gd extension has XPM support.");
}
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")) {
+ CHECK_HEADER("decode.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\webp") &&
+ CHECK_HEADER("encode.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\webp")) {
AC_DEFINE("HAVE_LIBWEBP", 1, "Define to 1 if you have the libwebp library.");
AC_DEFINE("HAVE_GD_WEBP", 1, "Define to 1 if gd extension has WebP support.");
} else {
@@ -39,10 +40,10 @@ if (PHP_GD != "no") {
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")) {
+ CHECK_HEADER("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")) {
+ CHECK_HEADER("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");
diff --git a/ext/gettext/config.w32 b/ext/gettext/config.w32
index 3e644655426..e4a4168d949 100644
--- a/ext/gettext/config.w32
+++ b/ext/gettext/config.w32
@@ -3,7 +3,7 @@
ARG_WITH("gettext", "gettext support", "no");
if (PHP_GETTEXT != "no") {
- if (CHECK_LIB("libintl_a.lib;libintl.lib", "gettext", PHP_GETTEXT) && CHECK_HEADER_ADD_INCLUDE("libintl.h", "CFLAGS_GETTEXT")) {
+ if (CHECK_LIB("libintl_a.lib;libintl.lib", "gettext", PHP_GETTEXT) && CHECK_HEADER("libintl.h", "CFLAGS_GETTEXT")) {
EXTENSION("gettext", "gettext.c", PHP_GETTEXT_SHARED, "-DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_DNGETTEXT=1 -DHAVE_NGETTEXT=1 -DHAVE_LIBINTL=1 -DHAVE_DCNGETTEXT=1");
} else {
WARNING("gettext not enabled; libraries and headers not found");
diff --git a/ext/gmp/config.w32 b/ext/gmp/config.w32
index 2bb4aa63ad0..dc0c1e978d3 100644
--- a/ext/gmp/config.w32
+++ b/ext/gmp/config.w32
@@ -4,7 +4,7 @@ ARG_WITH("gmp", "Include GNU MP support.", "no");
if (PHP_GMP != "no") {
if (CHECK_LIB("mpir_a.lib", "gmp", PHP_GMP) &&
- CHECK_HEADER_ADD_INCLUDE("gmp.h", "CFLAGS_GMP", PHP_GMP + ";" + PHP_PHP_BUILD + "\\include\\mpir")) {
+ CHECK_HEADER("gmp.h", "CFLAGS_GMP", PHP_GMP + ";" + PHP_PHP_BUILD + "\\include\\mpir")) {
EXTENSION("gmp", "gmp.c", null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
PHP_INSTALL_HEADERS("ext/gmp", "php_gmp_int.h");
AC_DEFINE('HAVE_GMP', 1, "Define to 1 if the PHP extension 'gmp' is available.");
diff --git a/ext/hash/config.w32 b/ext/hash/config.w32
index dd4c050bcd2..e63efcfd84c 100644
--- a/ext/hash/config.w32
+++ b/ext/hash/config.w32
@@ -22,7 +22,7 @@ if(X64) {
ADD_SOURCES(hash_sha3_dir, 'KeccakHash.c KeccakSponge.c KeccakP-1600-inplace32BI.c', 'hash');
}
-if (!CHECK_HEADER_ADD_INCLUDE('KeccakHash.h', 'CFLAGS_HASH', hash_sha3_dir)) {
+if (!CHECK_HEADER('KeccakHash.h', 'CFLAGS_HASH', hash_sha3_dir)) {
// Should NEVER happen
ERROR('Unable to locate SHA3 headers');
}
diff --git a/ext/iconv/config.w32 b/ext/iconv/config.w32
index d99c53fb936..b8fe6804d52 100644
--- a/ext/iconv/config.w32
+++ b/ext/iconv/config.w32
@@ -5,7 +5,7 @@ ARG_WITH("iconv", "iconv support", "yes");
if (PHP_ICONV != "no") {
if ((CHECK_LIB("libiconv_a.lib", "iconv", PHP_ICONV) || CHECK_LIB("libiconv.lib", "iconv", PHP_ICONV) ||
CHECK_LIB("iconv_a.lib", "iconv", PHP_ICONV) || CHECK_LIB("iconv.lib", "iconv", PHP_ICONV)) &&
- CHECK_HEADER_ADD_INCLUDE("iconv.h", "CFLAGS_ICONV", PHP_ICONV)) {
+ CHECK_HEADER("iconv.h", "CFLAGS_ICONV", PHP_ICONV)) {
EXTENSION("iconv", "iconv.c", PHP_ICONV_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
diff --git a/ext/intl/config.w32 b/ext/intl/config.w32
index d5c86d12367..da8285b50d0 100644
--- a/ext/intl/config.w32
+++ b/ext/intl/config.w32
@@ -7,7 +7,7 @@ if (PHP_INTL != "no") {
CHECK_LIB("icuin.lib", "intl", PHP_INTL) &&
CHECK_LIB("icuio.lib", "intl", PHP_INTL) &&
CHECK_LIB("icuuc.lib", "intl", PHP_INTL) &&
- CHECK_HEADER_ADD_INCLUDE("unicode/utf.h", "CFLAGS_INTL")) {
+ CHECK_HEADER("unicode/utf.h", "CFLAGS_INTL")) {
// always build as shared - zend_strtod.c/ICU type conflict
EXTENSION("intl", "php_intl.c intl_convert.c intl_convertcpp.cpp intl_error.c ", true,
"/I \"" + configure_module_dirname + "\" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
@@ -92,7 +92,7 @@ if (PHP_INTL != "no") {
resourcebundle_iterator.cpp",
"intl");
- if (CHECK_HEADER_ADD_INCLUDE("unicode/uspoof.h", "CFLAGS_INTL")) {
+ if (CHECK_HEADER("unicode/uspoof.h", "CFLAGS_INTL")) {
ADD_SOURCES(configure_module_dirname + "/spoofchecker", "\
spoofchecker_class.cpp \
spoofchecker_create.cpp \
diff --git a/ext/ldap/config.w32 b/ext/ldap/config.w32
index f9bc8662ac5..7dbb353dd80 100644
--- a/ext/ldap/config.w32
+++ b/ext/ldap/config.w32
@@ -4,8 +4,8 @@ ARG_WITH("ldap", "LDAP support", "no");
if (PHP_LDAP != "no") {
- if (CHECK_HEADER_ADD_INCLUDE("ldap.h", "CFLAGS_LDAP", PHP_PHP_BUILD + "\\include\\openldap;" + PHP_PHP_BUILD + "\\openldap\\include;" + PHP_LDAP) &&
- CHECK_HEADER_ADD_INCLUDE("lber.h", "CFLAGS_LDAP", PHP_PHP_BUILD + "\\include\\openldap;" + PHP_PHP_BUILD + "\\openldap\\include;" + PHP_LDAP) &&
+ if (CHECK_HEADER("ldap.h", "CFLAGS_LDAP", PHP_PHP_BUILD + "\\include\\openldap;" + PHP_PHP_BUILD + "\\openldap\\include;" + PHP_LDAP) &&
+ CHECK_HEADER("lber.h", "CFLAGS_LDAP", PHP_PHP_BUILD + "\\include\\openldap;" + PHP_PHP_BUILD + "\\openldap\\include;" + PHP_LDAP) &&
SETUP_OPENSSL("ldap", PHP_LDAP) >= 2 &&
CHECK_LIB("oldap32_a.lib", "ldap", PHP_LDAP) &&
CHECK_LIB("olber32_a.lib", "ldap", PHP_LDAP)&&
diff --git a/ext/libxml/config.w32 b/ext/libxml/config.w32
index 2362ea0c2ba..072dd691f21 100644
--- a/ext/libxml/config.w32
+++ b/ext/libxml/config.w32
@@ -5,8 +5,8 @@ ARG_WITH("libxml", "LibXML support", "yes");
if (PHP_LIBXML == "yes") {
if (CHECK_LIB("libxml2_a_dll.lib;libxml2_a.lib", "libxml") &&
((PHP_ICONV != "no" && !PHP_ICONV_SHARED) || CHECK_LIB("libiconv_a.lib;iconv_a.lib;libiconv.lib;iconv.lib", "libxml")) &&
- CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_LIBXML", PHP_PHP_BUILD + "\\include\\libxml2") &&
- CHECK_HEADER_ADD_INCLUDE("libxml/tree.h", "CFLAGS_LIBXML", PHP_PHP_BUILD + "\\include\\libxml2")) {
+ CHECK_HEADER("libxml/parser.h", "CFLAGS_LIBXML", PHP_PHP_BUILD + "\\include\\libxml2") &&
+ CHECK_HEADER("libxml/tree.h", "CFLAGS_LIBXML", PHP_PHP_BUILD + "\\include\\libxml2")) {
if (GREP_HEADER("libxml/xmlversion.h", "#define\\s+LIBXML_VERSION\\s+(\\d+)", PHP_PHP_BUILD + "\\include\\libxml2") &&
+RegExp.$1 >= 20904) {
diff --git a/ext/mbstring/config.w32 b/ext/mbstring/config.w32
index 070d3d73137..7874da85a25 100644
--- a/ext/mbstring/config.w32
+++ b/ext/mbstring/config.w32
@@ -5,7 +5,7 @@ ARG_ENABLE("mbregex", "multibyte regex support", "no");
if (PHP_MBSTRING != "no") {
- if (CHECK_HEADER_ADD_INCLUDE("mbstring.h", "CFLAGS_MBSTRING", PHP_MBSTRING + ";" + PHP_PHP_BUILD + "\\include")) {
+ if (CHECK_HEADER("mbstring.h", "CFLAGS_MBSTRING", PHP_MBSTRING + ";" + PHP_PHP_BUILD + "\\include")) {
EXTENSION("mbstring", "mbstring.c php_unicode.c mb_gpc.c", PHP_MBSTRING_SHARED);
ADD_EXTENSION_DEP('mbstring', 'pcre');
@@ -42,7 +42,7 @@ if (PHP_MBSTRING != "no") {
AC_DEFINE('HAVE_MBSTRING', 1, "Define to 1 if the PHP extension 'mbstring' is available.");
if (PHP_MBREGEX != "no") {
- if (CHECK_HEADER_ADD_INCLUDE("oniguruma.h", "CFLAGS_MBSTRING", PHP_MBREGEX) &&
+ if (CHECK_HEADER("oniguruma.h", "CFLAGS_MBSTRING", PHP_MBREGEX) &&
CHECK_LIB("onig_a.lib;libonig_a.lib", "mbstring", PHP_MBSTRING)) {
AC_DEFINE('HAVE_MBREGEX', 1, 'Define to 1 if mbstring has multibyte regex support enabled.');
diff --git a/ext/mysqlnd/config.w32 b/ext/mysqlnd/config.w32
index cf6bf4b61cc..e88b269c486 100644
--- a/ext/mysqlnd/config.w32
+++ b/ext/mysqlnd/config.w32
@@ -29,7 +29,7 @@ if (PHP_MYSQLND != "no") {
"php_mysqlnd.c ";
EXTENSION("mysqlnd", mysqlnd_source, false, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
if (SETUP_ZLIB_LIB("mysqlnd", PHP_MYSQLND) &&
- CHECK_HEADER_ADD_INCLUDE("zlib.h", "CFLAGS", "..\\zlib;" + php_usual_include_suspects)
+ CHECK_HEADER("zlib.h", "CFLAGS", "..\\zlib;" + php_usual_include_suspects)
) {
AC_DEFINE("MYSQLND_COMPRESSION_ENABLED", 1, "Define to 1 if mysqlnd has compressed protocol support.");
AC_DEFINE("MYSQLND_SSL_SUPPORTED", 1, "Define to 1 if mysqlnd core SSL is enabled.");
diff --git a/ext/odbc/config.w32 b/ext/odbc/config.w32
index 7afa9ce8b64..242cc5992d4 100644
--- a/ext/odbc/config.w32
+++ b/ext/odbc/config.w32
@@ -4,8 +4,8 @@ ARG_ENABLE("odbc", "ODBC support", "no");
if (PHP_ODBC == "yes") {
if (CHECK_LIB("odbc32.lib", "odbc") && CHECK_LIB("odbccp32.lib", "odbc")
- && CHECK_HEADER_ADD_INCLUDE("sql.h", "CFLAGS_ODBC")
- && CHECK_HEADER_ADD_INCLUDE("sqlext.h", "CFLAGS_ODBC")) {
+ && CHECK_HEADER("sql.h", "CFLAGS_ODBC")
+ && CHECK_HEADER("sqlext.h", "CFLAGS_ODBC")) {
EXTENSION("odbc", "php_odbc.c odbc_utils.c", PHP_ODBC_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE("HAVE_UODBC", 1, "Define to 1 if the PHP extension 'odbc' is available.");
} else {
diff --git a/ext/opcache/config.w32 b/ext/opcache/config.w32
index 9b8f2a7e510..397fa1bdd87 100644
--- a/ext/opcache/config.w32
+++ b/ext/opcache/config.w32
@@ -23,7 +23,7 @@ ADD_EXTENSION_DEP('opcache', 'pcre');
if (PHP_OPCACHE_JIT == "yes") {
if (TARGET_ARCH == 'arm64') {
WARNING("JIT not enabled; not yet supported for ARM64");
- } else if (CHECK_HEADER_ADD_INCLUDE("ir/ir.h", "CFLAGS_OPCACHE", PHP_OPCACHE + ";ext\\opcache\\jit")) {
+ } else if (CHECK_HEADER("ir/ir.h", "CFLAGS_OPCACHE", PHP_OPCACHE + ";ext\\opcache\\jit")) {
var dasm_flags = (X64 ? "-D X64=1" : "") + (X64 ? " -D X64WIN=1" : "") + " -D WIN=1";
var ir_target = (X64 ? "IR_TARGET_X64" : "IR_TARGET_X86");
var ir_src = "ir_strtab.c ir_cfg.c ir_sccp.c ir_gcm.c ir_ra.c ir_save.c \
@@ -41,7 +41,7 @@ if (PHP_OPCACHE_JIT == "yes") {
ADD_FLAG("CFLAGS_OPCACHE", "/D IR_DEBUG");
}
- if (CHECK_HEADER_ADD_INCLUDE("capstone\\capstone.h", "CFLAGS_OPCACHE", PHP_OPCACHE+ ";" + PHP_PHP_BUILD + "\\include") &&
+ if (CHECK_HEADER("capstone\\capstone.h", "CFLAGS_OPCACHE", PHP_OPCACHE+ ";" + PHP_PHP_BUILD + "\\include") &&
CHECK_LIB("capstone.lib", "opcache", PHP_OPCACHE)) {
AC_DEFINE('HAVE_CAPSTONE', 1, 'Define to 1 if Capstone is available.');
ir_src += " ir_disasm.c";
diff --git a/ext/pdo_dblib/config.w32 b/ext/pdo_dblib/config.w32
index 4b1c76130f5..07e98d16a4a 100644
--- a/ext/pdo_dblib/config.w32
+++ b/ext/pdo_dblib/config.w32
@@ -7,7 +7,7 @@ if (PHP_PDO_DBLIB != "no") {
* otherwise we'll poke around and look for MSSQL libs */
if (CHECK_LIB("sybdb.lib", "pdo_dblib", PHP_PDO_DBLIB) &&
- CHECK_HEADER_ADD_INCLUDE("sybfront.h", "CFLAGS_PDO_DBLIB",
+ CHECK_HEADER("sybfront.h", "CFLAGS_PDO_DBLIB",
PHP_PDO_DBLIB, null, null, true))
{
EXTENSION("pdo_dblib", "pdo_dblib.c dblib_driver.c dblib_stmt.c", null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
@@ -24,7 +24,7 @@ if (PHP_PDO_MSSQL != "no") {
PDO_DBLIB_FLAVOUR = 0;
if (CHECK_LIB("sybdb.lib", "pdo_mssql", PHP_PDO_MSSQL) &&
- CHECK_HEADER_ADD_INCLUDE("sybfront.h", "CFLAGS_PDO_MSSQL",
+ CHECK_HEADER("sybfront.h", "CFLAGS_PDO_MSSQL",
PHP_PDO_MSSQL, null, null, true)) {
/* smells like FreeTDS (or maybe native sybase dblib) */
PDO_DBLIB_FLAVOUR = "freetds";
diff --git a/ext/pdo_firebird/config.w32 b/ext/pdo_firebird/config.w32
index 003a1a67708..1c5cb4214ad 100644
--- a/ext/pdo_firebird/config.w32
+++ b/ext/pdo_firebird/config.w32
@@ -5,9 +5,9 @@ ARG_WITH("pdo-firebird", "Firebird support for PDO", "no");
if (PHP_PDO_FIREBIRD != "no") {
if (CHECK_LIB("fbclient_ms.lib", "pdo_firebird", PHP_PHP_BUILD + "\\interbase\\lib_ms;" + PHP_PDO_FIREBIRD)
- && CHECK_HEADER_ADD_INCLUDE("ibase.h", "CFLAGS_PDO_FIREBIRD",
+ && CHECK_HEADER("ibase.h", "CFLAGS_PDO_FIREBIRD",
PHP_PHP_BUILD + "\\include\\interbase;" + PHP_PHP_BUILD + "\\interbase\\include;" + PHP_PDO_FIREBIRD)
- && CHECK_HEADER_ADD_INCLUDE("firebird\\Interface.h", "CFLAGS_PDO_FIREBIRD",
+ && CHECK_HEADER("firebird\\Interface.h", "CFLAGS_PDO_FIREBIRD",
PHP_PHP_BUILD + "\\include\\interbase;" + PHP_PHP_BUILD + "\\interbase\\include;" + PHP_PDO_FIREBIRD)
) {
diff --git a/ext/pdo_mysql/config.w32 b/ext/pdo_mysql/config.w32
index ece466975c5..95899d2270c 100644
--- a/ext/pdo_mysql/config.w32
+++ b/ext/pdo_mysql/config.w32
@@ -12,7 +12,7 @@ if (PHP_PDO_MYSQL != "no") {
ADD_MAKEFILE_FRAGMENT();
} else {
if (CHECK_LIB("libmysql.lib", "pdo_mysql", PHP_PDO_MYSQL) &&
- CHECK_HEADER_ADD_INCLUDE("mysql.h", "CFLAGS_PDO_MYSQL",
+ CHECK_HEADER("mysql.h", "CFLAGS_PDO_MYSQL",
PHP_PDO_MYSQL + "\\include;" +
PHP_PHP_BUILD + "\\include\\mysql;" +
PHP_PDO_MYSQL)) {
diff --git a/ext/pdo_odbc/config.w32 b/ext/pdo_odbc/config.w32
index 6a94da7f795..e7051619571 100644
--- a/ext/pdo_odbc/config.w32
+++ b/ext/pdo_odbc/config.w32
@@ -4,11 +4,13 @@ ARG_WITH("pdo-odbc", "ODBC support for PDO", "no");
if (PHP_PDO_ODBC != "no") {
if (CHECK_LIB("odbc32.lib", "pdo_odbc") && CHECK_LIB("odbccp32.lib", "pdo_odbc")
- && CHECK_HEADER_ADD_INCLUDE('sql.h', 'CFLAGS_PDO_ODBC')
- && CHECK_HEADER_ADD_INCLUDE('sqlext.h', 'CFLAGS_PDO_ODBC')) {
+ && CHECK_HEADER('sql.h', 'CFLAGS_PDO_ODBC')
+ && CHECK_HEADER('sqlext.h', 'CFLAGS_PDO_ODBC')) {
EXTENSION("pdo_odbc", "pdo_odbc.c odbc_driver.c odbc_stmt.c");
ADD_EXTENSION_DEP('pdo_odbc', 'pdo');
+ AC_DEFINE('HAVE_SQL_H', 1, 'Define to 1 if you have the <sql.h> header.');
+ AC_DEFINE('HAVE_SQLEXT_H', 1, 'Define to 1 if you have the <sqlext.h> header.');
} else {
WARNING("pdo_odbc support can't be enabled, headers or libraries are missing (SDK)")
diff --git a/ext/pdo_pgsql/config.w32 b/ext/pdo_pgsql/config.w32
index aec5db508d0..5fc25f21590 100644
--- a/ext/pdo_pgsql/config.w32
+++ b/ext/pdo_pgsql/config.w32
@@ -4,7 +4,7 @@ ARG_WITH("pdo-pgsql", "PostgreSQL support for PDO", "no");
if (PHP_PDO_PGSQL != "no") {
if (CHECK_LIB("libpq.lib", "pdo_pgsql", PHP_PDO_PGSQL) &&
- CHECK_HEADER_ADD_INCLUDE("libpq-fe.h", "CFLAGS_PDO_PGSQL", PHP_PDO_PGSQL + "\\include;" + PHP_PHP_BUILD + "\\include\\pgsql;" + PHP_PHP_BUILD + "\\include\\libpq;")) {
+ CHECK_HEADER("libpq-fe.h", "CFLAGS_PDO_PGSQL", PHP_PDO_PGSQL + "\\include;" + PHP_PHP_BUILD + "\\include\\pgsql;" + PHP_PHP_BUILD + "\\include\\libpq;")) {
EXTENSION("pdo_pgsql", "pdo_pgsql.c pgsql_driver.c pgsql_statement.c pgsql_sql_parser.c");
AC_DEFINE('HAVE_PDO_PGSQL', 1, "Define to 1 if the PHP extension 'pdo_pgsql' is available.");
diff --git a/ext/pgsql/config.w32 b/ext/pgsql/config.w32
index 3ca5fc2f169..14eb5a07a0e 100644
--- a/ext/pgsql/config.w32
+++ b/ext/pgsql/config.w32
@@ -4,7 +4,7 @@ ARG_WITH("pgsql", "PostgreSQL support", "no");
if (PHP_PGSQL != "no") {
if (CHECK_LIB("libpq.lib", "pgsql", PHP_PGSQL) &&
- CHECK_HEADER_ADD_INCLUDE("libpq-fe.h", "CFLAGS_PGSQL", PHP_PGSQL + "\\include;" + PHP_PHP_BUILD + "\\include\\pgsql;" + PHP_PHP_BUILD + "\\include\\libpq;" + PHP_PGSQL)) {
+ CHECK_HEADER("libpq-fe.h", "CFLAGS_PGSQL", PHP_PGSQL + "\\include;" + PHP_PHP_BUILD + "\\include\\pgsql;" + PHP_PHP_BUILD + "\\include\\libpq;" + PHP_PGSQL)) {
EXTENSION("pgsql", "pgsql.c", PHP_PGSQL_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE('HAVE_PGSQL', 1, "Define to 1 if the PHP extension 'pgsql' is available.");
ADD_FLAG("CFLAGS_PGSQL", "/D PGSQL_EXPORTS");
diff --git a/ext/readline/config.w32 b/ext/readline/config.w32
index 8f3a2db61f2..2ff9cc8a2bb 100644
--- a/ext/readline/config.w32
+++ b/ext/readline/config.w32
@@ -4,7 +4,7 @@ ARG_WITH("readline", "Readline support", "yes");
if (PHP_READLINE != "no") {
if (CHECK_LIB("edit_a.lib;edit.lib", "readline", PHP_READLINE) &&
- CHECK_HEADER_ADD_INCLUDE("editline/readline.h", "CFLAGS_READLINE")) {
+ CHECK_HEADER("editline/readline.h", "CFLAGS_READLINE")) {
EXTENSION("readline", "readline.c readline_cli.c");
ADD_FLAG("CFLAGS_READLINE", "/D HAVE_LIBEDIT");
ADD_FLAG("CFLAGS_READLINE", "/D HAVE_RL_COMPLETION_MATCHES");
diff --git a/ext/simplexml/config.w32 b/ext/simplexml/config.w32
index 8942e6c93e3..0c2e7c5f5a7 100644
--- a/ext/simplexml/config.w32
+++ b/ext/simplexml/config.w32
@@ -6,7 +6,7 @@ if (PHP_SIMPLEXML == "yes") {
if(PHP_LIBXML == "yes" &&
ADD_EXTENSION_DEP('simplexml', 'libxml') &&
ADD_EXTENSION_DEP('simplexml', 'spl') &&
- CHECK_HEADER_ADD_INCLUDE("libxml/tree.h", "CFLAGS_SIMPLEXML", PHP_PHP_BUILD + "\\include\\libxml2")
+ CHECK_HEADER("libxml/tree.h", "CFLAGS_SIMPLEXML", PHP_PHP_BUILD + "\\include\\libxml2")
) {
EXTENSION("simplexml", "simplexml.c");
AC_DEFINE("HAVE_SIMPLEXML", 1, "Define to 1 if the PHP extension 'simplexml' is available.");
diff --git a/ext/snmp/config.w32 b/ext/snmp/config.w32
index a2facb6946d..0e3887c0de6 100644
--- a/ext/snmp/config.w32
+++ b/ext/snmp/config.w32
@@ -3,7 +3,7 @@
ARG_WITH("snmp", "SNMP support", "no");
if (PHP_SNMP != "no") {
- if (CHECK_HEADER_ADD_INCLUDE("snmp.h", "CFLAGS_SNMP", PHP_PHP_BUILD + "\\include\\net-snmp;" + PHP_SNMP) &&
+ if (CHECK_HEADER("snmp.h", "CFLAGS_SNMP", PHP_PHP_BUILD + "\\include\\net-snmp;" + PHP_SNMP) &&
SETUP_OPENSSL("snmp", PHP_SNMP) >= 2) {
if (CHECK_LIB("netsnmp.lib", "snmp", PHP_SNMP)) {
EXTENSION('snmp', 'snmp.c');
diff --git a/ext/soap/config.w32 b/ext/soap/config.w32
index 583f6a2b2e0..7cecb8e8afe 100644
--- a/ext/soap/config.w32
+++ b/ext/soap/config.w32
@@ -5,8 +5,8 @@ ARG_ENABLE("soap", "SOAP support", "no");
if (PHP_SOAP != "no") {
if (PHP_LIBXML == "yes" &&
ADD_EXTENSION_DEP('soap', 'libxml') &&
- CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_SOAP", PHP_PHP_BUILD + "\\include\\libxml2") &&
- CHECK_HEADER_ADD_INCLUDE("libxml/tree.h", "CFLAGS_SOAP", PHP_PHP_BUILD + "\\include\\libxml2")
+ CHECK_HEADER("libxml/parser.h", "CFLAGS_SOAP", PHP_PHP_BUILD + "\\include\\libxml2") &&
+ CHECK_HEADER("libxml/tree.h", "CFLAGS_SOAP", PHP_PHP_BUILD + "\\include\\libxml2")
) {
EXTENSION('soap', 'soap.c php_encoding.c php_http.c php_packet_soap.c php_schema.c php_sdl.c php_xml.c', null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE('HAVE_SOAP', 1, "Define to 1 if the PHP extension 'soap' is available.");
diff --git a/ext/sodium/config.w32 b/ext/sodium/config.w32
index bde64062946..19c548898ab 100644
--- a/ext/sodium/config.w32
+++ b/ext/sodium/config.w32
@@ -3,7 +3,7 @@
ARG_WITH("sodium", "for libsodium support", "no");
if (PHP_SODIUM != "no") {
- if (CHECK_LIB("libsodium.lib", "sodium", PHP_SODIUM) && CHECK_HEADER_ADD_INCLUDE("sodium.h", "CFLAGS_SODIUM")) {
+ if (CHECK_LIB("libsodium.lib", "sodium", PHP_SODIUM) && CHECK_HEADER("sodium.h", "CFLAGS_SODIUM")) {
EXTENSION("sodium", "libsodium.c sodium_pwhash.c");
AC_DEFINE('HAVE_LIBSODIUMLIB', 1 , "Define to 1 if the PHP extension 'sodium' is available.");
PHP_INSTALL_HEADERS("ext/sodium", "php_libsodium.h");
diff --git a/ext/standard/config.w32 b/ext/standard/config.w32
index c7c14b8705c..bb88e0931d2 100644
--- a/ext/standard/config.w32
+++ b/ext/standard/config.w32
@@ -4,7 +4,7 @@ ARG_WITH("password-argon2", "Argon2 support", "no");
if (PHP_PASSWORD_ARGON2 != "no") {
if (CHECK_LIB("argon2_a.lib;argon2.lib", null, PHP_PASSWORD_ARGON2)
- && CHECK_HEADER_ADD_INCLUDE("argon2.h", "CFLAGS")) {
+ && CHECK_HEADER("argon2.h", "CFLAGS")) {
if (!CHECK_FUNC_IN_HEADER("argon2.h", "argon2id_hash_raw", PHP_PHP_BUILD + "\\include", "CFLAGS")) {
ERROR("Please verify that Argon2 header and libraries >= 20161029 are installed");
}
@@ -19,7 +19,7 @@ ARG_WITH("config-file-scan-dir", "Dir to check for additional php ini files", ""
AC_DEFINE("PHP_CONFIG_FILE_SCAN_DIR", PHP_CONFIG_FILE_SCAN_DIR);
AC_DEFINE("PHP_USE_PHP_CRYPT_R", 1, "Define to 1 if PHP uses its own crypt_r, and to 0 if using the external crypt library.");
-CHECK_HEADER_ADD_INCLUDE("timelib_config.h", "CFLAGS_STANDARD", "ext/date/lib");
+CHECK_HEADER("timelib_config.h", "CFLAGS_STANDARD", "ext/date/lib");
ADD_FLAG("LIBS_STANDARD", "iphlpapi.lib");
diff --git a/ext/tidy/config.w32 b/ext/tidy/config.w32
index 1b2436ac9df..8cbb5b9e681 100644
--- a/ext/tidy/config.w32
+++ b/ext/tidy/config.w32
@@ -7,12 +7,12 @@ if (PHP_TIDY != "no") {
if ((CHECK_LIB("libtidy_a.lib;tidy_a.lib", "tidy", PHP_TIDY) && (tidy_static = true) ||
CHECK_LIB("libtidy.lib;tidy.lib", "tidy", PHP_TIDY)) &&
(
- CHECK_HEADER_ADD_INCLUDE("tidy.h", "CFLAGS_TIDY") ||
- CHECK_HEADER_ADD_INCLUDE("tidy/tidy.h", "CFLAGS_TIDY", null, null, true) ||
- CHECK_HEADER_ADD_INCLUDE("libtidy/tidy.h", "CFLAGS_TIDY", null, null, true)
+ CHECK_HEADER("tidy.h", "CFLAGS_TIDY") ||
+ CHECK_HEADER("tidy/tidy.h", "CFLAGS_TIDY", null, null, true) ||
+ CHECK_HEADER("libtidy/tidy.h", "CFLAGS_TIDY", null, null, true)
)) {
- if (CHECK_HEADER_ADD_INCLUDE("tidybuffio.h", "CFLAGS_TIDY")) {
+ if (CHECK_HEADER("tidybuffio.h", "CFLAGS_TIDY")) {
AC_DEFINE('HAVE_TIDYBUFFIO_H', 1, 'Define to 1 if you have the <tidybuffio.h> header file.');
}
diff --git a/ext/xml/config.w32 b/ext/xml/config.w32
index 00ef36841c3..69fdcd4a094 100644
--- a/ext/xml/config.w32
+++ b/ext/xml/config.w32
@@ -5,8 +5,8 @@ ARG_WITH("xml", "XML support", "yes");
if (PHP_XML == "yes") {
if (PHP_LIBXML == "yes" &&
ADD_EXTENSION_DEP('xml', 'libxml') &&
- CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_XML", PHP_PHP_BUILD + "\\include\\libxml2") &&
- CHECK_HEADER_ADD_INCLUDE("libxml/tree.h", "CFLAGS_XML", PHP_PHP_BUILD + "\\include\\libxml2")
+ CHECK_HEADER("libxml/parser.h", "CFLAGS_XML", PHP_PHP_BUILD + "\\include\\libxml2") &&
+ CHECK_HEADER("libxml/tree.h", "CFLAGS_XML", PHP_PHP_BUILD + "\\include\\libxml2")
) {
EXTENSION("xml", "xml.c compat.c", null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE("HAVE_XML", 1, "Define to 1 if the PHP extension 'xml' is available.");
diff --git a/ext/xmlreader/config.w32 b/ext/xmlreader/config.w32
index d92672d427d..803323931d6 100644
--- a/ext/xmlreader/config.w32
+++ b/ext/xmlreader/config.w32
@@ -4,8 +4,8 @@ ARG_ENABLE("xmlreader", "XMLReader support", "yes");
if (PHP_XMLREADER == "yes" &&
PHP_LIBXML == "yes" &&
- CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_XMLREADER", PHP_PHP_BUILD + "\\include\\libxml2") &&
- CHECK_HEADER_ADD_INCLUDE("libxml/tree.h", "CFLAGS_XMLREADER", PHP_PHP_BUILD + "\\include\\libxml2")
+ CHECK_HEADER("libxml/parser.h", "CFLAGS_XMLREADER", PHP_PHP_BUILD + "\\include\\libxml2") &&
+ CHECK_HEADER("libxml/tree.h", "CFLAGS_XMLREADER", PHP_PHP_BUILD + "\\include\\libxml2")
) {
EXTENSION("xmlreader", "php_xmlreader.c");
AC_DEFINE("HAVE_XMLREADER", 1, "Define to 1 if the PHP extension 'xmlreader' is available.");
diff --git a/ext/xmlwriter/config.w32 b/ext/xmlwriter/config.w32
index 737e3fcd38c..35459cdd9c4 100644
--- a/ext/xmlwriter/config.w32
+++ b/ext/xmlwriter/config.w32
@@ -3,7 +3,7 @@
ARG_ENABLE("xmlwriter", "XMLWriter support", "yes");
if (PHP_XMLWRITER == "yes" && PHP_LIBXML == "yes") {
- if (CHECK_HEADER_ADD_INCLUDE('libxml/xmlwriter.h', 'CFLAGS_XMLWRITER', PHP_XMLWRITER + ";" + PHP_PHP_BUILD + "\\include\\libxml2")) {
+ if (CHECK_HEADER('libxml/xmlwriter.h', 'CFLAGS_XMLWRITER', PHP_XMLWRITER + ";" + PHP_PHP_BUILD + "\\include\\libxml2")) {
EXTENSION("xmlwriter", "php_xmlwriter.c");
AC_DEFINE("HAVE_XMLWRITER", 1, "Define to 1 if the PHP extension 'xmlwriter' is available.");
if (!PHP_XMLWRITER_SHARED) {
diff --git a/ext/xsl/config.w32 b/ext/xsl/config.w32
index 4990c3c5bd0..84d463decb9 100644
--- a/ext/xsl/config.w32
+++ b/ext/xsl/config.w32
@@ -6,7 +6,7 @@ if (PHP_XSL != "no") {
if (PHP_DOM == "yes" && PHP_LIBXML == "yes"
&& ADD_EXTENSION_DEP('xsl', 'libxml')
&& ADD_EXTENSION_DEP('xsl', 'dom')
- && CHECK_HEADER_ADD_INCLUDE("libxml/tree.h", "CFLAGS_XSL", PHP_PHP_BUILD + "\\include\\libxml2")
+ && CHECK_HEADER("libxml/tree.h", "CFLAGS_XSL", PHP_PHP_BUILD + "\\include\\libxml2")
) {
var ext_xsl_lib_found = false;
var ext_exslt_lib_found = false;
@@ -25,9 +25,9 @@ if (PHP_XSL != "no") {
}
}
- if (ext_xsl_lib_found && CHECK_HEADER_ADD_INCLUDE("libxslt\\xslt.h", "CFLAGS_XSL")) {
+ if (ext_xsl_lib_found && CHECK_HEADER("libxslt\\xslt.h", "CFLAGS_XSL")) {
if (ext_exslt_lib_found) {
- if (CHECK_HEADER_ADD_INCLUDE("libexslt\\exslt.h", "CFLAGS_XSL")) {
+ if (CHECK_HEADER("libexslt\\exslt.h", "CFLAGS_XSL")) {
AC_DEFINE("HAVE_XSL_EXSLT", 1, "Define to 1 if the system has the EXSLT extension library for XSLT.");
}
}
diff --git a/ext/zip/config.w32 b/ext/zip/config.w32
index 9b80aefaaad..3f05d8454c1 100644
--- a/ext/zip/config.w32
+++ b/ext/zip/config.w32
@@ -3,8 +3,8 @@
ARG_ENABLE("zip", "ZIP support", "yes,shared");
if (PHP_ZIP != "no") {
- if (CHECK_HEADER_ADD_INCLUDE("zip.h", "CFLAGS_ZIP", PHP_PHP_BUILD + "\\include;" + PHP_EXTRA_INCLUDES) &&
- CHECK_HEADER_ADD_INCLUDE("zipconf.h", "CFLAGS_ZIP", PHP_PHP_BUILD + "\\lib\\libzip\\include;" + PHP_EXTRA_LIBS + "\\libzip\\include;" + PHP_ZIP) &&
+ if (CHECK_HEADER("zip.h", "CFLAGS_ZIP", PHP_PHP_BUILD + "\\include;" + PHP_EXTRA_INCLUDES) &&
+ CHECK_HEADER("zipconf.h", "CFLAGS_ZIP", PHP_PHP_BUILD + "\\lib\\libzip\\include;" + PHP_EXTRA_LIBS + "\\libzip\\include;" + PHP_ZIP) &&
(PHP_ZIP_SHARED && CHECK_LIB("libzip.lib", "zip", PHP_ZIP) ||
CHECK_LIB("libzip_a.lib", "zip", PHP_ZIP) && CHECK_LIB("libbz2_a.lib", "zip", PHP_ZIP) && CHECK_LIB("zlib_a.lib", "zip", PHP_ZIP) && CHECK_LIB("liblzma_a.lib", "zip", PHP_ZIP))
) {
diff --git a/ext/zlib/config.w32 b/ext/zlib/config.w32
index 63ca949813c..520ab11cd84 100644
--- a/ext/zlib/config.w32
+++ b/ext/zlib/config.w32
@@ -4,7 +4,7 @@ ARG_ENABLE("zlib", "ZLIB support", "yes");
if (PHP_ZLIB == "yes") {
if (CHECK_LIB("zlib_a.lib;zlib.lib", "zlib", PHP_ZLIB) &&
- CHECK_HEADER_ADD_INCLUDE("zlib.h", "CFLAGS", "..\\zlib;" + php_usual_include_suspects)) {
+ CHECK_HEADER("zlib.h", "CFLAGS", "..\\zlib;" + php_usual_include_suspects)) {
EXTENSION("zlib", "zlib.c zlib_fopen_wrapper.c zlib_filter.c", PHP_ZLIB_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE("HAVE_ZLIB", 1, "Define to 1 if the PHP extension 'zlib' is available.");
diff --git a/sapi/apache2handler/config.w32 b/sapi/apache2handler/config.w32
index 710d6438f53..2ce4511666f 100644
--- a/sapi/apache2handler/config.w32
+++ b/sapi/apache2handler/config.w32
@@ -10,7 +10,7 @@ if(PHP_APACHE2_4HANDLER != "no" && PHP_APACHE2HANDLER == "no") {
if (PHP_APACHE2HANDLER != "no") {
if (PHP_ZTS == "no") {
WARNING("Apache module requires an --enable-zts build of PHP on windows");
- } else if (CHECK_HEADER_ADD_INCLUDE("httpd.h", "CFLAGS_APACHE2HANDLER", PHP_PHP_BUILD + "\\include\\apache2_4") &&
+ } else if (CHECK_HEADER("httpd.h", "CFLAGS_APACHE2HANDLER", PHP_PHP_BUILD + "\\include\\apache2_4") &&
CHECK_LIB("libhttpd.lib", "apache2handler", PHP_PHP_BUILD + "\\lib\\apache2_4") &&
CHECK_LIB("libapr-1.lib", "apache2handler", PHP_PHP_BUILD + "\\lib\\apache2_4") &&
CHECK_LIB("libaprutil-1.lib", "apache2handler", PHP_PHP_BUILD + "\\lib\\apache2_4")
diff --git a/sapi/cli/config.w32 b/sapi/cli/config.w32
index 093bf03a51d..5dff4054b69 100644
--- a/sapi/cli/config.w32
+++ b/sapi/cli/config.w32
@@ -12,7 +12,7 @@ if (PHP_CLI == "yes") {
PHP_INSTALL_HEADERS("sapi/cli", "cli.h");
if (CHECK_LIB("edit_a.lib;edit.lib", "cli", PHP_CLI) &&
- CHECK_HEADER_ADD_INCLUDE("editline/readline.h", "CFLAGS_CLI")) {
+ CHECK_HEADER("editline/readline.h", "CFLAGS_CLI")) {
ADD_FLAG("CFLAGS_CLI", "/D HAVE_LIBEDIT");
}
}
diff --git a/win32/build/confutils.js b/win32/build/confutils.js
index e516fd410bc..587d89c27f4 100644
--- a/win32/build/confutils.js
+++ b/win32/build/confutils.js
@@ -996,6 +996,55 @@ function GREP_HEADER(header_name, regex, path_to_check)
return false;
}
+/**
+ * Checks if specified header exists and adds its include path to C flags.
+ */
+function CHECK_HEADER(header_name, flag_name, path_to_check, use_env, add_dir_part)
+{
+ var dir_part_to_add = "";
+
+ if (use_env == null) {
+ use_env = true;
+ }
+
+ // if true, add the dir part of the header_name to the include path
+ if (add_dir_part == null) {
+ add_dir_part = false;
+ } else if (add_dir_part) {
+ var basename = FSO.GetFileName(header_name);
+ dir_part_to_add = "\\" + header_name.substr(0, header_name.length - basename.length - 1);
+ }
+
+ if (path_to_check == null) {
+ path_to_check = php_usual_include_suspects;
+ } else {
+ path_to_check += ";" + php_usual_include_suspects;
+ }
+
+ var p = search_paths(header_name, path_to_check, use_env ? "INCLUDE" : null);
+
+ if (typeof(p) == "string") {
+ ADD_FLAG(flag_name, '/I "' + p + dir_part_to_add + '" ');
+ } else if (p == false) {
+ /* Not found in the defaults or the explicit paths,
+ * so check the general extra includes; if we find
+ * it here, no need to add another /I for it as we
+ * already have it covered, unless we are adding
+ * the dir part.... */
+ p = search_paths(header_name, PHP_EXTRA_INCLUDES, null);
+ if (typeof(p) == "string" && add_dir_part) {
+ ADD_FLAG(flag_name, '/I "' + p + dir_part_to_add + '" ');
+ }
+ }
+
+ return p;
+}
+
+/**
+ * Obsolete. Checks if specified header exists, adds its include path to C flags
+ * and defines the 'HAVE_<HEADER_NAME_H>' C preprocessor macro. In new code, use
+ * CHECK_HEADER() instead, and define the 'HAVE_' macro manually as needed.
+ */
function CHECK_HEADER_ADD_INCLUDE(header_name, flag_name, path_to_check, use_env, add_dir_part, add_to_flag_only)
{
var dir_part_to_add = "";
@@ -3657,7 +3706,7 @@ function SETUP_ZLIB_LIB(target, path_to_check)
return (PHP_ZLIB != "no" && !PHP_ZLIB_SHARED) || CHECK_LIB("zlib_a.lib;zlib.lib", target, path_to_check);
}
-function SETUP_OPENSSL(target, path_to_check, common_name, use_env, add_dir_part, add_to_flag_only)
+function SETUP_OPENSSL(target, path_to_check, common_name, use_env, add_dir_part)
{
var ret = 0;
var cflags_var = "CFLAGS_" + target.toUpperCase();
@@ -3665,7 +3714,7 @@ function SETUP_OPENSSL(target, path_to_check, common_name, use_env, add_dir_part
if (CHECK_LIB("libcrypto.lib", target, path_to_check) &&
CHECK_LIB("libssl.lib", target, path_to_check) &&
CHECK_LIB("crypt32.lib", target, path_to_check, common_name) &&
- CHECK_HEADER_ADD_INCLUDE("openssl/ssl.h", cflags_var, path_to_check, use_env, add_dir_part, add_to_flag_only)) {
+ CHECK_HEADER("openssl/ssl.h", cflags_var, path_to_check, use_env, add_dir_part)) {
/* Openssl 1.1.x or later */
return 2;
}
@@ -3678,8 +3727,8 @@ function SETUP_SQLITE3(target, path_to_check, shared) {
var libs = (shared ? "libsqlite3.lib;libsqlite3_a.lib" : "libsqlite3_a.lib;libsqlite3.lib");
return CHECK_LIB(libs, target, path_to_check) &&
- CHECK_HEADER_ADD_INCLUDE("sqlite3.h", cflags_var) &&
- CHECK_HEADER_ADD_INCLUDE("sqlite3ext.h", cflags_var);
+ CHECK_HEADER("sqlite3.h", cflags_var) &&
+ CHECK_HEADER("sqlite3ext.h", cflags_var);
}
function check_binary_tools_sdk()