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