config revision 1.1.1.6 1 1.1 christos #!/bin/sh
2 1.1 christos #
3 1.1 christos # OpenSSL config: determine the operating system and run ./Configure
4 1.1 christos #
5 1.1 christos # "config -h" for usage information.
6 1.1 christos #
7 1.1 christos # this is a merge of minarch and GuessOS from the Apache Group.
8 1.1 christos # Originally written by Tim Hudson <tjh (at] cryptsoft.com>.
9 1.1 christos
10 1.1 christos # Original Apache Group comments on GuessOS
11 1.1 christos
12 1.1 christos # Simple OS/Platform guesser. Similar to config.guess but
13 1.1 christos # much, much smaller. Since it was developed for use with
14 1.1 christos # Apache, it follows under Apache's regular licensing
15 1.1 christos # with one specific addition: Any changes or additions
16 1.1 christos # to this script should be Emailed to the Apache
17 1.1 christos # group (apache (at] apache.org) in general and to
18 1.1 christos # Jim Jagielski (jim (at] jaguNET.com) in specific.
19 1.1 christos #
20 1.1 christos # Be as similar to the output of config.guess/config.sub
21 1.1 christos # as possible.
22 1.1 christos
23 1.1 christos PREFIX=""
24 1.1 christos SUFFIX=""
25 1.1 christos TEST="false"
26 1.1 christos EXE=""
27 1.1 christos
28 1.1 christos # pick up any command line args to config
29 1.1 christos for i
30 1.1 christos do
31 1.1 christos case "$i" in
32 1.1 christos -d*) PREFIX="debug-";;
33 1.1 christos -t*) TEST="true";;
34 1.1 christos -h*) TEST="true"; cat <<EOF
35 1.1 christos Usage: config [options]
36 1.1 christos -d Add a debug- prefix to machine choice.
37 1.1 christos -t Test mode, do not run the Configure perl script.
38 1.1 christos -h This help.
39 1.1 christos
40 1.1 christos Any other text will be passed to the Configure perl script.
41 1.1 christos See INSTALL for instructions.
42 1.1 christos
43 1.1 christos EOF
44 1.1 christos ;;
45 1.1 christos *) options=$options" $i" ;;
46 1.1 christos esac
47 1.1 christos done
48 1.1 christos
49 1.1 christos # First get uname entries that we use below
50 1.1 christos
51 1.1.1.2 christos [ "$MACHINE" ] || MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown"
52 1.1.1.2 christos [ "$RELEASE" ] || RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
53 1.1.1.2 christos [ "$SYSTEM" ] || SYSTEM=`(uname -s) 2>/dev/null` || SYSTEM="unknown"
54 1.1.1.2 christos [ "$BUILD" ] || VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"
55 1.1 christos
56 1.1 christos
57 1.1 christos # Now test for ISC and SCO, since it is has a braindamaged uname.
58 1.1 christos #
59 1.1 christos # We need to work around FreeBSD 1.1.5.1
60 1.1 christos (
61 1.1 christos XREL=`uname -X 2>/dev/null | grep "^Release" | awk '{print $3}'`
62 1.1 christos if [ "x$XREL" != "x" ]; then
63 1.1 christos if [ -f /etc/kconfig ]; then
64 1.1 christos case "$XREL" in
65 1.1 christos 4.0|4.1)
66 1.1 christos echo "${MACHINE}-whatever-isc4"; exit 0
67 1.1 christos ;;
68 1.1 christos esac
69 1.1 christos else
70 1.1 christos case "$XREL" in
71 1.1 christos 3.2v4.2)
72 1.1 christos echo "whatever-whatever-sco3"; exit 0
73 1.1 christos ;;
74 1.1 christos 3.2v5.0*)
75 1.1 christos echo "whatever-whatever-sco5"; exit 0
76 1.1 christos ;;
77 1.1 christos 4.2MP)
78 1.1 christos case "x${VERSION}" in
79 1.1 christos x2.0*) echo "whatever-whatever-unixware20"; exit 0 ;;
80 1.1 christos x2.1*) echo "whatever-whatever-unixware21"; exit 0 ;;
81 1.1 christos x2*) echo "whatever-whatever-unixware2"; exit 0 ;;
82 1.1 christos esac
83 1.1 christos ;;
84 1.1 christos 4.2)
85 1.1 christos echo "whatever-whatever-unixware1"; exit 0
86 1.1 christos ;;
87 1.1 christos 5*)
88 1.1 christos case "x${VERSION}" in
89 1.1 christos # We hardcode i586 in place of ${MACHINE} for the
90 1.1 christos # following reason. The catch is that even though Pentium
91 1.1 christos # is minimum requirement for platforms in question,
92 1.1 christos # ${MACHINE} gets always assigned to i386. Now, problem
93 1.1 christos # with i386 is that it makes ./config pass 386 to
94 1.1 christos # ./Configure, which in turn makes make generate
95 1.1 christos # inefficient SHA-1 (for this moment) code.
96 1.1 christos x[678]*) echo "i586-sco-unixware7"; exit 0 ;;
97 1.1 christos esac
98 1.1 christos ;;
99 1.1 christos esac
100 1.1 christos fi
101 1.1 christos fi
102 1.1 christos # Now we simply scan though... In most cases, the SYSTEM info is enough
103 1.1 christos #
104 1.1 christos case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
105 1.1 christos MPE/iX:*)
106 1.1 christos MACHINE=`echo "$MACHINE" | sed -e 's/-/_/g'`
107 1.1 christos echo "parisc-hp-MPE/iX"; exit 0
108 1.1 christos ;;
109 1.1 christos A/UX:*)
110 1.1 christos echo "m68k-apple-aux3"; exit 0
111 1.1 christos ;;
112 1.1 christos
113 1.1 christos AIX:[3-9]:4:*)
114 1.1 christos echo "${MACHINE}-ibm-aix"; exit 0
115 1.1 christos ;;
116 1.1 christos
117 1.1 christos AIX:*:[5-9]:*)
118 1.1 christos echo "${MACHINE}-ibm-aix"; exit 0
119 1.1 christos ;;
120 1.1 christos
121 1.1 christos AIX:*)
122 1.1 christos echo "${MACHINE}-ibm-aix3"; exit 0
123 1.1 christos ;;
124 1.1 christos
125 1.1 christos BeOS:*:BePC)
126 1.1 christos if [ -e /boot/develop/headers/be/bone ]; then
127 1.1 christos echo "beos-x86-bone"; exit 0
128 1.1 christos else
129 1.1 christos echo "beos-x86-r5"; exit 0
130 1.1 christos fi
131 1.1 christos ;;
132 1.1 christos
133 1.1 christos dgux:*)
134 1.1 christos echo "${MACHINE}-dg-dgux"; exit 0
135 1.1 christos ;;
136 1.1 christos
137 1.1 christos HI-UX:*)
138 1.1 christos echo "${MACHINE}-hi-hiux"; exit 0
139 1.1 christos ;;
140 1.1 christos
141 1.1 christos HP-UX:*)
142 1.1 christos HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'`
143 1.1 christos case "$HPUXVER" in
144 1.1 christos 1[0-9].*) # HPUX 10 and 11 targets are unified
145 1.1 christos echo "${MACHINE}-hp-hpux1x"; exit 0
146 1.1 christos ;;
147 1.1 christos *)
148 1.1 christos echo "${MACHINE}-hp-hpux"; exit 0
149 1.1 christos ;;
150 1.1 christos esac
151 1.1 christos ;;
152 1.1 christos
153 1.1 christos IRIX:5.*)
154 1.1 christos echo "mips2-sgi-irix"; exit 0
155 1.1 christos ;;
156 1.1 christos
157 1.1 christos IRIX:6.*)
158 1.1 christos echo "mips3-sgi-irix"; exit 0
159 1.1 christos ;;
160 1.1 christos
161 1.1 christos IRIX64:*)
162 1.1 christos echo "mips4-sgi-irix64"; exit 0
163 1.1 christos ;;
164 1.1 christos
165 1.1 christos Linux:[2-9].*)
166 1.1 christos echo "${MACHINE}-whatever-linux2"; exit 0
167 1.1 christos ;;
168 1.1 christos
169 1.1 christos Linux:1.*)
170 1.1 christos echo "${MACHINE}-whatever-linux1"; exit 0
171 1.1 christos ;;
172 1.1 christos
173 1.1 christos GNU*)
174 1.1 christos echo "hurd-x86"; exit 0;
175 1.1 christos ;;
176 1.1 christos
177 1.1 christos LynxOS:*)
178 1.1 christos echo "${MACHINE}-lynx-lynxos"; exit 0
179 1.1 christos ;;
180 1.1 christos
181 1.1 christos BSD/OS:4.*) # BSD/OS always says 386
182 1.1 christos echo "i486-whatever-bsdi4"; exit 0
183 1.1 christos ;;
184 1.1 christos
185 1.1 christos BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*)
186 1.1 christos case `/sbin/sysctl -n hw.model` in
187 1.1 christos Pentium*)
188 1.1 christos echo "i586-whatever-bsdi"; exit 0
189 1.1 christos ;;
190 1.1 christos *)
191 1.1 christos echo "i386-whatever-bsdi"; exit 0
192 1.1 christos ;;
193 1.1 christos esac;
194 1.1 christos ;;
195 1.1 christos
196 1.1 christos BSD/386:*|BSD/OS:*)
197 1.1 christos echo "${MACHINE}-whatever-bsdi"; exit 0
198 1.1 christos ;;
199 1.1 christos
200 1.1 christos FreeBSD:*:*:*386*)
201 1.1 christos VERS=`echo ${RELEASE} | sed -e 's/[-(].*//'`
202 1.1 christos MACH=`sysctl -n hw.model`
203 1.1 christos ARCH='whatever'
204 1.1 christos case ${MACH} in
205 1.1 christos *386* ) MACH="i386" ;;
206 1.1 christos *486* ) MACH="i486" ;;
207 1.1 christos Pentium\ II*) MACH="i686" ;;
208 1.1 christos Pentium* ) MACH="i586" ;;
209 1.1 christos * ) MACH="$MACHINE" ;;
210 1.1 christos esac
211 1.1 christos case ${MACH} in
212 1.1 christos i[0-9]86 ) ARCH="pc" ;;
213 1.1 christos esac
214 1.1 christos echo "${MACH}-${ARCH}-freebsd${VERS}"; exit 0
215 1.1 christos ;;
216 1.1 christos
217 1.1 christos FreeBSD:*)
218 1.1 christos echo "${MACHINE}-whatever-freebsd"; exit 0
219 1.1 christos ;;
220 1.1 christos
221 1.1 christos NetBSD:*:*:*386*)
222 1.1 christos echo "`(/usr/sbin/sysctl -n hw.model || /sbin/sysctl -n hw.model) | sed 's,.*\(.\)86-class.*,i\186,'`-whatever-netbsd"; exit 0
223 1.1 christos ;;
224 1.1 christos
225 1.1 christos NetBSD:*)
226 1.1 christos echo "${MACHINE}-whatever-netbsd"; exit 0
227 1.1 christos ;;
228 1.1 christos
229 1.1 christos OpenBSD:*)
230 1.1 christos echo "${MACHINE}-whatever-openbsd"; exit 0
231 1.1 christos ;;
232 1.1 christos
233 1.1 christos OpenUNIX:*)
234 1.1 christos echo "${MACHINE}-unknown-OpenUNIX${VERSION}"; exit 0
235 1.1 christos ;;
236 1.1 christos
237 1.1 christos OSF1:*:*:*alpha*)
238 1.1 christos OSFMAJOR=`echo ${RELEASE}| sed -e 's/^V\([0-9]*\)\..*$/\1/'`
239 1.1 christos case "$OSFMAJOR" in
240 1.1 christos 4|5)
241 1.1 christos echo "${MACHINE}-dec-tru64"; exit 0
242 1.1 christos ;;
243 1.1 christos 1|2|3)
244 1.1 christos echo "${MACHINE}-dec-osf"; exit 0
245 1.1 christos ;;
246 1.1 christos *)
247 1.1 christos echo "${MACHINE}-dec-osf"; exit 0
248 1.1 christos ;;
249 1.1 christos esac
250 1.1 christos ;;
251 1.1 christos
252 1.1 christos QNX:*)
253 1.1 christos case "$RELEASE" in
254 1.1 christos 4*)
255 1.1 christos echo "${MACHINE}-whatever-qnx4"
256 1.1 christos ;;
257 1.1 christos 6*)
258 1.1 christos echo "${MACHINE}-whatever-qnx6"
259 1.1 christos ;;
260 1.1 christos *)
261 1.1 christos echo "${MACHINE}-whatever-qnx"
262 1.1 christos ;;
263 1.1 christos esac
264 1.1 christos exit 0
265 1.1 christos ;;
266 1.1 christos
267 1.1 christos Paragon*:*:*:*)
268 1.1 christos echo "i860-intel-osf1"; exit 0
269 1.1 christos ;;
270 1.1 christos
271 1.1 christos Rhapsody:*)
272 1.1 christos echo "ppc-apple-rhapsody"; exit 0
273 1.1 christos ;;
274 1.1 christos
275 1.1 christos Darwin:*)
276 1.1 christos case "$MACHINE" in
277 1.1 christos Power*)
278 1.1 christos echo "ppc-apple-darwin${VERSION}"
279 1.1 christos ;;
280 1.1 christos *)
281 1.1 christos echo "i686-apple-darwin${VERSION}"
282 1.1 christos ;;
283 1.1 christos esac
284 1.1 christos exit 0
285 1.1 christos ;;
286 1.1 christos
287 1.1 christos SunOS:5.*)
288 1.1 christos echo "${MACHINE}-whatever-solaris2"; exit 0
289 1.1 christos ;;
290 1.1 christos
291 1.1 christos SunOS:*)
292 1.1 christos echo "${MACHINE}-sun-sunos4"; exit 0
293 1.1 christos ;;
294 1.1 christos
295 1.1 christos UNIX_System_V:4.*:*)
296 1.1 christos echo "${MACHINE}-whatever-sysv4"; exit 0
297 1.1 christos ;;
298 1.1 christos
299 1.1 christos VOS:*:*:i786)
300 1.1 christos echo "i386-stratus-vos"; exit 0
301 1.1 christos ;;
302 1.1 christos
303 1.1 christos VOS:*:*:*)
304 1.1 christos echo "hppa1.1-stratus-vos"; exit 0
305 1.1 christos ;;
306 1.1 christos
307 1.1 christos *:4*:R4*:m88k)
308 1.1 christos echo "${MACHINE}-whatever-sysv4"; exit 0
309 1.1 christos ;;
310 1.1 christos
311 1.1 christos DYNIX/ptx:4*:*)
312 1.1 christos echo "${MACHINE}-whatever-sysv4"; exit 0
313 1.1 christos ;;
314 1.1 christos
315 1.1 christos *:4.0:3.0:3[34]?? | *:4.0:3.0:3[34]??,*)
316 1.1 christos echo "i486-ncr-sysv4"; exit 0
317 1.1 christos ;;
318 1.1 christos
319 1.1 christos ULTRIX:*)
320 1.1 christos echo "${MACHINE}-unknown-ultrix"; exit 0
321 1.1 christos ;;
322 1.1 christos
323 1.1 christos SINIX*|ReliantUNIX*)
324 1.1 christos echo "${MACHINE}-siemens-sysv4"; exit 0
325 1.1 christos ;;
326 1.1 christos
327 1.1 christos POSIX-BC*)
328 1.1 christos echo "${MACHINE}-siemens-sysv4"; exit 0 # Here, $MACHINE == "BS2000"
329 1.1 christos ;;
330 1.1 christos
331 1.1 christos machten:*)
332 1.1 christos echo "${MACHINE}-tenon-${SYSTEM}"; exit 0;
333 1.1 christos ;;
334 1.1 christos
335 1.1 christos library:*)
336 1.1 christos echo "${MACHINE}-ncr-sysv4"; exit 0
337 1.1 christos ;;
338 1.1 christos
339 1.1 christos ConvexOS:*:11.0:*)
340 1.1 christos echo "${MACHINE}-v11-${SYSTEM}"; exit 0;
341 1.1 christos ;;
342 1.1 christos
343 1.1 christos NEWS-OS:4.*)
344 1.1 christos echo "mips-sony-newsos4"; exit 0;
345 1.1 christos ;;
346 1.1 christos
347 1.1 christos MINGW*)
348 1.1 christos echo "${MACHINE}-whatever-mingw"; exit 0;
349 1.1 christos ;;
350 1.1 christos CYGWIN*)
351 1.1 christos case "$RELEASE" in
352 1.1 christos [bB]*|1.0|1.[12].*)
353 1.1 christos echo "${MACHINE}-whatever-cygwin_pre1.3"
354 1.1 christos ;;
355 1.1 christos *)
356 1.1 christos echo "${MACHINE}-whatever-cygwin"
357 1.1 christos ;;
358 1.1 christos esac
359 1.1 christos exit 0
360 1.1 christos ;;
361 1.1 christos
362 1.1 christos *"CRAY T3E")
363 1.1 christos echo "t3e-cray-unicosmk"; exit 0;
364 1.1 christos ;;
365 1.1 christos
366 1.1 christos *CRAY*)
367 1.1 christos echo "j90-cray-unicos"; exit 0;
368 1.1 christos ;;
369 1.1 christos
370 1.1 christos NONSTOP_KERNEL*)
371 1.1 christos echo "nsr-tandem-nsk"; exit 0;
372 1.1 christos ;;
373 1.1.1.4 christos
374 1.1.1.4 christos vxworks*)
375 1.1.1.4 christos echo "${MACHINE}-whatever-vxworks"; exit 0;
376 1.1.1.4 christos ;;
377 1.1 christos esac
378 1.1 christos
379 1.1 christos #
380 1.1 christos # Ugg. These are all we can determine by what we know about
381 1.1 christos # the output of uname. Be more creative:
382 1.1 christos #
383 1.1 christos
384 1.1 christos # Do the Apollo stuff first. Here, we just simply assume
385 1.1 christos # that the existance of the /usr/apollo directory is proof
386 1.1 christos # enough
387 1.1 christos if [ -d /usr/apollo ]; then
388 1.1 christos echo "whatever-apollo-whatever"
389 1.1 christos exit 0
390 1.1 christos fi
391 1.1 christos
392 1.1 christos # Now NeXT
393 1.1 christos ISNEXT=`hostinfo 2>/dev/null`
394 1.1 christos case "$ISNEXT" in
395 1.1 christos *'NeXT Mach 3.3'*)
396 1.1 christos echo "whatever-next-nextstep3.3"; exit 0
397 1.1 christos ;;
398 1.1 christos *NeXT*)
399 1.1 christos echo "whatever-next-nextstep"; exit 0
400 1.1 christos ;;
401 1.1 christos esac
402 1.1 christos
403 1.1 christos # At this point we gone through all the one's
404 1.1 christos # we know of: Punt
405 1.1 christos
406 1.1 christos echo "${MACHINE}-whatever-${SYSTEM}"
407 1.1 christos exit 0
408 1.1 christos ) 2>/dev/null | (
409 1.1 christos
410 1.1 christos # ---------------------------------------------------------------------------
411 1.1 christos # this is where the translation occurs into SSLeay terms
412 1.1 christos # ---------------------------------------------------------------------------
413 1.1 christos
414 1.1 christos # Only set CC if not supplied already
415 1.1.1.4 christos if [ -z "$CROSS_COMPILE$CC" ]; then
416 1.1.1.4 christos GCCVER=`sh -c "gcc -dumpversion" 2>/dev/null`
417 1.1 christos if [ "$GCCVER" != "" ]; then
418 1.1.1.4 christos # then strip off whatever prefix egcs prepends the number with...
419 1.1.1.4 christos # Hopefully, this will work for any future prefixes as well.
420 1.1.1.4 christos GCCVER=`echo $GCCVER | LC_ALL=C sed 's/^[a-zA-Z]*\-//'`
421 1.1.1.4 christos # Since gcc 3.1 gcc --version behaviour has changed. gcc -dumpversion
422 1.1.1.4 christos # does give us what we want though, so we use that. We just just the
423 1.1.1.4 christos # major and minor version numbers.
424 1.1.1.4 christos # peak single digit before and after first dot, e.g. 2.95.1 gives 29
425 1.1.1.4 christos GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'`
426 1.1 christos CC=gcc
427 1.1 christos else
428 1.1 christos CC=cc
429 1.1 christos fi
430 1.1 christos fi
431 1.1 christos GCCVER=${GCCVER:-0}
432 1.1 christos if [ "$SYSTEM" = "HP-UX" ];then
433 1.1 christos # By default gcc is a ILP32 compiler (with long long == 64).
434 1.1 christos GCC_BITS="32"
435 1.1 christos if [ $GCCVER -ge 30 ]; then
436 1.1 christos # PA64 support only came in with gcc 3.0.x.
437 1.1 christos # We check if the preprocessor symbol __LP64__ is defined...
438 1.1 christos if echo "__LP64__" | gcc -v -E -x c - 2>/dev/null | grep "^__LP64__" 2>&1 > /dev/null; then
439 1.1 christos : # __LP64__ has slipped through, it therefore is not defined
440 1.1 christos else
441 1.1 christos GCC_BITS="64"
442 1.1 christos fi
443 1.1 christos fi
444 1.1 christos fi
445 1.1 christos if [ "$SYSTEM" = "SunOS" ]; then
446 1.1 christos if [ $GCCVER -ge 30 ]; then
447 1.1 christos # 64-bit ABI isn't officially supported in gcc 3.0, but it appears
448 1.1 christos # to be working, at the very least 'make test' passes...
449 1.1 christos if gcc -v -E -x c /dev/null 2>&1 | grep __arch64__ > /dev/null; then
450 1.1 christos GCC_ARCH="-m64"
451 1.1 christos else
452 1.1 christos GCC_ARCH="-m32"
453 1.1 christos fi
454 1.1 christos fi
455 1.1 christos # check for WorkShop C, expected output is "cc: blah-blah C x.x"
456 1.1 christos CCVER=`(cc -V 2>&1) 2>/dev/null | \
457 1.1 christos egrep -e '^cc: .* C [0-9]\.[0-9]' | \
458 1.1 christos sed 's/.* C \([0-9]\)\.\([0-9]\).*/\1\2/'`
459 1.1 christos CCVER=${CCVER:-0}
460 1.1 christos if [ $MACHINE != i86pc -a $CCVER -gt 40 ]; then
461 1.1 christos CC=cc # overrides gcc!!!
462 1.1 christos if [ $CCVER -eq 50 ]; then
463 1.1 christos echo "WARNING! Detected WorkShop C 5.0. Do make sure you have"
464 1.1 christos echo " patch #107357-01 or later applied."
465 1.1 christos sleep 5
466 1.1 christos fi
467 1.1 christos fi
468 1.1 christos fi
469 1.1 christos
470 1.1 christos if [ "${SYSTEM}-${MACHINE}" = "Linux-alpha" ]; then
471 1.1 christos # check for Compaq C, expected output is "blah-blah C Vx.x"
472 1.1 christos CCCVER=`(ccc -V 2>&1) 2>/dev/null | \
473 1.1 christos egrep -e '.* C V[0-9]\.[0-9]' | \
474 1.1 christos sed 's/.* C V\([0-9]\)\.\([0-9]\).*/\1\2/'`
475 1.1 christos CCCVER=${CCCVER:-0}
476 1.1 christos if [ $CCCVER -gt 60 ]; then
477 1.1 christos CC=ccc # overrides gcc!!! well, ccc outperforms inoticeably
478 1.1 christos # only on hash routines and des, otherwise gcc (2.95)
479 1.1 christos # keeps along rather tight...
480 1.1 christos fi
481 1.1 christos fi
482 1.1 christos
483 1.1 christos if [ "${SYSTEM}" = "AIX" ]; then # favor vendor cc over gcc
484 1.1 christos (cc) 2>&1 | grep -iv "not found" > /dev/null && CC=cc
485 1.1 christos fi
486 1.1 christos
487 1.1 christos CCVER=${CCVER:-0}
488 1.1 christos
489 1.1 christos # read the output of the embedded GuessOS
490 1.1 christos read GUESSOS
491 1.1 christos
492 1.1 christos echo Operating system: $GUESSOS
493 1.1 christos
494 1.1 christos # now map the output into SSLeay terms ... really should hack into the
495 1.1 christos # script above so we end up with values in vars but that would take
496 1.1 christos # more time that I want to waste at the moment
497 1.1 christos case "$GUESSOS" in
498 1.1 christos uClinux*64*)
499 1.1 christos OUT=uClinux-dist64
500 1.1 christos ;;
501 1.1 christos uClinux*)
502 1.1 christos OUT=uClinux-dist
503 1.1 christos ;;
504 1.1 christos mips2-sgi-irix)
505 1.1 christos CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
506 1.1 christos CPU=${CPU:-0}
507 1.1 christos if [ $CPU -ge 4000 ]; then
508 1.1 christos options="$options -mips2"
509 1.1 christos fi
510 1.1 christos OUT="irix-$CC"
511 1.1 christos ;;
512 1.1 christos mips3-sgi-irix)
513 1.1 christos #CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
514 1.1 christos #CPU=${CPU:-0}
515 1.1 christos #if [ $CPU -ge 5000 ]; then
516 1.1 christos # options="$options -mips4"
517 1.1 christos #else
518 1.1 christos # options="$options -mips3"
519 1.1 christos #fi
520 1.1 christos OUT="irix-mips3-$CC"
521 1.1 christos ;;
522 1.1 christos mips4-sgi-irix64)
523 1.1 christos echo "WARNING! If you wish to build 64-bit library, then you have to"
524 1.1 christos echo " invoke './Configure irix64-mips4-$CC' *manually*."
525 1.1 christos if [ "$TEST" = "false" -a -t 1 ]; then
526 1.1 christos echo " You have about 5 seconds to press Ctrl-C to abort."
527 1.1 christos (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
528 1.1 christos fi
529 1.1 christos #CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
530 1.1 christos #CPU=${CPU:-0}
531 1.1 christos #if [ $CPU -ge 5000 ]; then
532 1.1 christos # options="$options -mips4"
533 1.1 christos #else
534 1.1 christos # options="$options -mips3"
535 1.1 christos #fi
536 1.1 christos OUT="irix-mips3-$CC"
537 1.1 christos ;;
538 1.1 christos ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;;
539 1.1 christos ppc-apple-darwin*)
540 1.1 christos ISA64=`(sysctl -n hw.optional.64bitops) 2>/dev/null`
541 1.1.1.4 christos if [ "$ISA64" = "1" -a -z "$KERNEL_BITS" ]; then
542 1.1 christos echo "WARNING! If you wish to build 64-bit library, then you have to"
543 1.1 christos echo " invoke './Configure darwin64-ppc-cc' *manually*."
544 1.1 christos if [ "$TEST" = "false" -a -t 1 ]; then
545 1.1 christos echo " You have about 5 seconds to press Ctrl-C to abort."
546 1.1 christos (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
547 1.1 christos fi
548 1.1 christos fi
549 1.1.1.4 christos if [ "$ISA64" = "1" -a "$KERNEL_BITS" = "64" ]; then
550 1.1.1.4 christos OUT="darwin64-ppc-cc"
551 1.1.1.4 christos else
552 1.1.1.4 christos OUT="darwin-ppc-cc"
553 1.1.1.4 christos fi ;;
554 1.1 christos i?86-apple-darwin*)
555 1.1 christos ISA64=`(sysctl -n hw.optional.x86_64) 2>/dev/null`
556 1.1.1.4 christos if [ "$ISA64" = "1" -a -z "$KERNEL_BITS" ]; then
557 1.1 christos echo "WARNING! If you wish to build 64-bit library, then you have to"
558 1.1 christos echo " invoke './Configure darwin64-x86_64-cc' *manually*."
559 1.1 christos if [ "$TEST" = "false" -a -t 1 ]; then
560 1.1 christos echo " You have about 5 seconds to press Ctrl-C to abort."
561 1.1 christos (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
562 1.1 christos fi
563 1.1 christos fi
564 1.1.1.4 christos if [ "$ISA64" = "1" -a "$KERNEL_BITS" = "64" ]; then
565 1.1.1.4 christos OUT="darwin64-x86_64-cc"
566 1.1.1.4 christos else
567 1.1.1.4 christos OUT="darwin-i386-cc"
568 1.1.1.4 christos fi ;;
569 1.1.1.4 christos armv6+7-*-iphoneos)
570 1.1.1.4 christos options="$options -arch%20armv6 -arch%20armv7"
571 1.1.1.4 christos OUT="iphoneos-cross" ;;
572 1.1.1.4 christos *-*-iphoneos)
573 1.1.1.4 christos options="$options -arch%20${MACHINE}"
574 1.1.1.4 christos OUT="iphoneos-cross" ;;
575 1.1 christos alpha-*-linux2)
576 1.1 christos ISA=`awk '/cpu model/{print$4;exit(0);}' /proc/cpuinfo`
577 1.1 christos case ${ISA:-generic} in
578 1.1 christos *[678]) OUT="linux-alpha+bwx-$CC" ;;
579 1.1 christos *) OUT="linux-alpha-$CC" ;;
580 1.1 christos esac
581 1.1 christos if [ "$CC" = "gcc" ]; then
582 1.1 christos case ${ISA:-generic} in
583 1.1 christos EV5|EV45) options="$options -mcpu=ev5";;
584 1.1 christos EV56|PCA56) options="$options -mcpu=ev56";;
585 1.1 christos *) options="$options -mcpu=ev6";;
586 1.1 christos esac
587 1.1 christos fi
588 1.1 christos ;;
589 1.1 christos ppc64-*-linux2)
590 1.1.1.6 spz if [ -z "$KERNEL_BITS" ]; then
591 1.1.1.6 spz echo "WARNING! If you wish to build 64-bit library, then you have to"
592 1.1.1.6 spz echo " invoke './Configure linux-ppc64' *manually*."
593 1.1.1.6 spz if [ "$TEST" = "false" -a -t 1 ]; then
594 1.1.1.6 spz echo " You have about 5 seconds to press Ctrl-C to abort."
595 1.1.1.6 spz (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
596 1.1.1.6 spz fi
597 1.1.1.6 spz fi
598 1.1.1.6 spz if [ "$KERNEL_BITS" = "64" ]; then
599 1.1.1.6 spz OUT="linux-ppc64"
600 1.1.1.6 spz else
601 1.1.1.6 spz OUT="linux-ppc"
602 1.1.1.6 spz (echo "__LP64__" | gcc -E -x c - 2>/dev/null | grep "^__LP64__" 2>&1 > /dev/null) || options="$options -m32"
603 1.1.1.6 spz fi
604 1.1.1.6 spz ;;
605 1.1.1.6 spz ppc64le-*-linux2) OUT="linux-ppc64le" ;;
606 1.1.1.6 spz ppc-*-linux2) OUT="linux-ppc" ;;
607 1.1.1.6 spz mips64*-*-linux2)
608 1.1 christos echo "WARNING! If you wish to build 64-bit library, then you have to"
609 1.1.1.6 spz echo " invoke './Configure linux64-mips64' *manually*."
610 1.1 christos if [ "$TEST" = "false" -a -t 1 ]; then
611 1.1 christos echo " You have about 5 seconds to press Ctrl-C to abort."
612 1.1 christos (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
613 1.1 christos fi
614 1.1.1.6 spz OUT="linux-mips64"
615 1.1 christos ;;
616 1.1.1.6 spz mips*-*-linux2) OUT="linux-mips32" ;;
617 1.1.1.4 christos ppc60x-*-vxworks*) OUT="vxworks-ppc60x" ;;
618 1.1.1.4 christos ppcgen-*-vxworks*) OUT="vxworks-ppcgen" ;;
619 1.1.1.4 christos pentium-*-vxworks*) OUT="vxworks-pentium" ;;
620 1.1.1.4 christos simlinux-*-vxworks*) OUT="vxworks-simlinux" ;;
621 1.1.1.4 christos mips-*-vxworks*) OUT="vxworks-mips";;
622 1.1 christos ia64-*-linux?) OUT="linux-ia64" ;;
623 1.1 christos sparc64-*-linux2)
624 1.1 christos echo "WARNING! If you *know* that your GNU C supports 64-bit/V9 ABI"
625 1.1 christos echo " and wish to build 64-bit library, then you have to"
626 1.1 christos echo " invoke './Configure linux64-sparcv9' *manually*."
627 1.1 christos if [ "$TEST" = "false" -a -t 1 ]; then
628 1.1 christos echo " You have about 5 seconds to press Ctrl-C to abort."
629 1.1 christos (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
630 1.1 christos fi
631 1.1 christos OUT="linux-sparcv9" ;;
632 1.1 christos sparc-*-linux2)
633 1.1 christos KARCH=`awk '/^type/{print$3;exit(0);}' /proc/cpuinfo`
634 1.1 christos case ${KARCH:-sun4} in
635 1.1 christos sun4u*) OUT="linux-sparcv9" ;;
636 1.1 christos sun4m) OUT="linux-sparcv8" ;;
637 1.1 christos sun4d) OUT="linux-sparcv8" ;;
638 1.1 christos *) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
639 1.1 christos esac ;;
640 1.1 christos parisc*-*-linux2)
641 1.1 christos # 64-bit builds under parisc64 linux are not supported and
642 1.1 christos # compiler is expected to generate 32-bit objects...
643 1.1 christos CPUARCH=`awk '/cpu family/{print substr($5,1,3); exit(0);}' /proc/cpuinfo`
644 1.1 christos CPUSCHEDULE=`awk '/^cpu.[ ]*: PA/{print substr($3,3); exit(0);}' /proc/cpuinfo`
645 1.1 christos
646 1.1 christos # ??TODO ?? Model transformations
647 1.1 christos # 0. CPU Architecture for the 1.1 processor has letter suffixes. We strip that off
648 1.1 christos # assuming no further arch. identification will ever be used by GCC.
649 1.1 christos # 1. I'm most concerned about whether is a 7300LC is closer to a 7100 versus a 7100LC.
650 1.1 christos # 2. The variant 64-bit processors cause concern should GCC support explicit schedulers
651 1.1 christos # for these chips in the future.
652 1.1 christos # PA7300LC -> 7100LC (1.1)
653 1.1 christos # PA8200 -> 8000 (2.0)
654 1.1 christos # PA8500 -> 8000 (2.0)
655 1.1 christos # PA8600 -> 8000 (2.0)
656 1.1 christos
657 1.1 christos CPUSCHEDULE=`echo $CPUSCHEDULE|sed -e 's/7300LC/7100LC/' -e 's/8.00/8000/'`
658 1.1 christos # Finish Model transformations
659 1.1 christos
660 1.1 christos options="$options -DB_ENDIAN -mschedule=$CPUSCHEDULE -march=$CPUARCH"
661 1.1 christos OUT="linux-generic32" ;;
662 1.1 christos armv[1-3]*-*-linux2) OUT="linux-generic32" ;;
663 1.1.1.4 christos armv[7-9]*-*-linux2) OUT="linux-armv4"; options="$options -march=armv7-a" ;;
664 1.1 christos arm*-*-linux2) OUT="linux-armv4" ;;
665 1.1.1.6 spz aarch64-*-linux2) OUT="linux-aarch64" ;;
666 1.1 christos sh*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
667 1.1 christos sh*-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
668 1.1 christos m68k*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
669 1.1 christos s390-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
670 1.1.1.4 christos s390x-*-linux2)
671 1.1.1.4 christos # To be uncommented when glibc bug is fixed, see Configure...
672 1.1.1.4 christos #if egrep -e '^features.* highgprs' /proc/cpuinfo >/dev/null ; then
673 1.1.1.4 christos # echo "WARNING! If you wish to build \"highgprs\" 32-bit library, then you"
674 1.1.1.4 christos # echo " have to invoke './Configure linux32-s390x' *manually*."
675 1.1.1.4 christos # if [ "$TEST" = "false" -a -t -1 ]; then
676 1.1.1.4 christos # echo " You have about 5 seconds to press Ctrl-C to abort."
677 1.1.1.4 christos # (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
678 1.1.1.4 christos # fi
679 1.1.1.4 christos #fi
680 1.1.1.4 christos OUT="linux64-s390x"
681 1.1.1.4 christos ;;
682 1.1 christos x86_64-*-linux?) OUT="linux-x86_64" ;;
683 1.1 christos *86-*-linux2) OUT="linux-elf"
684 1.1 christos if [ "$GCCVER" -gt 28 ]; then
685 1.1 christos if grep '^model.*Pentium' /proc/cpuinfo >/dev/null ; then
686 1.1 christos options="$options -march=pentium"
687 1.1 christos fi
688 1.1 christos if grep '^model.*Pentium Pro' /proc/cpuinfo >/dev/null ; then
689 1.1 christos options="$options -march=pentiumpro"
690 1.1 christos fi
691 1.1 christos if grep '^model.*K6' /proc/cpuinfo >/dev/null ; then
692 1.1 christos options="$options -march=k6"
693 1.1 christos fi
694 1.1 christos fi ;;
695 1.1 christos *-*-linux1) OUT="linux-aout" ;;
696 1.1 christos *-*-linux2) OUT="linux-generic32" ;;
697 1.1 christos sun4[uv]*-*-solaris2)
698 1.1 christos OUT="solaris-sparcv9-$CC"
699 1.1 christos ISA64=`(isalist) 2>/dev/null | grep sparcv9`
700 1.1.1.4 christos if [ "$ISA64" != "" -a "$KERNEL_BITS" = "" ]; then
701 1.1 christos if [ "$CC" = "cc" -a $CCVER -ge 50 ]; then
702 1.1 christos echo "WARNING! If you wish to build 64-bit library, then you have to"
703 1.1 christos echo " invoke './Configure solaris64-sparcv9-cc' *manually*."
704 1.1 christos if [ "$TEST" = "false" -a -t 1 ]; then
705 1.1 christos echo " You have about 5 seconds to press Ctrl-C to abort."
706 1.1 christos (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
707 1.1 christos fi
708 1.1 christos elif [ "$CC" = "gcc" -a "$GCC_ARCH" = "-m64" ]; then
709 1.1 christos # $GCC_ARCH denotes default ABI chosen by compiler driver
710 1.1 christos # (first one found on the $PATH). I assume that user
711 1.1 christos # expects certain consistency with the rest of his builds
712 1.1 christos # and therefore switch over to 64-bit. <appro>
713 1.1 christos OUT="solaris64-sparcv9-gcc"
714 1.1 christos echo "WARNING! If you wish to build 32-bit library, then you have to"
715 1.1 christos echo " invoke './Configure solaris-sparcv9-gcc' *manually*."
716 1.1 christos if [ "$TEST" = "false" -a -t 1 ]; then
717 1.1 christos echo " You have about 5 seconds to press Ctrl-C to abort."
718 1.1 christos (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
719 1.1 christos fi
720 1.1 christos elif [ "$GCC_ARCH" = "-m32" ]; then
721 1.1 christos echo "NOTICE! If you *know* that your GNU C supports 64-bit/V9 ABI"
722 1.1 christos echo " and wish to build 64-bit library, then you have to"
723 1.1 christos echo " invoke './Configure solaris64-sparcv9-gcc' *manually*."
724 1.1 christos if [ "$TEST" = "false" -a -t 1 ]; then
725 1.1 christos echo " You have about 5 seconds to press Ctrl-C to abort."
726 1.1 christos (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
727 1.1 christos fi
728 1.1 christos fi
729 1.1 christos fi
730 1.1.1.4 christos if [ "$ISA64" != "" -a "$KERNEL_BITS" = "64" ]; then
731 1.1.1.4 christos OUT="solaris64-sparcv9-$CC"
732 1.1.1.4 christos fi
733 1.1 christos ;;
734 1.1 christos sun4m-*-solaris2) OUT="solaris-sparcv8-$CC" ;;
735 1.1 christos sun4d-*-solaris2) OUT="solaris-sparcv8-$CC" ;;
736 1.1 christos sun4*-*-solaris2) OUT="solaris-sparcv7-$CC" ;;
737 1.1 christos *86*-*-solaris2)
738 1.1 christos ISA64=`(isalist) 2>/dev/null | grep amd64`
739 1.1.1.4 christos if [ "$ISA64" != "" -a ${KERNEL_BITS:-64} -eq 64 ]; then
740 1.1 christos OUT="solaris64-x86_64-$CC"
741 1.1 christos else
742 1.1 christos OUT="solaris-x86-$CC"
743 1.1 christos if [ `uname -r | sed -e 's/5\.//'` -lt 10 ]; then
744 1.1 christos options="$options no-sse2"
745 1.1 christos fi
746 1.1 christos fi
747 1.1 christos ;;
748 1.1 christos *-*-sunos4) OUT="sunos-$CC" ;;
749 1.1 christos
750 1.1 christos *86*-*-bsdi4) OUT="BSD-x86-elf"; options="$options no-sse2 -ldl" ;;
751 1.1 christos alpha*-*-*bsd*) OUT="BSD-generic64"; options="$options -DL_ENDIAN" ;;
752 1.1 christos powerpc64-*-*bsd*) OUT="BSD-generic64"; options="$options -DB_ENDIAN" ;;
753 1.1 christos sparc64-*-*bsd*) OUT="BSD-sparc64" ;;
754 1.1 christos ia64-*-*bsd*) OUT="BSD-ia64" ;;
755 1.1 christos amd64-*-*bsd*) OUT="BSD-x86_64" ;;
756 1.1 christos *86*-*-*bsd*) # mimic ld behaviour when it's looking for libc...
757 1.1 christos if [ -L /usr/lib/libc.so ]; then # [Free|Net]BSD
758 1.1 christos libc=/usr/lib/libc.so
759 1.1 christos else # OpenBSD
760 1.1 christos # ld searches for highest libc.so.* and so do we
761 1.1.1.5 christos libc=`(ls /usr/lib/libc.so.* /lib/libc.so.* | tail -1) 2>/dev/null`
762 1.1 christos fi
763 1.1 christos case "`(file -L $libc) 2>/dev/null`" in
764 1.1 christos *ELF*) OUT="BSD-x86-elf" ;;
765 1.1 christos *) OUT="BSD-x86"; options="$options no-sse2" ;;
766 1.1 christos esac ;;
767 1.1 christos *-*-*bsd*) OUT="BSD-generic32" ;;
768 1.1 christos
769 1.1 christos *-*-osf) OUT="osf1-alpha-cc" ;;
770 1.1 christos *-*-tru64) OUT="tru64-alpha-cc" ;;
771 1.1 christos *-*-[Uu]nix[Ww]are7)
772 1.1 christos if [ "$CC" = "gcc" ]; then
773 1.1 christos OUT="unixware-7-gcc" ; options="$options no-sse2"
774 1.1 christos else
775 1.1 christos OUT="unixware-7" ; options="$options no-sse2 -D__i386__"
776 1.1 christos fi
777 1.1 christos ;;
778 1.1 christos *-*-[Uu]nix[Ww]are20*) OUT="unixware-2.0"; options="$options no-sse2 no-sha512" ;;
779 1.1 christos *-*-[Uu]nix[Ww]are21*) OUT="unixware-2.1"; options="$options no-sse2 no-sha512" ;;
780 1.1 christos *-*-vos)
781 1.1 christos options="$options no-threads no-shared no-asm no-dso"
782 1.1 christos EXE=".pm"
783 1.1 christos OUT="vos-$CC" ;;
784 1.1 christos BS2000-siemens-sysv4) OUT="BS2000-OSD" ;;
785 1.1 christos RM*-siemens-sysv4) OUT="ReliantUNIX" ;;
786 1.1 christos *-siemens-sysv4) OUT="SINIX" ;;
787 1.1 christos *-hpux1*)
788 1.1 christos if [ $CC = "gcc" -a $GCC_BITS = "64" ]; then
789 1.1 christos OUT="hpux64-parisc2-gcc"
790 1.1 christos fi
791 1.1.1.4 christos [ "$KERNEL_BITS" ] || KERNEL_BITS=`(getconf KERNEL_BITS) 2>/dev/null`
792 1.1 christos KERNEL_BITS=${KERNEL_BITS:-32}
793 1.1 christos CPU_VERSION=`(getconf CPU_VERSION) 2>/dev/null`
794 1.1 christos CPU_VERSION=${CPU_VERSION:-0}
795 1.1 christos # See <sys/unistd.h> for further info on CPU_VERSION.
796 1.1 christos if [ $CPU_VERSION -ge 768 ]; then # IA-64 CPU
797 1.1.1.4 christos if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then
798 1.1.1.4 christos OUT="hpux64-ia64-cc"
799 1.1.1.4 christos else
800 1.1.1.4 christos OUT="hpux-ia64-cc"
801 1.1.1.4 christos fi
802 1.1 christos elif [ $CPU_VERSION -ge 532 ]; then # PA-RISC 2.x CPU
803 1.1 christos OUT=${OUT:-"hpux-parisc2-${CC}"}
804 1.1 christos if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then
805 1.1 christos echo "WARNING! If you wish to build 64-bit library then you have to"
806 1.1 christos echo " invoke './Configure hpux64-parisc2-cc' *manually*."
807 1.1 christos if [ "$TEST" = "false" -a -t 1 ]; then
808 1.1 christos echo " You have about 5 seconds to press Ctrl-C to abort."
809 1.1 christos (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
810 1.1 christos fi
811 1.1 christos fi
812 1.1 christos elif [ $CPU_VERSION -ge 528 ]; then # PA-RISC 1.1+ CPU
813 1.1 christos OUT="hpux-parisc-${CC}"
814 1.1 christos elif [ $CPU_VERSION -ge 523 ]; then # PA-RISC 1.0 CPU
815 1.1 christos OUT="hpux-parisc-${CC}"
816 1.1 christos else # Motorola(?) CPU
817 1.1 christos OUT="hpux-$CC"
818 1.1 christos fi
819 1.1 christos options="$options -D_REENTRANT" ;;
820 1.1 christos *-hpux) OUT="hpux-parisc-$CC" ;;
821 1.1 christos *-aix)
822 1.1.1.4 christos [ "$KERNEL_BITS" ] || KERNEL_BITS=`(getconf KERNEL_BITMODE) 2>/dev/null`
823 1.1 christos KERNEL_BITS=${KERNEL_BITS:-32}
824 1.1 christos OBJECT_MODE=${OBJECT_MODE:-32}
825 1.1 christos if [ "$CC" = "gcc" ]; then
826 1.1 christos OUT="aix-gcc"
827 1.1.1.3 spz if [ $OBJECT_MODE -eq 64 ]; then
828 1.1.1.3 spz echo 'Your $OBJECT_MODE was found to be set to 64'
829 1.1.1.3 spz OUT="aix64-gcc"
830 1.1.1.3 spz fi
831 1.1 christos elif [ $OBJECT_MODE -eq 64 ]; then
832 1.1 christos echo 'Your $OBJECT_MODE was found to be set to 64'
833 1.1 christos OUT="aix64-cc"
834 1.1 christos else
835 1.1 christos OUT="aix-cc"
836 1.1 christos if [ $KERNEL_BITS -eq 64 ]; then
837 1.1 christos echo "WARNING! If you wish to build 64-bit kit, then you have to"
838 1.1 christos echo " invoke './Configure aix64-cc' *manually*."
839 1.1 christos if [ "$TEST" = "false" -a -t 1 ]; then
840 1.1 christos echo " You have ~5 seconds to press Ctrl-C to abort."
841 1.1 christos (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
842 1.1 christos fi
843 1.1 christos fi
844 1.1 christos fi
845 1.1 christos if (lsattr -E -O -l `lsdev -c processor|awk '{print$1;exit}'` | grep -i powerpc) >/dev/null 2>&1; then
846 1.1 christos : # this applies even to Power3 and later, as they return PowerPC_POWER[345]
847 1.1 christos else
848 1.1 christos options="$options no-asm"
849 1.1 christos fi
850 1.1 christos ;;
851 1.1 christos # these are all covered by the catchall below
852 1.1 christos # *-dgux) OUT="dgux" ;;
853 1.1 christos mips-sony-newsos4) OUT="newsos4-gcc" ;;
854 1.1 christos *-*-cygwin_pre1.3) OUT="Cygwin-pre1.3" ;;
855 1.1.1.6 spz i[3456]86-*-cygwin) OUT="Cygwin" ;;
856 1.1.1.6 spz *-*-cygwin) OUT="Cygwin-${MACHINE}" ;;
857 1.1 christos t3e-cray-unicosmk) OUT="cray-t3e" ;;
858 1.1 christos j90-cray-unicos) OUT="cray-j90" ;;
859 1.1 christos nsr-tandem-nsk) OUT="tandem-c89" ;;
860 1.1 christos beos-*) OUT="$GUESSOS" ;;
861 1.1 christos x86pc-*-qnx6) OUT="QNX6-i386" ;;
862 1.1 christos *-*-qnx6) OUT="QNX6" ;;
863 1.1.1.4 christos x86-*-android|i?86-*-android) OUT="android-x86" ;;
864 1.1.1.4 christos armv[7-9]*-*-android) OUT="android-armv7" ;;
865 1.1 christos *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
866 1.1 christos esac
867 1.1 christos
868 1.1 christos # NB: This atalla support has been superceded by the ENGINE support
869 1.1 christos # That contains its own header and definitions anyway. Support can
870 1.1 christos # be enabled or disabled on any supported platform without external
871 1.1 christos # headers, eg. by adding the "hw-atalla" switch to ./config or
872 1.1 christos # perl Configure
873 1.1 christos #
874 1.1 christos # See whether we can compile Atalla support
875 1.1 christos #if [ -f /usr/include/atasi.h ]
876 1.1 christos #then
877 1.1 christos # options="$options -DATALLA"
878 1.1 christos #fi
879 1.1 christos
880 1.1.1.4 christos if expr "$options" : '.*no\-asm' > /dev/null; then :; else
881 1.1.1.4 christos sh -c "$CROSS_COMPILE${CC:-gcc} -Wa,--help -c -o /tmp/null.$$.o -x assembler /dev/null && rm /tmp/null.$$.o" 2>&1 | \
882 1.1.1.4 christos grep \\--noexecstack >/dev/null && \
883 1.1.1.4 christos options="$options -Wa,--noexecstack"
884 1.1.1.4 christos fi
885 1.1.1.4 christos
886 1.1 christos # gcc < 2.8 does not support -march=ultrasparc
887 1.1 christos if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
888 1.1 christos then
889 1.1 christos echo "WARNING! Falling down to 'solaris-sparcv8-gcc'."
890 1.1 christos echo " Upgrade to gcc-2.8 or later."
891 1.1 christos sleep 5
892 1.1 christos OUT=solaris-sparcv8-gcc
893 1.1 christos fi
894 1.1 christos if [ "$OUT" = "linux-sparcv9" -a $GCCVER -lt 28 ]
895 1.1 christos then
896 1.1 christos echo "WARNING! Falling down to 'linux-sparcv8'."
897 1.1 christos echo " Upgrade to gcc-2.8 or later."
898 1.1 christos sleep 5
899 1.1 christos OUT=linux-sparcv8
900 1.1 christos fi
901 1.1 christos
902 1.1 christos case "$GUESSOS" in
903 1.1 christos i386-*) options="$options 386" ;;
904 1.1 christos esac
905 1.1 christos
906 1.1 christos for i in aes bf camellia cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 ripemd rsa seed sha
907 1.1 christos do
908 1.1 christos if [ ! -d crypto/$i ]
909 1.1 christos then
910 1.1 christos options="$options no-$i"
911 1.1 christos fi
912 1.1 christos done
913 1.1 christos
914 1.1 christos # Discover Kerberos 5 (since it's still a prototype, we don't
915 1.1 christos # do any guesses yet, that's why this section is commented away.
916 1.1 christos #if [ -d /usr/kerberos ]; then
917 1.1 christos # krb5_dir=/usr/kerberos
918 1.1 christos # if [ \( -f $krb5_dir/lib/libgssapi_krb5.a -o -f $krb5_dir/lib/libgssapi_krb5.so* \)\
919 1.1 christos # -a \( -f $krb5_dir/lib/libkrb5.a -o -f $krb5_dir/lib/libkrb5.so* \)\
920 1.1 christos # -a \( -f $krb5_dir/lib/libcom_err.a -o -f $krb5_dir/lib/libcom_err.so* \)\
921 1.1 christos # -a \( -f $krb5_dir/lib/libk5crypto.a -o -f $krb5_dir/lib/libk5crypto.so* \)\
922 1.1 christos # -a \( -f $krb5_dir/include/krb5.h \) ]; then
923 1.1 christos # options="$options --with-krb5-flavor=MIT"
924 1.1 christos # fi
925 1.1 christos #elif [ -d /usr/heimdal ]; then
926 1.1 christos # krb5_dir=/usr/heimdal
927 1.1 christos # if [ \( -f $krb5_dir/lib/libgssapi.a -o -f $krb5_dir/lib/libgssapi.so* \)\
928 1.1 christos # -a \( -f $krb5_dir/lib/libkrb5.a -o -f $krb5_dir/lib/libkrb5.so* \)\
929 1.1 christos # -a \( -f $krb5_dir/lib/libcom_err.a -o -f $krb5_dir/lib/libcom_err.so* \)\
930 1.1 christos # -a \( -f $krb5_dir/include/krb5.h \) ]; then
931 1.1 christos # options="$options --with-krb5-flavor=Heimdal"
932 1.1 christos # fi
933 1.1 christos #fi
934 1.1 christos
935 1.1 christos if [ -z "$OUT" ]; then
936 1.1 christos OUT="$CC"
937 1.1 christos fi
938 1.1 christos
939 1.1 christos if [ ".$PERL" = . ] ; then
940 1.1 christos for i in . `echo $PATH | sed 's/:/ /g'`; do
941 1.1 christos if [ -f "$i/perl5$EXE" ] ; then
942 1.1 christos PERL="$i/perl5$EXE"
943 1.1 christos break;
944 1.1 christos fi;
945 1.1 christos done
946 1.1 christos fi
947 1.1 christos
948 1.1 christos if [ ".$PERL" = . ] ; then
949 1.1 christos for i in . `echo $PATH | sed 's/:/ /g'`; do
950 1.1 christos if [ -f "$i/perl$EXE" ] ; then
951 1.1 christos if "$i/perl$EXE" -e 'exit($]<5.0)'; then
952 1.1 christos PERL="$i/perl$EXE"
953 1.1 christos break;
954 1.1 christos fi;
955 1.1 christos fi;
956 1.1 christos done
957 1.1 christos fi
958 1.1 christos
959 1.1 christos if [ ".$PERL" = . ] ; then
960 1.1 christos echo "You need Perl 5."
961 1.1 christos exit 1
962 1.1 christos fi
963 1.1 christos
964 1.1 christos # run Configure to check to see if we need to specify the
965 1.1 christos # compiler for the platform ... in which case we add it on
966 1.1 christos # the end ... otherwise we leave it off
967 1.1 christos
968 1.1 christos $PERL ./Configure LIST | grep "$OUT-$CC" > /dev/null
969 1.1 christos if [ $? = "0" ]; then
970 1.1 christos OUT="$OUT-$CC"
971 1.1 christos fi
972 1.1 christos
973 1.1 christos OUT="$PREFIX$OUT"
974 1.1 christos
975 1.1 christos $PERL ./Configure LIST | grep "$OUT" > /dev/null
976 1.1 christos if [ $? = "0" ]; then
977 1.1 christos echo Configuring for $OUT
978 1.1 christos
979 1.1 christos if [ "$TEST" = "true" ]; then
980 1.1 christos echo $PERL ./Configure $OUT $options
981 1.1 christos else
982 1.1 christos $PERL ./Configure $OUT $options
983 1.1 christos fi
984 1.1 christos else
985 1.1 christos echo "This system ($OUT) is not supported. See file INSTALL for details."
986 1.1 christos fi
987 1.1 christos )
988