16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# -*-autoconf-*-
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_COPYRIGHT([ Copyright (c) 1999-2013, International Business Machines Corporation and others. All Rights Reserved. ])
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# configure.in for ICU
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Stephen F. Booth, heavily modified by Yves and others
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check for autoconf version
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_PREREQ(2.68)
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Process this file with autoconf to produce a configure script
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_INIT([ICU])
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#TODO: IcuBug:8502
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#AC_INIT([ICU],
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#        m4_esyscmd_s([sed -n 's/^[ 	]*#[ 	]*define[ 	]*U_ICU_VERSION[ 	]*"\([^"]*\)".*/\1/p' "./common/unicode/uvernum.h]"),
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#        [http://icu-project.org/bugs],
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#        [International Components for Unicode],
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#        [http://icu-project.org])
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CONFIG_SRCDIR([common/unicode/utypes.h])
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgPACKAGE="icu"
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(PACKAGE)
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Use custom echo test for newline option
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Current autoconf (2.65) gives incorrect echo newline option
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# for icu-config
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# This may be removed later - mow (June 17, 2010)
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICU_ECHO_C= ICU_ECHO_N= ICU_ECHO_T=
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgcase `/bin/sh -c "echo -n x"` in
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org-n*)
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  case `/bin/sh -c "echo 'x\c'"` in
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  *c*) ICU_ECHO_T=' ';;     # ECHO_T is single tab character.
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  *)   ICU_ECHO_C='\c';;
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  esac;;
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*)
366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  ICU_ECHO_N='-n';;
376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgesac
386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ICU_ECHO_N)
396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ICU_ECHO_C)
406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ICU_ECHO_T)
416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING(for ICU version numbers)
436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Get the ICU version from uversion.h or other headers
456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orggeticuversion() {
466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [sed -n 's/^[ 	]*#[ 	]*define[ 	]*U_ICU_VERSION[ 	]*"\([^"]*\)".*/\1/p' "$@"]
476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}
486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orggetuversion() {
496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [sed -n 's/^[ 	]*#[ 	]*define[ 	]*U_UNICODE_VERSION[ 	]*"\([^"]*\)".*/\1/p' "$@"]
506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}
516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgVERSION=`geticuversion $srcdir/common/unicode/uvernum.h`
526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test x"$VERSION" = x; then
536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   as_fn_error $? "Cannot determine ICU version number from uvernum.h header file" "$LINENO" 5
546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#TODO: IcuBug:8502
576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if test "$VERSION" != "$PACKAGE_VERSION"; then
586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#   AC_MSG_ERROR([configure was generated for $PACKAGE_VERSION but uvernum.h has $VERSION - please rerun autoconf])
596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#fi
606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgUNICODE_VERSION=`getuversion $srcdir/common/unicode/uchar.h`
626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test x"$UNICODE_VERSION" = x; then
636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_MSG_ERROR([Cannot determine Unicode version number from uchar.h header file])
646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Compute a reasonable library version from the release version. This is
666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# very bad, but that's wanted... We want to make sure that the LIB_VERSION
676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# has at least a dot in it, so we'll add a .0 if needed.
686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#[LIB_VERSION=`echo $VERSION | sed -e 's/\.//' -e 's/^\([^.]*\)$/\1.0/'`]
696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIB_VERSION=$VERSION
706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIB_VERSION_MAJOR=`echo $LIB_VERSION | sed 's/\..*//'`
716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(VERSION)
726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(LIB_VERSION)
736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(LIB_VERSION_MAJOR)
746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT([release $VERSION, library $LIB_VERSION, unicode version $UNICODE_VERSION])
756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(UNICODE_VERSION)
776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Determine the host system
796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CANONICAL_HOST
806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(CPPFLAGS)
826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# This variable is needed on z/OS because the C++ compiler only recognizes .C
846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org_CXX_CXXSUFFIX=cpp
856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgexport _CXX_CXXSUFFIX
866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Accumulate #defines
886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# CONFIG_CPPFLAGS: These are defines that are set for ICU Build time only.
906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# They are only needed for building ICU itself. Example: platform stuff
916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_CPPFLAGS=""
926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# UCONFIG_CPPFLAGS: These are defines which are set for ICU build time,
936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# and also a notice is output that they need to be set
946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# for end-users of ICU also. uconfig.h.prepend is generated
956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# with, for example, "#define U_DISABLE_RENAMING 1"
966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Example: ICU configuration stuff
976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgUCONFIG_CPPFLAGS=""
986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# UCONFIG_CFLAGS: contains a copy of anything that needs to be set by end users
996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# such as -std
1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgUCONFIG_CFLAGS=""
1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check whether to build debug libraries
1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([whether to build debug libraries])
1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenabled=no
1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgENABLE_DEBUG=0
1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(debug,
1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [  --enable-debug          build debug libraries and enable the U_DEBUG define [default=no]],
1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ case "${enableval}" in
1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         yes|"") enabled=yes; ENABLE_DEBUG=1; CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_DEBUG=1" ;;
1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         *) ;;
1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac],
1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org)
1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($enabled)
1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ENABLE_DEBUG)
1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check whether to build release libraries
1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([whether to build release libraries])
1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenabled=yes
1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgENABLE_RELEASE=1
1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(release,
1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [  --enable-release        build release libraries [default=yes]],
1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ case "${enableval}" in
1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         no) enabled=no; ENABLE_RELEASE=0 ;;
1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         *) ;;
1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac],
1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org)
1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($enabled)
1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ENABLE_RELEASE)
1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Don't use the default C/CXXFLags
1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org: ${CFLAGS=""}
1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org: ${CXXFLAGS=""}
1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Checks for compilers
1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_PROG_CC([clang gcc cc c99 c89 xlc_r xlc cl.exe icc])
1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Make sure that we try clang++ first, which provides C++11 support.
1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# The g++ compiler is less likely to support C++11.
1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_PROG_CXX([clang++ g++ c++ gpp xlC_r xlC aCC CC cxx cc++ cl.exe icc FCC KCC RCC])
1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Ensure that if CXXFLAGS/CFLAGS were not set when calling configure, set it correctly based on (enable/disable) debug or release option
1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# The release mode use is the default one for autoconf
1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$GCC" = yes; then
1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$CFLAGS" = ""; then
1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test "$ENABLE_DEBUG" = 1; then
1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CFLAGS=-g
1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test "$ENABLE_RELEASE" = 1; then
1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CFLAGS="$CFLAGS -O2"
1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$CXXFLAGS" = ""; then
1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test "$ENABLE_DEBUG" = 1; then
1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CXXFLAGS=-g
1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test "$ENABLE_RELEASE" = 1; then
1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CXXFLAGS="$CXXFLAGS -O2"
1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_PROG_CPP
1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_PROG_INSTALL
1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(cross_compiling)
1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdnl use the pld hack to get ac_fn_cxx_try_link defined globally and not local
1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_LANG_PUSH([C++])
1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_LINK_IFELSE([AC_LANG_PROGRAM()])
1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_LANG_POP([C++])
1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# make sure install is relative to srcdir - if a script
1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$srcdir" = "."; then
1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  # If srcdir isn't just ., then (srcdir) is already prepended.
1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  if test "${ac_install_sh}" = "${INSTALL}"; then
1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   INSTALL="\\\$(top_srcdir)/${ac_install_sh}"
1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  fi
1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#AC_CHECK_PROG(STRIP, strip, strip, true)
1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check for the platform make
1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_PATH_PROGS(U_MAKE, gmake gnumake, make)
1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_MAKE)
1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_WITH(cross-build,
1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[  --with-cross-build=dir specify an absolute path to the build directory of an ICU built for the current platform [default=no cross dir]],
1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[cross_buildroot="${withval}"],
1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        [cross_buildroot=""])
1926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "X$cross_buildroot" = "X"; then
1946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$cross_compiling" = "yes"; then
1956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_MSG_ERROR([Error! Cross compiling but no --with-cross-build option specified - please supply the path to an executable ICU's build root])
1966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	dnl '
1976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
1986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
1996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test -f "${cross_buildroot}/config/icucross.mk"; then
2006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_MSG_RESULT([Using cross buildroot: $cross_buildroot])
2016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    else
2026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test -d "${cross_buildroot}"; then
2036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            AC_MSG_ERROR([${cross_buildroot}/config/icucross.mk not found. Please build ICU in ${cross_buildroot} first.])
2046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        else
2056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            AC_MSG_ERROR([No such directory ${cross_buildroot} supplied as the argument to --with-cross-build. Use an absolute path.])
2066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
2076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
2086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
2096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(cross_buildroot)
2106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check for doxygen to generate documentation
2126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_PATH_PROG(DOXYGEN,doxygen,,$PATH:/usr/local/bin:/usr/bin)
2136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check that the linker is usable
2156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICU_PROG_LINK
2166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Determine the executable suffix
2186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# We don't use AC_EXEEXT because some compilers output separate debugging
2196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# files, which confuses the AC_EXEEXT macro.
2206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING(checking for executable suffix)
2216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgcase "${host}" in
2226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    *-*-cygwin*|*-*-mingw*)  EXEEXT=.exe ;;
2236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    *)      EXEEXT="" ;;
2246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgesac
2256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgac_exeext=$EXEEXT
2266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($EXEEXT)
2276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(EXEEXT)
2286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Determine how strict we want to be when compiling
2306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_STRICT_COMPILE
2316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check if we can build and use 64-bit libraries
2336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_64BIT_LIBS
2346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ARFLAGS)
2356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(COMPILE_LINK_ENVVAR)
2366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Determine the Makefile fragment
2386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICU_CHECK_MH_FRAG
2396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Checks for libraries and other host specific stuff
2416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# On HP/UX, don't link to -lm from a shared lib because it isn't
2426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  PIC (at least on 10.2)
2436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgcase "${host}" in
2446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-hpux*) 	AC_CHECK_LIB(m, floor, LIB_M="-lm") ;;
2456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*) 		AC_CHECK_LIB(m, floor)
2476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			LIB_M="" ;;
2486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgesac
2496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(LIB_M)
2506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check whether to build shared libraries
2526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([whether to build shared libraries])
2536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenabled=no
2546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(shared,
2556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [  --enable-shared         build shared libraries [default=yes]],
2566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ case "${enableval}" in
2576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     yes|"") enabled=yes; ENABLE_SHARED=YES ;;
2586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     no);;
2596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     *) ;;
2606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac],
2616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [enabled=yes; ENABLE_SHARED=YES]
2626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org)
2636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($enabled)
2646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ENABLE_SHARED)
2656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check whether to build static libraries
2676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([whether to build static libraries])
2686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenabled=no
2696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(static,
2706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [  --enable-static         build static libraries [default=no]],
2716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ case "${enableval}" in
2726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     yes|"") enabled=yes; ENABLE_STATIC=YES ;;
2736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     no) ;;
2746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     *) ;;
2756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac],
2766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org)
2776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($enabled)
2786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ENABLE_STATIC)
2796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# When building release static library, there might be some optimization flags we can use
2816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$ENABLE_STATIC" = "YES"; then
2826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$ENABLE_SHARED" != "YES"; then
2836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test "$ENABLE_RELEASE" = 1; then
2846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            AC_MSG_CHECKING([whether we can use static library optimization option])
2856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CHECK_STATIC_OPT_FLAG=no
2866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            OLD_CPPFLAGS="${CPPFLAGS}"
2886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            OLD_LDFLAGS="${LDFLAGS}"
2896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            case "${host}" in
2916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            *-linux*|i*86-*-*bsd*|i*86-pc-gnu)
2926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                if test "$GCC" = yes; then
2936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                    CPPFLAGS="${CPPFLAGS} -ffunction-sections -fdata-sections"
2946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                    LDFLAGS="${LDFLAGS} -Wl,--gc-sections"
2956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                fi
2966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                ;;
2976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            *)
2986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                ;;
2996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            esac
3006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [CHECK_STATIC_OPT_FLAG=yes], [CHECK_STATIC_OPT_FLAG=no])
3026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            AC_MSG_RESULT($CHECK_STATIC_OPT_FLAG)
3036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            if test "$CHECK_STATIC_OPT_FLAG" = no; then
3046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                CPPFLAGS="${OLD_CPPFLAGS}"
3056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                LDFLAGS="${OLD_LDFLAGS}"
3066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            fi
3076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
3086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
3096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
3106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check whether to enable auto cleanup of libraries
3136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([whether to enable auto cleanup of libraries])
3146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenabled=no
3156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgUCLN_NO_AUTO_CLEANUP=1
3166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(auto-cleanup,
3176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [  --enable-auto-cleanup   enable auto cleanup of libraries [default=no]],
3186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ case "${enableval}" in
3196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         yes) enabled=yes;
3206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DUCLN_NO_AUTO_CLEANUP=0";
3216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         UCLN_NO_AUTO_CLEANUP=0
3226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          ;;
3236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         *) ;;
3246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac],
3256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org)
3266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($enabled)
3276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(UCLN_NO_AUTO_CLEANUP)
3286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# MSVC floating-point option
3306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgMSVC_RELEASE_FLAG=""
3316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $enabled = yes
3326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
3336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test $icu_cv_host_frag = mh-cygwin-msvc
3346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    then
3356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    #if defined _MSC_VER && _MSC_VER >= 1400
3376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    #else
3386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    Microsoft Visual C++ < 2005
3396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    #endif
3406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ]], [[]])],[MSVC_RELEASE_FLAG="/fp:precise"],[MSVC_RELEASE_FLAG="/Op"])
3416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CFLAGS="${CFLAGS} ${MSVC_RELEASE_FLAG}"
3436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CXXFLAGS="${CXXFLAGS} ${MSVC_RELEASE_FLAG}"
3446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
3456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
3466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check whether to enabled draft APIs
3486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([whether to enable draft APIs])
3496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenabled=yes
3506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_DEFAULT_SHOW_DRAFT=1
3516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(draft,
3526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [  --enable-draft          enable draft APIs (and internal APIs) [default=yes]],
3536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ case "${enableval}" in
3546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         no) enabled=no; U_DEFAULT_SHOW_DRAFT=0;
3556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_DEFAULT_SHOW_DRAFT=0"
3566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          ;;
3576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         *) ;;
3586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac],
3596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org)
3606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($enabled)
3616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Make sure that we can use draft API in ICU.
3626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$U_DEFAULT_SHOW_DRAFT" = 0; then
3636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_SHOW_DRAFT_API"
3646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
3656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_DEFAULT_SHOW_DRAFT)
3666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_PROG_RANLIB
3686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# look for 'ar' the proper way
3706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_TOOL(AR, ar, false)
3716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([whether to enable renaming of symbols])
3736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenabled=yes
3746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_DISABLE_RENAMING=0
3756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(renaming,
3766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [  --enable-renaming       add a version suffix to symbols [default=yes]],
3776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ case "${enableval}" in
3786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     yes|"") enabled=yes ;;
3796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     no) enabled=no; U_DISABLE_RENAMING=1;
3806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org             UCONFIG_CPPFLAGS="${UCONFIG_CPPFLAGS} -DU_DISABLE_RENAMING=1"
3816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org              ;;
3826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     *) ;;
3836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac],
3846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org)
3856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($enabled)
3866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_DISABLE_RENAMING)
3876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([whether to enable function and data tracing])
3896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenabled=no
3906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_ENABLE_TRACING=0
3916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(tracing,
3926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [  --enable-tracing        enable function and data tracing [default=no]],
3936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ case "${enableval}" in
3946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     yes|"") enabled=yes;
3956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                     CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_ENABLE_TRACING=1";
3966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                     U_ENABLE_TRACING=1 ;;
3976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     no) enabled=no; U_ENABLE_TRACING=0 ;;
3986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     *) ;;
3996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac],
4006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org)
4016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($enabled)
4026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_ENABLE_TRACING)
4036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# check if elf.h is present.
4056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_HEADERS([elf.h])
4066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "x$ac_cv_header_elf_h" = "xyes"; then
4076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_HAVE_ELF_H=1";
4086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
4096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_ENABLE_DYLOAD=1
4116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenable=yes
4126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([whether to enable dynamic loading of plugins])
4136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(dyload,
4146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [  --disable-dyload        disable dynamic loading [default=no]],
4156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ case "${enableval}" in
4166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     yes|"")
4176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		     U_ENABLE_DYLOAD=1
4186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                     enable=yes
4196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                     ;;
4206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     no)
4216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     	 U_ENABLE_DYLOAD=0;
4226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                 enable=no;
4236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                 CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_ENABLE_DYLOAD=0";
4246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                 ;;
4256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     *) ;;
4266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac],
4276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org)
4286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($enable)
4296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_ENABLE_DYLOAD)
4306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$enable" = "yes"; then
4326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   AC_CHECK_HEADERS([dlfcn.h])
4336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   #AC_MSG_RESULT($enabled)
4346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   AC_SEARCH_LIBS([dlopen], [dl])
4356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   AC_CHECK_FUNCS([dlopen])
4366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   if test "x$ac_cv_func_dlopen" != xyes; then
4386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DHAVE_DLOPEN=0"
4396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   fi
4406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
4416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check for miscellanous functions.
4436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# So, use for putil / tools only.
4446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Note that this will generate HAVE_GETTIMEOFDAY, not U_HAVE_GETTIMEOFDAY
4456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_FUNCS([gettimeofday])
4466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check whether to use the evil rpath or not
4496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(rpath,
4506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [  --enable-rpath          use rpath when linking [default is only if necessary]],
4516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ case "${enableval}" in
4526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     yes|"") ENABLE_RPATH=YES ;;
4536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     no) ;;
4546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	     *) ;;
4556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac],
4566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [ENABLE_RPATH=NO]
4576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org)
4586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ENABLE_RPATH)
4596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_LANG_PUSH([C++])
4636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([[if we have a C++ compiler]])
4646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[cxx_okay=yes],[cxx_okay=no])
4656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $cxx_okay = yes
4666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
4676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	AC_MSG_RESULT([[Good]])
4686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
4696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	AC_MSG_RESULT([[no]])
4706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	AC_MSG_ERROR([[C++ compiler $CXX does not work or no compiler found]])
4716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
4726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif [[ "$GXX" = yes ]]; then
4746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # if CXXFLAGS does not have a "-std=" setting, set it now to -std=c++0x,
4756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # and check that the compiler still works.
4766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if ! echo "$CXXFLAGS" | grep '\-std=' >/dev/null 2>&1; then
4776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        OLD_CXXFLAGS="${CXXFLAGS}"
4786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CXXFLAGS="$CXXFLAGS --std=c++0x"
4796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_MSG_CHECKING([[if we have a C++11 compiler]])
4806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[cxx11_okay=yes],[cxx11_okay=no])
4816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_MSG_RESULT($cxx11_okay)
4826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if [[ $cxx11_okay = yes ]]; then
4836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            AC_MSG_NOTICE([Adding CXXFLAGS option --std=c++0x])
4846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} --std=c++0x"
4856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        else
4866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CXXFLAGS="$OLD_CXXFLAGS"
4876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
4886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
4896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
4906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([[if #include <string> works]])
4926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string>]], [[]])], [ac_cv_header_stdstring=yes], [ac_cv_header_stdstring=no])
4936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($ac_cv_header_stdstring)
4946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_header_stdstring = yes
4956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
4966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	U_HAVE_STD_STRING=1
4976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
4986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        U_HAVE_STD_STRING=0
4996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_STD_STRING=0"
5006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
5016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_STD_STRING)
5026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([[if #include <atomic> works]])
5056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <atomic>]], [[]])], [ac_cv_header_atomic=yes], [ac_cv_header_atomic=no])
5066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($ac_cv_header_atomic)
5076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_header_atomic = yes
5086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
5096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	U_HAVE_ATOMIC=1
5106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
5116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        U_HAVE_ATOMIC=0
5126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
5136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Make this available via CPPFLAGS
5146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_ATOMIC=${U_HAVE_ATOMIC}"
5156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_ATOMIC)
5166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_LANG_POP([C++])
5186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Always build ICU with multi-threading support.
5206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthreads=true
5216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICU_USE_THREADS=1
5226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOLD_LIBS=${LIBS}
5236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $threads = true; then
5256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  # For Compaq Tru64 (OSF1), we must look for pthread_attr_init
5266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  # and must do this before seaching for pthread_mutex_destroy, or
5276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  # we will pick up libpthreads.so not libpthread.so
5286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  # If this fails, then we must test for HPUX specials, before
5296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  # moving on to a more generic test
5306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  AC_CHECK_LIB(pthread, pthread_attr_init)
5326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  if test $ac_cv_lib_pthread_pthread_attr_init = yes; then
5336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ICU_USE_THREADS=1
5346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  else
5356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # Locate the right library for POSIX threads. We look for the
5366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # symbols in the libraries first, because on Solaris libc provides
5376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # pthread_create but libpthread has the real code :(
5386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # AIX uses libpthreads instead of libpthread, and HP/UX uses libpthread
5396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # FreeBSD users may need libpthread if they do not have libc_r.
5406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_SEARCH_LIBS_FIRST(pthread_mutex_destroy, pthread pthreads c_r )
5426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$ac_cv_search_pthread_mutex_destroy" != no; then
5446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      ICU_USE_THREADS=1
5456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    else
5466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      # For HP 11
5476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      AC_CHECK_LIB(pthread, pthread_mutex_init)
5486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      if test $ac_cv_lib_pthread_pthread_mutex_init = yes; then
5496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ICU_USE_THREADS=1
5506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      fi
5516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
5526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_CHECK_FUNC(pthread_mutex_lock)
5546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test $ac_cv_func_pthread_mutex_lock = yes; then
5566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      ICU_USE_THREADS=1
5576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
5586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  fi
5596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  # Check to see if we are using CygWin with MSVC
5606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  case "${host}" in
5616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  *-pc-cygwin*|*-pc-mingw*)
5626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # For gcc, the thread options are set by mh-mingw/mh-cygwin
5636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # For msvc, the thread options are set by runConfigureICU
5646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ICU_USE_THREADS=1
5656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
5666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  *-*-hpux*)
5676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # Add -mt because it does several nice things on newer compilers.
5686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    case "${icu_cv_host_frag}" in
5696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      mh-hpux-acc)
5706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        OLD_CXXFLAGS="${CXXFLAGS}"
5716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CXXFLAGS="${CXXFLAGS} -mt"
5726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test x"`${CXX} ${CXXFLAGS} 2>&1`" != x""; then
5736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org           CXXFLAGS="${OLD_CXXFLAGS}"
5746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        else
5756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org           UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} -mt"
5766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
5776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      ;;
5786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac
5796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
5806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  *-*-solaris*)
5816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    case "${icu_cv_host_frag}" in
5826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      mh-solaris)
5836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org           LIBS="${LIBS} -mt"
5846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      ;;
5856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    esac
5866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
5876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  esac
5886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
5896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(weak-threads,
5916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[  --enable-weak-threads   weakly reference the threading library [default=no]],
5926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[case "${enableval}" in
5936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		yes)
5946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            LIB_THREAD="${LIBS%${OLD_LIBS}}"
5956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            LIBS=${OLD_LIBS}
5966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            ;;
5976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		no)  ;;
5986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		*) AC_MSG_ERROR(bad value ${enableval} for --enable-weak-threads) ;;
5996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		esac])
6006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(LIB_THREAD)
6016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check for mmap()
6036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# The AC_FUNC_MMAP macro doesn't work properly.  It seems to be too specific.
6056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Do this check instead.
6066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgHAVE_MMAP=0
6076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([for mmap])
6086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CACHE_VAL(ac_cv_func_mmap_ok,
6096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>
6106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <sys/mman.h>
6116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <sys/stat.h>
6126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <fcntl.h>], [mmap((void *)0, 0, PROT_READ, 0, 0, 0);])],[ac_cv_func_mmap_ok=yes],[ac_cv_func_mmap_ok=no])] )
6136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($ac_cv_func_mmap_ok)
6146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_func_mmap_ok = yes
6156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
6166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    HAVE_MMAP=1
6176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
6186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_MMAP=0"
6196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
6206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(HAVE_MMAP)
6216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([for genccode assembly])
6236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check to see if genccode can generate simple assembly.
6256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgGENCCODE_ASSEMBLY=
6266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgcase "${host}" in
6276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*-linux*|*-kfreebsd*-gnu*|i*86-*-*bsd*|i*86-pc-gnu)
6286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$GCC" = yes; then
6296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        # We're using gcc, and the simple -a gcc command line works for genccode
6306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        GENCCODE_ASSEMBLY="-a gcc"
6316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi ;;
6326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgi*86-*-solaris*)
6336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$GCC" = yes; then
6346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        # When using gcc, look if we're also using GNU as.
6356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        # When using GNU as, the simple -a gcc command line works for genccode.
6366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        asv=`"${CC}" -print-prog-name=as 2>/dev/null`
6376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        asv=`"${asv}" --version 2>/dev/null`
6386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        case "X${asv}" in
6396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        X*GNU*) GENCCODE_ASSEMBLY="-a gcc" ;;
6406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        X*) GENCCODE_ASSEMBLY="-a sun-x86" ;;
6416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        esac
6426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        unset asv
6436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    else
6446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        GENCCODE_ASSEMBLY="-a sun-x86"
6456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi ;;
6466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgsparc-*-solaris*)
6476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    GENCCODE_ASSEMBLY="-a sun"
6486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
6496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgia64-*-hpux*)
6506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    GENCCODE_ASSEMBLY="-a aCC-ia64"
6516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
6526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgesac
6536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(GENCCODE_ASSEMBLY)
6546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($GENCCODE_ASSEMBLY)
6566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Checks for header files
6586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_HEADERS(inttypes.h)
6596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_header_inttypes_h = no; then
6606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org U_HAVE_INTTYPES_H=0
6616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INTTYPES_H=0"
6626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
6636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org U_HAVE_INTTYPES_H=1
6646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
6656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$CC" = ccc; then
6666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org AC_MSG_RESULT("C compiler set to CCC ${CC}" )
6676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org case "${host}" in
6686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        alpha*-*-*) U_HAVE_INTTYPES_H=0;
6696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INTTYPES_H=0"
6706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org esac
6716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
6726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_INTTYPES_H)
6746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_HEADERS(dirent.h)
6766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_header_dirent_h = no; then
6776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org U_HAVE_DIRENT_H=0
6786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_DIRENT_H=0"
6796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
6806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org U_HAVE_DIRENT_H=1
6816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
6826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_DIRENT_H)
6846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Check for endianness
6866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_C_BIGENDIAN()
6876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_c_bigendian = no; then
6886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_IS_BIG_ENDIAN=0
6896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_ENDIAN_CHAR="l"
6906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
6916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_IS_BIG_ENDIAN=1
6926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_ENDIAN_CHAR="b"
6936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
6946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_IS_BIG_ENDIAN)
6956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Do various POSIX related checks
6976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_HAVE_NL_LANGINFO_CODESET=0
6986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NL_LANGINFO_CODESET=-1
6996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_FUNC(nl_langinfo,[U_HAVE_NL_LANGINFO=1],[U_HAVE_NL_LANGINFO=0])
7006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdnl AC_SUBST(U_HAVE_NL_LANGINFO)
7016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $U_HAVE_NL_LANGINFO -eq 1; then
7026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  AC_CACHE_CHECK([for nl_langinfo's argument to obtain the codeset],
7036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  ac_cv_nl_langinfo_codeset,
7046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  [ac_cv_nl_langinfo_codeset="unknown"
7056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  for a in CODESET _NL_CTYPE_CODESET_NAME; do
7066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo($a);]])],[ac_cv_nl_langinfo_codeset="$a"; break],[])]
7076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  done)
7086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  if test x$ac_cv_nl_langinfo_codeset != xunknown
7096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  then
7106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      U_HAVE_NL_LANGINFO_CODESET=1
7116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      U_NL_LANGINFO_CODESET=$ac_cv_nl_langinfo_codeset
7126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      if test "x${ac_cv_nl_langinfo_codeset}" != "xCODESET"
7136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      then
7146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DNL_LANGINFO_CODESET=${ac_cv_nl_langinfo_codeset}"
7156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      fi
7166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  else
7176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_NL_LANGINFO_CODESET=0"
7186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  fi
7196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
7206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_NL_LANGINFO_CODESET)
7216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_NL_LANGINFO_CODESET)
7226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Namespace support checks
7246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_LANG(C++)
7256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([for namespace support])
7266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CACHE_VAL(ac_cv_namespace_ok,
7276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [AC_LINK_IFELSE([AC_LANG_PROGRAM([namespace x_version {void f(){}}
7286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    namespace x = x_version;
7296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    using namespace x_version;
7306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ], [f();])],[ac_cv_namespace_ok=yes],[ac_cv_namespace_ok=no])] )
7316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($ac_cv_namespace_ok)
7326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_namespace_ok = no
7336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
7346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_MSG_ERROR(Namespace support is required to build ICU.)
7356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
7366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([for properly overriding new and delete])
7386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_OVERRIDE_CXX_ALLOCATION=0
7396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_HAVE_PLACEMENT_NEW=0
7406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CACHE_VAL(ac_cv_override_cxx_allocation_ok,
7416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
7426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    class UMemory {
7436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    public:
7446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void *operator new(size_t size) {return malloc(size);}
7456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void *operator new[](size_t size) {return malloc(size);}
7466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void operator delete(void *p) {free(p);}
7476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void operator delete[](void *p) {free(p);}
7486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    };
7496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ]], [])],[ac_cv_override_cxx_allocation_ok=yes],[ac_cv_override_cxx_allocation_ok=no])] )
7506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($ac_cv_override_cxx_allocation_ok)
7516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_override_cxx_allocation_ok = yes
7526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
7536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_OVERRIDE_CXX_ALLOCATION=1
7546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_MSG_CHECKING([for placement new and delete])
7556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_CACHE_VAL(ac_cv_override_placement_new_ok,
7566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
7576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        class UMemory {
7586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        public:
7596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        void *operator new(size_t size) {return malloc(size);}
7606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        void *operator new[](size_t size) {return malloc(size);}
7616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        void operator delete(void *p) {free(p);}
7626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        void operator delete[](void *p) {free(p);}
7636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        void * operator new(size_t, void *ptr) { return ptr; }
7646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        void operator delete(void *, void *) {}
7656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        };
7666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ]], [])],[ac_cv_override_placement_new_ok=yes],[ac_cv_override_placement_new_ok=no])] )
7676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_MSG_RESULT($ac_cv_override_placement_new_ok)
7686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test $ac_cv_override_placement_new_ok = yes
7696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    then
7706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        U_HAVE_PLACEMENT_NEW=1
7716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    else
7726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_PLACEMENT_NEW=0"
7736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
7746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
7756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_OVERRIDE_CXX_ALLOCATION=0"
7766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
7776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_OVERRIDE_CXX_ALLOCATION)
7786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_PLACEMENT_NEW)
7796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_LANG(C)
7816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_FUNC(popen)
7826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test x$ac_cv_func_popen = xyes
7836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
7846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     U_HAVE_POPEN=1
7856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
7866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_POPEN=0"
7876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     U_HAVE_POPEN=0
7886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
7896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_POPEN)
7906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_FUNC(tzset)
7926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_HAVE_TZSET=0
7936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test x$ac_cv_func_tzset = xyes
7946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
7956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_TZSET=tzset
7966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HAVE_TZSET=1
7976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
7986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_CHECK_FUNC(_tzset)
7996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test x$ac_cv_func__tzset = xyes
8006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    then
8016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        U_TZSET=_tzset
8026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        U_HAVE_TZSET=1
8036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    else
8046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_TZSET=0"
8056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
8066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
8076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_TZSET)
8086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_TZSET)
8096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_HAVE_TZNAME=0
8116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CACHE_CHECK(for tzname,ac_cv_var_tzname,
8126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#ifndef __USE_POSIX
8136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define __USE_POSIX
8146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
8156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <stdlib.h>
8166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <time.h>
8176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef tzname /* For SGI.  */
8186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgextern char *tzname[]; /* RS6000 and others reject char **tzname.  */
8196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif]], [atoi(*tzname);])],[ac_cv_var_tzname=yes],[ac_cv_var_tzname=no])])
8206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_var_tzname = yes; then
8216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  U_TZNAME=tzname
8226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  U_HAVE_TZNAME=1
8236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
8246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  AC_CACHE_CHECK(for _tzname,ac_cv_var__tzname,
8256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
8266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  #include <time.h>
8276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  extern char *_tzname[];]], [atoi(*_tzname);])],[ac_cv_var__tzname=yes],[ac_cv_var__tzname=no])])
8286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test $ac_cv_var__tzname = yes; then
8296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      U_TZNAME=_tzname
8306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      U_HAVE_TZNAME=1
8316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    else
8326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_TZNAME=0"
8336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
8346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
8356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_TZNAME)
8366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_TZNAME)
8376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CACHE_CHECK(for timezone,ac_cv_var_timezone,
8396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org[AC_LINK_IFELSE([AC_LANG_PROGRAM([#ifndef __USE_POSIX
8406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define __USE_POSIX
8416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
8426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __USE_XOPEN
8436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define __USE_XOPEN
8446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
8456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <time.h>
8466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org], [[timezone = 1;]])],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no])])
8476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_HAVE_TIMEZONE=0
8486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_var_timezone = yes; then
8496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  U_TIMEZONE=timezone
8506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  U_HAVE_TIMEZONE=1
8516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
8526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  AC_CACHE_CHECK(for __timezone,ac_cv_var___timezone,
8536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[__timezone = 1;]])],[ac_cv_var___timezone=yes],[ac_cv_var___timezone=no])])
8546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  if test $ac_cv_var___timezone = yes; then
8556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_TIMEZONE=__timezone
8566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HAVE_TIMEZONE=1
8576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  else
8586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_CACHE_CHECK(for _timezone,ac_cv_var__timezone,
8596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[_timezone = 1;]])],[ac_cv_var__timezone=yes],[ac_cv_var__timezone=no])])
8606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test $ac_cv_var__timezone = yes; then
8616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      U_TIMEZONE=_timezone
8626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      U_HAVE_TIMEZONE=1
8636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    else
8646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_TIMEZONE=0"
8656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
8666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  fi
8676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
8686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_TIMEZONE)
8696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_TIMEZONE)
8706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Checks for typedefs
8726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_TYPE(int8_t,signed char)
8736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_TYPE(uint8_t,unsigned char)
8746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_TYPE(int16_t,signed short)
8756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_TYPE(uint16_t,unsigned short)
8766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_TYPE(int32_t,signed long)
8776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_TYPE(uint32_t,unsigned long)
8786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_TYPE(int64_t,signed long long)
8796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_TYPE(uint64_t,unsigned long long)
8806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_type_int8_t = no; then
8826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INT8_T=0"
8836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
8846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_type_uint8_t = no; then
8866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_UINT8_T=0"
8876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
8886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_type_int16_t = no; then
8906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INT16_T=0"
8916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
8926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_type_uint16_t = no; then
8946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_UINT16_T=0"
8956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
8966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_type_int32_t = no; then
8986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INT32_T=0"
8996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
9006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_type_uint32_t = no; then
9026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_UINT32_T=0"
9036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
9046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_type_int64_t = no; then
9066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INT64_T=0"
9076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
9086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $ac_cv_type_uint64_t = no; then
9106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_UINT64_T=0"
9116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
9126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Do various wchar_t related checks
9146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_HEADER(wchar.h)
9156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$ac_cv_header_wchar_h" = no
9166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
9176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HAVE_WCHAR_H=0
9186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HAVE_WCSCPY=0
9196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_WCHAR_H=0 -DU_HAVE_WCSCPY=0"
9206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
9216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_DEFINE([HAVE_WCHAR_H], [1], [wchar.h was found.])
9226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HAVE_WCHAR_H=1
9236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # Some broken systems have wchar.h but not some of its functions...
9246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    AC_SEARCH_LIBS(wcscpy, wcs w)
9256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$ac_cv_search_wcscpy" != no; then
9266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      U_HAVE_WCSCPY=1
9276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    else
9286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      U_HAVE_WCSCPY=0
9296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_WCSCPY=0"
9306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
9316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
9326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_WCHAR_H)
9336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_WCSCPY)
9346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CHECK_SIZEOF([wchar_t], 0, [
9366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if STDC_HEADERS
9376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <stddef.h>
9386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
9396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <stdlib.h>
9406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if HAVE_WCHAR_H
9416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <string.h>
9426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <wchar.h>
9436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif])
9446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t
9456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# We do this check to verify that everything is okay.
9466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test $U_SIZEOF_WCHAR_T = 0; then
9476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test $U_HAVE_WCHAR_H=1; then
9486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org       AC_MSG_ERROR(There is wchar.h but the size of wchar_t is 0)
9496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
9506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
9516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([for UTF-16 string literal support])
9536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_CHECK_UTF16_STRING=1
9546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCHECK_UTF16_STRING_RESULT="unknown"
9556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgcase "${host}" in
9576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*-*-aix*|powerpc64-*-linux*)
9586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$GCC" = no; then
9596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        OLD_CFLAGS="${CFLAGS}"
9606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        OLD_CXXFLAGS="${CXXFLAGS}"
9616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CFLAGS="${CFLAGS} -qutf"
9626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CXXFLAGS="${CXXFLAGS} -qutf"
9636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[const unsigned short hello[] = u"hello";]], [[]])],[U_CHECK_UTF16_STRING=1],[U_CHECK_UTF16_STRING=0])
9646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test "$U_CHECK_UTF16_STRING" = 0; then
9656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CFLAGS="${OLD_CFLAGS}"
9666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CXXFLAGS="${OLD_CXXFLAGS}"
9676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        else
9686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} -qutf"
9696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CHECK_UTF16_STRING_RESULT="-qutf"
9706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
9716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
9726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
9736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*-*-solaris*)
9746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$GCC" = no; then
9756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        OLD_CFLAGS="${CFLAGS}"
9766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        OLD_CXXFLAGS="${CXXFLAGS}"
9776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CFLAGS="${CFLAGS} -xustr=ascii_utf16_ushort"
9786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CXXFLAGS="${CXXFLAGS} -xustr=ascii_utf16_ushort"
9796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[const unsigned short hello[] = U"hello";]], [[]])],[U_CHECK_UTF16_STRING=1],[U_CHECK_UTF16_STRING=0])
9806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test "$U_CHECK_UTF16_STRING" = 0; then
9816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CFLAGS="${OLD_CFLAGS}"
9826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CXXFLAGS="${OLD_CXXFLAGS}"
9836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        else
9846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CHECK_UTF16_STRING_RESULT="-xustr=ascii_utf16_ushort"
9856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} -xustr=ascii_utf16_ushort"
9866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            UCONFIG_CFLAGS="${UCONFIG_CFLAGS} -xustr=ascii_utf16_ushort"
9876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            # Since we can't detect the availability of this UTF-16 syntax at compile time,
9886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            # we depend on configure telling us that we can use it.
9896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            # Since we can't ensure ICU users use -xustr=ascii_utf16_ushort,
9906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            # we only use this macro within ICU.
9916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            # If an ICU user uses icu-config, this feature will be enabled.
9926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_CHECK_UTF16_STRING=1"
9936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            U_CHECK_UTF16_STRING=0
9946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
9956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
9966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
9976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*-*-hpux*)
9986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$GCC" = no; then
9996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        # The option will be detected at compile time without additional compiler options.
10006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CHECK_UTF16_STRING_RESULT="available"
10016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
10026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
10036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*-*-cygwin)
10046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    # wchar_t can be used
10056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CHECK_UTF16_STRING_RESULT="available"
10066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
10076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*)
10086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
10096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgesac
10106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# GCC >= 4.4 supports UTF16 string literals. The CFLAGS and CXXFLAGS may change in the future.
10126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$CHECK_UTF16_STRING_RESULT" = "unknown"; then
10136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$GCC" = yes; then
10146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        OLD_CFLAGS="${CFLAGS}"
10156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CFLAGS="${CFLAGS} -std=gnu99"
10166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
10176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic const char16_t test[] = u"This is a UTF16 literal string.";
10186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ]], [[]])],[CC_UTF16_STRING=1],[CC_UTF16_STRING=0])
10196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test "$CC_UTF16_STRING" = 1; then
10206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            UCONFIG_CFLAGS="${UCONFIG_CFLAGS} -std=gnu99"
10216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CHECK_UTF16_STRING_RESULT="C only";
10226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        else
10236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            CFLAGS="${OLD_CFLAGS}"
10246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
10256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
10266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$GXX" = yes; then
10276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        # -Wno-return-type-c-linkage is desired so that stable ICU API is not warned about.
10286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_LANG_PUSH([C++])
10296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
10306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic const char16_t test[] = u"This is a UTF16 literal string.";
10316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ]], [[]])],[CXX_UTF16_STRING=1],[CXX_UTF16_STRING=0])
10326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        AC_LANG_POP([C++])
10336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        if test "$CXX_UTF16_STRING" = 1; then
10346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            if test "$CC_UTF16_STRING" = 1; then
10356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                CHECK_UTF16_STRING_RESULT="available";
10366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            else
10376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                CHECK_UTF16_STRING_RESULT="C++ only";
10386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            fi
10396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        fi
10406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
10416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
10426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($CHECK_UTF16_STRING_RESULT)
10436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Enable/disable extras
10456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(extras,
10466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[  --enable-extras         build ICU extras [default=yes]],
10476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[case "${enableval}" in
10486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		yes) extras=true ;;
10496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		no)  extras=false ;;
10506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		*) AC_MSG_ERROR(bad value ${enableval} for --enable-extras) ;;
10516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		esac],
10526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	extras=true)
10536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICU_CONDITIONAL(EXTRAS, test "$extras" = true)
10546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(icuio,
10556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[  --enable-icuio          build ICU's icuio library [default=yes]],
10566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[case "${enableval}" in
10576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		yes) icuio=true ;;
10586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		no)  icuio=false ;;
10596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		*) AC_MSG_ERROR(bad value ${enableval} for --enable-icuio) ;;
10606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		esac],
10616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	icuio=true)
10626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICU_CONDITIONAL(ICUIO, test "$icuio" = true)
10636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Enable/disable layout
10656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(layout,
10666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[  --enable-layout         build ICU's layout library [default=yes]],
10676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[case "${enableval}" in
10686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		yes) layout=true ;;
10696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		no)  layout=false ;;
10706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		*) AC_MSG_ERROR(bad value ${enableval} for --enable-layout) ;;
10716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		esac],
10726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	layout=true)
10736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICU_CONDITIONAL(LAYOUT, test "$layout" = true)
10746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Enable/disable tools
10766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(tools,
10776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[  --enable-tools         build ICU's tools [default=yes]],
10786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[case "${enableval}" in
10796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		yes) tools=true ;;
10806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		no)  tools=false ;;
10816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		*) AC_MSG_ERROR(bad value ${enableval} for --enable-tools) ;;
10826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		esac],
10836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	tools=true)
10846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICU_CONDITIONAL(TOOLS, test "$tools" = true)
10856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_WITH(data-packaging,
10876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[  --with-data-packaging=type specify how to package ICU data (files, archive, library, static, auto) [default=auto]],
10886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[case "${withval}" in
10896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                files|archive|library) datapackaging=$withval ;;
10906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		auto) datapackaging=$withval ;;
10916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		common) datapackaging=archive ;;
10926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		dll) datapackaging=library ;;
10936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		static) datapackaging=static ;;
10946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		*) AC_MSG_ERROR(bad value ${withval} for --with-data-packaging) ;;
10956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		esac],
10966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        [datapackaging=])
10976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Note:  'thesysconfdir' is an evaluated version, for Man pages, so also for thedatadir, thelibdir, etc..
10996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# thesysconfdir=`eval echo $sysconfdir`
11006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdnl# AC_SUBST(thesysconfdir)
11016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdnl# thelibdir=`test "x$exec_prefix" = xNONE && exec_prefix="$prefix"; eval echo $libdir`
11026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdnl# AC_SUBST(thelibdir)
11036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthedatadir=`eval echo $datadir`
11046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdnl# AC_SUBST(thedatadir)
11056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Always put raw data files in share/icu/{version}, etc.   Never use lib/icu/{version} for data files.. Actual shared libraries will go in {libdir}.
11066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpkgicudatadir=$datadir
11076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthepkgicudatadir=$thedatadir
11086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(pkgicudatadir)
11096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(thepkgicudatadir)
11106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdnl# Shouldn't need the AC_SUBST
11126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test x"$datapackaging" = x -o x"$datapackaging" = xauto; then
11146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	# default to library
11156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	datapackaging=library
11166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	if test "$ENABLE_STATIC" = "YES"; then
11176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		if test "$ENABLE_SHARED" != "YES"; then
11186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			datapackaging=static
11196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		fi
11206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	fi
11216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
11226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdatapackaging_dir=`eval echo $thedatadir`"/icu/${VERSION}"
11246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdatapackaging_msg="(No explaination for mode $datapackaging.)"
11266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdatapackaging_msg_path="ICU will look in $datapackaging_dir which is the installation location. Call u_setDataDirectory() or use the ICU_DATA environment variable to override."
11286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdatapackaging_msg_set="ICU will use the linked data library. If linked with the stub library located in stubdata/, the application can use udata_setCommonData() or set a data path to override."
11296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgdatapackaging_howfound="(unknown)"
11306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgcase "$datapackaging" in
11326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    files)
11336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    DATA_PACKAGING_MODE=files
11346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    datapackaging_msg="ICU data will be stored in individual files."
11356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    datapackaging_howfound="$datapackaging_msg_path"
11366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
11376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    archive)
11386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    DATA_PACKAGING_MODE=common
11396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    datapackaging_msg="ICU data will be stored in a single .dat file."
11406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    datapackaging_howfound="$datapackaging_msg_path"
11416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
11426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    library)
11436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    DATA_PACKAGING_MODE=dll
11446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    datapackaging_msg="ICU data will be linked with ICU."
11456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$ENABLE_STATIC" = "YES"; then
11466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        datapackaging_msg="$datapackaging_msg A static data library will be built. "
11476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
11486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if test "$ENABLE_SHARED" = "YES"; then
11496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        datapackaging_msg="$datapackaging_msg A shared data library will be built. "
11506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fi
11516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    datapackaging_howfound="$datapackaging_msg_set"
11526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
11536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    static)
11546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    DATA_PACKAGING_MODE=static
11556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    datapackaging_msg="ICU data will be stored in a static library."
11566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    datapackaging_howfound="$datapackaging_msg_set"
11576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ;;
11586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgesac
11596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(DATA_PACKAGING_MODE)
11606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Sets a library suffix
11626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([for a library suffix to use])
11636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_WITH(library-suffix,
11646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[  --with-library-suffix=suffix    tag a suffix to the library names [default=]],
11656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[ICULIBSUFFIX="${withval}"],
11666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[ICULIBSUFFIX=])
11676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgmsg=$ICULIBSUFFIX
11686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$msg" = ""; then
11696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    msg=none
11706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
11716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT($msg)
11726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ICULIBSUFFIX)
11736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$ICULIBSUFFIX" != ""
11746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
11756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HAVE_LIB_SUFFIX=1
11766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    ICULIBSUFFIXCNAME=`echo _$ICULIBSUFFIX | sed 's/[^A-Za-z0-9_]/_/g'`
11776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCONFIG_CPPFLAGS="${UCONFIG_CPPFLAGS} -DU_HAVE_LIB_SUFFIX=1 -DU_LIB_SUFFIX_C_NAME=${ICULIBSUFFIXCNAME} "
11786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
11796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HAVE_LIB_SUFFIX=0
11806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
11816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(U_HAVE_LIB_SUFFIX)
11826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ICULIBSUFFIXCNAME)
11836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Enable/disable tests
11856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(tests,
11866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[  --enable-tests          build ICU tests [default=yes]],
11876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[case "${enableval}" in
11886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		yes) tests=true ;;
11896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		no)  tests=false ;;
11906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		*) AC_MSG_ERROR(bad value ${enableval} for --enable-tests) ;;
11916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		esac],
11926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	tests=true)
11936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICU_CONDITIONAL(TESTS, test "$tests" = true)
11946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Enable/disable samples
11966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_ARG_ENABLE(samples,
11976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[  --enable-samples        build ICU samples [default=yes]
11986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAdditionally, the variable FORCE_LIBS may be set before calling configure.
12006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgIf set, it will REPLACE any automatic list of libraries.],
12016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	[case "${enableval}" in
12026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		yes) samples=true ;;
12036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		no)  samples=false ;;
12046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		*) AC_MSG_ERROR(bad value ${enableval} for --enable-samples) ;;
12056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		esac],
12066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	samples=true)
12076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICU_CONDITIONAL(SAMPLES, test "$samples" = true)
12086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgICUDATA_CHAR=$U_ENDIAN_CHAR
12106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Platform-specific Makefile setup
12126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# set ICUDATA_CHAR to 'e' for any EBCDIC (which should be big endian) platform.
12136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgcase "${host}" in
12146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-solaris*) 	platform=U_SOLARIS ;;
12156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-linux*|*-*-gnu|*-*-k*bsd*-gnu|*-*-kopensolaris*-gnu)        platform=U_LINUX ;;
12166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-*bsd*|*-*-dragonfly*) 	platform=U_BSD ;;
12176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-aix*) 	platform=U_AIX ;;
12186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-hpux*) 	platform=U_HPUX ;;
12196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-apple-darwin*|*-apple-rhapsody*)	platform=U_DARWIN ;;
12206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-cygwin*)	platform=U_CYGWIN ;;
12216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-mingw*)	platform=U_MINGW ;;
12226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*ibm-openedition*|*-*-os390*)	platform=OS390
12236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			if test "${ICU_ENABLE_ASCII_STRINGS}" != "1"; then
12246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org				ICUDATA_CHAR="e"
12256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			fi ;;
12266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-os400*)	platform=OS400
12276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			if test "${ICU_ENABLE_ASCII_STRINGS}" != "1"; then
12286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org				ICUDATA_CHAR="e"
12296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			fi ;;
12306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-nto*)	platform=U_QNX ;;
12316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-dec-osf*) 	platform=U_OSF ;;
12326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-beos)		platform=U_BEOS ;;
12336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-*-irix*)		platform=U_IRIX ;;
12346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*-ncr-*)		platform=U_MPRAS ;;
12356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	*) 		platform=U_UNKNOWN_PLATFORM ;;
12366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgesac
12376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(ICUDATA_CHAR)
12386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(platform)
12396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgplatform_make_fragment_name="$icu_cv_host_frag"
12406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgplatform_make_fragment='$(top_srcdir)/config/'"$platform_make_fragment_name"
12416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(platform_make_fragment_name)
12426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(platform_make_fragment)
12436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "${FORCE_LIBS}" != ""; then
12456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo " *** Overriding automatically chosen [LIBS=$LIBS], using instead [FORCE_LIBS=${FORCE_LIBS}]"  1>&6
12466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   LIBS=${FORCE_LIBS}
12476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
12486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Now that we're done using CPPFLAGS etc. for tests, we can change it
12506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# for build.
12516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "${CC}" == "clang"; then
12536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   CLANGCFLAGS="-Qunused-arguments -Wno-parentheses-equality"
12546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
12556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   CLANGCFLAGS=""
12566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
12576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "${CXX}" == "clang++"; then
12596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   CLANGCXXFLAGS="-Qunused-arguments -Wno-parentheses-equality"
12606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
12616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   CLANGCXXFLAGS=""
12626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
12636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCPPFLAGS="$CPPFLAGS \$(THREADSCPPFLAGS)"
12656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS="$CFLAGS \$(THREADSCFLAGS) $CLANGCFLAGS"
12666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCXXFLAGS="$CXXFLAGS \$(THREADSCXXFLAGS) $CLANGCXXFLAGS"
12676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(LIBCFLAGS)
12696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(LIBCXXFLAGS)
12706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# append all config cppflags
12726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCPPFLAGS="$CPPFLAGS $CONFIG_CPPFLAGS $UCONFIG_CPPFLAGS"
12736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho "CPPFLAGS=$CPPFLAGS"
12756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho "CFLAGS=$CFLAGS"
12766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho "CXXFLAGS=$CXXFLAGS"
12776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# output the Makefiles
12806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_CONFIG_FILES([icudefs.mk \
12816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		Makefile \
12826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		data/pkgdataMakefile \
12836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		config/Makefile.inc \
12846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		config/icu.pc \
12856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		config/pkgdataMakefile \
12866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		data/Makefile \
12876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		stubdata/Makefile \
12886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		common/Makefile \
12896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		i18n/Makefile \
12906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		layout/Makefile \
12916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		layoutex/Makefile \
12926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		io/Makefile \
12936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		extra/Makefile \
12946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		extra/uconv/Makefile \
12956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		extra/uconv/pkgdataMakefile \
12966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		extra/scrptrun/Makefile \
12976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/Makefile \
12986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/ctestfw/Makefile \
12996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/toolutil/Makefile \
13006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/makeconv/Makefile \
13016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/genrb/Makefile \
13026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/genccode/Makefile \
13036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/gencmn/Makefile \
13046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/gencnval/Makefile \
13056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/gendict/Makefile \
13066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/gentest/Makefile \
13076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/gennorm2/Makefile \
13086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/genbrk/Makefile \
13096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/gensprep/Makefile \
13106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/icuinfo/Makefile \
13116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/icupkg/Makefile \
13126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/icuswap/Makefile \
13136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/pkgdata/Makefile \
13146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/tzcode/Makefile \
13156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		tools/gencfu/Makefile \
13166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/Makefile \
13176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/compat/Makefile \
13186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/testdata/Makefile \
13196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/testdata/pkgdataMakefile \
13206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/hdrtst/Makefile \
13216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/intltest/Makefile \
13226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/cintltst/Makefile \
13236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/iotest/Makefile \
13246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/letest/Makefile \
13256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/Makefile \
13266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/collationperf/Makefile \
13276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/collperf/Makefile \
13286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/dicttrieperf/Makefile \
13296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/ubrkperf/Makefile \
13306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/charperf/Makefile \
13316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/convperf/Makefile \
13326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/normperf/Makefile \
13336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/DateFmtPerf/Makefile \
13346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/howExpensiveIs/Makefile \
13356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/strsrchperf/Makefile \
13366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/unisetperf/Makefile \
13376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/usetperf/Makefile \
13386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/ustrperf/Makefile \
13396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/utfperf/Makefile \
13406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		test/perf/utrie2perf/Makefile \
13416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                test/perf/leperf/Makefile \
13426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		samples/Makefile samples/date/Makefile \
13436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		samples/cal/Makefile samples/layout/Makefile])
13446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_OUTPUT
13456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
13466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho
13476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho "ICU for C/C++ $VERSION is ready to be built."
13486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho "=== Important Notes: ==="
13496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
13506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho "Data Packaging: $datapackaging"
13516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho " This means: $datapackaging_msg"
13526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho " To locate data: $datapackaging_howfound"
13536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
13546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test -n "`$U_MAKE -v 2>&1 | grep '^GNU Make'`"; then
13556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho "Building ICU: Use a GNU make such as $U_MAKE to build ICU."
13566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
13576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho "** WARNING: $U_MAKE may not be GNU make."
13586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho "This may cause ICU to fail to build. Please make sure that GNU make"
13596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgecho "is in your PATH so that the configure script can detect its location."
13606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
13616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "x$AR" = "xfalse"; then
13626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  echo "*** WARNING: Archiver ar not found. Set AR= or fix PATH. Some builds (such as static) may fail."
13636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
13646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
13656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_CHECKING([the version of "$U_MAKE"])
13666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif "$U_MAKE" -f "$srcdir/config/gmakever.mk" PLATFORM="$platform"; then
13676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT([ok])
13686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse
13696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_MSG_RESULT([too old or test failed - try upgrading GNU Make])
13706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
13716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
13726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(UCONFIG_CPPFLAGS)
13736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test -n "$UCONFIG_CPPFLAGS"; then
13746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   HDRFILE="uconfig.h.prepend"
13756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo "*** WARNING: You must set the following flags before code compiled against this ICU will function properly:"
13766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo
13776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo "   ${UCONFIG_CPPFLAGS}"
13786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo
13796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo 'The recommended way to do this is to prepend the following lines to source/common/unicode/uconfig.h or #include them near the top of that file.'
13806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo "Creating the file ${HDRFILE}"
13816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo
13826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo '---------------   ' "${HDRFILE}"
13836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo > "${HDRFILE}"
13846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo '/* ICU customizations: put these lines at the top of uconfig.h */' >> "${HDRFILE}"
13856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo >> "${HDRFILE}"
13866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   for flag in ${UCONFIG_CPPFLAGS};
13876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   do
13886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        echo " /* $flag */" >> "${HDRFILE}"
13896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        case "${flag}" in
13906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        -D*=*)
13916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          [ \echo "${flag}" | sed -n 's%-D\([^=]*\)=%#define \1 %p' >> "${HDRFILE}" ]
13926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          \echo >> "${HDRFILE}"
13936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          ;;
13946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        -D*)
13956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          [ \echo "${flag}" | sed -n 's%-D\([^=]*\)%#define \1 %p' >> "${HDRFILE}" ]
13966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          \echo >> "${HDRFILE}"
13976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          ;;
13986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        *)
13996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          \echo "/*  Not sure how to handle this argument: ${flag} */" >> "${HDRFILE}"
14006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          \echo >> "${HDRFILE}"
14016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org          ;;
14026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        esac
14036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   done
14046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   cat "${HDRFILE}"
14056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   \echo  "/* End of ${HDRFILE} ------------ */" >> "${HDRFILE}"
14066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo >> "${HDRFILE}"
14076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo '--------------- end ' "${HDRFILE}"
14086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
14096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(UCONFIG_CFLAGS)
14116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test -n "$UCONFIG_CFLAGS"; then
14126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo "C   apps may want to build with CFLAGS   = ${UCONFIG_CFLAGS}"
14136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
14146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgAC_SUBST(UCONFIG_CXXFLAGS)
14156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test -n "$UCONFIG_CXXFLAGS"; then
14166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   echo "C++ apps may want to build with CXXFLAGS = ${UCONFIG_CXXFLAGS}"
14176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
14186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgif test "$tools" = false;
14206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgthen
14216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        echo "## Note: you have disabled ICU's tools. This ICU cannot build its own data or tests."
14226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        echo "## Expect build failures in the 'data', 'test', and other directories."
14236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgfi
14246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org$as_unset _CXX_CXXSUFFIX
1426