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