From 3ec8730e891493ea3a91ef19e7d78031cf8bca2e Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Thu, 27 Nov 2014 09:14:47 +0100 Subject: [PATCH] Fixed bug #68504 --with-libmbfl configure option not present on Windows --- NEWS | 4 +- ext/mbstring/config.w32 | 119 ++++++++++++++++++++++++---------------- 2 files changed, 76 insertions(+), 47 deletions(-) diff --git a/NEWS b/NEWS index 2694863caa..b221c67ed6 100644 --- a/NEWS +++ b/NEWS @@ -2,7 +2,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2014, PHP 5.5.21 - +- mbstring: + . Fixed bug #68504 (--with-libmbfl configure option not present on Windows). + (Ashesh Vashi) 11 Dec 2014, PHP 5.5.20 diff --git a/ext/mbstring/config.w32 b/ext/mbstring/config.w32 index 6b7e05a329..487ab1e632 100644 --- a/ext/mbstring/config.w32 +++ b/ext/mbstring/config.w32 @@ -1,62 +1,89 @@ // $Id$ // vim:ft=javascript +ARG_WITH("libmbfl", "use external libmbfl", "no"); ARG_ENABLE("mbstring", "multibyte string functions", "no"); ARG_ENABLE("mbregex", "multibyte regex support", "no"); ARG_ENABLE("mbregex-backtrack", "check multibyte regex backtrack", "yes"); if (PHP_MBSTRING != "no") { - FSO.CopyFile("ext\\mbstring\\libmbfl\\config.h.w32", - "ext\\mbstring\\libmbfl\\config.h", true); - FSO.CopyFile("ext\\mbstring\\oniguruma\\win32\\config.h", - "ext\\mbstring\\oniguruma\\config.h", true); - - EXTENSION("mbstring", "mbstring.c php_unicode.c mb_gpc.c", PHP_MBSTRING_SHARED, - "-Iext/mbstring/libmbfl -Iext/mbstring/libmbfl/mbfl \ - -Iext/mbstring/oniguruma /D NOT_RUBY=1 /D LIBMBFL_EXPORTS=1 \ - /D HAVE_STDARG_PROTOTYPES=1 /D HAVE_CONFIG_H /D HAVE_STDLIB_H \ - /D HAVE_STRICMP /D MBFL_DLL_EXPORT=1 /D EXPORT"); - - 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"); + if (PHP_LIBMBFL != "no" && + CHECK_HEADER_ADD_INCLUDE("mbfl/mbfilter.h", "CFLAGS_LIBMBFL", PHP_LIBMBFL + "\\include") && + CHECK_LIB("mbfl.lib", "libmbfl", PHP_LIBMBFL + "\\lib")) { + EXTENSION("mbstring", "mbstring.c php_unicode.c mb_gpc.c", PHP_MBSTRING_SHARED, + get_define("CFLAGS_LIBMBFL") + " /I ext/mbstring/oniguruma /D NOT_RUBY=1 \ + /D HAVE_STDARG_PROTOTYPES=1 /D HAVE_STDLIB_H \ + /D HAVE_STRICMP /D EXPORT"); + + STDOUT.WriteLine("LIBS_LIBMBFL:" + get_define("LIBS_LIBMBFL")); + STDOUT.WriteLine("CFLAGS_LIBMBFL:" + get_define("CFLAGS_LIBMBFL")); + STDOUT.WriteLine("LDFLAGS_LIBMBFL:" + get_define("LDFLAGS_LIBMBFL")); + + ADD_FLAG("LIBS_MBSTRING", get_define("LIBS_LIBMBFL")); + ADD_FLAG("LDFLAGS_MBSTRING", get_define("LDFLAGS_LIBMBFL")); + + 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 oniguruma/oniguruma.h php_mbregex.h php_onig_compat.h"); + } else { + STDOUT.WriteLine("Using bundled libmbfl..."); + 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"); + EXTENSION("mbstring", "mbstring.c php_unicode.c mb_gpc.c", PHP_MBSTRING_SHARED, + "-Iext/mbstring/libmbfl -Iext/mbstring/libmbfl/mbfl \ + -Iext/mbstring/oniguruma /D NOT_RUBY=1 /D LIBMBFL_EXPORTS=1 \ + /D HAVE_STDARG_PROTOTYPES=1 /D HAVE_CONFIG_H /D HAVE_STDLIB_H \ + /D HAVE_STRICMP /D MBFL_DLL_EXPORT=1 /D EXPORT"); - 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/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"); - 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'); + 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 oniguruma/oniguruma.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 oniguruma/oniguruma.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"); + } + FSO.CopyFile("ext\\mbstring\\oniguruma\\win32\\config.h", + "ext\\mbstring\\oniguruma\\config.h", true); if (PHP_MBREGEX != "no") { AC_DEFINE('HAVE_STDARG_PROTOTYPES', 1, 'have stdarg.h'); -- 2.40.0