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