2 # Copyright (c) 1999-2012, International Business Machines Corporation and
3 # others. All Rights Reserved.
5 # runConfigureICU: This script will run the "configure" script for the appropriate platform
6 # Only supported platforms are recognized
21 echo "${uletter}sage: $me [ -h, --help ] [ --enable-debug | --disable-release ] platform [ configurearg ... ]"
26 Options: -h, --help Print this message and exit
27 --enable-debug Enable support for debugging
28 --disable-release Disable presetting optimization flags
30 If you want to add custom CFLAGS or CXXFLAGS or similar, provide them _before_
31 the runConfigureICU command:
33 CXXFLAGS=xyz path/to/runConfigureICU --enable-debug ...
35 The following names can be supplied as the argument for platform:
37 AIX Use the IBM Visual Age xlc_r/xlC_r compilers on AIX
38 AIX/GCC Use the GNU gcc/g++ compilers on AIX
39 Cygwin Use the GNU gcc/g++ compilers on Cygwin
40 Cygwin/MSVC Use the Microsoft Visual C++ compiler on Cygwin
41 Cygwin/MSVC2005 Use the Microsoft Visual C++ 2005 compiler on Cygwin
42 Cygwin/ICL Use the Intel C++ compiler on Cygwin
43 FreeBSD Use the GNU gcc/g++ compilers on Free BSD
44 HP-UX/ACC Use the HP ANSI C/Advanced C++ compilers on HP-UX 11
45 IBMi Use the iCC compilers on IBM i, i5/OS, OS/400
46 Linux Use the clang/clang++ or GNU gcc/g++ compilers on Linux
47 Linux/gcc Use the GNU gcc/g++ compilers on Linux
48 Linux/ECC Use the Intel ECC compiler on Linux
49 Linux/ICC Use the Intel ICC compiler on Linux
50 Linux/VA Use the IBM Visual Age compiler on Power PC Linux
51 MacOSX Use the GNU gcc/g++ compilers on MacOS X (Darwin)
52 MinGW Use the GNU gcc/g++ compilers on MinGW
53 QNX Use the QNX QCC compiler on QNX/Neutrino
54 Solaris Use the Sun cc/CC compilers on Solaris
55 Solaris/GCC Use the GNU gcc/g++ compilers on Solaris
56 SolarisX86 Use the Sun cc/CC compilers on Solaris x86
57 TRU64V5.1/CXX Use the Compaq cxx compiler on Tru64 (OSF)
58 zOS Use the IBM cxx compiler on z/OS (os/390)
59 zOSV1R2 Use the IBM cxx compiler for z/OS 1.2
80 OPTS="$OPTS --enable-debug"
84 OPTS="$OPTS --disable-release"
95 if test x$platform = x
109 if test x$configure = x
111 if test -f ./configure
115 configuredir=`echo $0 | sed 's,[^/]*$,,'`
116 if test x$configuredir = x$0
122 if test x$configuredir = x
127 configure=$configuredir/configure
134 CC=`which xlc_r`; export CC
135 if [ ! -x $CC ]; then
136 echo "ERROR: xlc_r was not found, please check the PATH to make sure it is correct."; exit 1
138 CXX=`which xlC_r`; export CXX
139 if [ ! -x $CXX ]; then
140 echo "ERROR: xlC_r was not found, please check the PATH to make sure it is correct."; exit 1
142 RELEASE_CFLAGS="-O2 -qmaxmem=-1"
143 RELEASE_CXXFLAGS="-O2 -qmaxmem=-1"
147 THE_COMP="the GNU C++"
150 DEBUG_CFLAGS='-g -O0'
151 DEBUG_CXXFLAGS='-g -O0'
156 CC=`which cc`; export CC
157 CXX=`which CC`; export CXX
158 RELEASE_CFLAGS="-xO1 -xlibmil"
159 RELEASE_CXXFLAGS="-O4 -xlibmil"
163 THE_COMP="the GNU C++"
172 CC=`which cc`; export CC
173 CXX=`which CC`; export CXX
174 LDFLAGS="${LDFLAGS} -lCrun";export LDFLAGS
183 RELEASE_CFLAGS='+O2 +Ofltacc'
184 RELEASE_CXXFLAGS='+O2 +Ofltacc'
188 THE_COMP="the iCC C++"
191 CPP="$CC -c -qpponly"; export CPP
192 MAKE=gmake; export MAKE
193 U_MAKE=gmake; export U_MAKE
194 # gmake is a .pgm and may not be on the path. Don't use a full path, just use gmake.
195 ac_cv_path_U_MAKE=gmake; export ac_cv_path_U_MAKE
197 RELEASE_CXXFLAGS='-O4'
201 THE_COMP="Intel ECC 7.1"
205 RELEASE_CXXFLAGS='-O2'
209 CC=`which icc`; export CC
210 CXX=`which icpc`; export CXX
211 ICC_VER=`${CC} -v 2>&1`
213 RELEASE_CXXFLAGS='-O'
214 export CFLAGS="-fp-model precise"
215 export CXXFLAGS="-fp-model precise"
216 if [ "${ICC_VER}" = "Version 9.0 " ]; then
219 export CFLAGS="${CFLAGS} -O0"
220 export CXXFLAGS="${CXXFLAGS} -O0"
221 echo "ICC 9.0 does not work with optimization- disabling optimizations"
223 THE_COMP="Intel ${ICC_VER}"
227 THE_COMP="IBM Visual Age C++ Compiler"
228 CC=`which xlc_r`; export CC
229 CXX=`which xlC_r`; export CXX
230 RELEASE_CFLAGS="-O2 -qmaxmem=-1"
231 RELEASE_CXXFLAGS="-O2 -qmaxmem=-1"
235 THE_COMP="the GNU C++"
239 RELEASE_CXXFLAGS='-O3'
245 THE_COMP="the clang or else GNU C++"
247 RELEASE_CXXFLAGS='-O3'
253 THE_COMP="the GNU C++"
255 RELEASE_CXXFLAGS='-O3'
258 THE_OS="Windows with Cygwin"
259 THE_COMP="Microsoft Visual C++"
262 RELEASE_CFLAGS='/Gy /MD'
263 RELEASE_CXXFLAGS='/Gy /MD'
264 DEBUG_CFLAGS='/Zi /MDd'
265 DEBUG_CXXFLAGS='/Zi /MDd'
266 DEBUG_LDFLAGS='/DEBUG'
269 THE_OS="Windows with Cygwin"
270 THE_COMP="Microsoft Visual C++ 2005"
273 RELEASE_CFLAGS='/Gy /MD'
274 RELEASE_CXXFLAGS='/Gy /MD'
275 DEBUG_CFLAGS='/Zi /MDd'
276 DEBUG_CXXFLAGS='/Zi /MDd'
277 DEBUG_LDFLAGS='/DEBUG'
280 THE_OS="Windows with Cygwin"
284 # The Intel compiler has optimization bugs. So we disable optimization.
286 RELEASE_CXXFLAGS='/Od'
289 DEBUG_LDFLAGS='/DEBUG'
292 THE_OS="MacOS X (Darwin)"
293 THE_COMP="the GNU C++"
295 RELEASE_CXXFLAGS='-O2'
296 DEBUG_CFLAGS='-g -O0'
297 DEBUG_CXXFLAGS='-g -O0'
301 THE_COMP="the GNU C++"
303 RELEASE_CXXFLAGS='-O3'
307 THE_COMP="the GNU C++"
310 DEBUG_CFLAGS='-g -O0'
311 DEBUG_CXXFLAGS='-g -O0'
315 THE_COMP="Compaq cxx"
326 THE_OS="z/OS (OS/390)"
327 THE_COMP="z/OS C/C++"
330 RELEASE_CFLAGS="-O2 -Wc,'inline(AUTO,NOREPORT,1000,8000)'"
331 RELEASE_CXXFLAGS="-O2 -Wc,'inline(AUTO,NOREPORT,1000,8000)'"
335 THE_COMP="z/OS 1.2 C/C++"
338 export COMPILE_LINK_ENVVAR='_CXX_CICC_VER}=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000'
339 export _CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000
340 export LDFLAGS="-Wl,'compat=pm3'"
341 export CFLAGS="-Wc,'target(zOSV1R2)'"
342 export CXXFLAGS="-Wc,'target(zOSV1R2)'"
343 RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'"
344 RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'"
347 >&2 echo "$me: unrecognized platform \"$platform\" (use --help for help)"
354 if test $release -eq 1
356 if test "$RELEASE_CFLAGS" = ""
359 gcc|*/gcc|*-gcc-*|*/*-gcc-*)
364 if test "$RELEASE_CFLAGS" != ""
366 CFLAGS="$CFLAGS $RELEASE_CFLAGS"
368 if test "$RELEASE_CXXFLAGS" = ""
371 g++|*/g++|*-g++-*|*/*-g++-*)
376 if test "$RELEASE_CXXFLAGS" != ""
378 CXXFLAGS="$CXXFLAGS $RELEASE_CXXFLAGS"
380 if test "$RELEASE_LDFLAGS" != ""
382 LDFLAGS="$LDFLAGS $RELEASE_LDFLAGS"
388 if test "$DEBUG_CFLAGS" != ""
390 CFLAGS="$CFLAGS $DEBUG_CFLAGS"
392 if test "$DEBUG_CXXFLAGS" != ""
394 CXXFLAGS="$CXXFLAGS $DEBUG_CXXFLAGS"
396 if test "$DEBUG_LDFLAGS" != ""
398 LDFLAGS="$LDFLAGS $DEBUG_LDFLAGS"
408 echo "export CPP=$CPP CC=$CC CXX=$CXX CPPFLAGS=$CPPFLAGS CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS LDFLAGS=$LDFLAGS MAKE=$MAKE"
409 echo "Running ./configure $OPTS $@ for $THE_OS using $THE_COMP compiler"
411 if $configure $OPTS $@
414 echo If the result of the above commands looks okay to you, go to the directory
415 echo source in the ICU distribution to build ICU. Please remember that ICU needs
416 echo GNU make to build properly...
418 echo $0: ./configure failed