summaryrefslogtreecommitdiff
path: root/ext/mbstring/config.m4
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mbstring/config.m4')
-rw-r--r--ext/mbstring/config.m4213
1 files changed, 183 insertions, 30 deletions
diff --git a/ext/mbstring/config.m4 b/ext/mbstring/config.m4
index af99d893e1..1639da8578 100644
--- a/ext/mbstring/config.m4
+++ b/ext/mbstring/config.m4
@@ -2,41 +2,194 @@ dnl
dnl $Id$
dnl
-PHP_ARG_ENABLE(mbstring, whether to enable multibyte string support,
-[ --enable-mbstring Enable multibyte string support])
+AC_DEFUN([PHP_MBSTRING_INIT], [
+ PHP_MBSTRING_SOURCES=""
+ PHP_MBSTRING_EXTRA_BUILD_DIRS=""
+ PHP_MBSTRING_EXTRA_CONFIG_HEADERS=""
+ PHP_MBSTRING=""
+ PHP_MBREGEX=""
+ PHP_MBSTRING_CFLAGS=""
+])
-if test "$PHP_MBSTRING" != "no"; then
- AC_DEFINE(HAVE_MBSTRING,1,[whether to have multibyte string support])
+AC_DEFUN([PHP_MBSTRING_ADD_SOURCES], [
+ PHP_MBSTRING_SOURCES="$PHP_MBSTRING_SOURCES $1"
+])
- if test "$PHP_MBSTRING" != "no" -o "$PHP_MBSTRING" = "ja"; then
- AC_DEFINE(HAVE_MBSTR_JA,1,[whether to have japanese support])
- fi
- if test "$PHP_MBSTRING" = "cn"; then
- AC_DEFINE(HAVE_MBSTR_CN,1,[whether to have simplified chinese support])
- fi
- if test "$PHP_MBSTRING" = "tw"; then
- AC_DEFINE(HAVE_MBSTR_TW,1,[whether to have traditional chinese support])
- fi
- if test "$PHP_MBSTRING" = "kr"; then
- AC_DEFINE(HAVE_MBSTR_KR,1,[whether to have korean support])
+AC_DEFUN([PHP_MBSTRING_ADD_BUILD_DIR], [
+ PHP_MBSTRING_EXTRA_BUILD_DIRS="$PHP_MBSTRING_EXTRA_BUILD_DIRS $1"
+])
+
+AC_DEFUN([PHP_MBSTRING_CONFIG_HEADER], [
+ PHP_MBSTRING_EXTRA_CONFIG_HEADERS="$PHP_MBSTRING_EXTRA_CONFIG_HEADERS $1"
+])
+
+AC_DEFUN([PHP_MBSTRING_EXTENSION], [
+ PHP_NEW_EXTENSION(mbstring, $PHP_MBSTRING_SOURCES, $ext_shared,, \\$(PHP_MBSTRING_CFLAGS))
+ for dir in $PHP_MBSTRING_EXTRA_BUILD_DIRS; do
+ PHP_ADD_BUILD_DIR([$ext_builddir/$dir])
+ done
+ for cfg in $PHP_MBSTRING_EXTRA_CONFIG_HEADERS; do
+ AC_CONFIG_HEADER([$ext_builddir/$cfg])
+ done
+
+ if test "$LIBMBFL_MODULE_TYPE" = "builtin"; then
+ PHP_MBSTRING_CFLAGS="-I$ext_srcdir/libmbfl/mbfl $PHP_MBSTRING_CFLAGS"
+ PHP_MBSTRING_CFLAGS="-I$ext_srcdir/libmbfl $PHP_MBSTRING_CFLAGS"
fi
- if test "$PHP_MBSTRING" = "ru"; then
- AC_DEFINE(HAVE_MBSTR_RU,1,[whether to have russian support])
+ PHP_SUBST(PHP_MBSTRING_CFLAGS)
+])
+
+
+AC_DEFUN([PHP_MBSTRING_SETUP], [
+ PHP_ARG_ENABLE(mbstring, whether to enable multibyte string support,
+ [ --enable-mbstring Enable multibyte string support])
+
+ if test "$PHP_MBSTRING" != "no"; then
+ AC_DEFINE([HAVE_MBSTRING],1,[whether to have multibyte string support])
+
+ if test -z "$PHP_MBSTRING" -o "$PHP_MBSTRING" = "all" -o "$PHP_MBSTRING" = "ja"; then
+ AC_DEFINE([HAVE_MBSTR_JA],1,[whether to have japanese support])
+ fi
+ if test "$PHP_MBSTRING" = "all" -o "$PHP_MBSTRING" = "cn"; then
+ AC_DEFINE([HAVE_MBSTR_CN],1,[whether to have simplified chinese support])
+ fi
+ if test "$PHP_MBSTRING" = "all" -o "$PHP_MBSTRING" = "tw"; then
+ AC_DEFINE([HAVE_MBSTR_TW],1,[whether to have traditional chinese support])
+ fi
+ if test "$PHP_MBSTRING" = "all" -o "$PHP_MBSTIRNG" = "kr"; then
+ AC_DEFINE([HAVE_MBSTR_KR],1,[whether to have korean support])
+ fi
+ if test "$PHP_MBSTRING" = "all" -o "$PHP_MBSTRING" = "ru"; then
+ AC_DEFINE([HAVE_MBSTR_RU],1,[whether to have russian support])
+ fi
+
+ PHP_MBSTRING_ADD_SOURCES([
+ mbstring.c php_unicode.c mb_gpc.c php_mbfl_allocators.c
+ ])
fi
- if test "$PHP_MBSTRING" = "all"; then
- AC_DEFINE(HAVE_MBSTR_JA,1,[whether to have japanese support])
- AC_DEFINE(HAVE_MBSTR_CN,1,[whether to have simplified chinese support])
- AC_DEFINE(HAVE_MBSTR_TW,1,[whether to have traditional chinese support])
- AC_DEFINE(HAVE_MBSTR_KR,1,[whether to have korean support])
- AC_DEFINE(HAVE_MBSTR_RU,1,[whether to have russian support])
+])
+
+AC_DEFUN([PHP_MBSTRING_SETUP_MBREGEX], [
+ PHP_ARG_ENABLE([mbregex], [whether to enable multibyte regex support],
+ [ --disable-mbregex Disable multibyte regex support], yes, no)
+
+ if test "$PHP_MBREGEX" != "no" -a "$PHP_MBSTRING" != "no"; then
+ AC_CACHE_CHECK(for variable length prototypes and stdarg.h, cv_php_mbstring_stdarg, [
+ AC_TRY_COMPILE([#include <stdarg.h>], [
+int foo(int x, ...) {
+ va_list va;
+ va_start(va, x);
+ va_arg(va, int);
+ va_arg(va, char *);
+ va_arg(va, double);
+ return 0;
+}
+int main() { return foo(10, "", 3.14); }
+ ], [cv_php_mbstring_stdarg=yes], [cv_php_mbstring_stdarg=no])
+ ])
+ if test "$cv_php_mbstring_stdarg" = "yes"; then
+ AC_DEFINE([HAVE_STDARG_PROTOTYPES], 1, [Define if stdarg.h is available])
+ fi
+ AC_DEFINE([HAVE_MBREGEX], 1, [whether to have multibyte regex support])
+ PHP_MBSTRING_CFLAGS="-DNOT_RUBY $PHP_MBSTRING_CFLAGS"
+
+ PHP_MBSTRING_ADD_BUILD_DIR([oniguruma])
+ PHP_MBSTRING_CONFIG_HEADER([oniguruma/config.h])
+ PHP_MBSTRING_ADD_SOURCES([
+ php_mbregex.c
+ oniguruma/regcomp.c
+ oniguruma/regerror.c
+ oniguruma/regexec.c
+ oniguruma/reggnu.c
+ oniguruma/regparse.c
+ oniguruma/regposerr.c
+ ])
fi
+])
+
+AC_DEFUN([PHP_MBSTRING_SETUP_LIBMBFL], [
+ PHP_ARG_WITH(libmbfl, [ include libmbfl support],
+ [ --with-libmbfl[=DIR] Include libmbfl support where DIR is libmbfl install prefix.
+ If DIR is not set, the bundled libmbfl will be used.], no, no)
- PHP_NEW_EXTENSION(mbstring, mbfilter_ja.c mbfilter_cn.c mbfilter_tw.c mbfilter_kr.c mbfilter_ru.c mbfilter.c mbstring.c mbregex.c php_mbregex.c html_entities.c php_unicode.c mb_gpc.c, $ext_shared)
-fi
+ if test "$PHP_MBSTRING" != "no"; then
+ LIBMBFL_MODULE_TYPE=builtin
+ AC_DEFINE([HAVE_LIBMBFL], 1, [whether to have libmbfl support])
+ PHP_MBSTRING_ADD_BUILD_DIR([libmbfl])
+ PHP_MBSTRING_CONFIG_HEADER([libmbfl/config.h])
+ PHP_MBSTRING_ADD_SOURCES([
+ libmbfl/filters/html_entities.c
+ libmbfl/filters/mbfilter_7bit.c
+ libmbfl/filters/mbfilter_ascii.c
+ libmbfl/filters/mbfilter_base64.c
+ libmbfl/filters/mbfilter_big5.c
+ libmbfl/filters/mbfilter_byte2.c
+ libmbfl/filters/mbfilter_byte4.c
+ libmbfl/filters/mbfilter_cp1251.c
+ libmbfl/filters/mbfilter_cp1252.c
+ libmbfl/filters/mbfilter_cp866.c
+ libmbfl/filters/mbfilter_cp932.c
+ libmbfl/filters/mbfilter_cp936.c
+ libmbfl/filters/mbfilter_euc_cn.c
+ libmbfl/filters/mbfilter_euc_jp.c
+ libmbfl/filters/mbfilter_euc_jp_win.c
+ libmbfl/filters/mbfilter_euc_kr.c
+ libmbfl/filters/mbfilter_euc_tw.c
+ libmbfl/filters/mbfilter_htmlent.c
+ libmbfl/filters/mbfilter_hz.c
+ libmbfl/filters/mbfilter_iso2022_kr.c
+ libmbfl/filters/mbfilter_iso8859_1.c
+ libmbfl/filters/mbfilter_iso8859_10.c
+ libmbfl/filters/mbfilter_iso8859_13.c
+ libmbfl/filters/mbfilter_iso8859_14.c
+ libmbfl/filters/mbfilter_iso8859_15.c
+ libmbfl/filters/mbfilter_iso8859_2.c
+ libmbfl/filters/mbfilter_iso8859_3.c
+ libmbfl/filters/mbfilter_iso8859_4.c
+ libmbfl/filters/mbfilter_iso8859_5.c
+ libmbfl/filters/mbfilter_iso8859_6.c
+ libmbfl/filters/mbfilter_iso8859_7.c
+ libmbfl/filters/mbfilter_iso8859_8.c
+ libmbfl/filters/mbfilter_iso8859_9.c
+ libmbfl/filters/mbfilter_jis.c
+ libmbfl/filters/mbfilter_koi8r.c
+ libmbfl/filters/mbfilter_qprint.c
+ libmbfl/filters/mbfilter_sjis.c
+ libmbfl/filters/mbfilter_ucs2.c
+ libmbfl/filters/mbfilter_ucs4.c
+ libmbfl/filters/mbfilter_uhc.c
+ libmbfl/filters/mbfilter_utf16.c
+ libmbfl/filters/mbfilter_utf32.c
+ libmbfl/filters/mbfilter_utf7.c
+ libmbfl/filters/mbfilter_utf7imap.c
+ libmbfl/filters/mbfilter_utf8.c
+ libmbfl/filters/mbfilter_uuencode.c
+ libmbfl/mbfl/mbfilter.c
+ libmbfl/mbfl/mbfilter_8bit.c
+ libmbfl/mbfl/mbfilter_pass.c
+ libmbfl/mbfl/mbfilter_wchar.c
+ libmbfl/mbfl/mbfl_convert.c
+ libmbfl/mbfl/mbfl_encoding.c
+ libmbfl/mbfl/mbfl_filter_output.c
+ libmbfl/mbfl/mbfl_ident.c
+ libmbfl/mbfl/mbfl_language.c
+ libmbfl/mbfl/mbfl_memory_device.c
+ libmbfl/mbfl/mbfl_string.c
+ libmbfl/nls/nls_de.c
+ libmbfl/nls/nls_en.c
+ libmbfl/nls/nls_ja.c
+ libmbfl/nls/nls_kr.c
+ libmbfl/nls/nls_neutral.c
+ libmbfl/nls/nls_ru.c
+ libmbfl/nls/nls_uni.c
+ libmbfl/nls/nls_zh.c
+ ])
+ fi
+])
-PHP_ARG_ENABLE(mbregex, whether to enable multibyte regex support,
-[ --disable-mbregex Disable multibyte regex support], yes, no)
+PHP_MBSTRING_INIT
+PHP_MBSTRING_SETUP
+PHP_MBSTRING_SETUP_MBREGEX
+PHP_MBSTRING_SETUP_LIBMBFL
+PHP_MBSTRING_EXTENSION
-if test "$PHP_MBREGEX" != "no" -a "$PHP_MBSTRING" != "no"; then
- AC_DEFINE(HAVE_MBREGEX, 1, [whether to have multibyte regex support])
-fi