diff options
Diffstat (limited to 'intl/icu/source/runConfigureICU')
-rwxr-xr-x | intl/icu/source/runConfigureICU | 459 |
1 files changed, 459 insertions, 0 deletions
diff --git a/intl/icu/source/runConfigureICU b/intl/icu/source/runConfigureICU new file mode 100755 index 0000000000..00a5687297 --- /dev/null +++ b/intl/icu/source/runConfigureICU @@ -0,0 +1,459 @@ +#!/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 XL xlclang/xlclang compilers on AIX + AIX/GCC Use the GNU gcc/g++ compilers on AIX + AIX/OpenXL Use the IBM Open XL ibm-clang_r/ibm-clang++_r 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 XL 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++ compiler 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="xlclang" + CC=`which xlclang`; export CC + if [ ! -x $CC ]; then + echo "ERROR: xlclang was not found, please check the PATH to make sure it is correct."; exit 1 + fi + CXX=`which xlclang++`; export CXX + if [ ! -x $CXX ]; then + echo "ERROR: xlclang++ was not found, please check the PATH to make sure it is correct."; exit 1 + fi + RELEASE_CFLAGS="-O3 -qstrict=ieeefp" + RELEASE_CXXFLAGS="-O3 -qstrict=ieeefp" + ;; + 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' + ;; + AIX/OpenXL) + THE_OS=AIX + THE_COMP="ibm-clang_r" + CC=`which ibm-clang_r`; export CC + if [ ! -x $CC ]; then + echo "ERROR: ibm-clang_r was not found, please check the PATH to make sure it is correct."; exit 1 + fi + CXX=`which ibm-clang++_r`; export CXX + if [ ! -x $CXX ]; then + echo "ERROR: ibm-clang++_r was not found, please check the PATH to make sure it is correct."; exit 1 + fi + RELEASE_CFLAGS="-O3" + RELEASE_CXXFLAGS="-O3" + ;; + 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 XL C++ Compiler" + CC=`which xlclang`; export CC + CXX=`which xlclang++`; export CXX + RELEASE_CFLAGS="-O3" + RELEASE_CXXFLAGS="-O3" + ;; + 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 |