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