]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/runConfigureICU
ICU-551.24.tar.gz
[apple/icu.git] / icuSources / runConfigureICU
index 16527912a3bb5da2819ecad8c95dbd0b40738f8a..700122789fca3e30f42a9b51108edaf705c6298c 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (c) 1999-2003, International Business Machines Corporation and
+# Copyright (c) 1999-2014, International Business Machines Corporation and
 # others. All Rights Reserved.
 
 # runConfigureICU: This script will run the "configure" script for the appropriate platform
@@ -27,28 +27,38 @@ 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:
 
-    AIX4.3xlC               Use IBM's xlC on AIX 4.3
-    AIX4.3xlC_nothreads     Use IBM's xlC on AIX 4.3 with no multithreading
-    AIX4.3VA                Use IBM's Visual Age xlC_r compiler on AIX 4.3
-    ALPHA/LINUXGCC          Use GCC on Alpha/Linux systems
-    ALPHA/LINUXCCC          Use Compaq C compiler on Alpha/Linux systems
-    CygWin                  Use the GNU C++ compiler on CygWin
-    FreeBSD                 Use the GNU C++ compiler on Free BSD
-    HP-UX11CC               Use HP's C++ compiler on HP-UX 11
-    HP-UX11ACC              Use the Advanced C++ compiler on HP-UX 11
-    LinuxRedHat             Use the GNU C++ compiler on Linux
-    MacOSX                  Use the GNU C++ compiler on MacOS X (Darwin)
-    QNX                     Use QNX's QCC compiler on QNX/Neutrino
-    SOLARISCC               Use Sun's CC compiler on Solaris
-    SOLARISCC/W4.2          Use Sun's Workshop 4.2 CC compiler on Solaris
-    SOLARISGCC              Use the GNU C++ compiler on Solaris
-    SOLARISX86              Use Sun's CC compiler on Solaris x86
-    TRU64V5.1/CXX           Use Compaq's cxx compiler on Tru64 (OSF)
-    zOS                     Use IBM's cxx compiler on z/OS (os/390)
-    zOSV1R2                 Use IBM's cxx compiler for z/OS 1.2
-    OS390V2R10              Use IBM's cxx compiler for OS/390 2.10
+    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
 
@@ -69,11 +79,11 @@ do
         ;;
     --enable-debug)
         debug=1
-        release=0
+        OPTS="$OPTS --enable-debug"
         ;;
     --disable-release)
-        debug=0
         release=0
+        OPTS="$OPTS --disable-release"
         ;;
     *)
         platform="$1"
@@ -120,87 +130,54 @@ then
 fi
 
 case $platform in
-    AIX4.3xlC)
-        THE_OS=AIX
-        THE_COMP="xlC_r"
-        CC=/usr/ibmcxx/bin/xlc_r; export CC
-        CXX=/usr/ibmcxx/bin/xlC_r; export CXX
-        RELEASE_CFLAGS="-O -qmaxmem=-1"
-        RELEASE_CXXFLAGS="-O -qmaxmem=-1"
-        ;;
-    AIX4.3xlC_nothreads)
-        THE_OS=AIX
-        THE_COMP="xlC"
-        CC=/usr/ibmcxx/bin/xlc; export CC
-        CXX=/usr/ibmcxx/bin/xlC; export CXX
-        AIX_SHLIB=/usr/ibmcxx/bin/makeC++SharedLib; export AIX_SHLIB
-        RELEASE_CFLAGS="-O -qmaxmem=-1"
-        RELEASE_CXXFLAGS="-O -qmaxmem=-1"
-        OPTS="$OPTS --enable-threads=no"
-        ;;
-    AIX4.3VA)
+    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"
-        #LDFLAGS=-L/usr/lpp/xlC/lib; export LDFLAGS
         ;;
-# Just use --enable-threads=no. Visual Age makes no distinction between xlC and xlC_r or any other _r programs.
-#    AIX4.3VA_nothreads)
-#        THE_OS=AIX
-#        THE_COMP="xlC"
-#        # Only in Visual Age, there is no different between xlc and xlc_r.
-#        CC=`which xlc`; export CC
-#        CXX=`which xlC`; export CXX
-#        OPTS="$OPTS --enable-threads=no"
-#        RELEASE_CFLAGS="-O2 -qmaxmem=-1"
-#        RELEASE_CXXFLAGS="-O2 -qmaxmem=-1"
-#        #LDFLAGS=-L/usr/lpp/xlC/lib; export LDFLAGS
-#        ;;
-    SOLARISX86)
-        THE_OS="SOLARIS X86"
-        THE_COMP="Sun's CC"
-        CC=`which cc`; export CC
-        CXX=`which CC`; export CXX
-        CXX_FLAGS="-w";export CXX_FLAGS
-        C_FLAGS="-w";export C_FLAGS
-        LDFLAGS="-L -lCrun";export LDFLAGS
-        RELEASE_CFLAGS=-xO3
-        RELEASE_CXXFLAGS=-O3
+    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'
         ;;
-    SOLARISCC)
+    Solaris)
         THE_OS=SOLARIS
         THE_COMP="Sun's CC"
         CC=`which cc`; export CC
         CXX=`which CC`; export CXX
-        RELEASE_CFLAGS=-xO4
-        RELEASE_CXXFLAGS=-O4
+        RELEASE_CFLAGS="-xO1 -xlibmil"
+        RELEASE_CXXFLAGS="-O4 -xlibmil"
         ;;
