Fix boost not found on debian-testing MP-628
[m4-moved-to-github.git] / ac_check_icu.m4
index 641f77d..933b513 100644 (file)
 #   modification, are permitted in any medium without royalty provided
 #   the copyright notice and this notice are preserved.
 
-AC_DEFUN([AC_CHECK_ICU], [
-  succeeded=no
+AC_DEFUN([AC_CHECK_ICU],[
+       succeeded=no
+       icudir=default
+       AC_ARG_WITH(icu,[  --with-icu[=PREFIX]       use ICU libs in PREFIX],icudir=$withval)
+       
+       if test "$icudir" != "no"; then
+           if test "$icudir" = "yes" -o "$icudir" = "default"; then
+               AC_PATH_PROG(ICU_CONFIG, icu-config, no)
+           else
+               ICU_CONFIG=${icudir}/bin/icu-config
+           fi
 
-  if test -z "$ICU_CONFIG"; then
-    AC_PATH_PROG(ICU_CONFIG, icu-config, no)
-  fi
+           if test -x $ICU_CONFIG; then
+               ICU_VERSION=`$ICU_CONFIG --version`
+               AC_MSG_CHECKING(for ICU >= $1)
+               VERSION_CHECK=`expr $ICU_VERSION \>\= $1`
+               if test "$VERSION_CHECK" = "1" ; then
+                   AC_MSG_RESULT(yes)
+                   succeeded=yes
+                   
+                   ICU_PREFIX=`$ICU_CONFIG --prefix`
+                   
+                   AC_MSG_CHECKING(ICU_CPPFLAGS)
+                   ICU_CPPFLAGS=`$ICU_CONFIG --cppflags-searchpath`""
+                   if test "$ICU_PREFIX" = "/usr"; then
+                      ICU_CPPFLAGS=`echo $ICU_CPPFLAGS|sed 's@-I/usr/include@@'`
+                   fi
+                   AC_MSG_RESULT($ICU_CPPFLAGS)
+                   
+                   AC_MSG_CHECKING(ICU_CFLAGS)
+                   ICU_CFLAGS=`$ICU_CONFIG --cflags`
+                   AC_MSG_RESULT($ICU_CFLAGS)
+                   
+                   AC_MSG_CHECKING(ICU_CXXFLAGS)
+                   ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
+                   AC_MSG_RESULT($ICU_CXXFLAGS)
+                   
+                   AC_MSG_CHECKING(ICU_LIBS)
+                   if test "$ICU_PREFIX" = "/usr"; then
+                       ICU_LIBS=`$ICU_CONFIG --ldflags-libsonly`
+                   else
+                       ICU_LIBS=`$ICU_CONFIG --ldflags`
+                   fi
+                   case $host_os in
+                       solaris*)
+                           AC_CHECK_LIB([Crun],[_fini],[ICU_LIBS="$ICU_LIBS -lCrun"])
+                           ;;
+                   esac
+                   AC_MSG_RESULT($ICU_LIBS)
+               else
+                   ICU_CPPFLAGS=""
+                   ICU_CFLAGS=""
+                   ICU_CXXFLAGS=""
+                   ICU_LIBS=""
+                   AC_MSG_RESULT([can not find ICU >= $1])
+               fi
+               
+               AC_SUBST(ICU_CPPFLAGS)
+               AC_SUBST(ICU_CFLAGS)
+               AC_SUBST(ICU_CXXFLAGS)
+               AC_SUBST(ICU_LIBS)
+           fi
+           if test "$succeeded" = "no"; then
+               if test "$icudir" != "default"; then
+                   AC_MSG_ERROR([libicu development libraries not found.])
+               fi
+           fi
+       fi
+       if test "$succeeded" = "yes"; then
+           ifelse([$2], , :, [$2])
+       else
+           ifelse([$3], , :, [$3])
+       fi
+    ])
 
-  if test "$ICU_CONFIG" = "no" ; then
-    echo "*** The icu-config script could not be found. Make sure it is"
-    echo "*** in your path, and that taglib is properly installed."
-    echo "*** Or see http://ibm.com/software/globalization/icu/"
-  else
-    ICU_VERSION=`$ICU_CONFIG --version`
-    AC_MSG_CHECKING(for ICU >= $1)
-        VERSION_CHECK=`expr $ICU_VERSION \>\= $1`
-        if test "$VERSION_CHECK" = "1" ; then
-            AC_MSG_RESULT(yes)
-            succeeded=yes
-
-            AC_MSG_CHECKING(ICU_CFLAGS)
-            ICU_CFLAGS=`$ICU_CONFIG --cflags`
-            AC_MSG_RESULT($ICU_CFLAGS)
-
-            AC_MSG_CHECKING(ICU_CXXFLAGS)
-            ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
-            AC_MSG_RESULT($ICU_CXXFLAGS)
-
-            AC_MSG_CHECKING(ICU_LIBS)
-            ICU_LIBS=`$ICU_CONFIG --ldflags`
-            AC_MSG_RESULT($ICU_LIBS)
-        else
-            ICU_CFLAGS=""
-            ICU_CXXFLAGS=""
-            ICU_LIBS=""
-            ## If we have a custom action on failure, don't print errors, but
-            ## do set a variable so people can do so.
-            ifelse([$3], ,echo "can't find ICU >= $1",)
-        fi
-
-        AC_SUBST(ICU_CFLAGS)
-        AC_SUBST(ICU_CXXFLAGS)
-        AC_SUBST(ICU_LIBS)
-  fi
-
-  if test $succeeded = yes; then
-     ifelse([$2], , :, [$2])
-  else
-     ifelse([$3], , AC_MSG_ERROR([Library requirements (ICU) not met.]), [$3])
-  fi
-])
+dnl Local Variables:
+dnl mode:shell-script
+dnl sh-indentation:2
+dnl sh-basic-offset: 4
+dnl End: