]> git.saurik.com Git - apple/icu.git/blob - icuSources/runConfigureICU
ICU-400.42.tar.gz
[apple/icu.git] / icuSources / runConfigureICU
1 #!/bin/sh
2 # Copyright (c) 1999-2008, 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
8 me=`basename $0`
9 OPTS=
10
11 usage()
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
26 Options: -h, --help Print this message and exit
27 --enable-debug Enable support for debugging
28 --disable-release Disable presetting optimization flags
29
30 The 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 IBMi Use the iCC compilers on IBM i, i5/OS, OS/400
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
53 EOE
54 fi
55
56 exit $ec
57 }
58
59 # Parse arguments
60
61 platform=
62 debug=0
63 release=1
64
65 while test $# -ne 0
66 do
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
86 done
87
88 if test x$platform = x
89 then
90 usage 1
91 fi
92
93 # Go.
94
95 rm -f config.cache
96 rm -f config.log
97 rm -f config.status
98
99 DEBUG_CFLAGS='-g'
100 DEBUG_CXXFLAGS='-g'
101
102 if test x$configure = x
103 then
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
121 fi
122
123 case $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 IBMi)
172 THE_OS="IBM i"
173 THE_COMP="the iCC 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 DEBUG_CFLAGS='/Zi'
235 DEBUG_CXXFLAGS='/Zi'
236 DEBUG_LDFLAGS='/DEBUG'
237 ;;
238 Cygwin/ICL)
239 THE_OS="Windows with Cygwin"
240 THE_COMP="Intel C++"
241 CC=icl; export CC
242 CXX=icl; export CXX
243 # The Intel compiler has optimization bugs. So we disable optimization.
244 RELEASE_CFLAGS='/Od'
245 RELEASE_CXXFLAGS='/Od'
246 DEBUG_CFLAGS='/Zi'
247 DEBUG_CXXFLAGS='/Zi'
248 DEBUG_LDFLAGS='/DEBUG'
249 ;;
250 MacOSX)
251 THE_OS="MacOS X (Darwin)"
252 THE_COMP="the GNU C++"
253 RELEASE_CFLAGS='-O2'
254 RELEASE_CXXFLAGS='-O2'
255 ;;
256 *BSD)
257 THE_OS="BSD"
258 THE_COMP="the GNU C++"
259 CC=gcc; export CC
260 CXX=g++; export CXX
261 ;;
262 TRU64V5.1/CXX)
263 THE_OS="OSF1"
264 THE_COMP="Compaq cxx"
265 CC=cc; export CC
266 CXX=cxx; export CXX
267 ;;
268 QNX)
269 THE_OS="QNX"
270 THE_COMP="QNX cc"
271 CC=qcc; export CC
272 CXX=QCC; export CXX
273 ;;
274 zOS)
275 THE_OS="z/OS (OS/390)"
276 THE_COMP="z/OS C/C++"
277 CC=cc; export CC
278 CXX=cxx; export CXX
279 RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'"
280 RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'"
281 ;;
282 zOSV1R2)
283 THE_OS="z/OS 1.2"
284 THE_COMP="z/OS 1.2 C/C++"
285 CC=cc; export CC
286 CXX=cxx; export CXX
287 export COMPILE_LINK_ENVVAR='_CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000'
288 export _CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000
289 export LDFLAGS="-Wl,'compat=pm3'"
290 export CFLAGS="-Wc,'target(zOSV1R2)'"
291 export CXXFLAGS="-Wc,'target(zOSV1R2)'"
292 export RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'"
293 export RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,500,4000)'"
294 ;;
295 *)
296 >&2 echo "$me: unrecognized platform \"$platform\" (use --help for help)"
297 exit 1;;
298 esac
299
300
301 # Tweak flags
302
303 if test $release -eq 1
304 then
305 if test "$RELEASE_CFLAGS" = ""
306 then
307 case $CC in
308 gcc|*/gcc|*-gcc-*|*/*-gcc-*)
309 RELEASE_CFLAGS=-O3
310 ;;
311 esac
312 fi
313 if test "$RELEASE_CFLAGS" != ""
314 then
315 CFLAGS="$CFLAGS $RELEASE_CFLAGS"
316 fi
317 if test "$RELEASE_CXXFLAGS" = ""
318 then
319 case $CXX in
320 g++|*/g++|*-g++-*|*/*-g++-*)
321 RELEASE_CXXFLAGS=-O
322 ;;
323 esac
324 fi
325 if test "$RELEASE_CXXFLAGS" != ""
326 then
327 CXXFLAGS="$CXXFLAGS $RELEASE_CXXFLAGS"
328 fi
329 if test "$RELEASE_LDFLAGS" != ""
330 then
331 LDFLAGS="$LDFLAGS $RELEASE_LDFLAGS"
332 fi
333 fi
334
335 if test $debug -eq 1
336 then
337 if test "$DEBUG_CFLAGS" != ""
338 then
339 CFLAGS="$CFLAGS $DEBUG_CFLAGS"
340 fi
341 if test "$DEBUG_CXXFLAGS" != ""
342 then
343 CXXFLAGS="$CXXFLAGS $DEBUG_CXXFLAGS"
344 fi
345 if test "$DEBUG_LDFLAGS" != ""
346 then
347 LDFLAGS="$LDFLAGS $DEBUG_LDFLAGS"
348 fi
349 fi
350
351 export CFLAGS
352 export CXXFLAGS
353 export LDFLAGS
354
355 # Run configure
356
357 echo "Running ./configure $OPTS $@ for $THE_OS using $THE_COMP compiler"
358 echo
359 $configure $OPTS $@
360 echo
361 echo If the result of the above commands looks okay to you, go to the directory
362 echo source in the ICU distribution to build ICU. Please remember that ICU needs
363 echo GNU make to build properly...