OSDN Git Service

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