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