]> git.saurik.com Git - apple/icu.git/blob - icuSources/runConfigureICU
ICU-8.11.tar.gz
[apple/icu.git] / icuSources / runConfigureICU
1 #!/bin/sh
2 # Copyright (c) 1999-2006, 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 BeOS Use the GNU gcc/g++ compilers on BeOS
35 Cygwin Use the GNU gcc/g++ compilers on Cygwin
36 Cygwin/MSVC Use the Microsoft Visual C++ 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 Linux Use the GNU gcc/g++ compilers on Linux
41 Linux/ECC Use the Intel ECC compiler on Linux
42 Linux/ICC Use the Intel ICC compiler on Linux
43 Linux/VA Use the IBM Visual Age compiler on Power PC Linux
44 MacOSX Use the GNU gcc/g++ compilers on MacOS X (Darwin)
45 QNX Use the QNX QCC compiler on QNX/Neutrino
46 Solaris Use the Sun cc/CC compilers on Solaris
47 Solaris/GCC Use the GNU gcc/g++ compilers on Solaris
48 SolarisX86 Use the Sun cc/CC compilers on Solaris x86
49 TRU64V5.1/CXX Use the Compaq cxx compiler on Tru64 (OSF)
50 zOS Use the IBM cxx compiler on z/OS (os/390)
51 zOSV1R2 Use the IBM cxx compiler for z/OS 1.2
52 EOE
53 fi
54
55 exit $ec
56 }
57
58 # Parse arguments
59
60 platform=
61 debug=0
62 release=1
63
64 while test $# -ne 0
65 do
66 case "$1" in
67 -h|--help)
68 usage 0
69 ;;
70 --enable-debug)
71 debug=1
72 OPTS="$OPTS --enable-debug"
73 ;;
74 --disable-release)
75 release=0
76 OPTS="$OPTS --disable-release"
77 ;;
78 *)
79 platform="$1"
80 shift
81 break
82 ;;
83 esac
84 shift
85 done
86
87 if test x$platform = x
88 then
89 usage 1
90 fi
91
92 # Go.
93
94 rm -f config.cache
95 rm -f config.log
96 rm -f config.status
97
98 DEBUG_CFLAGS='-g'
99 DEBUG_CXXFLAGS='-g'
100
101 if test x$configure = x
102 then
103 if test -f ./configure
104 then
105 configuredir=.
106 else
107 configuredir=`echo $0 | sed 's,[^/]*$,,'`
108 if test x$configuredir = x$0
109 then
110 configuredir=.
111 fi
112 fi
113
114 if test x$configuredir = x
115 then
116 configuredir=.
117 fi
118
119 configure=$configuredir/configure
120 fi
121
122 case $platform in
123 AIX)
124 THE_OS=AIX
125 THE_COMP="xlC_r"
126 CC=`which xlc_r`; export CC
127 CXX=`which xlC_r`; export CXX
128 RELEASE_CFLAGS="-O2 -qmaxmem=-1"
129 RELEASE_CXXFLAGS="-O2 -qmaxmem=-1"
130 ;;
131 AIX/GCC)
132 THE_OS=AIX
133 THE_COMP="the GNU C++"
134 CC=gcc; export CC
135 CXX=g++; export CXX
136 ;;
137 Solaris)
138 THE_OS=SOLARIS
139 THE_COMP="Sun's CC"
140 CC=`which cc`; export CC
141 CXX=`which CC`; export CXX
142 RELEASE_CFLAGS="-xO4 -xlibmil"
143 RELEASE_CXXFLAGS="-O4 -xlibmil"
144 ;;
145 Solaris/GCC)
146 THE_OS=SOLARIS
147 THE_COMP="the GNU C++"
148 CC=gcc; export CC
149 CXX=g++; export CXX
150 RELEASE_CFLAGS=-O1
151 RELEASE_CXXFLAGS=-O3
152 ;;
153 SolarisX86)
154 THE_OS="SOLARIS X86"
155 THE_COMP="Sun's CC"
156 CC=`which cc`; export CC
157 CXX=`which CC`; export CXX
158 LDFLAGS="-L -lCrun";export LDFLAGS
159 RELEASE_CFLAGS=-xO3
160 RELEASE_CXXFLAGS=-O3
161 ;;
162 HP-UX/ACC)
163 THE_OS="HP-UX 11"
164 THE_COMP="aCC"
165 CC=cc; export CC
166 CXX=aCC; export CXX
167 RELEASE_CFLAGS='+O2 +Ofltacc'
168 RELEASE_CXXFLAGS='+O2 +Ofltacc'
169 ;;
170 Linux/ECC)
171 THE_OS="Linux"
172 THE_COMP="Intel ECC 7.1"
173 CC=ecc; export CC
174 CXX=ecpc; export CXX
175 RELEASE_CFLAGS='-O2'
176 RELEASE_CXXFLAGS='-O2'
177 ;;
178 Linux/ICC)
179 THE_OS="Linux"
180 THE_COMP="Intel ICC 9.0"
181 CC=`which icc`; export CC
182 CXX=`which icpc`; export CXX
183 RELEASE_CFLAGS='-O'
184 RELEASE_CXXFLAGS='-O'
185 ;;
186 Linux/VA)
187 THE_OS="Linux"
188 THE_COMP="IBM Visual Age C++ Compiler"
189 CC=`which xlc_r`; export CC
190 CXX=`which xlC_r`; export CXX
191 RELEASE_CFLAGS="-O2 -qmaxmem=-1"
192 RELEASE_CXXFLAGS="-O2 -qmaxmem=-1"
193 ;;
194 Linux*)
195 THE_OS="Linux"
196 THE_COMP="the GNU C++"
197 CC=gcc; export CC
198 CXX=g++; export CXX
199 ;;
200 Cygwin)
201 THE_OS="Cygwin"
202 THE_COMP="the GNU C++"
203 RELEASE_CFLAGS='-O3'
204 RELEASE_CXXFLAGS='-O3'
205 ;;
206 Cygwin/MSVC)
207 THE_OS="Windows with Cygwin"
208 THE_COMP="Microsoft Visual C++"
209 CC=cl; export CC
210 CXX=cl; export CXX
211 RELEASE_CFLAGS='/O2 /Ob2 /Op'
212 RELEASE_CXXFLAGS='/O2 /Ob2 /Op'
213 DEBUG_CFLAGS='/Zi'
214 DEBUG_CXXFLAGS='/Zi'
215 DEBUG_LDFLAGS='/DEBUG'
216 ;;
217 Cygwin/ICL)
218 THE_OS="Windows with Cygwin"
219 THE_COMP="Intel C++"
220 CC=icl; export CC
221 CXX=icl; export CXX
222 # The Intel compiler has optimization bugs. So we disable optimization.
223 RELEASE_CFLAGS='/Od'
224 RELEASE_CXXFLAGS='/Od'
225 DEBUG_CFLAGS='/Zi'
226 DEBUG_CXXFLAGS='/Zi'
227 DEBUG_LDFLAGS='/DEBUG'
228 ;;
229 MacOSX)
230 THE_OS="MacOS X (Darwin)"
231 THE_COMP="the GNU C++"
232 RELEASE_CFLAGS='-O2'
233 RELEASE_CXXFLAGS='-O2'
234 ;;
235 *BSD)
236 THE_OS="BSD"
237 THE_COMP="the GNU C++"
238 CC=gcc; export CC
239 CXX=g++; export CXX
240 ;;
241 TRU64V5.1/CXX)
242 THE_OS="OSF1"
243 THE_COMP="Compaq cxx"
244 CC=cc; export CC
245 CXX=cxx; export CXX
246 ;;
247 QNX)
248 THE_OS="QNX"
249 THE_COMP="QNX cc"
250 CC=qcc; export CC
251 CXX=QCC; export CXX
252 ;;
253 BeOS)
254 THE_OS="BeOS"
255 THE_COMP="the GNU C++"
256 OPTIMIZATIONS="-fdefault-inline -fdefer-pop -fforce-mem -fforce-addr \
257 -finline -finline-functions \
258 -fkeep-inline-functions -fkeep-static-consts -fbranch-count-reg \
259 -ffunction-cse -fstrength-reduce -fthread-jumps -fcse-follow-jumps \
260 -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt \
261 -fexpensive-optimizations -foptimize-register-move -fregmove \
262 -fschedule-insns -fschedule-insns2 -ffloat-store -funroll-loops \
263 -fmove-all-movables -freduce-all-givs -fpeephole \
264 -funroll-all-loops -ffunction-sections -fdata-sections"
265 RELEASE_CFLAGS="$OPTIMIZATIONS"
266 RELEASE_CXXFLAGS="$OPTIMIZATIONS"
267 ;;
268 zOS)
269 THE_OS="z/OS (OS/390)"
270 THE_COMP="z/OS C/C++"
271 CC=cc; export CC
272 CXX=cxx; export CXX
273 export RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,2500)'"
274 export RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,300,2500)'"
275 ;;
276 zOSV1R2)
277 THE_OS="z/OS 1.2"
278 THE_COMP="z/OS 1.2 C/C++"
279 CC=cc; export CC
280 CXX=cxx; export CXX
281 export COMPILE_LINK_ENVVAR='_CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000'
282 export _CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000
283 export LDFLAGS="-Wl,'compat=pm3'"
284 export CFLAGS="-Wc,'target(zOSV1R2)'"
285 export CXXFLAGS="-Wc,'target(zOSV1R2)'"
286 export RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,2500)'"
287 export RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,300,2500)'"
288 ;;
289 *)
290 >&2 echo "$me: unrecognized platform \"$platform\" (use --help for help)"
291 exit 1;;
292 esac
293
294
295 # Tweak flags
296
297 if test $release -eq 1
298 then
299 if test "$RELEASE_CFLAGS" = ""
300 then
301 case $CC in
302 gcc|*/gcc|*-gcc-*|*/*-gcc-*)
303 RELEASE_CFLAGS=-O3
304 ;;
305 esac
306 fi
307 if test "$RELEASE_CFLAGS" != ""
308 then
309 CFLAGS="$CFLAGS $RELEASE_CFLAGS"
310 fi
311 export CFLAGS
312 if test "$RELEASE_CXXFLAGS" = ""
313 then
314 case $CXX in
315 g++|*/g++|*-g++-*|*/*-g++-*)
316 RELEASE_CXXFLAGS=-O
317 ;;
318 esac
319 fi
320 if test "$RELEASE_CXXFLAGS" != ""
321 then
322 CXXFLAGS="$CXXFLAGS $RELEASE_CXXFLAGS"
323 fi
324 export CXXFLAGS
325 fi
326
327 if test $debug -eq 1
328 then
329 if test "$DEBUG_CFLAGS" != ""
330 then
331 CFLAGS="$CFLAGS $DEBUG_CFLAGS"
332 fi
333 export CFLAGS
334 if test "$DEBUG_CXXFLAGS" != ""
335 then
336 CXXFLAGS="$CXXFLAGS $DEBUG_CXXFLAGS"
337 fi
338 export CXXFLAGS
339 if test "$DEBUG_LDFLAGS" != ""
340 then
341 LDFLAGS="$LDFLAGS $DEBUG_LDFLAGS"
342 fi
343 export LDFLAGS
344 fi
345
346 # Run configure
347
348 echo "Running ./configure $OPTS $@ for $THE_OS using $THE_COMP compiler"
349 echo
350 $configure $OPTS $@
351 echo
352 echo If the result of the above commands looks okay to you, go to the directory
353 echo source in the ICU distribution to build ICU. Please remember that ICU needs
354 echo GNU make to build properly...