1#!/bin/sh 2# Copyright (c) 1999-2007, International Business Machines Corporation and 3# others. All Rights Reserved. 4 5# runConfigureICU: This script will run the "configure" script for the appropriate platform 6# Only supported platforms are recognized 7 8me=`basename $0` 9OPTS= 10 11usage() 12{ 13 ec=0$1 14 if test $ec -eq 0 15 then 16 uletter=U 17 else 18 uletter=u 19 fi 20 21 echo "${uletter}sage: $me [ -h, --help ] [ --enable-debug | --disable-release ] platform [ configurearg ... ]" 22 if test $ec -eq 0 23 then 24 cat <<EOE 25 26Options: -h, --help Print this message and exit 27 --enable-debug Enable support for debugging 28 --disable-release Disable presetting optimization flags 29 30The following names can be supplied as the argument for platform: 31 32 AIX Use the IBM Visual Age xlc_r/xlC_r compilers on AIX 33 AIX/GCC Use the GNU gcc/g++ compilers on AIX 34 Cygwin Use the GNU gcc/g++ compilers on Cygwin 35 Cygwin/MSVC Use the Microsoft Visual C++ compiler on Cygwin 36 Cygwin/MSVC2005 Use the Microsoft Visual C++ 2005 compiler on Cygwin 37 Cygwin/ICL Use the Intel C++ compiler on Cygwin 38 FreeBSD Use the GNU gcc/g++ compilers on Free BSD 39 HP-UX/ACC Use the HP ANSI C/Advanced C++ compilers on HP-UX 11 40 i5OS Use the i5/OS compilers on i5/OS 41 Linux Use the GNU gcc/g++ compilers on Linux 42 Linux/ECC Use the Intel ECC compiler on Linux 43 Linux/ICC Use the Intel ICC compiler on Linux 44 Linux/VA Use the IBM Visual Age compiler on Power PC Linux 45 MacOSX Use the GNU gcc/g++ compilers on MacOS X (Darwin) 46 QNX Use the QNX QCC compiler on QNX/Neutrino 47 Solaris Use the Sun cc/CC compilers on Solaris 48 Solaris/GCC Use the GNU gcc/g++ compilers on Solaris 49 SolarisX86 Use the Sun cc/CC compilers on Solaris x86 50 TRU64V5.1/CXX Use the Compaq cxx compiler on Tru64 (OSF) 51 zOS Use the IBM cxx compiler on z/OS (os/390) 52 zOSV1R2 Use the IBM cxx compiler for z/OS 1.2 53EOE 54 fi 55 56 exit $ec 57} 58 59# Parse arguments 60 61platform= 62debug=0 63release=1 64 65while test $# -ne 0 66do 67 case "$1" in 68 -h|--help) 69 usage 0 70 ;; 71 --enable-debug) 72 debug=1 73 OPTS="$OPTS --enable-debug" 74 ;; 75 --disable-release) 76 release=0 77 OPTS="$OPTS --disable-release" 78 ;; 79 *) 80 platform="$1" 81 shift 82 break 83 ;; 84 esac 85 shift 86done 87 88if test x$platform = x 89then 90 usage 1 91fi 92 93# Go. 94 95rm -f config.cache 96rm -f config.log 97rm -f config.status 98 99DEBUG_CFLAGS='-g' 100DEBUG_CXXFLAGS='-g' 101 102if test x$configure = x 103then 104 if test -f ./configure 105 then 106 configuredir=. 107 else 108 configuredir=`echo $0 | sed 's,[^/]*$,,'` 109 if test x$configuredir = x$0 110 then 111 configuredir=. 112 fi 113 fi 114 115 if test x$configuredir = x 116 then 117 configuredir=. 118 fi 119 120 configure=$configuredir/configure 121fi 122 123case $platform in 124 AIX) 125 THE_OS=AIX 126 THE_COMP="xlC_r" 127 CC=`which xlc_r`; export CC 128 CXX=`which xlC_r`; export CXX 129 RELEASE_CFLAGS="-O2 -qmaxmem=-1" 130 RELEASE_CXXFLAGS="-O2 -qmaxmem=-1" 131 ;; 132 AIX/GCC) 133 THE_OS=AIX 134 THE_COMP="the GNU C++" 135 CC=gcc; export CC 136 CXX=g++; export CXX 137 ;; 138 Solaris) 139 THE_OS=SOLARIS 140 THE_COMP="Sun's CC" 141 CC=`which cc`; export CC 142 CXX=`which CC`; export CXX 143 RELEASE_CFLAGS="-xO4 -xlibmil" 144 RELEASE_CXXFLAGS="-O4 -xlibmil" 145 ;; 146 Solaris/GCC) 147 THE_OS=SOLARIS 148 THE_COMP="the GNU C++" 149 CC=gcc; export CC 150 CXX=g++; export CXX 151 RELEASE_CFLAGS=-O1 152 RELEASE_CXXFLAGS=-O3 153 ;; 154 SolarisX86) 155 THE_OS="SOLARIS X86" 156 THE_COMP="Sun's CC" 157 CC=`which cc`; export CC 158 CXX=`which CC`; export CXX 159 LDFLAGS="-L -lCrun";export LDFLAGS 160 RELEASE_CFLAGS=-xO3 161 RELEASE_CXXFLAGS=-O3 162 ;; 163 HP-UX/ACC) 164 THE_OS="HP-UX 11" 165 THE_COMP="aCC" 166 CC=cc; export CC 167 CXX=aCC; export CXX 168 RELEASE_CFLAGS='+O2 +Ofltacc' 169 RELEASE_CXXFLAGS='+O2 +Ofltacc' 170 ;; 171 i5OS) 172 THE_OS="i5/OS" 173 THE_COMP="the i5/OS C++" 174 CC=/usr/bin/icc; export CC 175 CXX=/usr/bin/icc; export CXX 176 MAKE=/usr/bin/gmake; export MAKE 177 RELEASE_CFLAGS='-O4' 178 RELEASE_CXXFLAGS='-O4' 179 ;; 180 Linux/ECC) 181 THE_OS="Linux" 182 THE_COMP="Intel ECC 7.1" 183 CC=ecc; export CC 184 CXX=ecpc; export CXX 185 RELEASE_CFLAGS='-O2' 186 RELEASE_CXXFLAGS='-O2' 187 ;; 188 Linux/ICC) 189 THE_OS="Linux" 190 THE_COMP="Intel ICC 9.0" 191 CC=`which icc`; export CC 192 CXX=`which icpc`; export CXX 193 RELEASE_CFLAGS='-O' 194 RELEASE_CXXFLAGS='-O' 195 ;; 196 Linux/VA) 197 THE_OS="Linux" 198 THE_COMP="IBM Visual Age C++ Compiler" 199 CC=`which xlc_r`; export CC 200 CXX=`which xlC_r`; export CXX 201 RELEASE_CFLAGS="-O2 -qmaxmem=-1" 202 RELEASE_CXXFLAGS="-O2 -qmaxmem=-1" 203 ;; 204 Linux*) 205 THE_OS="Linux" 206 THE_COMP="the GNU C++" 207 CC=gcc; export CC 208 CXX=g++; export CXX 209 ;; 210 Cygwin) 211 THE_OS="Cygwin" 212 THE_COMP="the GNU C++" 213 RELEASE_CFLAGS='-O3' 214 RELEASE_CXXFLAGS='-O3' 215 ;; 216 Cygwin/MSVC) 217 THE_OS="Windows with Cygwin" 218 THE_COMP="Microsoft Visual C++" 219 CC=cl; export CC 220 CXX=cl; export CXX 221 RELEASE_CFLAGS='/O2 /Ob2 /Op' 222 RELEASE_CXXFLAGS='/O2 /Ob2 /Op' 223 DEBUG_CFLAGS='/Zi' 224 DEBUG_CXXFLAGS='/Zi' 225 DEBUG_LDFLAGS='/DEBUG' 226 ;; 227 Cygwin/MSVC2005) 228 THE_OS="Windows with Cygwin" 229 THE_COMP="Microsoft Visual C++ 2005" 230 CC=cl; export CC 231 CXX=cl; export CXX 232 RELEASE_CFLAGS='/O2 /Ob2' 233 RELEASE_CXXFLAGS='/O2 /Ob2' 234 RELEASE_LDFLAGS='/OPT:NOWIN98' 235 DEBUG_CFLAGS='/Zi' 236 DEBUG_CXXFLAGS='/Zi' 237 DEBUG_LDFLAGS='/DEBUG' 238 ;; 239 Cygwin/ICL) 240 THE_OS="Windows with Cygwin" 241 THE_COMP="Intel C++" 242 CC=icl; export CC 243 CXX=icl; export CXX 244 # The Intel compiler has optimization bugs. So we disable optimization. 245 RELEASE_CFLAGS='/Od' 246 RELEASE_CXXFLAGS='/Od' 247 DEBUG_CFLAGS='/Zi' 248 DEBUG_CXXFLAGS='/Zi' 249 DEBUG_LDFLAGS='/DEBUG' 250 ;; 251 MacOSX) 252 THE_OS="MacOS X (Darwin)" 253 THE_COMP="the GNU C++" 254 RELEASE_CFLAGS='-O2' 255 RELEASE_CXXFLAGS='-O2' 256 ;; 257 *BSD) 258 THE_OS="BSD" 259 THE_COMP="the GNU C++" 260 CC=gcc; export CC 261 CXX=g++; export CXX 262 ;; 263 TRU64V5.1/CXX) 264 THE_OS="OSF1" 265 THE_COMP="Compaq cxx" 266 CC=cc; export CC 267 CXX=cxx; export CXX 268 ;; 269 QNX) 270 THE_OS="QNX" 271 THE_COMP="QNX cc" 272 CC=qcc; export CC 273 CXX=QCC; export CXX 274 ;; 275 zOS) 276 THE_OS="z/OS (OS/390)" 277 THE_COMP="z/OS C/C++" 278 CC=cc; export CC 279 CXX=cxx; export CXX 280 RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'" 281 RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'" 282 ;; 283 zOSV1R2) 284 THE_OS="z/OS 1.2" 285 THE_COMP="z/OS 1.2 C/C++" 286 CC=cc; export CC 287 CXX=cxx; export CXX 288 export COMPILE_LINK_ENVVAR='_CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000' 289 export _CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000 290 export LDFLAGS="-Wl,'compat=pm3'" 291 export CFLAGS="-Wc,'target(zOSV1R2)'" 292 export CXXFLAGS="-Wc,'target(zOSV1R2)'" 293 export RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'" 294 export RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'" 295 ;; 296 *) 297 >&2 echo "$me: unrecognized platform \"$platform\" (use --help for help)" 298 exit 1;; 299esac 300 301 302# Tweak flags 303 304if test $release -eq 1 305then 306 if test "$RELEASE_CFLAGS" = "" 307 then 308 case $CC in 309 gcc|*/gcc|*-gcc-*|*/*-gcc-*) 310 RELEASE_CFLAGS=-O3 311 ;; 312 esac 313 fi 314 if test "$RELEASE_CFLAGS" != "" 315 then 316 CFLAGS="$CFLAGS $RELEASE_CFLAGS" 317 fi 318 if test "$RELEASE_CXXFLAGS" = "" 319 then 320 case $CXX in 321 g++|*/g++|*-g++-*|*/*-g++-*) 322 RELEASE_CXXFLAGS=-O 323 ;; 324 esac 325 fi 326 if test "$RELEASE_CXXFLAGS" != "" 327 then 328 CXXFLAGS="$CXXFLAGS $RELEASE_CXXFLAGS" 329 fi 330 if test "$RELEASE_LDFLAGS" != "" 331 then 332 LDFLAGS="$LDFLAGS $RELEASE_LDFLAGS" 333 fi 334fi 335 336if test $debug -eq 1 337then 338 if test "$DEBUG_CFLAGS" != "" 339 then 340 CFLAGS="$CFLAGS $DEBUG_CFLAGS" 341 fi 342 if test "$DEBUG_CXXFLAGS" != "" 343 then 344 CXXFLAGS="$CXXFLAGS $DEBUG_CXXFLAGS" 345 fi 346 if test "$DEBUG_LDFLAGS" != "" 347 then 348 LDFLAGS="$LDFLAGS $DEBUG_LDFLAGS" 349 fi 350fi 351 352export CFLAGS 353export CXXFLAGS 354export LDFLAGS 355 356# Run configure 357 358echo "Running ./configure $OPTS $@ for $THE_OS using $THE_COMP compiler" 359echo 360$configure $OPTS $@ 361echo 362echo If the result of the above commands looks okay to you, go to the directory 363echo source in the ICU distribution to build ICU. Please remember that ICU needs 364echo GNU make to build properly... 365