From: Derick Rethans Date: Thu, 7 Feb 2019 11:12:42 +0000 (+0000) Subject: Merge branch 'PHP-7.2' into PHP-7.3 X-Git-Tag: php-7.3.3RC1~19 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8be649d908bef9d1ec7e45eb6ffaa19b77c03317;p=php Merge branch 'PHP-7.2' into PHP-7.3 --- 8be649d908bef9d1ec7e45eb6ffaa19b77c03317 diff --cc acinclude.m4 index c2ae195f9c,6249cb92e6..266c2cff37 --- a/acinclude.m4 +++ b/acinclude.m4 @@@ -2173,50 -2201,78 +2173,84 @@@ AC_DEFUN([PHP_SETUP_ICU], PHP_ICU_DIR=DEFAULT fi - if test "$PHP_ICU_DIR" = "DEFAULT"; then - dnl Try to find icu-config - AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin]) - else - ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config" + AC_MSG_CHECKING([for location of ICU headers and libraries]) + found_icu=no + + dnl First try to find pkg-config + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) fi - AC_MSG_CHECKING([for location of ICU headers and libraries]) + dnl If pkg-config is found try using it + if test "$PHP_ICU_DIR" = "DEFAULT" && test -x "$PKG_CONFIG" && $PKG_CONFIG --exists icu-uc icu-io icu-i18n; then + if $PKG_CONFIG --atleast-version=40 icu-uc; then + found_icu=yes + icu_version_full=`$PKG_CONFIG --modversion icu-uc` + ac_IFS=$IFS + IFS="." + set $icu_version_full + IFS=$ac_IFS + icu_version=`expr [$]1 \* 1000 + [$]2` + AC_MSG_RESULT([found $icu_version_full]) + + ICU_LIBS=`$PKG_CONFIG --libs icu-uc icu-io icu-i18n` + ICU_INCS=`$PKG_CONFIG --cflags-only-I icu-uc icu-io icu-i18n` + ICU_CXXFLAGS="-DU_USING_ICU_NAMESPACE=1" + + AC_MSG_RESULT([found $ICU_VERSION]) + + PHP_EVAL_LIBLINE($ICU_LIBS, $1) + PHP_EVAL_INCLINE($ICU_INCS) + else + AC_MSG_ERROR([ICU version 4.0 or later required.]) + fi + fi - dnl Trust icu-config to know better what the install prefix is.. - icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null` - if test "$?" != "0" || test -z "$icu_install_prefix"; then - AC_MSG_RESULT([not found]) - AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.]) - else - AC_MSG_RESULT([$icu_install_prefix]) - - dnl Check ICU version - AC_MSG_CHECKING([for ICU 4.0 or greater]) - icu_version_full=`$ICU_CONFIG --version` - ac_IFS=$IFS - IFS="." - set $icu_version_full - IFS=$ac_IFS - icu_version=`expr [$]1 \* 1000 + [$]2` - AC_MSG_RESULT([found $icu_version_full]) - - if test "$icu_version" -lt "4000"; then - AC_MSG_ERROR([ICU version 4.0 or later is required]) + dnl If pkg-config fails for some reason, revert to the old method + if test "$found_icu" = "no"; then + if test "$PHP_ICU_DIR" = "DEFAULT"; then + dnl Try to find icu-config + AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin]) + else + ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config" fi - ICU_VERSION=$icu_version - ICU_INCS=`$ICU_CONFIG --cppflags-searchpath` - ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio` - PHP_EVAL_INCLINE($ICU_INCS) - PHP_EVAL_LIBLINE($ICU_LIBS, $1) + dnl Trust icu-config to know better what the install prefix is.. + icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null` + if test "$?" != "0" || test -z "$icu_install_prefix"; then + AC_MSG_RESULT([not found]) + AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.]) + else + AC_MSG_RESULT([$icu_install_prefix]) + + dnl Check ICU version + AC_MSG_CHECKING([for ICU 4.0 or greater]) + icu_version_full=`$ICU_CONFIG --version` + ac_IFS=$IFS + IFS="." + set $icu_version_full + IFS=$ac_IFS + icu_version=`expr [$]1 \* 1000 + [$]2` + AC_MSG_RESULT([found $icu_version_full]) + + if test "$icu_version" -lt "4000"; then + AC_MSG_ERROR([ICU version 4.0 or later is required]) + fi - ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags` - if test "$icu_version" -ge "49000"; then - ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit" - ICU_CFLAGS="-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1" - fi - if test "$icu_version" -ge "60000"; then - ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1" + ICU_VERSION=$icu_version + ICU_INCS=`$ICU_CONFIG --cppflags-searchpath` + ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio` + PHP_EVAL_INCLINE($ICU_INCS) + PHP_EVAL_LIBLINE($ICU_LIBS, $1) + + ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags` - ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_USING_ICU_NAMESPACE=1" ++ if test "$icu_version" -ge "49000"; then ++ ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit" ++ ICU_CFLAGS="-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1" ++ fi ++ if test "$icu_version" -ge "60000"; then ++ ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1" ++ fi fi fi ])