diff options
-rw-r--r-- | ext/iconv/config.w32 | 2 | ||||
-rw-r--r-- | win32/build/config.w32 | 2 | ||||
-rw-r--r-- | win32/build/confutils.js | 14 |
3 files changed, 15 insertions, 3 deletions
diff --git a/ext/iconv/config.w32 b/ext/iconv/config.w32 index 989a477fa5..05281e07e7 100644 --- a/ext/iconv/config.w32 +++ b/ext/iconv/config.w32 @@ -8,7 +8,7 @@ if (PHP_ICONV != "no") { 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)) { - EXTENSION("iconv", "iconv.c", null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"); + EXTENSION("iconv", "iconv.c", PHP_ICONV_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"); AC_DEFINE("HAVE_ICONV", 1, "Define if iconv extension is enabled"); AC_DEFINE("HAVE_LIBICONV", 1, "Define if libiconv is available"); diff --git a/win32/build/config.w32 b/win32/build/config.w32 index 1642d42caa..f96b8c51c9 100644 --- a/win32/build/config.w32 +++ b/win32/build/config.w32 @@ -261,3 +261,5 @@ if (CLANG_TOOLSET) { ARG_WITH("codegen-arch", "Architecture for code generation: ia32, sse, sse2, avx, avx2", "no"); toolset_setup_codegen_arch(); +ARG_WITH("all-shared", "Force all the non obligatory extensions to be shared", "no"); + diff --git a/win32/build/confutils.js b/win32/build/confutils.js index dfe324c4be..dc8170738f 100644 --- a/win32/build/confutils.js +++ b/win32/build/confutils.js @@ -437,7 +437,7 @@ can be built that way. \ 'pcre-regex', 'fastcgi', 'force-cgi-redirect', 'path-info-check', 'zts', 'ipv6', 'memory-limit', 'zend-multibyte', 'fd-setsize', 'memory-manager', - 't1lib', 'pgi', 'pgo' + 't1lib', 'pgi', 'pgo', 'all-shared' ); var force; @@ -1259,7 +1259,11 @@ function EXTENSION(extname, file_list, shared, cflags, dllname, obj_dir) var ldflags; if (shared == null) { - eval("shared = PHP_" + EXT + "_SHARED;"); + if (force_all_shared()) { + shared = true; + } else { + eval("shared = PHP_" + EXT + "_SHARED;"); + } } else { eval("PHP_" + EXT + "_SHARED = shared;"); } @@ -2823,3 +2827,9 @@ function trim(s) { return s.replace(/^\s+/, "").replace(/\s+$/, ""); } + +function force_all_shared() +{ + return !!PHP_ALL_SHARED && "yes" == PHP_ALL_SHARED; +} + |