X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/374ca955a76ecab1204ca8bfa63ff9238d998416..2ca993e82fb37b597a3c73ecd1586a139a6579c5:/icuSources/runConfigureICU diff --git a/icuSources/runConfigureICU b/icuSources/runConfigureICU index e1986053..9cd1e914 100755 --- a/icuSources/runConfigureICU +++ b/icuSources/runConfigureICU @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 1999-2004, International Business Machines Corporation and +# 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 @@ -27,34 +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 - AIXGCC Use GCC on AIX - ALPHA/LINUXGCC Use GCC on Alpha/Linux systems - ALPHA/LINUXCCC Use Compaq C compiler on Alpha/Linux systems - BeOS Use the GNU C++ compiler on BeOS - Cygwin Use the GNU C++ compiler on Cygwin - Cygwin/MSVC Use the Microsoft Visual C++ compiler on Cygwin - FreeBSD Use the GNU C++ compiler on Free BSD - HP-UX11ACC Use the Advanced C++ compiler on HP-UX 11 - HP-UX11CC Use HP's C++ compiler on HP-UX 11 - LinuxRedHat Use the GNU C++ compiler on Linux - LINUX/ECC Use the Intel ECC compiler on Linux - LINUX/ICC Use the Intel ICC compiler on Linux - LINUX/VA Use IBM's Visual Age compiler on Power PC 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 @@ -126,84 +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 ;; -# For no threads use --enable-threads=no. Visual Age makes no distinction between xlC and xlC_r or any other _r programs. - AIXGCC) + AIX/GCC) THE_OS=AIX - THE_COMP="gcc" - CC=`which gcc`; export CC - CXX=`which g++`; export CXX - ;; - 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 + 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="$CXXFLAGS -I/usr/local/include/g++"; export CXXFLAGS - LDFLAGS="$LDFLAGS -R/usr/local/lib"; export LDFLAGS - RELEASE_CXXFLAGS=-O - RELEASE_CFLAGS=-O3 - ;; - 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 @@ -211,33 +185,20 @@ 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) - THE_OS="Linux" - THE_COMP="the GNU C++" - CC=gcc; export CC - CXX=g++; export CXX - ;; - LinuxRedHat*) - THE_OS="Linux" - THE_COMP="the GNU C++" - CC=gcc; export CC - CXX=g++; export CXX - ;; - LINUX/ECC) + Linux/ECC) THE_OS="Linux" THE_COMP="Intel ECC 7.1" CC=ecc; export CC @@ -245,15 +206,25 @@ case $platform in RELEASE_CFLAGS='-O2' RELEASE_CXXFLAGS='-O2' ;; - LINUX/ICC) + Linux/ICC) THE_OS="Linux" - THE_COMP="Intel ICC 6.0" - CC=icc; export CC - CXX=icpc; export CXX - RELEASE_CFLAGS='-O0' - RELEASE_CXXFLAGS='-O0' + 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) + Linux/VA) THE_OS="Linux" THE_COMP="IBM Visual Age C++ Compiler" CC=`which xlc_r`; export CC @@ -261,6 +232,24 @@ case $platform in 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++" @@ -272,23 +261,83 @@ case $platform in THE_COMP="Microsoft Visual C++" CC=cl; export CC CXX=cl; export CXX - RELEASE_CFLAGS='/O2 /Ob2' - RELEASE_CXXFLAGS='/O2 /Ob2' - # The real debug flags are defined by the mh file because configure can't handle them. - DEBUG_CFLAGS= - DEBUG_CXXFLAGS= + 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" @@ -296,54 +345,26 @@ case $platform in CC=qcc; export CC CXX=QCC; export CXX ;; - BeOS) - THE_OS="BeOS" - THE_COMP="the GNU C++" - OPTIMIZATIONS="-fdefault-inline -fdefer-pop -fforce-mem -fforce-addr \ - -finline -finline-functions \ - -fkeep-inline-functions -fkeep-static-consts -fbranch-count-reg \ - -ffunction-cse -fstrength-reduce -fthread-jumps -fcse-follow-jumps \ - -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt \ - -fexpensive-optimizations -foptimize-register-move -fregmove \ - -fschedule-insns -fschedule-insns2 -ffloat-store -funroll-loops \ - -fmove-all-movables -freduce-all-givs -fpeephole \ - -funroll-all-loops -ffunction-sections -fdata-sections" - RELEASE_CFLAGS="$OPTIMIZATIONS" - RELEASE_CXXFLAGS="$OPTIMIZATIONS" - ;; 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)" @@ -365,49 +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 - export CXXFLAGS if test "$DEBUG_LDFLAGS" != "" then - LDFLAGS="$LDFLAGS $DEBUG_LDFLAGS" + LDFLAGS="$DEBUG_LDFLAGS $LDFLAGS" fi - export LDFLAGS 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