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