* toplev.c: Fix broken checkin of 2003-12-30, again.
[official-gcc.git] / config.guess
blobafcb19c1d7eb77d502350a8226c41b078976d966
1 #! /bin/sh
2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 # 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
6 timestamp='2003-10-16'
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Originally written by Per Bothner <per@bothner.com>.
28 # Please send patches to <config-patches@gnu.org>. Submit a context
29 # diff and a properly formatted ChangeLog entry.
31 # This script attempts to guess a canonical system name similar to
32 # config.sub. If it succeeds, it prints the system name on stdout, and
33 # exits with 0. Otherwise, it exits with 1.
35 # The plan is that this can be called by configure scripts if you
36 # don't specify an explicit build system type.
38 me=`echo "$0" | sed -e 's,.*/,,'`
40 usage="\
41 Usage: $0 [OPTION]
43 Output the configuration name of the system \`$me' is run on.
45 Operation modes:
46 -h, --help print this help, then exit
47 -t, --time-stamp print date of last modification, then exit
48 -v, --version print version number, then exit
50 Report bugs and patches to <config-patches@gnu.org>."
52 version="\
53 GNU config.guess ($timestamp)
55 Originally written by Per Bothner.
56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
57 Free Software Foundation, Inc.
59 This is free software; see the source for copying conditions. There is NO
60 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
62 help="
63 Try \`$me --help' for more information."
65 # Parse command line
66 while test $# -gt 0 ; do
67 case $1 in
68 --time-stamp | --time* | -t )
69 echo "$timestamp" ; exit 0 ;;
70 --version | -v )
71 echo "$version" ; exit 0 ;;
72 --help | --h* | -h )
73 echo "$usage"; exit 0 ;;
74 -- ) # Stop option processing
75 shift; break ;;
76 - ) # Use stdin as input.
77 break ;;
78 -* )
79 echo "$me: invalid option $1$help" >&2
80 exit 1 ;;
81 * )
82 break ;;
83 esac
84 done
86 if test $# != 0; then
87 echo "$me: too many arguments$help" >&2
88 exit 1
91 trap 'exit 1' 1 2 15
93 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
94 # compiler to aid in system detection is discouraged as it requires
95 # temporary files to be created and, as you can see below, it is a
96 # headache to deal with in a portable fashion.
98 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
99 # use `HOST_CC' if defined, but it is deprecated.
101 # Portable tmp directory creation inspired by the Autoconf team.
103 set_cc_for_build='
104 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
105 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
106 : ${TMPDIR=/tmp} ;
107 { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
108 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
109 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
110 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
111 dummy=$tmp/dummy ;
112 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
113 case $CC_FOR_BUILD,$HOST_CC,$CC in
114 ,,) echo "int x;" > $dummy.c ;
115 for c in cc gcc c89 c99 ; do
116 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
117 CC_FOR_BUILD="$c"; break ;
118 fi ;
119 done ;
120 if test x"$CC_FOR_BUILD" = x ; then
121 CC_FOR_BUILD=no_compiler_found ;
124 ,,*) CC_FOR_BUILD=$CC ;;
125 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
126 esac ;'
128 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
129 # (ghazi@noc.rutgers.edu 1994-08-24)
130 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
131 PATH=$PATH:/.attbin ; export PATH
134 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
135 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
136 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
137 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
139 # Note: order is significant - the case branches are not exclusive.
141 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
142 *:NetBSD:*:*)
143 # NetBSD (nbsd) targets should (where applicable) match one or
144 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
145 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
146 # switched to ELF, *-*-netbsd* would select the old
147 # object file format. This provides both forward
148 # compatibility and a consistent mechanism for selecting the
149 # object file format.
151 # Note: NetBSD doesn't particularly care about the vendor
152 # portion of the name. We always set it to "unknown".
153 sysctl="sysctl -n hw.machine_arch"
154 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
155 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
156 case "${UNAME_MACHINE_ARCH}" in
157 armeb) machine=armeb-unknown ;;
158 arm*) machine=arm-unknown ;;
159 sh3el) machine=shl-unknown ;;
160 sh3eb) machine=sh-unknown ;;
161 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
162 esac
163 # The Operating System including object format, if it has switched
164 # to ELF recently, or will in the future.
165 case "${UNAME_MACHINE_ARCH}" in
166 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
167 eval $set_cc_for_build
168 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
169 | grep __ELF__ >/dev/null
170 then
171 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
172 # Return netbsd for either. FIX?
173 os=netbsd
174 else
175 os=netbsdelf
179 os=netbsd
181 esac
182 # The OS release
183 # Debian GNU/NetBSD machines have a different userland, and
184 # thus, need a distinct triplet. However, they do not need
185 # kernel version information, so it can be replaced with a
186 # suitable tag, in the style of linux-gnu.
187 case "${UNAME_VERSION}" in
188 Debian*)
189 release='-gnu'
192 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
194 esac
195 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
196 # contains redundant information, the shorter form:
197 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
198 echo "${machine}-${os}${release}"
199 exit 0 ;;
200 amiga:OpenBSD:*:*)
201 echo m68k-unknown-openbsd${UNAME_RELEASE}
202 exit 0 ;;
203 arc:OpenBSD:*:*)
204 echo mipsel-unknown-openbsd${UNAME_RELEASE}
205 exit 0 ;;
206 hp300:OpenBSD:*:*)
207 echo m68k-unknown-openbsd${UNAME_RELEASE}
208 exit 0 ;;
209 mac68k:OpenBSD:*:*)
210 echo m68k-unknown-openbsd${UNAME_RELEASE}
211 exit 0 ;;
212 macppc:OpenBSD:*:*)
213 echo powerpc-unknown-openbsd${UNAME_RELEASE}
214 exit 0 ;;
215 mvme68k:OpenBSD:*:*)
216 echo m68k-unknown-openbsd${UNAME_RELEASE}
217 exit 0 ;;
218 mvme88k:OpenBSD:*:*)
219 echo m88k-unknown-openbsd${UNAME_RELEASE}
220 exit 0 ;;
221 mvmeppc:OpenBSD:*:*)
222 echo powerpc-unknown-openbsd${UNAME_RELEASE}
223 exit 0 ;;
224 pmax:OpenBSD:*:*)
225 echo mipsel-unknown-openbsd${UNAME_RELEASE}
226 exit 0 ;;
227 sgi:OpenBSD:*:*)
228 echo mipseb-unknown-openbsd${UNAME_RELEASE}
229 exit 0 ;;
230 sun3:OpenBSD:*:*)
231 echo m68k-unknown-openbsd${UNAME_RELEASE}
232 exit 0 ;;
233 wgrisc:OpenBSD:*:*)
234 echo mipsel-unknown-openbsd${UNAME_RELEASE}
235 exit 0 ;;
236 *:OpenBSD:*:*)
237 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
238 exit 0 ;;
239 alpha:OSF1:*:*)
240 if test $UNAME_RELEASE = "V4.0"; then
241 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
243 # According to Compaq, /usr/sbin/psrinfo has been available on
244 # OSF/1 and Tru64 systems produced since 1995. I hope that
245 # covers most systems running today. This code pipes the CPU
246 # types through head -n 1, so we only detect the type of CPU 0.
247 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
248 case "$ALPHA_CPU_TYPE" in
249 "EV4 (21064)")
250 UNAME_MACHINE="alpha" ;;
251 "EV4.5 (21064)")
252 UNAME_MACHINE="alpha" ;;
253 "LCA4 (21066/21068)")
254 UNAME_MACHINE="alpha" ;;
255 "EV5 (21164)")
256 UNAME_MACHINE="alphaev5" ;;
257 "EV5.6 (21164A)")
258 UNAME_MACHINE="alphaev56" ;;
259 "EV5.6 (21164PC)")
260 UNAME_MACHINE="alphapca56" ;;
261 "EV5.7 (21164PC)")
262 UNAME_MACHINE="alphapca57" ;;
263 "EV6 (21264)")
264 UNAME_MACHINE="alphaev6" ;;
265 "EV6.7 (21264A)")
266 UNAME_MACHINE="alphaev67" ;;
267 "EV6.8CB (21264C)")
268 UNAME_MACHINE="alphaev68" ;;
269 "EV6.8AL (21264B)")
270 UNAME_MACHINE="alphaev68" ;;
271 "EV6.8CX (21264D)")
272 UNAME_MACHINE="alphaev68" ;;
273 "EV6.9A (21264/EV69A)")
274 UNAME_MACHINE="alphaev69" ;;
275 "EV7 (21364)")
276 UNAME_MACHINE="alphaev7" ;;
277 "EV7.9 (21364A)")
278 UNAME_MACHINE="alphaev79" ;;
279 esac
280 # A Vn.n version is a released version.
281 # A Tn.n version is a released field test version.
282 # A Xn.n version is an unreleased experimental baselevel.
283 # 1.2 uses "1.2" for uname -r.
284 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
285 exit 0 ;;
286 Alpha*:OpenVMS:*:*)
287 echo alpha-hp-vms
288 exit 0 ;;
289 Alpha\ *:Windows_NT*:*)
290 # How do we know it's Interix rather than the generic POSIX subsystem?
291 # Should we change UNAME_MACHINE based on the output of uname instead
292 # of the specific Alpha model?
293 echo alpha-pc-interix
294 exit 0 ;;
295 21064:Windows_NT:50:3)
296 echo alpha-dec-winnt3.5
297 exit 0 ;;
298 Amiga*:UNIX_System_V:4.0:*)
299 echo m68k-unknown-sysv4
300 exit 0;;
301 *:[Aa]miga[Oo][Ss]:*:*)
302 echo ${UNAME_MACHINE}-unknown-amigaos
303 exit 0 ;;
304 *:[Mm]orph[Oo][Ss]:*:*)
305 echo ${UNAME_MACHINE}-unknown-morphos
306 exit 0 ;;
307 *:OS/390:*:*)
308 echo i370-ibm-openedition
309 exit 0 ;;
310 *:OS400:*:*)
311 echo powerpc-ibm-os400
312 exit 0 ;;
313 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
314 echo arm-acorn-riscix${UNAME_RELEASE}
315 exit 0;;
316 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
317 echo hppa1.1-hitachi-hiuxmpp
318 exit 0;;
319 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
320 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
321 if test "`(/bin/universe) 2>/dev/null`" = att ; then
322 echo pyramid-pyramid-sysv3
323 else
324 echo pyramid-pyramid-bsd
326 exit 0 ;;
327 NILE*:*:*:dcosx)
328 echo pyramid-pyramid-svr4
329 exit 0 ;;
330 DRS?6000:unix:4.0:6*)
331 echo sparc-icl-nx6
332 exit 0 ;;
333 DRS?6000:UNIX_SV:4.2*:7*)
334 case `/usr/bin/uname -p` in
335 sparc) echo sparc-icl-nx7 && exit 0 ;;
336 esac ;;
337 sun4H:SunOS:5.*:*)
338 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
339 exit 0 ;;
340 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
341 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
342 exit 0 ;;
343 i86pc:SunOS:5.*:*)
344 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
345 exit 0 ;;
346 sun4*:SunOS:6*:*)
347 # According to config.sub, this is the proper way to canonicalize
348 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
349 # it's likely to be more like Solaris than SunOS4.
350 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
351 exit 0 ;;
352 sun4*:SunOS:*:*)
353 case "`/usr/bin/arch -k`" in
354 Series*|S4*)
355 UNAME_RELEASE=`uname -v`
357 esac
358 # Japanese Language versions have a version number like `4.1.3-JL'.
359 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
360 exit 0 ;;
361 sun3*:SunOS:*:*)
362 echo m68k-sun-sunos${UNAME_RELEASE}
363 exit 0 ;;
364 sun*:*:4.2BSD:*)
365 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
366 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
367 case "`/bin/arch`" in
368 sun3)
369 echo m68k-sun-sunos${UNAME_RELEASE}
371 sun4)
372 echo sparc-sun-sunos${UNAME_RELEASE}
374 esac
375 exit 0 ;;
376 aushp:SunOS:*:*)
377 echo sparc-auspex-sunos${UNAME_RELEASE}
378 exit 0 ;;
379 # The situation for MiNT is a little confusing. The machine name
380 # can be virtually everything (everything which is not
381 # "atarist" or "atariste" at least should have a processor
382 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
383 # to the lowercase version "mint" (or "freemint"). Finally
384 # the system name "TOS" denotes a system which is actually not
385 # MiNT. But MiNT is downward compatible to TOS, so this should
386 # be no problem.
387 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
388 echo m68k-atari-mint${UNAME_RELEASE}
389 exit 0 ;;
390 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
391 echo m68k-atari-mint${UNAME_RELEASE}
392 exit 0 ;;
393 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
394 echo m68k-atari-mint${UNAME_RELEASE}
395 exit 0 ;;
396 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
397 echo m68k-milan-mint${UNAME_RELEASE}
398 exit 0 ;;
399 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
400 echo m68k-hades-mint${UNAME_RELEASE}
401 exit 0 ;;
402 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
403 echo m68k-unknown-mint${UNAME_RELEASE}
404 exit 0 ;;
405 powerpc:machten:*:*)
406 echo powerpc-apple-machten${UNAME_RELEASE}
407 exit 0 ;;
408 RISC*:Mach:*:*)
409 echo mips-dec-mach_bsd4.3
410 exit 0 ;;
411 RISC*:ULTRIX:*:*)
412 echo mips-dec-ultrix${UNAME_RELEASE}
413 exit 0 ;;
414 VAX*:ULTRIX*:*:*)
415 echo vax-dec-ultrix${UNAME_RELEASE}
416 exit 0 ;;
417 2020:CLIX:*:* | 2430:CLIX:*:*)
418 echo clipper-intergraph-clix${UNAME_RELEASE}
419 exit 0 ;;
420 mips:*:*:UMIPS | mips:*:*:RISCos)
421 eval $set_cc_for_build
422 sed 's/^ //' << EOF >$dummy.c
423 #ifdef __cplusplus
424 #include <stdio.h> /* for printf() prototype */
425 int main (int argc, char *argv[]) {
426 #else
427 int main (argc, argv) int argc; char *argv[]; {
428 #endif
429 #if defined (host_mips) && defined (MIPSEB)
430 #if defined (SYSTYPE_SYSV)
431 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
432 #endif
433 #if defined (SYSTYPE_SVR4)
434 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
435 #endif
436 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
437 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
438 #endif
439 #endif
440 exit (-1);
443 $CC_FOR_BUILD -o $dummy $dummy.c \
444 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
445 && exit 0
446 echo mips-mips-riscos${UNAME_RELEASE}
447 exit 0 ;;
448 Motorola:PowerMAX_OS:*:*)
449 echo powerpc-motorola-powermax
450 exit 0 ;;
451 Motorola:*:4.3:PL8-*)
452 echo powerpc-harris-powermax
453 exit 0 ;;
454 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
455 echo powerpc-harris-powermax
456 exit 0 ;;
457 Night_Hawk:Power_UNIX:*:*)
458 echo powerpc-harris-powerunix
459 exit 0 ;;
460 m88k:CX/UX:7*:*)
461 echo m88k-harris-cxux7
462 exit 0 ;;
463 m88k:*:4*:R4*)
464 echo m88k-motorola-sysv4
465 exit 0 ;;
466 m88k:*:3*:R3*)
467 echo m88k-motorola-sysv3
468 exit 0 ;;
469 AViiON:dgux:*:*)
470 # DG/UX returns AViiON for all architectures
471 UNAME_PROCESSOR=`/usr/bin/uname -p`
472 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
473 then
474 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
475 [ ${TARGET_BINARY_INTERFACE}x = x ]
476 then
477 echo m88k-dg-dgux${UNAME_RELEASE}
478 else
479 echo m88k-dg-dguxbcs${UNAME_RELEASE}
481 else
482 echo i586-dg-dgux${UNAME_RELEASE}
484 exit 0 ;;
485 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
486 echo m88k-dolphin-sysv3
487 exit 0 ;;
488 M88*:*:R3*:*)
489 # Delta 88k system running SVR3
490 echo m88k-motorola-sysv3
491 exit 0 ;;
492 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
493 echo m88k-tektronix-sysv3
494 exit 0 ;;
495 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
496 echo m68k-tektronix-bsd
497 exit 0 ;;
498 *:IRIX*:*:*)
499 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
500 exit 0 ;;
501 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
502 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
503 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
504 i*86:AIX:*:*)
505 echo i386-ibm-aix
506 exit 0 ;;
507 ia64:AIX:*:*)
508 if [ -x /usr/bin/oslevel ] ; then
509 IBM_REV=`/usr/bin/oslevel`
510 else
511 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
513 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
514 exit 0 ;;
515 *:AIX:2:3)
516 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
517 eval $set_cc_for_build
518 sed 's/^ //' << EOF >$dummy.c
519 #include <sys/systemcfg.h>
521 main()
523 if (!__power_pc())
524 exit(1);
525 puts("powerpc-ibm-aix3.2.5");
526 exit(0);
529 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
530 echo rs6000-ibm-aix3.2.5
531 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
532 echo rs6000-ibm-aix3.2.4
533 else
534 echo rs6000-ibm-aix3.2
536 exit 0 ;;
537 *:AIX:*:[45])
538 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
539 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
540 IBM_ARCH=rs6000
541 else
542 IBM_ARCH=powerpc
544 if [ -x /usr/bin/oslevel ] ; then
545 IBM_REV=`/usr/bin/oslevel`
546 else
547 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
549 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
550 exit 0 ;;
551 *:AIX:*:*)
552 echo rs6000-ibm-aix
553 exit 0 ;;
554 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
555 echo romp-ibm-bsd4.4
556 exit 0 ;;
557 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
558 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
559 exit 0 ;; # report: romp-ibm BSD 4.3
560 *:BOSX:*:*)
561 echo rs6000-bull-bosx
562 exit 0 ;;
563 DPX/2?00:B.O.S.:*:*)
564 echo m68k-bull-sysv3
565 exit 0 ;;
566 9000/[34]??:4.3bsd:1.*:*)
567 echo m68k-hp-bsd
568 exit 0 ;;
569 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
570 echo m68k-hp-bsd4.4
571 exit 0 ;;
572 9000/[34678]??:HP-UX:*:*)
573 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
574 case "${UNAME_MACHINE}" in
575 9000/31? ) HP_ARCH=m68000 ;;
576 9000/[34]?? ) HP_ARCH=m68k ;;
577 9000/[678][0-9][0-9])
578 if [ -x /usr/bin/getconf ]; then
579 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
580 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
581 case "${sc_cpu_version}" in
582 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
583 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
584 532) # CPU_PA_RISC2_0
585 case "${sc_kernel_bits}" in
586 32) HP_ARCH="hppa2.0n" ;;
587 64) HP_ARCH="hppa2.0w" ;;
588 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
589 esac ;;
590 esac
592 if [ "${HP_ARCH}" = "" ]; then
593 eval $set_cc_for_build
594 sed 's/^ //' << EOF >$dummy.c
596 #define _HPUX_SOURCE
597 #include <stdlib.h>
598 #include <unistd.h>
600 int main ()
602 #if defined(_SC_KERNEL_BITS)
603 long bits = sysconf(_SC_KERNEL_BITS);
604 #endif
605 long cpu = sysconf (_SC_CPU_VERSION);
607 switch (cpu)
609 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
610 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
611 case CPU_PA_RISC2_0:
612 #if defined(_SC_KERNEL_BITS)
613 switch (bits)
615 case 64: puts ("hppa2.0w"); break;
616 case 32: puts ("hppa2.0n"); break;
617 default: puts ("hppa2.0"); break;
618 } break;
619 #else /* !defined(_SC_KERNEL_BITS) */
620 puts ("hppa2.0"); break;
621 #endif
622 default: puts ("hppa1.0"); break;
624 exit (0);
627 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
628 test -z "$HP_ARCH" && HP_ARCH=hppa
629 fi ;;
630 esac
631 if [ ${HP_ARCH} = "hppa2.0w" ]
632 then
633 # avoid double evaluation of $set_cc_for_build
634 test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
635 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
636 then
637 HP_ARCH="hppa2.0w"
638 else
639 HP_ARCH="hppa64"
642 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
643 exit 0 ;;
644 ia64:HP-UX:*:*)
645 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
646 echo ia64-hp-hpux${HPUX_REV}
647 exit 0 ;;
648 3050*:HI-UX:*:*)
649 eval $set_cc_for_build
650 sed 's/^ //' << EOF >$dummy.c
651 #include <unistd.h>
653 main ()
655 long cpu = sysconf (_SC_CPU_VERSION);
656 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
657 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
658 results, however. */
659 if (CPU_IS_PA_RISC (cpu))
661 switch (cpu)
663 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
664 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
665 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
666 default: puts ("hppa-hitachi-hiuxwe2"); break;
669 else if (CPU_IS_HP_MC68K (cpu))
670 puts ("m68k-hitachi-hiuxwe2");
671 else puts ("unknown-hitachi-hiuxwe2");
672 exit (0);
675 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
676 echo unknown-hitachi-hiuxwe2
677 exit 0 ;;
678 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
679 echo hppa1.1-hp-bsd
680 exit 0 ;;
681 9000/8??:4.3bsd:*:*)
682 echo hppa1.0-hp-bsd
683 exit 0 ;;
684 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
685 echo hppa1.0-hp-mpeix
686 exit 0 ;;
687 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
688 echo hppa1.1-hp-osf
689 exit 0 ;;
690 hp8??:OSF1:*:*)
691 echo hppa1.0-hp-osf
692 exit 0 ;;
693 i*86:OSF1:*:*)
694 if [ -x /usr/sbin/sysversion ] ; then
695 echo ${UNAME_MACHINE}-unknown-osf1mk
696 else
697 echo ${UNAME_MACHINE}-unknown-osf1
699 exit 0 ;;
700 parisc*:Lites*:*:*)
701 echo hppa1.1-hp-lites
702 exit 0 ;;
703 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
704 echo c1-convex-bsd
705 exit 0 ;;
706 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
707 if getsysinfo -f scalar_acc
708 then echo c32-convex-bsd
709 else echo c2-convex-bsd
711 exit 0 ;;
712 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
713 echo c34-convex-bsd
714 exit 0 ;;
715 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
716 echo c38-convex-bsd
717 exit 0 ;;
718 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
719 echo c4-convex-bsd
720 exit 0 ;;
721 CRAY*Y-MP:*:*:*)
722 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
723 exit 0 ;;
724 CRAY*[A-Z]90:*:*:*)
725 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
726 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
727 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
728 -e 's/\.[^.]*$/.X/'
729 exit 0 ;;
730 CRAY*TS:*:*:*)
731 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
732 exit 0 ;;
733 CRAY*T3E:*:*:*)
734 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
735 exit 0 ;;
736 CRAY*SV1:*:*:*)
737 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
738 exit 0 ;;
739 *:UNICOS/mp:*:*)
740 echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
741 exit 0 ;;
742 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
743 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
744 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
745 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
746 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
747 exit 0 ;;
748 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
749 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
750 exit 0 ;;
751 sparc*:BSD/OS:*:*)
752 echo sparc-unknown-bsdi${UNAME_RELEASE}
753 exit 0 ;;
754 *:BSD/OS:*:*)
755 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
756 exit 0 ;;
757 *:FreeBSD:*:*)
758 # Determine whether the default compiler uses glibc.
759 eval $set_cc_for_build
760 sed 's/^ //' << EOF >$dummy.c
761 #include <features.h>
762 #if __GLIBC__ >= 2
763 LIBC=gnu
764 #else
765 LIBC=
766 #endif
768 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
769 # GNU/KFreeBSD systems have a "k" prefix to indicate we are using
770 # FreeBSD's kernel, but not the complete OS.
771 case ${LIBC} in gnu) kernel_only='k' ;; esac
772 echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
773 exit 0 ;;
774 i*:CYGWIN*:*)
775 echo ${UNAME_MACHINE}-pc-cygwin
776 exit 0 ;;
777 i*:MINGW*:*)
778 echo ${UNAME_MACHINE}-pc-mingw32
779 exit 0 ;;
780 i*:PW*:*)
781 echo ${UNAME_MACHINE}-pc-pw32
782 exit 0 ;;
783 x86:Interix*:[34]*)
784 echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
785 exit 0 ;;
786 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
787 echo i${UNAME_MACHINE}-pc-mks
788 exit 0 ;;
789 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
790 # How do we know it's Interix rather than the generic POSIX subsystem?
791 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
792 # UNAME_MACHINE based on the output of uname instead of i386?
793 echo i586-pc-interix
794 exit 0 ;;
795 i*:UWIN*:*)
796 echo ${UNAME_MACHINE}-pc-uwin
797 exit 0 ;;
798 p*:CYGWIN*:*)
799 echo powerpcle-unknown-cygwin
800 exit 0 ;;
801 prep*:SunOS:5.*:*)
802 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
803 exit 0 ;;
804 *:GNU:*:*)
805 # the GNU system
806 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
807 exit 0 ;;
808 *:GNU/*:*:*)
809 # other systems with GNU libc and userland
810 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
811 exit 0 ;;
812 i*86:Minix:*:*)
813 echo ${UNAME_MACHINE}-pc-minix
814 exit 0 ;;
815 arm*:Linux:*:*)
816 echo ${UNAME_MACHINE}-unknown-linux-gnu
817 exit 0 ;;
818 cris:Linux:*:*)
819 echo cris-axis-linux-gnu
820 exit 0 ;;
821 ia64:Linux:*:*)
822 echo ${UNAME_MACHINE}-unknown-linux-gnu
823 exit 0 ;;
824 m68*:Linux:*:*)
825 echo ${UNAME_MACHINE}-unknown-linux-gnu
826 exit 0 ;;
827 mips:Linux:*:*)
828 eval $set_cc_for_build
829 sed 's/^ //' << EOF >$dummy.c
830 #undef CPU
831 #undef mips
832 #undef mipsel
833 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
834 CPU=mipsel
835 #else
836 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
837 CPU=mips
838 #else
839 CPU=
840 #endif
841 #endif
843 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
844 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
846 mips64:Linux:*:*)
847 eval $set_cc_for_build
848 sed 's/^ //' << EOF >$dummy.c
849 #undef CPU
850 #undef mips64
851 #undef mips64el
852 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
853 CPU=mips64el
854 #else
855 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
856 CPU=mips64
857 #else
858 CPU=
859 #endif
860 #endif
862 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
863 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
865 ppc:Linux:*:*)
866 echo powerpc-unknown-linux-gnu
867 exit 0 ;;
868 ppc64:Linux:*:*)
869 echo powerpc64-unknown-linux-gnu
870 exit 0 ;;
871 alpha:Linux:*:*)
872 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
873 EV5) UNAME_MACHINE=alphaev5 ;;
874 EV56) UNAME_MACHINE=alphaev56 ;;
875 PCA56) UNAME_MACHINE=alphapca56 ;;
876 PCA57) UNAME_MACHINE=alphapca56 ;;
877 EV6) UNAME_MACHINE=alphaev6 ;;
878 EV67) UNAME_MACHINE=alphaev67 ;;
879 EV68*) UNAME_MACHINE=alphaev68 ;;
880 esac
881 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
882 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
883 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
884 exit 0 ;;
885 parisc:Linux:*:* | hppa:Linux:*:*)
886 # Look for CPU level
887 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
888 PA7*) echo hppa1.1-unknown-linux-gnu ;;
889 PA8*) echo hppa2.0-unknown-linux-gnu ;;
890 *) echo hppa-unknown-linux-gnu ;;
891 esac
892 exit 0 ;;
893 parisc64:Linux:*:* | hppa64:Linux:*:*)
894 echo hppa64-unknown-linux-gnu
895 exit 0 ;;
896 s390:Linux:*:* | s390x:Linux:*:*)
897 echo ${UNAME_MACHINE}-ibm-linux
898 exit 0 ;;
899 sh64*:Linux:*:*)
900 echo ${UNAME_MACHINE}-unknown-linux-gnu
901 exit 0 ;;
902 sh*:Linux:*:*)
903 echo ${UNAME_MACHINE}-unknown-linux-gnu
904 exit 0 ;;
905 sparc:Linux:*:* | sparc64:Linux:*:*)
906 echo ${UNAME_MACHINE}-unknown-linux-gnu
907 exit 0 ;;
908 x86_64:Linux:*:*)
909 echo x86_64-unknown-linux-gnu
910 exit 0 ;;
911 i*86:Linux:*:*)
912 # The BFD linker knows what the default object file format is, so
913 # first see if it will tell us. cd to the root directory to prevent
914 # problems with other programs or directories called `ld' in the path.
915 # Set LC_ALL=C to ensure ld outputs messages in English.
916 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
917 | sed -ne '/supported targets:/!d
918 s/[ ][ ]*/ /g
919 s/.*supported targets: *//
920 s/ .*//
922 case "$ld_supported_targets" in
923 elf32-i386)
924 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
926 a.out-i386-linux)
927 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
928 exit 0 ;;
929 coff-i386)
930 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
931 exit 0 ;;
933 # Either a pre-BFD a.out linker (linux-gnuoldld) or
934 # one that does not give us useful --help.
935 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
936 exit 0 ;;
937 esac
938 # Determine whether the default compiler is a.out or elf
939 eval $set_cc_for_build
940 sed 's/^ //' << EOF >$dummy.c
941 #include <features.h>
942 #ifdef __ELF__
943 # ifdef __GLIBC__
944 # if __GLIBC__ >= 2
945 LIBC=gnu
946 # else
947 LIBC=gnulibc1
948 # endif
949 # else
950 LIBC=gnulibc1
951 # endif
952 #else
953 #ifdef __INTEL_COMPILER
954 LIBC=gnu
955 #else
956 LIBC=gnuaout
957 #endif
958 #endif
959 #ifdef __dietlibc__
960 LIBC=dietlibc
961 #endif
963 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
964 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
965 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
967 i*86:DYNIX/ptx:4*:*)
968 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
969 # earlier versions are messed up and put the nodename in both
970 # sysname and nodename.
971 echo i386-sequent-sysv4
972 exit 0 ;;
973 i*86:UNIX_SV:4.2MP:2.*)
974 # Unixware is an offshoot of SVR4, but it has its own version
975 # number series starting with 2...
976 # I am not positive that other SVR4 systems won't match this,
977 # I just have to hope. -- rms.
978 # Use sysv4.2uw... so that sysv4* matches it.
979 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
980 exit 0 ;;
981 i*86:OS/2:*:*)
982 # If we were able to find `uname', then EMX Unix compatibility
983 # is probably installed.
984 echo ${UNAME_MACHINE}-pc-os2-emx
985 exit 0 ;;
986 i*86:XTS-300:*:STOP)
987 echo ${UNAME_MACHINE}-unknown-stop
988 exit 0 ;;
989 i*86:atheos:*:*)
990 echo ${UNAME_MACHINE}-unknown-atheos
991 exit 0 ;;
992 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
993 echo i386-unknown-lynxos${UNAME_RELEASE}
994 exit 0 ;;
995 i*86:*DOS:*:*)
996 echo ${UNAME_MACHINE}-pc-msdosdjgpp
997 exit 0 ;;
998 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
999 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1000 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1001 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1002 else
1003 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1005 exit 0 ;;
1006 i*86:*:5:[78]*)
1007 case `/bin/uname -X | grep "^Machine"` in
1008 *486*) UNAME_MACHINE=i486 ;;
1009 *Pentium) UNAME_MACHINE=i586 ;;
1010 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1011 esac
1012 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1013 exit 0 ;;
1014 i*86:*:3.2:*)
1015 if test -f /usr/options/cb.name; then
1016 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1017 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1018 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1019 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1020 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1021 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1022 && UNAME_MACHINE=i586
1023 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1024 && UNAME_MACHINE=i686
1025 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1026 && UNAME_MACHINE=i686
1027 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1028 else
1029 echo ${UNAME_MACHINE}-pc-sysv32
1031 exit 0 ;;
1032 pc:*:*:*)
1033 # Left here for compatibility:
1034 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1035 # the processor, so we play safe by assuming i386.
1036 echo i386-pc-msdosdjgpp
1037 exit 0 ;;
1038 Intel:Mach:3*:*)
1039 echo i386-pc-mach3
1040 exit 0 ;;
1041 paragon:*:*:*)
1042 echo i860-intel-osf1
1043 exit 0 ;;
1044 i860:*:4.*:*) # i860-SVR4
1045 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1046 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1047 else # Add other i860-SVR4 vendors below as they are discovered.
1048 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1050 exit 0 ;;
1051 mini*:CTIX:SYS*5:*)
1052 # "miniframe"
1053 echo m68010-convergent-sysv
1054 exit 0 ;;
1055 mc68k:UNIX:SYSTEM5:3.51m)
1056 echo m68k-convergent-sysv
1057 exit 0 ;;
1058 M680?0:D-NIX:5.3:*)
1059 echo m68k-diab-dnix
1060 exit 0 ;;
1061 M68*:*:R3V[567]*:*)
1062 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1063 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
1064 OS_REL=''
1065 test -r /etc/.relid \
1066 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1067 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1068 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1069 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1070 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1071 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1072 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1073 && echo i486-ncr-sysv4 && exit 0 ;;
1074 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1075 echo m68k-unknown-lynxos${UNAME_RELEASE}
1076 exit 0 ;;
1077 mc68030:UNIX_System_V:4.*:*)
1078 echo m68k-atari-sysv4
1079 exit 0 ;;
1080 TSUNAMI:LynxOS:2.*:*)
1081 echo sparc-unknown-lynxos${UNAME_RELEASE}
1082 exit 0 ;;
1083 rs6000:LynxOS:2.*:*)
1084 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1085 exit 0 ;;
1086 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1087 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1088 exit 0 ;;
1089 SM[BE]S:UNIX_SV:*:*)
1090 echo mips-dde-sysv${UNAME_RELEASE}
1091 exit 0 ;;
1092 RM*:ReliantUNIX-*:*:*)
1093 echo mips-sni-sysv4
1094 exit 0 ;;
1095 RM*:SINIX-*:*:*)
1096 echo mips-sni-sysv4
1097 exit 0 ;;
1098 *:SINIX-*:*:*)
1099 if uname -p 2>/dev/null >/dev/null ; then
1100 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1101 echo ${UNAME_MACHINE}-sni-sysv4
1102 else
1103 echo ns32k-sni-sysv
1105 exit 0 ;;
1106 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1107 # says <Richard.M.Bartel@ccMail.Census.GOV>
1108 echo i586-unisys-sysv4
1109 exit 0 ;;
1110 *:UNIX_System_V:4*:FTX*)
1111 # From Gerald Hewes <hewes@openmarket.com>.
1112 # How about differentiating between stratus architectures? -djm
1113 echo hppa1.1-stratus-sysv4
1114 exit 0 ;;
1115 *:*:*:FTX*)
1116 # From seanf@swdc.stratus.com.
1117 echo i860-stratus-sysv4
1118 exit 0 ;;
1119 *:VOS:*:*)
1120 # From Paul.Green@stratus.com.
1121 echo hppa1.1-stratus-vos
1122 exit 0 ;;
1123 mc68*:A/UX:*:*)
1124 echo m68k-apple-aux${UNAME_RELEASE}
1125 exit 0 ;;
1126 news*:NEWS-OS:6*:*)
1127 echo mips-sony-newsos6
1128 exit 0 ;;
1129 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1130 if [ -d /usr/nec ]; then
1131 echo mips-nec-sysv${UNAME_RELEASE}
1132 else
1133 echo mips-unknown-sysv${UNAME_RELEASE}
1135 exit 0 ;;
1136 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1137 echo powerpc-be-beos
1138 exit 0 ;;
1139 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1140 echo powerpc-apple-beos
1141 exit 0 ;;
1142 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1143 echo i586-pc-beos
1144 exit 0 ;;
1145 SX-4:SUPER-UX:*:*)
1146 echo sx4-nec-superux${UNAME_RELEASE}
1147 exit 0 ;;
1148 SX-5:SUPER-UX:*:*)
1149 echo sx5-nec-superux${UNAME_RELEASE}
1150 exit 0 ;;
1151 SX-6:SUPER-UX:*:*)
1152 echo sx6-nec-superux${UNAME_RELEASE}
1153 exit 0 ;;
1154 Power*:Rhapsody:*:*)
1155 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1156 exit 0 ;;
1157 *:Rhapsody:*:*)
1158 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1159 exit 0 ;;
1160 *:Darwin:*:*)
1161 case `uname -p` in
1162 *86) UNAME_PROCESSOR=i686 ;;
1163 powerpc) UNAME_PROCESSOR=powerpc ;;
1164 esac
1165 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1166 exit 0 ;;
1167 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1168 UNAME_PROCESSOR=`uname -p`
1169 if test "$UNAME_PROCESSOR" = "x86"; then
1170 UNAME_PROCESSOR=i386
1171 UNAME_MACHINE=pc
1173 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1174 exit 0 ;;
1175 *:QNX:*:4*)
1176 echo i386-pc-qnx
1177 exit 0 ;;
1178 NSR-[DGKLNPTVWY]:NONSTOP_KERNEL:*:*)
1179 echo nsr-tandem-nsk${UNAME_RELEASE}
1180 exit 0 ;;
1181 *:NonStop-UX:*:*)
1182 echo mips-compaq-nonstopux
1183 exit 0 ;;
1184 BS2000:POSIX*:*:*)
1185 echo bs2000-siemens-sysv
1186 exit 0 ;;
1187 DS/*:UNIX_System_V:*:*)
1188 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1189 exit 0 ;;
1190 *:Plan9:*:*)
1191 # "uname -m" is not consistent, so use $cputype instead. 386
1192 # is converted to i386 for consistency with other x86
1193 # operating systems.
1194 if test "$cputype" = "386"; then
1195 UNAME_MACHINE=i386
1196 else
1197 UNAME_MACHINE="$cputype"
1199 echo ${UNAME_MACHINE}-unknown-plan9
1200 exit 0 ;;
1201 *:TOPS-10:*:*)
1202 echo pdp10-unknown-tops10
1203 exit 0 ;;
1204 *:TENEX:*:*)
1205 echo pdp10-unknown-tenex
1206 exit 0 ;;
1207 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1208 echo pdp10-dec-tops20
1209 exit 0 ;;
1210 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1211 echo pdp10-xkl-tops20
1212 exit 0 ;;
1213 *:TOPS-20:*:*)
1214 echo pdp10-unknown-tops20
1215 exit 0 ;;
1216 *:ITS:*:*)
1217 echo pdp10-unknown-its
1218 exit 0 ;;
1219 SEI:*:*:SEIUX)
1220 echo mips-sei-seiux${UNAME_RELEASE}
1221 exit 0 ;;
1222 esac
1224 #echo '(No uname command or uname output not recognized.)' 1>&2
1225 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1227 eval $set_cc_for_build
1228 cat >$dummy.c <<EOF
1229 #ifdef _SEQUENT_
1230 # include <sys/types.h>
1231 # include <sys/utsname.h>
1232 #endif
1233 main ()
1235 #if defined (sony)
1236 #if defined (MIPSEB)
1237 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1238 I don't know.... */
1239 printf ("mips-sony-bsd\n"); exit (0);
1240 #else
1241 #include <sys/param.h>
1242 printf ("m68k-sony-newsos%s\n",
1243 #ifdef NEWSOS4
1245 #else
1247 #endif
1248 ); exit (0);
1249 #endif
1250 #endif
1252 #if defined (__arm) && defined (__acorn) && defined (__unix)
1253 printf ("arm-acorn-riscix"); exit (0);
1254 #endif
1256 #if defined (hp300) && !defined (hpux)
1257 printf ("m68k-hp-bsd\n"); exit (0);
1258 #endif
1260 #if defined (NeXT)
1261 #if !defined (__ARCHITECTURE__)
1262 #define __ARCHITECTURE__ "m68k"
1263 #endif
1264 int version;
1265 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1266 if (version < 4)
1267 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1268 else
1269 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1270 exit (0);
1271 #endif
1273 #if defined (MULTIMAX) || defined (n16)
1274 #if defined (UMAXV)
1275 printf ("ns32k-encore-sysv\n"); exit (0);
1276 #else
1277 #if defined (CMU)
1278 printf ("ns32k-encore-mach\n"); exit (0);
1279 #else
1280 printf ("ns32k-encore-bsd\n"); exit (0);
1281 #endif
1282 #endif
1283 #endif
1285 #if defined (__386BSD__)
1286 printf ("i386-pc-bsd\n"); exit (0);
1287 #endif
1289 #if defined (sequent)
1290 #if defined (i386)
1291 printf ("i386-sequent-dynix\n"); exit (0);
1292 #endif
1293 #if defined (ns32000)
1294 printf ("ns32k-sequent-dynix\n"); exit (0);
1295 #endif
1296 #endif
1298 #if defined (_SEQUENT_)
1299 struct utsname un;
1301 uname(&un);
1303 if (strncmp(un.version, "V2", 2) == 0) {
1304 printf ("i386-sequent-ptx2\n"); exit (0);
1306 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1307 printf ("i386-sequent-ptx1\n"); exit (0);
1309 printf ("i386-sequent-ptx\n"); exit (0);
1311 #endif
1313 #if defined (vax)
1314 # if !defined (ultrix)
1315 # include <sys/param.h>
1316 # if defined (BSD)
1317 # if BSD == 43
1318 printf ("vax-dec-bsd4.3\n"); exit (0);
1319 # else
1320 # if BSD == 199006
1321 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1322 # else
1323 printf ("vax-dec-bsd\n"); exit (0);
1324 # endif
1325 # endif
1326 # else
1327 printf ("vax-dec-bsd\n"); exit (0);
1328 # endif
1329 # else
1330 printf ("vax-dec-ultrix\n"); exit (0);
1331 # endif
1332 #endif
1334 #if defined (alliant) && defined (i860)
1335 printf ("i860-alliant-bsd\n"); exit (0);
1336 #endif
1338 exit (1);
1342 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
1344 # Apollos put the system type in the environment.
1346 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1348 # Convex versions that predate uname can use getsysinfo(1)
1350 if [ -x /usr/convex/getsysinfo ]
1351 then
1352 case `getsysinfo -f cpu_type` in
1353 c1*)
1354 echo c1-convex-bsd
1355 exit 0 ;;
1356 c2*)
1357 if getsysinfo -f scalar_acc
1358 then echo c32-convex-bsd
1359 else echo c2-convex-bsd
1361 exit 0 ;;
1362 c34*)
1363 echo c34-convex-bsd
1364 exit 0 ;;
1365 c38*)
1366 echo c38-convex-bsd
1367 exit 0 ;;
1368 c4*)
1369 echo c4-convex-bsd
1370 exit 0 ;;
1371 esac
1374 cat >&2 <<EOF
1375 $0: unable to guess system type
1377 This script, last modified $timestamp, has failed to recognize
1378 the operating system you are using. It is advised that you
1379 download the most up to date version of the config scripts from
1381 ftp://ftp.gnu.org/pub/gnu/config/
1383 If the version you run ($0) is already up to date, please
1384 send the following data and any information you think might be
1385 pertinent to <config-patches@gnu.org> in order to provide the needed
1386 information to handle your system.
1388 config.guess timestamp = $timestamp
1390 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1391 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1392 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1393 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1395 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1396 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1398 hostinfo = `(hostinfo) 2>/dev/null`
1399 /bin/universe = `(/bin/universe) 2>/dev/null`
1400 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1401 /bin/arch = `(/bin/arch) 2>/dev/null`
1402 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1403 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1405 UNAME_MACHINE = ${UNAME_MACHINE}
1406 UNAME_RELEASE = ${UNAME_RELEASE}
1407 UNAME_SYSTEM = ${UNAME_SYSTEM}
1408 UNAME_VERSION = ${UNAME_VERSION}
1411 exit 1
1413 # Local variables:
1414 # eval: (add-hook 'write-file-hooks 'time-stamp)
1415 # time-stamp-start: "timestamp='"
1416 # time-stamp-format: "%:y-%02m-%02d"
1417 # time-stamp-end: "'"
1418 # End: