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