]> granicus.if.org Git - php/commitdiff
Unbundle oniguruma in config.w32
authorAnatol Belski <ab@php.net>
Sat, 9 Feb 2019 09:04:56 +0000 (10:04 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 11 Feb 2019 13:53:19 +0000 (14:53 +0100)
ext/mbstring/config.w32

index 43b7dff77f0f49cef3211e892493993781210e62..4a6c4e9e4b317539e81880bbd57f0e8818b8c28d 100644 (file)
@@ -5,62 +5,71 @@ ARG_ENABLE("mbregex", "multibyte regex support", "no");
 
 if (PHP_MBSTRING != "no") {
 
-       EXTENSION("mbstring", "mbstring.c php_unicode.c mb_gpc.c", PHP_MBSTRING_SHARED);
+       if (CHECK_LIB("onig_a.lib;libonig_a.lib", "mbstring", PHP_MBSTRING) &&
+               CHECK_HEADER_ADD_INCLUDE("mbstring.h", "CFLAGS_MBSTRING", PHP_MBSTRING + ";" + PHP_PHP_BUILD + "\\include")) {
+               EXTENSION("mbstring", "mbstring.c php_unicode.c mb_gpc.c", PHP_MBSTRING_SHARED);
 
-       STDOUT.WriteLine("Using bundled libmbfl...");
+               /* XXX libonig is only usable as a static library ATM, code change required to link with a DLL. */
+               ADD_FLAG("CFLAGS_MBSTRING", "/DONIG_EXTERN=extern /DPHP_ONIG_BAD_KOI8_ENTRY=1");
 
-       ADD_FLAG("CFLAGS_MBSTRING", "-Iext/mbstring/libmbfl -Iext/mbstring/libmbfl/mbfl \
-               /D NOT_RUBY=1 /D LIBMBFL_EXPORTS=1 \
-               /D HAVE_STDARG_PROTOTYPES=1 /D HAVE_CONFIG_H \
-               /D HAVE_STRICMP /D MBFL_DLL_EXPORT=1 /D ONIGURUMA_EXPORT /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1")
+               STDOUT.WriteLine("Using bundled libmbfl...");
 
-       FSO.CopyFile("ext\\mbstring\\libmbfl\\config.h.w32",
-               "ext\\mbstring\\libmbfl\\config.h", true);
+               ADD_FLAG("CFLAGS_MBSTRING", "-Iext/mbstring/libmbfl -Iext/mbstring/libmbfl/mbfl \
+                       /D NOT_RUBY=1 /D LIBMBFL_EXPORTS=1 \
+                       /D HAVE_STDARG_PROTOTYPES=1 /D HAVE_CONFIG_H \
+                       /D HAVE_STRICMP /D MBFL_DLL_EXPORT=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1")
 
-       ADD_SOURCES("ext/mbstring/libmbfl/filters", "html_entities.c \
-               mbfilter_7bit.c mbfilter_ascii.c mbfilter_base64.c mbfilter_big5.c \
-               mbfilter_byte2.c mbfilter_byte4.c mbfilter_cp1251.c mbfilter_cp1252.c \
-               mbfilter_cp866.c mbfilter_cp932.c mbfilter_cp936.c mbfilter_cp51932.c \
-               mbfilter_euc_cn.c mbfilter_euc_jp.c mbfilter_euc_jp_win.c mbfilter_euc_kr.c \
-               mbfilter_euc_tw.c mbfilter_htmlent.c mbfilter_hz.c mbfilter_iso2022_kr.c \
-               mbfilter_iso8859_1.c mbfilter_iso8859_10.c mbfilter_iso8859_13.c \
-               mbfilter_iso8859_14.c mbfilter_iso8859_15.c mbfilter_iso8859_16.c \
-               mbfilter_iso8859_2.c mbfilter_iso8859_3.c mbfilter_iso8859_4.c \
-               mbfilter_iso8859_5.c mbfilter_iso8859_6.c mbfilter_iso8859_7.c \
-               mbfilter_iso8859_8.c mbfilter_iso8859_9.c mbfilter_jis.c \
-               mbfilter_iso2022_jp_ms.c mbfilter_gb18030.c mbfilter_sjis_2004.c \
-               mbfilter_koi8r.c mbfilter_qprint.c mbfilter_sjis.c mbfilter_ucs2.c \
-               mbfilter_ucs4.c mbfilter_uhc.c mbfilter_utf16.c mbfilter_utf32.c \
-               mbfilter_utf7.c mbfilter_utf7imap.c mbfilter_utf8.c mbfilter_utf8_mobile.c \
-               mbfilter_koi8u.c mbfilter_cp1254.c mbfilter_euc_jp_2004.c \
-               mbfilter_uuencode.c mbfilter_armscii8.c mbfilter_cp850.c \
-               mbfilter_cp5022x.c mbfilter_sjis_open.c mbfilter_sjis_mobile.c \
-               mbfilter_sjis_mac.c \
-               mbfilter_iso2022jp_2004.c  mbfilter_iso2022jp_mobile.c \
-               mbfilter_tl_jisx0201_jisx0208.c", "mbstring");
+               FSO.CopyFile("ext\\mbstring\\libmbfl\\config.h.w32",
+                       "ext\\mbstring\\libmbfl\\config.h", true);
 
-       ADD_SOURCES("ext/mbstring/libmbfl/mbfl", "mbfilter.c mbfilter_8bit.c \
-               mbfilter_pass.c mbfilter_wchar.c mbfl_convert.c mbfl_encoding.c \
-               mbfl_filter_output.c mbfl_ident.c mbfl_language.c mbfl_memory_device.c \
-               mbfl_string.c mbfl_allocators.c", "mbstring");
+               ADD_SOURCES("ext/mbstring/libmbfl/filters", "html_entities.c \
+                       mbfilter_7bit.c mbfilter_ascii.c mbfilter_base64.c mbfilter_big5.c \
+                       mbfilter_byte2.c mbfilter_byte4.c mbfilter_cp1251.c mbfilter_cp1252.c \
+                       mbfilter_cp866.c mbfilter_cp932.c mbfilter_cp936.c mbfilter_cp51932.c \
+                       mbfilter_euc_cn.c mbfilter_euc_jp.c mbfilter_euc_jp_win.c mbfilter_euc_kr.c \
+                       mbfilter_euc_tw.c mbfilter_htmlent.c mbfilter_hz.c mbfilter_iso2022_kr.c \
+                       mbfilter_iso8859_1.c mbfilter_iso8859_10.c mbfilter_iso8859_13.c \
+                       mbfilter_iso8859_14.c mbfilter_iso8859_15.c mbfilter_iso8859_16.c \
+                       mbfilter_iso8859_2.c mbfilter_iso8859_3.c mbfilter_iso8859_4.c \
+                       mbfilter_iso8859_5.c mbfilter_iso8859_6.c mbfilter_iso8859_7.c \
+                       mbfilter_iso8859_8.c mbfilter_iso8859_9.c mbfilter_jis.c \
+                       mbfilter_iso2022_jp_ms.c mbfilter_gb18030.c mbfilter_sjis_2004.c \
+                       mbfilter_koi8r.c mbfilter_qprint.c mbfilter_sjis.c mbfilter_ucs2.c \
+                       mbfilter_ucs4.c mbfilter_uhc.c mbfilter_utf16.c mbfilter_utf32.c \
+                       mbfilter_utf7.c mbfilter_utf7imap.c mbfilter_utf8.c mbfilter_utf8_mobile.c \
+                       mbfilter_koi8u.c mbfilter_cp1254.c mbfilter_euc_jp_2004.c \
+                       mbfilter_uuencode.c mbfilter_armscii8.c mbfilter_cp850.c \
+                       mbfilter_cp5022x.c mbfilter_sjis_open.c mbfilter_sjis_mobile.c \
+                       mbfilter_sjis_mac.c \
+                       mbfilter_iso2022jp_2004.c  mbfilter_iso2022jp_mobile.c \
+                       mbfilter_tl_jisx0201_jisx0208.c", "mbstring");
 
-       ADD_SOURCES("ext/mbstring/libmbfl/nls", "nls_de.c nls_en.c nls_ja.c \
-               nls_kr.c nls_neutral.c nls_ru.c nls_uni.c nls_zh.c nls_hy.c \
-               nls_ua.c nls_tr.c", "mbstring");
+               ADD_SOURCES("ext/mbstring/libmbfl/mbfl", "mbfilter.c mbfilter_8bit.c \
+                       mbfilter_pass.c mbfilter_wchar.c mbfl_convert.c mbfl_encoding.c \
+                       mbfl_filter_output.c mbfl_ident.c mbfl_language.c mbfl_memory_device.c \
+                       mbfl_string.c mbfl_allocators.c", "mbstring");
 
-       PHP_INSTALL_HEADERS("ext/mbstring", "mbstring.h php_mbregex.h php_onig_compat.h libmbfl/config.h libmbfl/mbfl/eaw_table.h libmbfl/mbfl/mbfilter.h libmbfl/mbfl/mbfilter_8bit.h libmbfl/mbfl/mbfilter_pass.h libmbfl/mbfl/mbfilter_wchar.h libmbfl/mbfl/mbfl_allocators.h libmbfl/mbfl/mbfl_consts.h libmbfl/mbfl/mbfl_convert.h libmbfl/mbfl/mbfl_defs.h libmbfl/mbfl/mbfl_encoding.h libmbfl/mbfl/mbfl_filter_output.h libmbfl/mbfl/mbfl_ident.h libmbfl/mbfl/mbfl_language.h libmbfl/mbfl/mbfl_memory_device.h libmbfl/mbfl/mbfl_string.h");
+               ADD_SOURCES("ext/mbstring/libmbfl/nls", "nls_de.c nls_en.c nls_ja.c \
+                       nls_kr.c nls_neutral.c nls_ru.c nls_uni.c nls_zh.c nls_hy.c \
+                       nls_ua.c nls_tr.c", "mbstring");
 
-       AC_DEFINE('HAVE_MBSTRING', 1, 'Have mbstring support');
-       AC_DEFINE('HAVE_MBSTR_CN', 1, 'CN');
-       AC_DEFINE('HAVE_MBSTR_JA', 1, 'JA');
-       AC_DEFINE('HAVE_MBSTR_KR', 1, 'KR');
-       AC_DEFINE('HAVE_MBSTR_RU', 1, 'RU');
-       AC_DEFINE('HAVE_MBSTR_TW', 1, 'TW');
+               PHP_INSTALL_HEADERS("ext/mbstring", "mbstring.h php_mbregex.h php_onig_compat.h libmbfl/config.h libmbfl/mbfl/eaw_table.h libmbfl/mbfl/mbfilter.h libmbfl/mbfl/mbfilter_8bit.h libmbfl/mbfl/mbfilter_pass.h libmbfl/mbfl/mbfilter_wchar.h libmbfl/mbfl/mbfl_allocators.h libmbfl/mbfl/mbfl_consts.h libmbfl/mbfl/mbfl_convert.h libmbfl/mbfl/mbfl_defs.h libmbfl/mbfl/mbfl_encoding.h libmbfl/mbfl/mbfl_filter_output.h libmbfl/mbfl/mbfl_ident.h libmbfl/mbfl/mbfl_language.h libmbfl/mbfl/mbfl_memory_device.h libmbfl/mbfl/mbfl_string.h");
 
-       if (PHP_MBREGEX != "no") {
-               AC_DEFINE('HAVE_STDARG_PROTOTYPES', 1, 'have stdarg.h');
-               AC_DEFINE('HAVE_MBREGEX', 1);
-               ADD_SOURCES("ext/mbstring", "php_mbregex.c", "mbstring");
-               PHP_INSTALL_HEADERS("ext/mbstring", "php_mbregex.h");
+               AC_DEFINE('HAVE_MBSTRING', 1, 'Have mbstring support');
+               AC_DEFINE('HAVE_MBSTR_CN', 1, 'CN');
+               AC_DEFINE('HAVE_MBSTR_JA', 1, 'JA');
+               AC_DEFINE('HAVE_MBSTR_KR', 1, 'KR');
+               AC_DEFINE('HAVE_MBSTR_RU', 1, 'RU');
+               AC_DEFINE('HAVE_MBSTR_TW', 1, 'TW');
+
+               if (PHP_MBREGEX != "no") {
+                       AC_DEFINE('HAVE_STDARG_PROTOTYPES', 1, 'have stdarg.h');
+                       AC_DEFINE('HAVE_MBREGEX', 1);
+                       ADD_SOURCES("ext/mbstring", "php_mbregex.c", "mbstring");
+                       PHP_INSTALL_HEADERS("ext/mbstring", "php_mbregex.h");
+               }
+
+       } else {
+               WARNING("mbstring not enabled; libraries and headers not found");
        }
 }