| #!/bin/sh | 
 | # Copyright (C) 2016 and later: Unicode, Inc. and others. | 
 | # License & terms of use: http://www.unicode.org/copyright.html | 
 | # Copyright (c) 1999-2015, International Business Machines Corporation and | 
 | # others. All Rights Reserved. | 
 |  | 
 | # runConfigureICU: This script will run the "configure" script for the appropriate platform | 
 | # Only supported platforms are recognized | 
 |  | 
 | me=`basename $0` | 
 | OPTS= | 
 |  | 
 | usage() | 
 | { | 
 |     ec=0$1 | 
 |     if test $ec -eq 0 | 
 |     then | 
 |         uletter=U | 
 |     else | 
 |         uletter=u | 
 |     fi | 
 |  | 
 |     echo "${uletter}sage: $me [ -h, --help ]  [ --enable-debug | --disable-release ] platform [ configurearg ... ]" | 
 |     if test $ec -eq 0 | 
 |     then | 
 |         cat <<EOE | 
 |  | 
 | Options: -h, --help         Print this message and exit | 
 |          --enable-debug     Enable support for debugging | 
 |          --disable-release  Disable presetting optimization flags | 
 |  | 
 | If you want to add custom CFLAGS or CXXFLAGS or similar, provide them _before_ | 
 | the runConfigureICU command: | 
 |  | 
 |     CXXFLAGS=xyz path/to/runConfigureICU --enable-debug ... | 
 |  | 
 | The following names can be supplied as the argument for platform: | 
 |  | 
 |     AIX                 Use the IBM Visual Age xlc_r/xlC_r compilers on AIX | 
 |     AIX/GCC             Use the GNU gcc/g++ compilers on AIX | 
 |     Cygwin              Use the GNU gcc/g++ compilers on Cygwin | 
 |     Cygwin/MSVC         Use the Microsoft Visual C++ compiler on Cygwin | 
 |     Cygwin/MSVC2005     Use the Microsoft Visual C++ 2005 compiler on Cygwin | 
 |     Cygwin/ICL          Use the Intel C++ compiler on Cygwin | 
 |     FreeBSD             Use the clang/clang++ or GNU gcc/g++ compilers on FreeBSD | 
 |     HP-UX/ACC           Use the HP ANSI C/Advanced C++ compilers on HP-UX 11 | 
 |     IBMi                Use the iCC compilers on IBM i, i5/OS, OS/400 | 
 |     Linux               Use the clang/clang++ or GNU gcc/g++ compilers on Linux | 
 |     Linux/gcc           Use the GNU gcc/g++ compilers on Linux | 
 |     Linux/ECC           Use the Intel ECC compiler on Linux | 
 |     Linux/ICC           Use the Intel ICC compiler on Linux | 
 |     Linux/VA            Use the IBM Visual Age compiler on Power PC Linux | 
 |     MacOSX              Use the default compilers on MacOS X (Darwin) | 
 |     MacOSX/GCC          Use the GNU gcc/g++ compilers on MacOSX (Darwin) | 
 |     MinGW               Use the GNU gcc/g++ compilers on MinGW | 
 |     MSYS/MSVC           Use the Microsoft Visual C++ computer on MSYS | 
 |     QNX                 Use the QNX QCC compiler on QNX/Neutrino | 
 |     Solaris             Use the Sun cc/CC compilers on Solaris | 
 |     Solaris/GCC         Use the GNU gcc/g++ compilers on Solaris | 
 |     SolarisX86          Use the Sun cc/CC compilers on Solaris x86 | 
 |     TRU64V5.1/CXX       Use the Compaq cxx compiler on Tru64 (OSF) | 
 |     zOS                 Use the IBM cxx compiler on z/OS (os/390) | 
 |     zOSV1R2             Use the IBM cxx compiler for z/OS 1.2 | 
 | EOE | 
 |     fi | 
 |  | 
 |     exit $ec | 
 | } | 
 |  | 
 | # Parse arguments | 
 |  | 
 | platform= | 
 | debug=0 | 
 | release=1 | 
 |  | 
 | while test $# -ne 0 | 
 | do | 
 |     case "$1" in | 
 |     -h|--help) | 
 |         usage 0 | 
 |         ;; | 
 |     --enable-debug) | 
 |         debug=1 | 
 |         OPTS="$OPTS --enable-debug" | 
 |         ;; | 
 |     --disable-release) | 
 |         release=0 | 
 |         OPTS="$OPTS --disable-release" | 
 |         ;; | 
 |     *) | 
 |         platform="$1" | 
 |         shift | 
 |         break | 
 |         ;; | 
 |     esac | 
 |     shift | 
 | done | 
 |  | 
 | if test x$platform = x | 
 | then | 
 |    usage 1 | 
 | fi | 
 |  | 
 | # Go. | 
 |  | 
 | rm -f config.cache | 
 | rm -f config.log | 
 | rm -f config.status | 
 |  | 
 | DEBUG_CFLAGS='-g' | 
 | DEBUG_CXXFLAGS='-g' | 
 |  | 
 | if test x$configure = x | 
 | then | 
 |     if test -f ./configure | 
 |     then | 
 |         configuredir=. | 
 |     else | 
 |         configuredir=`echo $0 | sed 's,[^/]*$,,'` | 
 |         if test x$configuredir = x$0 | 
 |         then | 
 |             configuredir=. | 
 |         fi | 
 |     fi | 
 |  | 
 |     if test x$configuredir = x | 
 |     then | 
 |         configuredir=. | 
 |     fi | 
 |  | 
 |     configure=$configuredir/configure | 
 | fi | 
 |  | 
 | case $platform in | 
 |     AIX) | 
 |         THE_OS=AIX | 
 |         THE_COMP="xlC_r" | 
 |         CC=`which xlc_r`; export CC | 
 |         if [ ! -x $CC ]; then | 
 |            echo "ERROR: xlc_r was not found, please check the PATH to make sure it is correct."; exit 1 | 
 |         fi | 
 |         CXX=`which xlC_r`; export CXX | 
 |         if [ ! -x $CXX ]; then | 
 |            echo "ERROR: xlC_r was not found, please check the PATH to make sure it is correct."; exit 1 | 
 |         fi | 
 |         RELEASE_CFLAGS="-O2 -qmaxmem=-1" | 
 |         RELEASE_CXXFLAGS="-O2 -qmaxmem=-1" | 
 |         ;; | 
 |     AIX/GCC) | 
 |         THE_OS=AIX | 
 |         THE_COMP="the GNU C++" | 
 |         CC=gcc; export CC | 
 |         CXX=g++; export CXX | 
 |         DEBUG_CFLAGS='-g -O0' | 
 |         DEBUG_CXXFLAGS='-g -O0' | 
 |         ;; | 
 |     Solaris) | 
 |         THE_OS=SOLARIS | 
 |         THE_COMP="Sun's CC" | 
 |         CC=`which cc`; export CC | 
 |         CXX=`which CC`; export CXX | 
 |         RELEASE_CFLAGS="-xO1 -xlibmil" | 
 |         RELEASE_CXXFLAGS="-O4 -xlibmil" | 
 |         ;; | 
 |     Solaris/GCC) | 
 |         THE_OS=SOLARIS | 
 |         THE_COMP="the GNU C++" | 
 |         CC=gcc; export CC | 
 |         CXX=g++; export CXX | 
 |         RELEASE_CFLAGS=-O1 | 
 |         RELEASE_CXXFLAGS=-O2 | 
 |         ;; | 
 |     SolarisX86) | 
 |         THE_OS="SOLARIS X86" | 
 |         THE_COMP="Sun's CC" | 
 |         CC=`which cc`; export CC | 
 |         CXX=`which CC`; export CXX | 
 |         LDFLAGS="${LDFLAGS} -lCrun";export LDFLAGS | 
 |         RELEASE_CFLAGS=-xO3 | 
 |         RELEASE_CXXFLAGS=-O3 | 
 |         ;; | 
 |     HP-UX/ACC) | 
 |         THE_OS="HP-UX 11" | 
 |         THE_COMP="aCC" | 
 |         CC=cc; export CC | 
 |         CXX=aCC; export CXX | 
 |         RELEASE_CFLAGS='+O2 +Ofltacc' | 
 |         RELEASE_CXXFLAGS='+O2 +Ofltacc' | 
 |         ;; | 
 |     IBMi) | 
 |         THE_OS="IBM i" | 
 |         THE_COMP="the iCC C++" | 
 |         CC=icc; export CC | 
 |         CXX=icc; export CXX | 
 |         CPP="$CC -c -qpponly"; export CPP | 
 |         MAKE=gmake; export MAKE | 
 |         U_MAKE=gmake; export U_MAKE | 
 |         # gmake is a .pgm and may not be on the path.  Don't use a full path, just use gmake. | 
 |         ac_cv_path_U_MAKE=gmake; export ac_cv_path_U_MAKE | 
 |         RELEASE_CFLAGS='-O4' | 
 |         RELEASE_CXXFLAGS='-O4' | 
 |         ;; | 
 |     Linux/ECC) | 
 |         THE_OS="Linux" | 
 |         THE_COMP="Intel ECC 7.1" | 
 |         CC=ecc; export CC | 
 |         CXX=ecpc; export CXX | 
 |         RELEASE_CFLAGS='-O2' | 
 |         RELEASE_CXXFLAGS='-O2' | 
 |         ;; | 
 |     Linux/ICC) | 
 |         THE_OS="Linux" | 
 |         CC=`which icc`; export CC | 
 |         CXX=`which icpc`; export CXX | 
 | 	ICC_VER=`${CC} -v 2>&1` | 
 |         RELEASE_CFLAGS='-O' | 
 |         RELEASE_CXXFLAGS='-O' | 
 |         export CFLAGS="-fp-model precise" | 
 |         export CXXFLAGS="-fp-model precise" | 
 | 	if [ "${ICC_VER}" = "Version 9.0 " ]; then | 
 | 		RELEASE_CFLAGS='' | 
 | 		RELEASE_CXXFLAGS='' | 
 | 		export CFLAGS="${CFLAGS} -O0" | 
 | 		export CXXFLAGS="${CXXFLAGS} -O0" | 
 | 		echo "ICC 9.0 does not work with optimization- disabling optimizations" | 
 | 	fi | 
 |         THE_COMP="Intel ${ICC_VER}" | 
 |         ;; | 
 |     Linux/VA) | 
 |         THE_OS="Linux" | 
 |         THE_COMP="IBM Visual Age C++ Compiler" | 
 |         CC=`which xlc_r`; export CC | 
 |         CXX=`which xlC_r`; export CXX | 
 |         RELEASE_CFLAGS="-O2 -qmaxmem=-1" | 
 |         RELEASE_CXXFLAGS="-O2 -qmaxmem=-1" | 
 |         ;; | 
 |     Linux/gcc) | 
 |         THE_OS="Linux" | 
 |         THE_COMP="the GNU C++" | 
 |         CC=gcc; export CC | 
 |         CXX=g++; export CXX | 
 |         RELEASE_CFLAGS='-O3' | 
 |         RELEASE_CXXFLAGS='-O3' | 
 |         DEBUG_CFLAGS='-g' | 
 |         DEBUG_CXXFLAGS='-g' | 
 |         ;; | 
 |     Linux*) | 
 |         THE_OS="Linux" | 
 |         THE_COMP="the clang or else GNU C++" | 
 |         RELEASE_CFLAGS='-O3' | 
 |         RELEASE_CXXFLAGS='-O3' | 
 |         DEBUG_CFLAGS='-g' | 
 |         DEBUG_CXXFLAGS='-g' | 
 |         ;; | 
 |     Cygwin) | 
 |         THE_OS="Cygwin" | 
 |         THE_COMP="the GNU C++" | 
 |         RELEASE_CFLAGS='-O3' | 
 |         RELEASE_CXXFLAGS='-O3' | 
 |         ;; | 
 |     Cygwin/MSVC) | 
 |         THE_OS="Windows with Cygwin" | 
 |         THE_COMP="Microsoft Visual C++" | 
 |         CC=cl; export CC | 
 |         CXX=cl; export CXX | 
 |         RELEASE_CFLAGS='-Gy -MD' | 
 |         RELEASE_CXXFLAGS='-Gy -MD' | 
 |         DEBUG_CFLAGS='-FS -Zi -MDd' | 
 |         DEBUG_CXXFLAGS='-FS -Zi -MDd' | 
 |         DEBUG_LDFLAGS='-DEBUG' | 
 |         ;; | 
 |     Cygwin/MSVC2005) | 
 |         THE_OS="Windows with Cygwin" | 
 |         THE_COMP="Microsoft Visual C++ 2005" | 
 |         CC=cl; export CC | 
 |         CXX=cl; export CXX | 
 |         RELEASE_CFLAGS='/Gy /MD' | 
 |         RELEASE_CXXFLAGS='/Gy /MD' | 
 |         DEBUG_CFLAGS='/Zi /MDd' | 
 |         DEBUG_CXXFLAGS='/Zi /MDd' | 
 |         DEBUG_LDFLAGS='/DEBUG' | 
 |         ;; | 
 |     Cygwin/ICL) | 
 |         THE_OS="Windows with Cygwin" | 
 |         THE_COMP="Intel C++" | 
 |         CC=icl; export CC | 
 |         CXX=icl; export CXX | 
 |         # The Intel compiler has optimization bugs. So we disable optimization. | 
 |         RELEASE_CFLAGS='/Od' | 
 |         RELEASE_CXXFLAGS='/Od' | 
 |         DEBUG_CFLAGS='/Zi' | 
 |         DEBUG_CXXFLAGS='/Zi' | 
 |         DEBUG_LDFLAGS='/DEBUG' | 
 |         ;; | 
 |     MacOSX) | 
 |         THE_OS="MacOS X (Darwin)" | 
 |         THE_COMP="the default" | 
 |         RELEASE_CFLAGS='-O2' | 
 |         RELEASE_CXXFLAGS='-O2' | 
 |         DEBUG_CFLAGS='-g -O0' | 
 |         DEBUG_CXXFLAGS='-g -O0' | 
 |         ;; | 
 |     MacOSX/GCC) | 
 |         THE_OS="MacOS X (Darwin)" | 
 |         THE_COMP="the GNU C++" | 
 |         RELEASE_CFLAGS='-O2' | 
 |         RELEASE_CXXFLAGS='-O2' | 
 |         DEBUG_CFLAGS='-g -O0' | 
 |         DEBUG_CXXFLAGS='-g -O0' | 
 |         CC=gcc; export CC | 
 |         CXX=g++; export CXX | 
 |         ;; | 
 |     MinGW) | 
 |         THE_OS="MinGW" | 
 |         THE_COMP="the GNU C++" | 
 |         RELEASE_CFLAGS='-O3' | 
 |         RELEASE_CXXFLAGS='-O3' | 
 |         export CXXFLAGS | 
 |         ;; | 
 |     MSYS/MSVC) | 
 |         THE_OS="MSYS" | 
 |         THE_COMP="Microsoft Visual C++" | 
 |         CC=cl; export CC | 
 |         CXX=cl; export CXX | 
 |         RELEASE_CFLAGS='-Gy -MD' | 
 |         RELEASE_CXXFLAGS='-Gy -MD' | 
 |         DEBUG_CFLAGS='-FS -Zi -MDd' | 
 |         DEBUG_CXXFLAGS='-FS -Zi -MDd' | 
 |         DEBUG_LDFLAGS='-DEBUG' | 
 |         ;; | 
 |     *BSD) | 
 |         THE_OS="BSD" | 
 |         THE_COMP="the GNU C++" | 
 |         DEBUG_CFLAGS='-g -O0' | 
 |         DEBUG_CXXFLAGS='-g -O0' | 
 |         ;; | 
 |     TRU64V5.1/CXX) | 
 |         THE_OS="OSF1" | 
 |         THE_COMP="Compaq cxx" | 
 |         CC=cc; export CC | 
 |         CXX=cxx; export CXX | 
 |         ;; | 
 |     QNX) | 
 |         THE_OS="QNX" | 
 |         THE_COMP="QNX cc" | 
 |         CC=qcc; export CC | 
 |         CXX=QCC; export CXX | 
 |         ;; | 
 |     zOS) | 
 |         THE_OS="z/OS (OS/390)" | 
 |         THE_COMP="z/OS C/C++" | 
 |         CC=xlc; export CC | 
 |         CXX=xlC; export CXX | 
 |         RELEASE_CFLAGS="-O2 -Wc,'inline(AUTO,NOREPORT,1000,8000)'" | 
 |         RELEASE_CXXFLAGS="-O2 -Wc,'inline(AUTO,NOREPORT,1000,8000)'" | 
 |         ;; | 
 |     zOSV1R2) | 
 |         THE_OS="z/OS 1.2" | 
 |         THE_COMP="z/OS 1.2 C/C++" | 
 |         CC=cc; export CC | 
 |         CXX=cxx; export CXX | 
 |         export COMPILE_LINK_ENVVAR='_CXX_CICC_VER}=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000' | 
 |         export _CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000 | 
 |         export LDFLAGS="-Wl,'compat=pm3'" | 
 |         export CFLAGS="-Wc,'target(zOSV1R2)'" | 
 |         export CXXFLAGS="-Wc,'target(zOSV1R2)'" | 
 |         RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'" | 
 |         RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'" | 
 |         ;; | 
 |     *) | 
 |         >&2 echo "$me: unrecognized platform \"$platform\" (use --help for help)" | 
 |         exit 1;; | 
 | esac | 
 |  | 
 |  | 
 | # Tweak flags | 
 |  | 
 | if test $release -eq 1 | 
 | then | 
 |     if test "$RELEASE_CFLAGS" = "" | 
 |     then | 
 |         case $CC in | 
 |             gcc|*/gcc|*-gcc-*|*/*-gcc-*) | 
 |                 RELEASE_CFLAGS=-O3 | 
 |                 ;; | 
 |         esac | 
 |     fi | 
 |     if test "$RELEASE_CFLAGS" != "" | 
 |     then | 
 |         CFLAGS="$RELEASE_CFLAGS $CFLAGS" | 
 |     fi | 
 |     if test "$RELEASE_CXXFLAGS" = "" | 
 |     then | 
 |         case $CXX in | 
 |             g++|*/g++|*-g++-*|*/*-g++-*) | 
 |                 RELEASE_CXXFLAGS=-O3 | 
 |                 ;; | 
 |         esac | 
 |     fi | 
 |     if test "$RELEASE_CXXFLAGS" != "" | 
 |     then | 
 |         CXXFLAGS="$RELEASE_CXXFLAGS $CXXFLAGS" | 
 |     fi | 
 |     if test "$RELEASE_LDFLAGS" != "" | 
 |     then | 
 |         LDFLAGS="$RELEASE_LDFLAGS $LDFLAGS" | 
 |     fi | 
 | fi | 
 |  | 
 | if test $debug -eq 1 | 
 | then | 
 |     if test "$DEBUG_CFLAGS" != "" | 
 |     then | 
 |         CFLAGS="$DEBUG_CFLAGS $CFLAGS" | 
 |     fi | 
 |     if test "$DEBUG_CXXFLAGS" != "" | 
 |     then | 
 |         CXXFLAGS="$DEBUG_CXXFLAGS $CXXFLAGS" | 
 |     fi | 
 |     if test "$DEBUG_LDFLAGS" != "" | 
 |     then | 
 |         LDFLAGS="$DEBUG_LDFLAGS $LDFLAGS" | 
 |     fi | 
 | fi | 
 |  | 
 | export CFLAGS | 
 | export CXXFLAGS | 
 | export LDFLAGS | 
 |  | 
 | # Run configure | 
 |  | 
 | echo "export CPP=$CPP CC=$CC CXX=$CXX CPPFLAGS=$CPPFLAGS CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS LDFLAGS=$LDFLAGS MAKE=$MAKE" | 
 | echo "Running ./configure $OPTS $@ for $THE_OS using $THE_COMP compiler" | 
 | echo | 
 | if $configure $OPTS $@ | 
 | then | 
 | 	echo | 
 | 	echo If the result of the above commands looks okay to you, go to the directory | 
 | 	echo source in the ICU distribution to build ICU. Please remember that ICU needs | 
 | 	echo GNU make to build properly... | 
 | else | 
 | 	echo $0: ./configure failed | 
 | 	exit 1 | 
 | fi |