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