.
[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-13'
7
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 # General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 #
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
26
27 # 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 | Synergy: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     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
775         echo i${UNAME_MACHINE}-pc-mks
776         exit 0 ;;
777     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
778         # How do we know it's Interix rather than the generic POSIX subsystem?
779         # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
780         # UNAME_MACHINE based on the output of uname instead of i386?
781         echo i386-pc-interix
782         exit 0 ;;
783     i*:UWIN*:*)
784         echo ${UNAME_MACHINE}-pc-uwin
785         exit 0 ;;
786     p*:CYGWIN*:*)
787         echo powerpcle-unknown-cygwin
788         exit 0 ;;
789     prep*:SunOS:5.*:*)
790         echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
791         exit 0 ;;
792     *:GNU:*:*)
793         echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
794         exit 0 ;;
795     i*86:Minix:*:*)
796         echo ${UNAME_MACHINE}-pc-minix
797         exit 0 ;;
798     arm*:Linux:*:*)
799         echo ${UNAME_MACHINE}-unknown-linux-gnu
800         exit 0 ;;
801     ia64:Linux:*:*)
802         echo ${UNAME_MACHINE}-unknown-linux-gnu
803         exit 0 ;;
804     m68*:Linux:*:*)
805         echo ${UNAME_MACHINE}-unknown-linux-gnu
806         exit 0 ;;
807     mips:Linux:*:*)
808         eval $set_cc_for_build
809         sed 's/^        //' << EOF >$dummy.c
810         #undef CPU
811         #undef mips
812         #undef mipsel
813         #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
814         CPU=mipsel
815         #else
816         #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
817         CPU=mips
818         #else
819         CPU=
820         #endif
821         #endif
822 EOF
823         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
824         rm -f $dummy.c && rmdir $tmpdir
825         test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
826         ;;
827     ppc:Linux:*:*)
828         echo powerpc-unknown-linux-gnu
829         exit 0 ;;
830     ppc64:Linux:*:*)
831         echo powerpc64-unknown-linux-gnu
832         exit 0 ;;
833     alpha:Linux:*:*)
834         case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
835           EV5)   UNAME_MACHINE=alphaev5 ;;
836           EV56)  UNAME_MACHINE=alphaev56 ;;
837           PCA56) UNAME_MACHINE=alphapca56 ;;
838           PCA57) UNAME_MACHINE=alphapca56 ;;
839           EV6)   UNAME_MACHINE=alphaev6 ;;
840           EV67)  UNAME_MACHINE=alphaev67 ;;
841           EV68*) UNAME_MACHINE=alphaev68 ;;
842         esac
843         objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
844         if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
845         echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
846         exit 0 ;;
847     parisc:Linux:*:* | hppa:Linux:*:*)
848         # Look for CPU level
849         case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
850           PA7*) echo hppa1.1-unknown-linux-gnu ;;
851           PA8*) echo hppa2.0-unknown-linux-gnu ;;
852           *)    echo hppa-unknown-linux-gnu ;;
853         esac
854         exit 0 ;;
855     parisc64:Linux:*:* | hppa64:Linux:*:*)
856         echo hppa64-unknown-linux-gnu
857         exit 0 ;;
858     s390:Linux:*:* | s390x:Linux:*:*)
859         echo ${UNAME_MACHINE}-ibm-linux
860         exit 0 ;;
861     sh*:Linux:*:*)
862         echo ${UNAME_MACHINE}-unknown-linux-gnu
863         exit 0 ;;
864     sparc:Linux:*:* | sparc64:Linux:*:*)
865         echo ${UNAME_MACHINE}-unknown-linux-gnu
866         exit 0 ;;
867     x86_64:Linux:*:*)
868         echo x86_64-unknown-linux-gnu
869         exit 0 ;;
870     i*86:Linux:*:*)
871         # The BFD linker knows what the default object file format is, so
872         # first see if it will tell us. cd to the root directory to prevent
873         # problems with other programs or directories called `ld' in the path.
874         # Set LC_ALL=C to ensure ld outputs messages in English.
875         ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
876                          | sed -ne '/supported targets:/!d
877                                     s/[         ][      ]*/ /g
878                                     s/.*supported targets: *//
879                                     s/ .*//
880                                     p'`
881         case "$ld_supported_targets" in
882           elf32-i386)
883                 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
884                 ;;
885           a.out-i386-linux)
886                 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
887                 exit 0 ;;
888           coff-i386)
889                 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
890                 exit 0 ;;
891           "")
892                 # Either a pre-BFD a.out linker (linux-gnuoldld) or
893                 # one that does not give us useful --help.
894                 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
895                 exit 0 ;;
896         esac
897         # Determine whether the default compiler is a.out or elf
898         eval $set_cc_for_build
899         sed 's/^        //' << EOF >$dummy.c
900         #include <features.h>
901         #ifdef __ELF__
902         # ifdef __GLIBC__
903         #  if __GLIBC__ >= 2
904         LIBC=gnu
905         #  else
906         LIBC=gnulibc1
907         #  endif
908         # else
909         LIBC=gnulibc1
910         # endif
911         #else
912         #ifdef __INTEL_COMPILER
913         LIBC=gnu
914         #else
915         LIBC=gnuaout
916         #endif
917         #endif
918 EOF
919         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
920         rm -f $dummy.c && rmdir $tmpdir
921         test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
922         test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
923         ;;
924     i*86:DYNIX/ptx:4*:*)
925         # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
926         # earlier versions are messed up and put the nodename in both
927         # sysname and nodename.
928         echo i386-sequent-sysv4
929         exit 0 ;;
930     i*86:UNIX_SV:4.2MP:2.*)
931         # Unixware is an offshoot of SVR4, but it has its own version
932         # number series starting with 2...
933         # I am not positive that other SVR4 systems won't match this,
934         # I just have to hope.  -- rms.
935         # Use sysv4.2uw... so that sysv4* matches it.
936         echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
937         exit 0 ;;
938     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
939         UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
940         if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
941                 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
942         else
943                 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
944         fi
945         exit 0 ;;
946     i*86:*:5:[78]*)
947         case `/bin/uname -X | grep "^Machine"` in
948             *486*)           UNAME_MACHINE=i486 ;;
949             *Pentium)        UNAME_MACHINE=i586 ;;
950             *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
951         esac
952         echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
953         exit 0 ;;
954     i*86:*:3.2:*)
955         if test -f /usr/options/cb.name; then
956                 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
957                 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
958         elif /bin/uname -X 2>/dev/null >/dev/null ; then
959                 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
960                 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
961                 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
962                         && UNAME_MACHINE=i586
963                 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
964                         && UNAME_MACHINE=i686
965                 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
966                         && UNAME_MACHINE=i686
967                 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
968         else
969                 echo ${UNAME_MACHINE}-pc-sysv32
970         fi
971         exit 0 ;;
972     i*86:*DOS:*:*)
973         echo ${UNAME_MACHINE}-pc-msdosdjgpp
974         exit 0 ;;
975     pc:*:*:*)
976         # Left here for compatibility:
977         # uname -m prints for DJGPP always 'pc', but it prints nothing about
978         # the processor, so we play safe by assuming i386.
979         echo i386-pc-msdosdjgpp
980         exit 0 ;;
981     Intel:Mach:3*:*)
982         echo i386-pc-mach3
983         exit 0 ;;
984     paragon:*:*:*)
985         echo i860-intel-osf1
986         exit 0 ;;
987     i860:*:4.*:*) # i860-SVR4
988         if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
989           echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
990         else # Add other i860-SVR4 vendors below as they are discovered.
991           echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
992         fi
993         exit 0 ;;
994     mini*:CTIX:SYS*5:*)
995         # "miniframe"
996         echo m68010-convergent-sysv
997         exit 0 ;;
998     mc68k:UNIX:SYSTEM5:3.51m)
999         echo m68k-convergent-sysv
1000         exit 0 ;;
1001     M680?0:D-NIX:5.3:*)
1002         echo m68k-diab-dnix
1003         exit 0 ;;
1004     M68*:*:R3V[567]*:*)
1005         test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1006     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)
1007         OS_REL=''
1008         test -r /etc/.relid \
1009         && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1010         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1011           && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1012         /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1013           && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1014     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1015         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1016           && echo i486-ncr-sysv4 && exit 0 ;;
1017     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1018         echo m68k-unknown-lynxos${UNAME_RELEASE}
1019         exit 0 ;;
1020     mc68030:UNIX_System_V:4.*:*)
1021         echo m68k-atari-sysv4
1022         exit 0 ;;
1023     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1024         echo i386-unknown-lynxos${UNAME_RELEASE}
1025         exit 0 ;;
1026     TSUNAMI:LynxOS:2.*:*)
1027         echo sparc-unknown-lynxos${UNAME_RELEASE}
1028         exit 0 ;;
1029     rs6000:LynxOS:2.*:*)
1030         echo rs6000-unknown-lynxos${UNAME_RELEASE}
1031         exit 0 ;;
1032     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1033         echo powerpc-unknown-lynxos${UNAME_RELEASE}
1034         exit 0 ;;
1035     SM[BE]S:UNIX_SV:*:*)
1036         echo mips-dde-sysv${UNAME_RELEASE}
1037         exit 0 ;;
1038     RM*:ReliantUNIX-*:*:*)
1039         echo mips-sni-sysv4
1040         exit 0 ;;
1041     RM*:SINIX-*:*:*)
1042         echo mips-sni-sysv4
1043         exit 0 ;;
1044     *:SINIX-*:*:*)
1045         if uname -p 2>/dev/null >/dev/null ; then
1046                 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1047                 echo ${UNAME_MACHINE}-sni-sysv4
1048         else
1049                 echo ns32k-sni-sysv
1050         fi
1051         exit 0 ;;
1052     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1053                       # says <Richard.M.Bartel@ccMail.Census.GOV>
1054         echo i586-unisys-sysv4
1055         exit 0 ;;
1056     *:UNIX_System_V:4*:FTX*)
1057         # From Gerald Hewes <hewes@openmarket.com>.
1058         # How about differentiating between stratus architectures? -djm
1059         echo hppa1.1-stratus-sysv4
1060         exit 0 ;;
1061     *:*:*:FTX*)
1062         # From seanf@swdc.stratus.com.
1063         echo i860-stratus-sysv4
1064         exit 0 ;;
1065     *:VOS:*:*)
1066         # From Paul.Green@stratus.com.
1067         echo hppa1.1-stratus-vos
1068         exit 0 ;;
1069     mc68*:A/UX:*:*)
1070         echo m68k-apple-aux${UNAME_RELEASE}
1071         exit 0 ;;
1072     news*:NEWS-OS:6*:*)
1073         echo mips-sony-newsos6
1074         exit 0 ;;
1075     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1076         if [ -d /usr/nec ]; then
1077                 echo mips-nec-sysv${UNAME_RELEASE}
1078         else
1079                 echo mips-unknown-sysv${UNAME_RELEASE}
1080         fi
1081         exit 0 ;;
1082     BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
1083         echo powerpc-be-beos
1084         exit 0 ;;
1085     BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
1086         echo powerpc-apple-beos
1087         exit 0 ;;
1088     BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
1089         echo i586-pc-beos
1090         exit 0 ;;
1091     SX-4:SUPER-UX:*:*)
1092         echo sx4-nec-superux${UNAME_RELEASE}
1093         exit 0 ;;
1094     SX-5:SUPER-UX:*:*)
1095         echo sx5-nec-superux${UNAME_RELEASE}
1096         exit 0 ;;
1097     SX-6:SUPER-UX:*:*)
1098         echo sx6-nec-superux${UNAME_RELEASE}
1099         exit 0 ;;
1100     Power*:Rhapsody:*:*)
1101         echo powerpc-apple-rhapsody${UNAME_RELEASE}
1102         exit 0 ;;
1103     *:Rhapsody:*:*)
1104         echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1105         exit 0 ;;
1106     *:Darwin:*:*)
1107         echo `uname -p`-apple-darwin${UNAME_RELEASE}
1108         exit 0 ;;
1109     *:procnto*:*:* | *:QNX:[0123456789]*:*)
1110         UNAME_PROCESSOR=`uname -p`
1111         if test "$UNAME_PROCESSOR" = "x86"; then
1112                 UNAME_PROCESSOR=i386
1113                 UNAME_MACHINE=pc
1114         fi
1115         echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1116         exit 0 ;;
1117     *:QNX:*:4*)
1118         echo i386-pc-qnx
1119         exit 0 ;;
1120     NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
1121         echo nsr-tandem-nsk${UNAME_RELEASE}
1122         exit 0 ;;
1123     *:NonStop-UX:*:*)
1124         echo mips-compaq-nonstopux
1125         exit 0 ;;
1126     BS2000:POSIX*:*:*)
1127         echo bs2000-siemens-sysv
1128         exit 0 ;;
1129     DS/*:UNIX_System_V:*:*)
1130         echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1131         exit 0 ;;
1132     *:Plan9:*:*)
1133         # "uname -m" is not consistent, so use $cputype instead. 386
1134         # is converted to i386 for consistency with other x86
1135         # operating systems.
1136         if test "$cputype" = "386"; then
1137             UNAME_MACHINE=i386
1138         else
1139             UNAME_MACHINE="$cputype"
1140         fi
1141         echo ${UNAME_MACHINE}-unknown-plan9
1142         exit 0 ;;
1143     i*86:OS/2:*:*)
1144         # If we were able to find `uname', then EMX Unix compatibility
1145         # is probably installed.
1146         echo ${UNAME_MACHINE}-pc-os2-emx
1147         exit 0 ;;
1148     *:TOPS-10:*:*)
1149         echo pdp10-unknown-tops10
1150         exit 0 ;;
1151     *:TENEX:*:*)
1152         echo pdp10-unknown-tenex
1153         exit 0 ;;
1154     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1155         echo pdp10-dec-tops20
1156         exit 0 ;;
1157     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1158         echo pdp10-xkl-tops20
1159         exit 0 ;;
1160     *:TOPS-20:*:*)
1161         echo pdp10-unknown-tops20
1162         exit 0 ;;
1163     *:ITS:*:*)
1164         echo pdp10-unknown-its
1165         exit 0 ;;
1166     i*86:XTS-300:*:STOP)
1167         echo ${UNAME_MACHINE}-unknown-stop
1168         exit 0 ;;
1169     i*86:atheos:*:*)
1170         echo ${UNAME_MACHINE}-unknown-atheos
1171         exit 0 ;;
1172 esac
1173
1174 #echo '(No uname command or uname output not recognized.)' 1>&2
1175 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1176
1177 eval $set_cc_for_build
1178 cat >$dummy.c <<EOF
1179 #ifdef _SEQUENT_
1180 # include <sys/types.h>
1181 # include <sys/utsname.h>
1182 #endif
1183 main ()
1184 {
1185 #if defined (sony)
1186 #if defined (MIPSEB)
1187   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1188      I don't know....  */
1189   printf ("mips-sony-bsd\n"); exit (0);
1190 #else
1191 #include <sys/param.h>
1192   printf ("m68k-sony-newsos%s\n",
1193 #ifdef NEWSOS4
1194           "4"
1195 #else
1196           ""
1197 #endif
1198          ); exit (0);
1199 #endif
1200 #endif
1201
1202 #if defined (__arm) && defined (__acorn) && defined (__unix)
1203   printf ("arm-acorn-riscix"); exit (0);
1204 #endif
1205
1206 #if defined (hp300) && !defined (hpux)
1207   printf ("m68k-hp-bsd\n"); exit (0);
1208 #endif
1209
1210 #if defined (NeXT)
1211 #if !defined (__ARCHITECTURE__)
1212 #define __ARCHITECTURE__ "m68k"
1213 #endif
1214   int version;
1215   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1216   if (version < 4)
1217     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1218   else
1219     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1220   exit (0);
1221 #endif
1222
1223 #if defined (MULTIMAX) || defined (n16)
1224 #if defined (UMAXV)
1225   printf ("ns32k-encore-sysv\n"); exit (0);
1226 #else
1227 #if defined (CMU)
1228   printf ("ns32k-encore-mach\n"); exit (0);
1229 #else
1230   printf ("ns32k-encore-bsd\n"); exit (0);
1231 #endif
1232 #endif
1233 #endif
1234
1235 #if defined (__386BSD__)
1236   printf ("i386-pc-bsd\n"); exit (0);
1237 #endif
1238
1239 #if defined (sequent)
1240 #if defined (i386)
1241   printf ("i386-sequent-dynix\n"); exit (0);
1242 #endif
1243 #if defined (ns32000)
1244   printf ("ns32k-sequent-dynix\n"); exit (0);
1245 #endif
1246 #endif
1247
1248 #if defined (_SEQUENT_)
1249     struct utsname un;
1250
1251     uname(&un);
1252
1253     if (strncmp(un.version, "V2", 2) == 0) {
1254         printf ("i386-sequent-ptx2\n"); exit (0);
1255     }
1256     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1257         printf ("i386-sequent-ptx1\n"); exit (0);
1258     }
1259     printf ("i386-sequent-ptx\n"); exit (0);
1260
1261 #endif
1262
1263 #if defined (vax)
1264 # if !defined (ultrix)
1265 #  include <sys/param.h>
1266 #  if defined (BSD)
1267 #   if BSD == 43
1268       printf ("vax-dec-bsd4.3\n"); exit (0);
1269 #   else
1270 #    if BSD == 199006
1271       printf ("vax-dec-bsd4.3reno\n"); exit (0);
1272 #    else
1273       printf ("vax-dec-bsd\n"); exit (0);
1274 #    endif
1275 #   endif
1276 #  else
1277     printf ("vax-dec-bsd\n"); exit (0);
1278 #  endif
1279 # else
1280     printf ("vax-dec-ultrix\n"); exit (0);
1281 # endif
1282 #endif
1283
1284 #if defined (alliant) && defined (i860)
1285   printf ("i860-alliant-bsd\n"); exit (0);
1286 #endif
1287
1288   exit (1);
1289 }
1290 EOF
1291
1292 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1293 rm -f $dummy.c $dummy && rmdir $tmpdir
1294
1295 # Apollos put the system type in the environment.
1296
1297 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1298
1299 # Convex versions that predate uname can use getsysinfo(1)
1300
1301 if [ -x /usr/convex/getsysinfo ]
1302 then
1303     case `getsysinfo -f cpu_type` in
1304     c1*)
1305         echo c1-convex-bsd
1306         exit 0 ;;
1307     c2*)
1308         if getsysinfo -f scalar_acc
1309         then echo c32-convex-bsd
1310         else echo c2-convex-bsd
1311         fi
1312         exit 0 ;;
1313     c34*)
1314         echo c34-convex-bsd
1315         exit 0 ;;
1316     c38*)
1317         echo c38-convex-bsd
1318         exit 0 ;;
1319     c4*)
1320         echo c4-convex-bsd
1321         exit 0 ;;
1322     esac
1323 fi
1324
1325 cat >&2 <<EOF
1326 $0: unable to guess system type
1327
1328 This script, last modified $timestamp, has failed to recognize
1329 the operating system you are using. It is advised that you
1330 download the most up to date version of the config scripts from
1331
1332     ftp://ftp.gnu.org/pub/gnu/config/
1333
1334 If the version you run ($0) is already up to date, please
1335 send the following data and any information you think might be
1336 pertinent to <config-patches@gnu.org> in order to provide the needed
1337 information to handle your system.
1338
1339 config.guess timestamp = $timestamp
1340
1341 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1342 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1343 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1344 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1345
1346 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1347 /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1348
1349 hostinfo               = `(hostinfo) 2>/dev/null`
1350 /bin/universe          = `(/bin/universe) 2>/dev/null`
1351 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1352 /bin/arch              = `(/bin/arch) 2>/dev/null`
1353 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1354 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1355
1356 UNAME_MACHINE = ${UNAME_MACHINE}
1357 UNAME_RELEASE = ${UNAME_RELEASE}
1358 UNAME_SYSTEM  = ${UNAME_SYSTEM}
1359 UNAME_VERSION = ${UNAME_VERSION}
1360 EOF
1361
1362 exit 1
1363
1364 # Local variables:
1365 # eval: (add-hook 'write-file-hooks 'time-stamp)
1366 # time-stamp-start: "timestamp='"
1367 # time-stamp-format: "%:y-%02m-%02d"
1368 # time-stamp-end: "'"
1369 # End: