]> git.saurik.com Git - apple/icu.git/blame - icuSources/runConfigureICU
ICU-531.48.tar.gz
[apple/icu.git] / icuSources / runConfigureICU
CommitLineData
b75a7d8f 1#!/bin/sh
57a6839d 2# Copyright (c) 1999-2013, International Business Machines Corporation and
b75a7d8f
A
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
51004dcb
A
30If you want to add custom CFLAGS or CXXFLAGS or similar, provide them _before_
31the runConfigureICU command:
32
33 CXXFLAGS=xyz path/to/runConfigureICU --enable-debug ...
34
b75a7d8f
A
35The following names can be supplied as the argument for platform:
36
73c04bcf
A
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
73c04bcf
A
39 Cygwin Use the GNU gcc/g++ compilers on Cygwin
40 Cygwin/MSVC Use the Microsoft Visual C++ compiler on Cygwin
46f4442e 41 Cygwin/MSVC2005 Use the Microsoft Visual C++ 2005 compiler on Cygwin
73c04bcf
A
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
46f4442e 45 IBMi Use the iCC compilers on IBM i, i5/OS, OS/400
51004dcb
A
46 Linux Use the clang/clang++ or GNU gcc/g++ compilers on Linux
47 Linux/gcc Use the GNU gcc/g++ compilers on Linux
73c04bcf
A
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
57a6839d
A
51 MacOSX Use the default compilers on MacOS X (Darwin)
52 MacOSX/GCC Use the GNU gcc/g++ compilers on MacOSX (Darwin)
4388f060 53 MinGW Use the GNU gcc/g++ compilers on MinGW
73c04bcf
A
54 QNX Use the QNX QCC compiler on QNX/Neutrino
55 Solaris Use the Sun cc/CC compilers on Solaris
56 Solaris/GCC Use the GNU gcc/g++ compilers on Solaris
57 SolarisX86 Use the Sun cc/CC compilers on Solaris x86
58 TRU64V5.1/CXX Use the Compaq cxx compiler on Tru64 (OSF)
59 zOS Use the IBM cxx compiler on z/OS (os/390)
60 zOSV1R2 Use the IBM cxx compiler for z/OS 1.2
b75a7d8f
A
61EOE
62 fi
63
64 exit $ec
65}
66
67# Parse arguments
68
69platform=
70debug=0
71release=1
72
73while test $# -ne 0
74do
75 case "$1" in
76 -h|--help)
77 usage 0
78 ;;
79 --enable-debug)
80 debug=1
374ca955 81 OPTS="$OPTS --enable-debug"
b75a7d8f
A
82 ;;
83 --disable-release)
b75a7d8f 84 release=0
374ca955 85 OPTS="$OPTS --disable-release"
b75a7d8f
A
86 ;;
87 *)
88 platform="$1"
89 shift
90 break
91 ;;
92 esac
93 shift
94done
95
96if test x$platform = x
97then
98 usage 1
99fi
100
101# Go.
102
103rm -f config.cache
104rm -f config.log
105rm -f config.status
106
107DEBUG_CFLAGS='-g'
108DEBUG_CXXFLAGS='-g'
109
110if test x$configure = x
111then
112 if test -f ./configure
113 then
114 configuredir=.
115 else
116 configuredir=`echo $0 | sed 's,[^/]*$,,'`
117 if test x$configuredir = x$0
118 then
119 configuredir=.
120 fi
121 fi
122
123 if test x$configuredir = x
124 then
125 configuredir=.
126 fi
127
128 configure=$configuredir/configure
129fi
130
131case $platform in
73c04bcf 132 AIX)
b75a7d8f
A
133 THE_OS=AIX
134 THE_COMP="xlC_r"
135 CC=`which xlc_r`; export CC
729e4ab9
A
136 if [ ! -x $CC ]; then
137 echo "ERROR: xlc_r was not found, please check the PATH to make sure it is correct."; exit 1
138 fi
b75a7d8f 139 CXX=`which xlC_r`; export CXX
729e4ab9
A
140 if [ ! -x $CXX ]; then
141 echo "ERROR: xlC_r was not found, please check the PATH to make sure it is correct."; exit 1
142 fi
b75a7d8f
A
143 RELEASE_CFLAGS="-O2 -qmaxmem=-1"
144 RELEASE_CXXFLAGS="-O2 -qmaxmem=-1"
b75a7d8f 145 ;;
73c04bcf 146 AIX/GCC)
374ca955 147 THE_OS=AIX
73c04bcf
A
148 THE_COMP="the GNU C++"
149 CC=gcc; export CC
150 CXX=g++; export CXX
729e4ab9 151 DEBUG_CFLAGS='-g -O0'
51004dcb 152 DEBUG_CXXFLAGS='-g -O0'
b75a7d8f 153 ;;
73c04bcf 154 Solaris)
b75a7d8f
A
155 THE_OS=SOLARIS
156 THE_COMP="Sun's CC"
157 CC=`which cc`; export CC
158 CXX=`which CC`; export CXX
4388f060 159 RELEASE_CFLAGS="-xO1 -xlibmil"
73c04bcf 160 RELEASE_CXXFLAGS="-O4 -xlibmil"
b75a7d8f 161 ;;
73c04bcf 162 Solaris/GCC)
b75a7d8f 163 THE_OS=SOLARIS
73c04bcf
A
164 THE_COMP="the GNU C++"
165 CC=gcc; export CC
166 CXX=g++; export CXX
167 RELEASE_CFLAGS=-O1
4388f060 168 RELEASE_CXXFLAGS=-O2
73c04bcf
A
169 ;;
170 SolarisX86)
171 THE_OS="SOLARIS X86"
b75a7d8f
A
172 THE_COMP="Sun's CC"
173 CC=`which cc`; export CC
174 CXX=`which CC`; export CXX
4388f060 175 LDFLAGS="${LDFLAGS} -lCrun";export LDFLAGS
73c04bcf
A
176 RELEASE_CFLAGS=-xO3
177 RELEASE_CXXFLAGS=-O3
b75a7d8f 178 ;;
73c04bcf 179 HP-UX/ACC)
b75a7d8f
A
180 THE_OS="HP-UX 11"
181 THE_COMP="aCC"
182 CC=cc; export CC
183 CXX=aCC; export CXX
184 RELEASE_CFLAGS='+O2 +Ofltacc'
185 RELEASE_CXXFLAGS='+O2 +Ofltacc'
186 ;;
46f4442e
A
187 IBMi)
188 THE_OS="IBM i"
189 THE_COMP="the iCC C++"
4388f060
A
190 CC=icc; export CC
191 CXX=icc; export CXX
729e4ab9 192 CPP="$CC -c -qpponly"; export CPP
4388f060
A
193 MAKE=gmake; export MAKE
194 U_MAKE=gmake; export U_MAKE
195 # gmake is a .pgm and may not be on the path. Don't use a full path, just use gmake.
196 ac_cv_path_U_MAKE=gmake; export ac_cv_path_U_MAKE
46f4442e
A
197 RELEASE_CFLAGS='-O4'
198 RELEASE_CXXFLAGS='-O4'
199 ;;
73c04bcf 200 Linux/ECC)
374ca955
A
201 THE_OS="Linux"
202 THE_COMP="Intel ECC 7.1"
203 CC=ecc; export CC
204 CXX=ecpc; export CXX
205 RELEASE_CFLAGS='-O2'
206 RELEASE_CXXFLAGS='-O2'
207 ;;
73c04bcf 208 Linux/ICC)
374ca955 209 THE_OS="Linux"
73c04bcf
A
210 CC=`which icc`; export CC
211 CXX=`which icpc`; export CXX
729e4ab9 212 ICC_VER=`${CC} -v 2>&1`
73c04bcf
A
213 RELEASE_CFLAGS='-O'
214 RELEASE_CXXFLAGS='-O'
729e4ab9
A
215 export CFLAGS="-fp-model precise"
216 export CXXFLAGS="-fp-model precise"
217 if [ "${ICC_VER}" = "Version 9.0 " ]; then
218 RELEASE_CFLAGS=''
219 RELEASE_CXXFLAGS=''
220 export CFLAGS="${CFLAGS} -O0"
221 export CXXFLAGS="${CXXFLAGS} -O0"
222 echo "ICC 9.0 does not work with optimization- disabling optimizations"
223 fi
224 THE_COMP="Intel ${ICC_VER}"
374ca955 225 ;;
73c04bcf 226 Linux/VA)
374ca955
A
227 THE_OS="Linux"
228 THE_COMP="IBM Visual Age C++ Compiler"
229 CC=`which xlc_r`; export CC
230 CXX=`which xlC_r`; export CXX
231 RELEASE_CFLAGS="-O2 -qmaxmem=-1"
232 RELEASE_CXXFLAGS="-O2 -qmaxmem=-1"
233 ;;
51004dcb 234 Linux/gcc)
73c04bcf
A
235 THE_OS="Linux"
236 THE_COMP="the GNU C++"
237 CC=gcc; export CC
238 CXX=g++; export CXX
51004dcb
A
239 RELEASE_CFLAGS='-O3'
240 RELEASE_CXXFLAGS='-O3'
241 DEBUG_CFLAGS='-g'
242 DEBUG_CXXFLAGS='-g'
243 ;;
244 Linux*)
245 THE_OS="Linux"
246 THE_COMP="the clang or else GNU C++"
247 RELEASE_CFLAGS='-O3'
248 RELEASE_CXXFLAGS='-O3'
249 DEBUG_CFLAGS='-g'
250 DEBUG_CXXFLAGS='-g'
73c04bcf 251 ;;
374ca955
A
252 Cygwin)
253 THE_OS="Cygwin"
b75a7d8f 254 THE_COMP="the GNU C++"
374ca955
A
255 RELEASE_CFLAGS='-O3'
256 RELEASE_CXXFLAGS='-O3'
257 ;;
258 Cygwin/MSVC)
259 THE_OS="Windows with Cygwin"
260 THE_COMP="Microsoft Visual C++"
261 CC=cl; export CC
262 CXX=cl; export CXX
57a6839d
A
263 RELEASE_CFLAGS='-Gy -MD'
264 RELEASE_CXXFLAGS='-Gy -MD'
265 DEBUG_CFLAGS='-Zi -MDd'
266 DEBUG_CXXFLAGS='-Zi -MDd'
267 DEBUG_LDFLAGS='-DEBUG'
73c04bcf 268 ;;
46f4442e
A
269 Cygwin/MSVC2005)
270 THE_OS="Windows with Cygwin"
271 THE_COMP="Microsoft Visual C++ 2005"
272 CC=cl; export CC
273 CXX=cl; export CXX
729e4ab9
A
274 RELEASE_CFLAGS='/Gy /MD'
275 RELEASE_CXXFLAGS='/Gy /MD'
276 DEBUG_CFLAGS='/Zi /MDd'
277 DEBUG_CXXFLAGS='/Zi /MDd'
46f4442e
A
278 DEBUG_LDFLAGS='/DEBUG'
279 ;;
73c04bcf
A
280 Cygwin/ICL)
281 THE_OS="Windows with Cygwin"
282 THE_COMP="Intel C++"
283 CC=icl; export CC
284 CXX=icl; export CXX
285 # The Intel compiler has optimization bugs. So we disable optimization.
286 RELEASE_CFLAGS='/Od'
287 RELEASE_CXXFLAGS='/Od'
288 DEBUG_CFLAGS='/Zi'
289 DEBUG_CXXFLAGS='/Zi'
290 DEBUG_LDFLAGS='/DEBUG'
b75a7d8f
A
291 ;;
292 MacOSX)
57a6839d
A
293 THE_OS="MacOS X (Darwin)"
294 THE_COMP="the default"
295 RELEASE_CFLAGS='-O2'
296 RELEASE_CXXFLAGS='-O2'
297 DEBUG_CFLAGS='-g -O0'
298 DEBUG_CXXFLAGS='-g -O0'
299 ;;
300 MacOSX/GCC)
b75a7d8f
A
301 THE_OS="MacOS X (Darwin)"
302 THE_COMP="the GNU C++"
303 RELEASE_CFLAGS='-O2'
304 RELEASE_CXXFLAGS='-O2'
729e4ab9
A
305 DEBUG_CFLAGS='-g -O0'
306 DEBUG_CXXFLAGS='-g -O0'
57a6839d
A
307 CC=gcc; export CC
308 CXX=g++; export CXX
b75a7d8f 309 ;;
4388f060
A
310 MinGW)
311 THE_OS="MinGW"
312 THE_COMP="the GNU C++"
313 RELEASE_CFLAGS='-O3'
314 RELEASE_CXXFLAGS='-O3'
57a6839d
A
315 CXXFLAGS="--std=c++03"
316 export CXXFLAGS
4388f060 317 ;;
b75a7d8f
A
318 *BSD)
319 THE_OS="BSD"
320 THE_COMP="the GNU C++"
321 CC=gcc; export CC
322 CXX=g++; export CXX
729e4ab9 323 DEBUG_CFLAGS='-g -O0'
51004dcb 324 DEBUG_CXXFLAGS='-g -O0'
b75a7d8f 325 ;;
73c04bcf
A
326 TRU64V5.1/CXX)
327 THE_OS="OSF1"
328 THE_COMP="Compaq cxx"
329 CC=cc; export CC
330 CXX=cxx; export CXX
331 ;;
b75a7d8f
A
332 QNX)
333 THE_OS="QNX"
334 THE_COMP="QNX cc"
335 CC=qcc; export CC
336 CXX=QCC; export CXX
337 ;;
338 zOS)
339 THE_OS="z/OS (OS/390)"
73c04bcf 340 THE_COMP="z/OS C/C++"
51004dcb
A
341 CC=xlc; export CC
342 CXX=xlC; export CXX
343 RELEASE_CFLAGS="-O2 -Wc,'inline(AUTO,NOREPORT,1000,8000)'"
344 RELEASE_CXXFLAGS="-O2 -Wc,'inline(AUTO,NOREPORT,1000,8000)'"
b75a7d8f
A
345 ;;
346 zOSV1R2)
347 THE_OS="z/OS 1.2"
348 THE_COMP="z/OS 1.2 C/C++"
349 CC=cc; export CC
350 CXX=cxx; export CXX
729e4ab9 351 export COMPILE_LINK_ENVVAR='_CXX_CICC_VER}=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000'
b75a7d8f 352 export _CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000
73c04bcf
A
353 export LDFLAGS="-Wl,'compat=pm3'"
354 export CFLAGS="-Wc,'target(zOSV1R2)'"
355 export CXXFLAGS="-Wc,'target(zOSV1R2)'"
729e4ab9
A
356 RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'"
357 RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'"
b75a7d8f
A
358 ;;
359 *)
360 >&2 echo "$me: unrecognized platform \"$platform\" (use --help for help)"
361 exit 1;;
362esac
363
364
365# Tweak flags
366
367if test $release -eq 1
368then
369 if test "$RELEASE_CFLAGS" = ""
370 then
371 case $CC in
372 gcc|*/gcc|*-gcc-*|*/*-gcc-*)
373 RELEASE_CFLAGS=-O3
374 ;;
375 esac
376 fi
377 if test "$RELEASE_CFLAGS" != ""
378 then
379 CFLAGS="$CFLAGS $RELEASE_CFLAGS"
380 fi
b75a7d8f
A
381 if test "$RELEASE_CXXFLAGS" = ""
382 then
383 case $CXX in
384 g++|*/g++|*-g++-*|*/*-g++-*)
729e4ab9 385 RELEASE_CXXFLAGS=-O3
b75a7d8f
A
386 ;;
387 esac
388 fi
389 if test "$RELEASE_CXXFLAGS" != ""
390 then
391 CXXFLAGS="$CXXFLAGS $RELEASE_CXXFLAGS"
392 fi
46f4442e
A
393 if test "$RELEASE_LDFLAGS" != ""
394 then
395 LDFLAGS="$LDFLAGS $RELEASE_LDFLAGS"
396 fi
b75a7d8f
A
397fi
398
399if test $debug -eq 1
400then
401 if test "$DEBUG_CFLAGS" != ""
402 then
403 CFLAGS="$CFLAGS $DEBUG_CFLAGS"
404 fi
b75a7d8f
A
405 if test "$DEBUG_CXXFLAGS" != ""
406 then
407 CXXFLAGS="$CXXFLAGS $DEBUG_CXXFLAGS"
408 fi
374ca955
A
409 if test "$DEBUG_LDFLAGS" != ""
410 then
411 LDFLAGS="$LDFLAGS $DEBUG_LDFLAGS"
412 fi
b75a7d8f
A
413fi
414
46f4442e
A
415export CFLAGS
416export CXXFLAGS
417export LDFLAGS
418
b75a7d8f
A
419# Run configure
420
729e4ab9 421echo "export CPP=$CPP CC=$CC CXX=$CXX CPPFLAGS=$CPPFLAGS CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS LDFLAGS=$LDFLAGS MAKE=$MAKE"
b75a7d8f
A
422echo "Running ./configure $OPTS $@ for $THE_OS using $THE_COMP compiler"
423echo
729e4ab9
A
424if $configure $OPTS $@
425then
426 echo
427 echo If the result of the above commands looks okay to you, go to the directory
428 echo source in the ICU distribution to build ICU. Please remember that ICU needs
429 echo GNU make to build properly...
430else
431 echo $0: ./configure failed
432 exit 1
433fi