-    SOLARISCC/W4.2)
+    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
-        RELEASE_CFLAGS=-x04
-        RELEASE_CXXFLAGS="-O4 +d"
-        ;;
-    SOLARISGCC)
-        THE_OS=SOLARIS
-        THE_COMP="the GNU C++"
-        CXXFLAGS=-I/usr/local/include/g++; export CXXFLAGS
-        LDFLAGS=-R/usr/local/lib; export LDFLAGS
-        ;;
-    HP-UX11CC)
-        THE_OS="HP-UX 11"
-        THE_COMP="HP's CC"
-        CC=cc; export CC
-        CXX=CC; export CXX
-        RELEASE_CFLAGS='+O2 +Ofltacc'
-        RELEASE_CXXFLAGS='+O2 +Ofltacc'
+        LDFLAGS="${LDFLAGS} -lCrun";export LDFLAGS
+        RELEASE_CFLAGS=-xO3
+        RELEASE_CXXFLAGS=-O3
         ;;
-    HP-UX11ACC)
+    HP-UX/ACC)
         THE_OS="HP-UX 11"
         THE_COMP="aCC"
         CC=cc; export CC
@@ -208,47 +185,159 @@ case $platform in
         RELEASE_CFLAGS='+O2 +Ofltacc'
         RELEASE_CXXFLAGS='+O2 +Ofltacc'
         ;;
-    TRU64V5.1/CXX)
-        THE_OS="OSF1"
-        THE_COMP="Compaq cxx"
-        CC=cc; export CC
-        CXX=cxx; export CXX
-        ;;
-    ALPHA/LINUXCCC)
-        THE_OS="Linux"
-        THE_COMP="Compaq's CC"
-        CC=ccc; export CC
-        CXX=cxx; export CXX
+    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'
         ;;
-    ALPHA/LINUXGCC)
+    Linux/ECC)
         THE_OS="Linux"
-        THE_COMP="the GNU C++"
-        CC=gcc; export CC
-        CXX=g++; export CXX
+        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"
         ;;
-    LinuxRedHat*)
+    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"
+    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='-Zi -MDd'
+        DEBUG_CXXFLAGS='-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'
+        CXXFLAGS="--std=c++03"
+        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='-Zi -MDd'
+        DEBUG_CXXFLAGS='-Zi -MDd'
+        DEBUG_LDFLAGS='-DEBUG'
         ;;
     *BSD)
         THE_OS="BSD"
         THE_COMP="the GNU C++"
-        CC=gcc; export CC
-        CXX=g++; export CXX
+        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"
@@ -258,37 +347,24 @@ case $platform in
         ;;
     zOS)
         THE_OS="z/OS (OS/390)"
-        THE_COMP="z/OS 1.2 (through OS/390 v2r10) C/C++"
-        CC=cc; export CC
-        CXX=cxx; export CXX
-        export RELEASE_CFLAGS='-2'
-        export RELEASE_CXXFLAGS='-2'
+        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_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000'
+        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)"'
-        export RELEASE_CFLAGS='-2'
-        export RELEASE_CXXFLAGS='-2'
-        ;;
-    OS390V2R10)
-        THE_OS="OS/390 2.10"
-        THE_COMP="OS/390 2.10 C/C++"
-        CC=cc; export CC
-        CXX=cxx; export CXX
-        export COMPILE_LINK_ENVVAR='_CXX_CVERSION=0x220A0000 _C89_CVERSION=0x220A0000 _CC_CVERSION=0x220A0000 _CXX_PVERSION=0x220A0000 _C89_PVERSION=0x220A0000 _CC_PVERSION=0x220A0000'
-        export _CXX_CVERSION=0x220A0000 _C89_CVERSION=0x220A0000 _CC_CVERSION=0x220A0000 _CXX_PVERSION=0x220A0000 _C89_PVERSION=0x220A0000 _CC_PVERSION=0x220A0000
-        export LDFLAGS=-Wl,"compat=pm3"
-        export CFLAGS='-Wc,"target(OSV2R10)"'
-        export CXXFLAGS='-Wc,"target(OSV2R10)"'
-        export RELEASE_CFLAGS='-2'
-        export RELEASE_CXXFLAGS='-2'
+        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)"
@@ -310,45 +386,58 @@ then
     fi
     if test "$RELEASE_CFLAGS" != ""
     then
-        CFLAGS="$CFLAGS $RELEASE_CFLAGS"
+        CFLAGS="$RELEASE_CFLAGS $CFLAGS"
     fi
-    export CFLAGS
     if test "$RELEASE_CXXFLAGS" = ""
     then
         case $CXX in
             g++|*/g++|*-g++-*|*/*-g++-*)
-                RELEASE_CXXFLAGS=-O
+                RELEASE_CXXFLAGS=-O3
                 ;;
         esac
     fi
     if test "$RELEASE_CXXFLAGS" != ""
     then
-        CXXFLAGS="$CXXFLAGS $RELEASE_CXXFLAGS"
+        CXXFLAGS="$RELEASE_CXXFLAGS $CXXFLAGS"
+    fi
+    if test "$RELEASE_LDFLAGS" != ""
+    then
+        LDFLAGS="$RELEASE_LDFLAGS $LDFLAGS"
     fi
-    export CXXFLAGS
 fi
 
 if test $debug -eq 1
 then
     if test "$DEBUG_CFLAGS" != ""
     then
-        CFLAGS="$CFLAGS $DEBUG_CFLAGS"
+        CFLAGS="$DEBUG_CFLAGS $CFLAGS"
     fi
-    export CFLAGS
     if test "$DEBUG_CXXFLAGS" != ""
     then
-        CXXFLAGS="$CXXFLAGS $DEBUG_CXXFLAGS"
+        CXXFLAGS="$DEBUG_CXXFLAGS $CXXFLAGS"
+    fi
+    if test "$DEBUG_LDFLAGS" != ""
+    then
+        LDFLAGS="$DEBUG_LDFLAGS $LDFLAGS"
     fi
-    export CXXFLAGS
 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
-$configure $OPTS $@
-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...
-
+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