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