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