@@ -2212,45 +2212,79 @@ AC_DEFUN([PHP_SETUP_ICU],[
2212
2212
PHP_ICU_DIR=DEFAULT
2213
2213
fi
2214
2214
2215
- if test "$PHP_ICU_DIR" = "DEFAULT"; then
2216
- dnl Try to find icu-config
2217
- AC_PATH_PROG ( ICU_CONFIG , icu-config , no , [ $PATH:/usr/local/bin] )
2218
- else
2219
- ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
2220
- fi
2221
-
2222
2215
AC_MSG_CHECKING ( [ for location of ICU headers and libraries] )
2216
+ found_icu=no
2223
2217
2224
- dnl Trust icu-config to know better what the install prefix is..
2225
- icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
2226
- if test "$?" != "0" || test -z "$icu_install_prefix"; then
2227
- AC_MSG_RESULT ( [ not found] )
2228
- AC_MSG_ERROR ( [ Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.] )
2229
- else
2230
- AC_MSG_RESULT ( [ $icu_install_prefix] )
2218
+ dnl First try to find pkg-config
2219
+ if test -z "$PKG_CONFIG"; then
2220
+ AC_PATH_PROG ( PKG_CONFIG , pkg-config , no )
2221
+ fi
2231
2222
2232
- dnl Check ICU version
2233
- AC_MSG_CHECKING ( [ for ICU 4.0 or greater] )
2234
- icu_version_full=`$ICU_CONFIG --version`
2235
- ac_IFS=$IFS
2236
- IFS="."
2237
- set $icu_version_full
2238
- IFS=$ac_IFS
2239
- icu_version=`expr [ $] 1 \* 1000 + [ $] 2`
2240
- AC_MSG_RESULT ( [ found $icu_version_full] )
2223
+ dnl If pkg-config is found try using it
2224
+ if test "$PHP_ICU_DIR" = "DEFAULT" && test -x "$PKG_CONFIG" && $PKG_CONFIG --exists icu-uc icu-io icu-i18n; then
2225
+ if $PKG_CONFIG --atleast-version=40 icu-uc; then
2226
+ found_icu=yes
2227
+ icu_version_full=`$PKG_CONFIG --modversion icu-uc`
2228
+ ac_IFS=$IFS
2229
+ IFS="."
2230
+ set $icu_version_full
2231
+ IFS=$ac_IFS
2232
+ icu_version=`expr [ $] 1 \* 1000 + [ $] 2`
2233
+ AC_MSG_RESULT ( [ found $icu_version_full] )
2234
+
2235
+ ICU_LIBS=`$PKG_CONFIG --libs icu-uc icu-io icu-i18n`
2236
+ ICU_INCS=`$PKG_CONFIG --cflags-only-I icu-uc icu-io icu-i18n`
2237
+ ICU_CXXFLAGS="-DU_USING_ICU_NAMESPACE=1"
2238
+
2239
+ AC_MSG_RESULT ( [ found $ICU_VERSION] )
2240
+
2241
+ PHP_EVAL_LIBLINE($ICU_LIBS, $1 )
2242
+ PHP_EVAL_INCLINE($ICU_INCS)
2243
+ else
2244
+ AC_MSG_ERROR ( [ ICU version 4.0 or later required.] )
2245
+ fi
2246
+ fi
2241
2247
2242
- if test "$icu_version" -lt "4000"; then
2243
- AC_MSG_ERROR ( [ ICU version 4.0 or later is required] )
2248
+ dnl If pkg-config fails for some reason, revert to the old method
2249
+ if test "$found_icu" = "no"; then
2250
+ if test "$PHP_ICU_DIR" = "DEFAULT"; then
2251
+ dnl Try to find icu-config
2252
+ AC_PATH_PROG ( ICU_CONFIG , icu-config , no , [ $PATH:/usr/local/bin] )
2253
+ else
2254
+ ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
2244
2255
fi
2245
2256
2246
- ICU_VERSION=$icu_version
2247
- ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
2248
- ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
2249
- PHP_EVAL_INCLINE($ICU_INCS)
2250
- PHP_EVAL_LIBLINE($ICU_LIBS, $1 )
2257
+ dnl Trust icu-config to know better what the install prefix is..
2258
+ icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
2259
+ if test "$?" != "0" || test -z "$icu_install_prefix"; then
2260
+ AC_MSG_RESULT ( [ not found] )
2261
+ AC_MSG_ERROR ( [ Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.] )
2262
+ else
2263
+ AC_MSG_RESULT ( [ $icu_install_prefix] )
2264
+
2265
+ dnl Check ICU version
2266
+ AC_MSG_CHECKING ( [ for ICU 4.0 or greater] )
2267
+ icu_version_full=`$ICU_CONFIG --version`
2268
+ ac_IFS=$IFS
2269
+ IFS="."
2270
+ set $icu_version_full
2271
+ IFS=$ac_IFS
2272
+ icu_version=`expr [ $] 1 \* 1000 + [ $] 2`
2273
+ AC_MSG_RESULT ( [ found $icu_version_full] )
2274
+
2275
+ if test "$icu_version" -lt "4000"; then
2276
+ AC_MSG_ERROR ( [ ICU version 4.0 or later is required] )
2277
+ fi
2251
2278
2252
- ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
2253
- ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_USING_ICU_NAMESPACE=1"
2279
+ ICU_VERSION=$icu_version
2280
+ ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
2281
+ ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
2282
+ PHP_EVAL_INCLINE($ICU_INCS)
2283
+ PHP_EVAL_LIBLINE($ICU_LIBS, $1 )
2284
+
2285
+ ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
2286
+ ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_USING_ICU_NAMESPACE=1"
2287
+ fi
2254
2288
fi
2255
2289
] )
2256
2290
0 commit comments