michael@0: #!/bin/sh michael@0: # Copyright (c) 1999-2013, International Business Machines Corporation and michael@0: # others. All Rights Reserved. michael@0: michael@0: # runConfigureICU: This script will run the "configure" script for the appropriate platform michael@0: # Only supported platforms are recognized michael@0: michael@0: me=`basename $0` michael@0: OPTS= michael@0: michael@0: usage() michael@0: { michael@0: ec=0$1 michael@0: if test $ec -eq 0 michael@0: then michael@0: uletter=U michael@0: else michael@0: uletter=u michael@0: fi michael@0: michael@0: echo "${uletter}sage: $me [ -h, --help ] [ --enable-debug | --disable-release ] platform [ configurearg ... ]" michael@0: if test $ec -eq 0 michael@0: then michael@0: cat <&1` michael@0: RELEASE_CFLAGS='-O' michael@0: RELEASE_CXXFLAGS='-O' michael@0: export CFLAGS="-fp-model precise" michael@0: export CXXFLAGS="-fp-model precise" michael@0: if [ "${ICC_VER}" = "Version 9.0 " ]; then michael@0: RELEASE_CFLAGS='' michael@0: RELEASE_CXXFLAGS='' michael@0: export CFLAGS="${CFLAGS} -O0" michael@0: export CXXFLAGS="${CXXFLAGS} -O0" michael@0: echo "ICC 9.0 does not work with optimization- disabling optimizations" michael@0: fi michael@0: THE_COMP="Intel ${ICC_VER}" michael@0: ;; michael@0: Linux/VA) michael@0: THE_OS="Linux" michael@0: THE_COMP="IBM Visual Age C++ Compiler" michael@0: CC=`which xlc_r`; export CC michael@0: CXX=`which xlC_r`; export CXX michael@0: RELEASE_CFLAGS="-O2 -qmaxmem=-1" michael@0: RELEASE_CXXFLAGS="-O2 -qmaxmem=-1" michael@0: ;; michael@0: Linux/gcc) michael@0: THE_OS="Linux" michael@0: THE_COMP="the GNU C++" michael@0: CC=gcc; export CC michael@0: CXX=g++; export CXX michael@0: RELEASE_CFLAGS='-O3' michael@0: RELEASE_CXXFLAGS='-O3' michael@0: DEBUG_CFLAGS='-g' michael@0: DEBUG_CXXFLAGS='-g' michael@0: ;; michael@0: Linux*) michael@0: THE_OS="Linux" michael@0: THE_COMP="the clang or else GNU C++" michael@0: RELEASE_CFLAGS='-O3' michael@0: RELEASE_CXXFLAGS='-O3' michael@0: DEBUG_CFLAGS='-g' michael@0: DEBUG_CXXFLAGS='-g' michael@0: ;; michael@0: Cygwin) michael@0: THE_OS="Cygwin" michael@0: THE_COMP="the GNU C++" michael@0: RELEASE_CFLAGS='-O3' michael@0: RELEASE_CXXFLAGS='-O3' michael@0: ;; michael@0: Cygwin/MSVC) michael@0: THE_OS="Windows with Cygwin" michael@0: THE_COMP="Microsoft Visual C++" michael@0: CC=cl; export CC michael@0: CXX=cl; export CXX michael@0: RELEASE_CFLAGS='/Gy /MD' michael@0: RELEASE_CXXFLAGS='/Gy /MD' michael@0: DEBUG_CFLAGS='/Zi /MDd' michael@0: DEBUG_CXXFLAGS='/Zi /MDd' michael@0: DEBUG_LDFLAGS='/DEBUG' michael@0: ;; michael@0: Cygwin/MSVC2005) michael@0: THE_OS="Windows with Cygwin" michael@0: THE_COMP="Microsoft Visual C++ 2005" michael@0: CC=cl; export CC michael@0: CXX=cl; export CXX michael@0: RELEASE_CFLAGS='/Gy /MD' michael@0: RELEASE_CXXFLAGS='/Gy /MD' michael@0: DEBUG_CFLAGS='/Zi /MDd' michael@0: DEBUG_CXXFLAGS='/Zi /MDd' michael@0: DEBUG_LDFLAGS='/DEBUG' michael@0: ;; michael@0: Cygwin/ICL) michael@0: THE_OS="Windows with Cygwin" michael@0: THE_COMP="Intel C++" michael@0: CC=icl; export CC michael@0: CXX=icl; export CXX michael@0: # The Intel compiler has optimization bugs. So we disable optimization. michael@0: RELEASE_CFLAGS='/Od' michael@0: RELEASE_CXXFLAGS='/Od' michael@0: DEBUG_CFLAGS='/Zi' michael@0: DEBUG_CXXFLAGS='/Zi' michael@0: DEBUG_LDFLAGS='/DEBUG' michael@0: ;; michael@0: MacOSX) michael@0: THE_OS="MacOS X (Darwin)" michael@0: THE_COMP="the default" michael@0: RELEASE_CFLAGS='-O2' michael@0: RELEASE_CXXFLAGS='-O2' michael@0: DEBUG_CFLAGS='-g -O0' michael@0: DEBUG_CXXFLAGS='-g -O0' michael@0: ;; michael@0: MacOSX/GCC) michael@0: THE_OS="MacOS X (Darwin)" michael@0: THE_COMP="the GNU C++" michael@0: RELEASE_CFLAGS='-O2' michael@0: RELEASE_CXXFLAGS='-O2' michael@0: DEBUG_CFLAGS='-g -O0' michael@0: DEBUG_CXXFLAGS='-g -O0' michael@0: CC=gcc; export CC michael@0: CXX=g++; export CXX michael@0: ;; michael@0: MinGW) michael@0: THE_OS="MinGW" michael@0: THE_COMP="the GNU C++" michael@0: RELEASE_CFLAGS='-O3' michael@0: RELEASE_CXXFLAGS='-O3' michael@0: CXXFLAGS="--std=c++03" michael@0: export CXXFLAGS michael@0: ;; michael@0: MSYS/MSVC) michael@0: THE_OS="MSYS" michael@0: THE_COMP="Microsoft Visual C++" michael@0: CC=cl; export CC michael@0: CXX=cl; export CXX michael@0: RELEASE_CFLAGS='-Gy -MD' michael@0: RELEASE_CXXFLAGS='-Gy -MD' michael@0: DEBUG_CFLAGS='-Zi -MDd' michael@0: DEBUG_CXXFLAGS='-Zi -MDd' michael@0: DEBUG_LDFLAGS='-DEBUG' michael@0: ;; michael@0: *BSD) michael@0: THE_OS="BSD" michael@0: THE_COMP="the GNU C++" michael@0: DEBUG_CFLAGS='-g -O0' michael@0: DEBUG_CXXFLAGS='-g -O0' michael@0: ;; michael@0: TRU64V5.1/CXX) michael@0: THE_OS="OSF1" michael@0: THE_COMP="Compaq cxx" michael@0: CC=cc; export CC michael@0: CXX=cxx; export CXX michael@0: ;; michael@0: QNX) michael@0: THE_OS="QNX" michael@0: THE_COMP="QNX cc" michael@0: CC=qcc; export CC michael@0: CXX=QCC; export CXX michael@0: ;; michael@0: zOS) michael@0: THE_OS="z/OS (OS/390)" michael@0: THE_COMP="z/OS C/C++" michael@0: CC=xlc; export CC michael@0: CXX=xlC; export CXX michael@0: RELEASE_CFLAGS="-O2 -Wc,'inline(AUTO,NOREPORT,1000,8000)'" michael@0: RELEASE_CXXFLAGS="-O2 -Wc,'inline(AUTO,NOREPORT,1000,8000)'" michael@0: ;; michael@0: zOSV1R2) michael@0: THE_OS="z/OS 1.2" michael@0: THE_COMP="z/OS 1.2 C/C++" michael@0: CC=cc; export CC michael@0: CXX=cxx; export CXX michael@0: export COMPILE_LINK_ENVVAR='_CXX_CICC_VER}=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000' michael@0: export _CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000 michael@0: export LDFLAGS="-Wl,'compat=pm3'" michael@0: export CFLAGS="-Wc,'target(zOSV1R2)'" michael@0: export CXXFLAGS="-Wc,'target(zOSV1R2)'" michael@0: RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'" michael@0: RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'" michael@0: ;; michael@0: *) michael@0: >&2 echo "$me: unrecognized platform \"$platform\" (use --help for help)" michael@0: exit 1;; michael@0: esac michael@0: michael@0: michael@0: # Tweak flags michael@0: michael@0: if test $release -eq 1 michael@0: then michael@0: if test "$RELEASE_CFLAGS" = "" michael@0: then michael@0: case $CC in michael@0: gcc|*/gcc|*-gcc-*|*/*-gcc-*) michael@0: RELEASE_CFLAGS=-O3 michael@0: ;; michael@0: esac michael@0: fi michael@0: if test "$RELEASE_CFLAGS" != "" michael@0: then michael@0: CFLAGS="$CFLAGS $RELEASE_CFLAGS" michael@0: fi michael@0: if test "$RELEASE_CXXFLAGS" = "" michael@0: then michael@0: case $CXX in michael@0: g++|*/g++|*-g++-*|*/*-g++-*) michael@0: RELEASE_CXXFLAGS=-O3 michael@0: ;; michael@0: esac michael@0: fi michael@0: if test "$RELEASE_CXXFLAGS" != "" michael@0: then michael@0: CXXFLAGS="$CXXFLAGS $RELEASE_CXXFLAGS" michael@0: fi michael@0: if test "$RELEASE_LDFLAGS" != "" michael@0: then michael@0: LDFLAGS="$LDFLAGS $RELEASE_LDFLAGS" michael@0: fi michael@0: fi michael@0: michael@0: if test $debug -eq 1 michael@0: then michael@0: if test "$DEBUG_CFLAGS" != "" michael@0: then michael@0: CFLAGS="$CFLAGS $DEBUG_CFLAGS" michael@0: fi michael@0: if test "$DEBUG_CXXFLAGS" != "" michael@0: then michael@0: CXXFLAGS="$CXXFLAGS $DEBUG_CXXFLAGS" michael@0: fi michael@0: if test "$DEBUG_LDFLAGS" != "" michael@0: then michael@0: LDFLAGS="$LDFLAGS $DEBUG_LDFLAGS" michael@0: fi michael@0: fi michael@0: michael@0: export CFLAGS michael@0: export CXXFLAGS michael@0: export LDFLAGS michael@0: michael@0: # Run configure michael@0: michael@0: echo "export CPP=$CPP CC=$CC CXX=$CXX CPPFLAGS=$CPPFLAGS CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS LDFLAGS=$LDFLAGS MAKE=$MAKE" michael@0: echo "Running ./configure $OPTS $@ for $THE_OS using $THE_COMP compiler" michael@0: echo michael@0: if $configure $OPTS $@ michael@0: then michael@0: echo michael@0: echo If the result of the above commands looks okay to you, go to the directory michael@0: echo source in the ICU distribution to build ICU. Please remember that ICU needs michael@0: echo GNU make to build properly... michael@0: else michael@0: echo $0: ./configure failed michael@0: exit 1 michael@0: fi