Merge remote branch 'origin/master'
[ghc.git] / 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-11-15'
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.
339         if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
340             # bash is not able to generate correct code here
341             # i.e. it leaves \ns there
342             # so we need to use /usr/bin/echo to get what we want
343             # note that if config.guess is run by /bin/sh then
344             # this works as expected even without /usr/bin/echo
345             # but the problem is that configure is clever enough
346             # to find bash installed and then runs config.guess
347             # by bash instead of by /bin/sh
348             # It seems that using /usr/bin/echo here is the most
349             # portable Solaris fix
350             if /usr/bin/echo '\n#ifdef __amd64\nIS_64BIT_ARCH\n#endif' | \
351                 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
352                 grep IS_64BIT_ARCH >/dev/null
353             then
354                 SUN_ARCH="x86_64"
355             fi
356         fi
357         echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
358         exit ;;
359     sun4*:SunOS:6*:*)
360         # According to config.sub, this is the proper way to canonicalize
361         # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
362         # it's likely to be more like Solaris than SunOS4.
363         echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
364         exit ;;
365     sun4*:SunOS:*:*)
366         case "`/usr/bin/arch -k`" in
367             Series*|S4*)
368                 UNAME_RELEASE=`uname -v`
369                 ;;
370         esac
371         # Japanese Language versions have a version number like `4.1.3-JL'.
372         echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
373         exit ;;
374     sun3*:SunOS:*:*)
375         echo m68k-sun-sunos${UNAME_RELEASE}
376         exit ;;
377     sun*:*:4.2BSD:*)
378         UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
379         test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
380         case "`/bin/arch`" in
381             sun3)
382                 echo m68k-sun-sunos${UNAME_RELEASE}
383                 ;;
384             sun4)
385                 echo sparc-sun-sunos${UNAME_RELEASE}
386                 ;;
387         esac
388         exit ;;
389     aushp:SunOS:*:*)
390         echo sparc-auspex-sunos${UNAME_RELEASE}
391         exit ;;
392     # The situation for MiNT is a little confusing.  The machine name
393     # can be virtually everything (everything which is not
394     # "atarist" or "atariste" at least should have a processor
395     # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
396     # to the lowercase version "mint" (or "freemint").  Finally
397     # the system name "TOS" denotes a system which is actually not
398     # MiNT.  But MiNT is downward compatible to TOS, so this should
399     # be no problem.
400     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
401         echo m68k-atari-mint${UNAME_RELEASE}
402         exit ;;
403     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
404         echo m68k-atari-mint${UNAME_RELEASE}
405         exit ;;
406     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
407         echo m68k-atari-mint${UNAME_RELEASE}
408         exit ;;
409     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
410         echo m68k-milan-mint${UNAME_RELEASE}
411         exit ;;
412     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
413         echo m68k-hades-mint${UNAME_RELEASE}
414         exit ;;
415     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
416         echo m68k-unknown-mint${UNAME_RELEASE}
417         exit ;;
418     m68k:machten:*:*)
419         echo m68k-apple-machten${UNAME_RELEASE}
420         exit ;;
421     powerpc:machten:*:*)
422         echo powerpc-apple-machten${UNAME_RELEASE}
423         exit ;;
424     RISC*:Mach:*:*)
425         echo mips-dec-mach_bsd4.3
426         exit ;;
427     RISC*:ULTRIX:*:*)
428         echo mips-dec-ultrix${UNAME_RELEASE}
429         exit ;;
430     VAX*:ULTRIX*:*:*)
431         echo vax-dec-ultrix${UNAME_RELEASE}
432         exit ;;
433     2020:CLIX:*:* | 2430:CLIX:*:*)
434         echo clipper-intergraph-clix${UNAME_RELEASE}
435         exit ;;
436     mips:*:*:UMIPS | mips:*:*:RISCos)
437         eval $set_cc_for_build
438         sed 's/^        //' << EOF >$dummy.c
439 #ifdef __cplusplus
440 #include <stdio.h>  /* for printf() prototype */
441         int main (int argc, char *argv[]) {
442 #else
443         int main (argc, argv) int argc; char *argv[]; {
444 #endif
445         #if defined (host_mips) && defined (MIPSEB)
446         #if defined (SYSTYPE_SYSV)
447           printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
448         #endif
449         #if defined (SYSTYPE_SVR4)
450           printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
451         #endif
452         #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
453           printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
454         #endif
455         #endif
456           exit (-1);
457         }
458 EOF
459         $CC_FOR_BUILD -o $dummy $dummy.c &&
460           dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
461           SYSTEM_NAME=`$dummy $dummyarg` &&
462             { echo "$SYSTEM_NAME"; exit; }
463         echo mips-mips-riscos${UNAME_RELEASE}
464         exit ;;
465     Motorola:PowerMAX_OS:*:*)
466         echo powerpc-motorola-powermax
467         exit ;;
468     Motorola:*:4.3:PL8-*)
469         echo powerpc-harris-powermax
470         exit ;;
471     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
472         echo powerpc-harris-powermax
473         exit ;;
474     Night_Hawk:Power_UNIX:*:*)
475         echo powerpc-harris-powerunix
476         exit ;;
477     m88k:CX/UX:7*:*)
478         echo m88k-harris-cxux7
479         exit ;;
480     m88k:*:4*:R4*)
481         echo m88k-motorola-sysv4
482         exit ;;
483     m88k:*:3*:R3*)
484         echo m88k-motorola-sysv3
485         exit ;;
486     AViiON:dgux:*:*)
487         # DG/UX returns AViiON for all architectures
488         UNAME_PROCESSOR=`/usr/bin/uname -p`
489         if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
490         then
491             if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
492                [ ${TARGET_BINARY_INTERFACE}x = x ]
493             then
494                 echo m88k-dg-dgux${UNAME_RELEASE}
495             else
496                 echo m88k-dg-dguxbcs${UNAME_RELEASE}
497             fi
498         else
499             echo i586-dg-dgux${UNAME_RELEASE}
500         fi
501         exit ;;
502     M88*:DolphinOS:*:*) # DolphinOS (SVR3)
503         echo m88k-dolphin-sysv3
504         exit ;;
505     M88*:*:R3*:*)
506         # Delta 88k system running SVR3
507         echo m88k-motorola-sysv3
508         exit ;;
509     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
510         echo m88k-tektronix-sysv3
511         exit ;;
512     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
513         echo m68k-tektronix-bsd
514         exit ;;
515     *:IRIX*:*:*)
516         echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
517         exit ;;
518     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
519         echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
520         exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
521     i*86:AIX:*:*)
522         echo i386-ibm-aix
523         exit ;;
524     ia64:AIX:*:*)
525         if [ -x /usr/bin/oslevel ] ; then
526                 IBM_REV=`/usr/bin/oslevel`
527         else
528                 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
529         fi
530         echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
531         exit ;;
532     *:AIX:2:3)
533         if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
534                 eval $set_cc_for_build
535                 sed 's/^                //' << EOF >$dummy.c
536                 #include <sys/systemcfg.h>
537
538                 main()
539                         {
540                         if (!__power_pc())
541                                 exit(1);
542                         puts("powerpc-ibm-aix3.2.5");
543                         exit(0);
544                         }
545 EOF
546                 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
547                 then
548                         echo "$SYSTEM_NAME"
549                 else
550                         echo rs6000-ibm-aix3.2.5
551                 fi
552         elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
553                 echo rs6000-ibm-aix3.2.4
554         else
555                 echo rs6000-ibm-aix3.2
556         fi
557         exit ;;
558     *:AIX:*:[456])
559         IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
560         if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
561                 IBM_ARCH=rs6000
562         else
563                 IBM_ARCH=powerpc
564         fi
565         if [ -x /usr/bin/oslevel ] ; then
566                 IBM_REV=`/usr/bin/oslevel`
567         else
568                 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
569         fi
570         echo ${IBM_ARCH}-ibm-aix${IBM_REV}
571         exit ;;
572     *:AIX:*:*)
573         echo rs6000-ibm-aix
574         exit ;;
575     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
576         echo romp-ibm-bsd4.4
577         exit ;;
578     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
579         echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
580         exit ;;                             # report: romp-ibm BSD 4.3
581     *:BOSX:*:*)
582         echo rs6000-bull-bosx
583         exit ;;
584     DPX/2?00:B.O.S.:*:*)
585         echo m68k-bull-sysv3
586         exit ;;
587     9000/[34]??:4.3bsd:1.*:*)
588         echo m68k-hp-bsd
589         exit ;;
590     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
591         echo m68k-hp-bsd4.4
592         exit ;;
593     9000/[34678]??:HP-UX:*:*)
594         HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
595         case "${UNAME_MACHINE}" in
596             9000/31? )            HP_ARCH=m68000 ;;
597             9000/[34]?? )         HP_ARCH=m68k ;;
598             9000/[678][0-9][0-9])
599                 if [ -x /usr/bin/getconf ]; then
600                     sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
601                     sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
602                     case "${sc_cpu_version}" in
603                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
604                       528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
605                       532)                      # CPU_PA_RISC2_0
606                         case "${sc_kernel_bits}" in
607                           32) HP_ARCH="hppa2.0n" ;;
608                           64) HP_ARCH="hppa2.0w" ;;
609                           '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
610                         esac ;;
611                     esac
612                 fi
613                 if [ "${HP_ARCH}" = "" ]; then
614                     eval $set_cc_for_build
615                     sed 's/^              //' << EOF >$dummy.c
616
617               #define _HPUX_SOURCE
618               #include <stdlib.h>
619               #include <unistd.h>
620
621               int main ()
622               {
623               #if defined(_SC_KERNEL_BITS)
624                   long bits = sysconf(_SC_KERNEL_BITS);
625               #endif
626                   long cpu  = sysconf (_SC_CPU_VERSION);
627
628                   switch (cpu)
629                 {
630                 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
631                 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
632                 case CPU_PA_RISC2_0:
633               #if defined(_SC_KERNEL_BITS)
634                     switch (bits)
635                         {
636                         case 64: puts ("hppa2.0w"); break;
637                         case 32: puts ("hppa2.0n"); break;
638                         default: puts ("hppa2.0"); break;
639                         } break;
640               #else  /* !defined(_SC_KERNEL_BITS) */
641                     puts ("hppa2.0"); break;
642               #endif
643                 default: puts ("hppa1.0"); break;
644                 }
645                   exit (0);
646               }
647 EOF
648                     (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
649                     test -z "$HP_ARCH" && HP_ARCH=hppa
650                 fi ;;
651         esac
652         if [ ${HP_ARCH} = "hppa2.0w" ]
653         then
654             eval $set_cc_for_build
655
656             # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
657             # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
658             # generating 64-bit code.  GNU and HP use different nomenclature:
659             #
660             # $ CC_FOR_BUILD=cc ./config.guess
661             # => hppa2.0w-hp-hpux11.23
662             # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
663             # => hppa64-hp-hpux11.23
664
665             if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
666                 grep __LP64__ >/dev/null
667             then
668                 HP_ARCH="hppa2.0w"
669             else
670                 HP_ARCH="hppa64"
671             fi
672         fi
673         echo ${HP_ARCH}-hp-hpux${HPUX_REV}
674         exit ;;
675     ia64:HP-UX:*:*)
676         HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
677         echo ia64-hp-hpux${HPUX_REV}
678         exit ;;
679     3050*:HI-UX:*:*)
680         eval $set_cc_for_build
681         sed 's/^        //' << EOF >$dummy.c
682         #include <unistd.h>
683         int
684         main ()
685         {
686           long cpu = sysconf (_SC_CPU_VERSION);
687           /* The order matters, because CPU_IS_HP_MC68K erroneously returns
688              true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
689              results, however.  */
690           if (CPU_IS_PA_RISC (cpu))
691             {
692               switch (cpu)
693                 {
694                   case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
695                   case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
696                   case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
697                   default: puts ("hppa-hitachi-hiuxwe2"); break;
698                 }
699             }
700           else if (CPU_IS_HP_MC68K (cpu))
701             puts ("m68k-hitachi-hiuxwe2");
702           else puts ("unknown-hitachi-hiuxwe2");
703           exit (0);
704         }
705 EOF
706         $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
707                 { echo "$SYSTEM_NAME"; exit; }
708         echo unknown-hitachi-hiuxwe2
709         exit ;;
710     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
711         echo hppa1.1-hp-bsd
712         exit ;;
713     9000/8??:4.3bsd:*:*)
714         echo hppa1.0-hp-bsd
715         exit ;;
716     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
717         echo hppa1.0-hp-mpeix
718         exit ;;
719     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
720         echo hppa1.1-hp-osf
721         exit ;;
722     hp8??:OSF1:*:*)
723         echo hppa1.0-hp-osf
724         exit ;;
725     i*86:OSF1:*:*)
726         if [ -x /usr/sbin/sysversion ] ; then
727             echo ${UNAME_MACHINE}-unknown-osf1mk
728         else
729             echo ${UNAME_MACHINE}-unknown-osf1
730         fi
731         exit ;;
732     parisc*:Lites*:*:*)
733         echo hppa1.1-hp-lites
734         exit ;;
735     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
736         echo c1-convex-bsd
737         exit ;;
738     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
739         if getsysinfo -f scalar_acc
740         then echo c32-convex-bsd
741         else echo c2-convex-bsd
742         fi
743         exit ;;
744     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
745         echo c34-convex-bsd
746         exit ;;
747     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
748         echo c38-convex-bsd
749         exit ;;
750     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
751         echo c4-convex-bsd
752         exit ;;
753     CRAY*Y-MP:*:*:*)
754         echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
755         exit ;;
756     CRAY*[A-Z]90:*:*:*)
757         echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
758         | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
759               -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
760               -e 's/\.[^.]*$/.X/'
761         exit ;;
762     CRAY*TS:*:*:*)
763         echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
764         exit ;;
765     CRAY*T3E:*:*:*)
766         echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
767         exit ;;
768     CRAY*SV1:*:*:*)
769         echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
770         exit ;;
771     *:UNICOS/mp:*:*)
772         echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
773         exit ;;
774     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
775         FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
776         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
777         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
778         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
779         exit ;;
780     5000:UNIX_System_V:4.*:*)
781         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
782         FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
783         echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
784         exit ;;
785     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
786         echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
787         exit ;;
788     sparc*:BSD/OS:*:*)
789         echo sparc-unknown-bsdi${UNAME_RELEASE}
790         exit ;;
791     *:BSD/OS:*:*)
792         echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
793         exit ;;
794     *:FreeBSD:*:*)
795         case ${UNAME_MACHINE} in
796             pc98)
797                 echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
798             amd64)
799                 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
800             *)
801                 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
802         esac
803         exit ;;
804     i*:CYGWIN*:*)
805         echo ${UNAME_MACHINE}-pc-cygwin
806         exit ;;
807     *:MINGW*:*)
808         echo ${UNAME_MACHINE}-pc-mingw32
809         exit ;;
810     i*:windows32*:*)
811         # uname -m includes "-pc" on this system.
812         echo ${UNAME_MACHINE}-mingw32
813         exit ;;
814     i*:PW*:*)
815         echo ${UNAME_MACHINE}-pc-pw32
816         exit ;;
817     *:Interix*:[3456]*)
818         case ${UNAME_MACHINE} in
819             x86)
820                 echo i586-pc-interix${UNAME_RELEASE}
821                 exit ;;
822             EM64T | authenticamd | genuineintel)
823                 echo x86_64-unknown-interix${UNAME_RELEASE}
824                 exit ;;
825             IA64)
826                 echo ia64-unknown-interix${UNAME_RELEASE}
827                 exit ;;
828         esac ;;
829     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
830         echo i${UNAME_MACHINE}-pc-mks
831         exit ;;
832     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
833         # How do we know it's Interix rather than the generic POSIX subsystem?
834         # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
835         # UNAME_MACHINE based on the output of uname instead of i386?
836         echo i586-pc-interix
837         exit ;;
838     i*:UWIN*:*)
839         echo ${UNAME_MACHINE}-pc-uwin
840         exit ;;
841     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
842         echo x86_64-unknown-cygwin
843         exit ;;
844     p*:CYGWIN*:*)
845         echo powerpcle-unknown-cygwin
846         exit ;;
847     prep*:SunOS:5.*:*)
848         echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
849         exit ;;
850     *:GNU:*:*)
851         # the GNU system
852         echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
853         exit ;;
854     *:GNU/*:*:*)
855         # other systems with GNU libc and userland
856         echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
857         exit ;;
858     i*86:Minix:*:*)
859         echo ${UNAME_MACHINE}-pc-minix
860         exit ;;
861     arm*:Linux:*:*)
862         eval $set_cc_for_build
863         if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
864             | grep -q __ARM_EABI__
865         then
866             echo ${UNAME_MACHINE}-unknown-linux-gnu
867         else
868             echo ${UNAME_MACHINE}-unknown-linux-gnueabi
869         fi
870         exit ;;
871     avr32*:Linux:*:*)
872         echo ${UNAME_MACHINE}-unknown-linux-gnu
873         exit ;;
874     cris:Linux:*:*)
875         echo cris-axis-linux-gnu
876         exit ;;
877     crisv32:Linux:*:*)
878         echo crisv32-axis-linux-gnu
879         exit ;;
880     frv:Linux:*:*)
881         echo frv-unknown-linux-gnu
882         exit ;;
883     ia64:Linux:*:*)
884         echo ${UNAME_MACHINE}-unknown-linux-gnu
885         exit ;;
886     m32r*:Linux:*:*)
887         echo ${UNAME_MACHINE}-unknown-linux-gnu
888         exit ;;
889     m68*:Linux:*:*)
890         echo ${UNAME_MACHINE}-unknown-linux-gnu
891         exit ;;
892     mips:Linux:*:*)
893         eval $set_cc_for_build
894         sed 's/^        //' << EOF >$dummy.c
895         #undef CPU
896         #undef mips
897         #undef mipsel
898         #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
899         CPU=mipsel
900         #else
901         #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
902         CPU=mips
903         #else
904         CPU=
905         #endif
906         #endif
907 EOF
908         eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
909             /^CPU/{
910                 s: ::g
911                 p
912             }'`"
913         test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
914         ;;
915     mips64:Linux:*:*)
916         eval $set_cc_for_build
917         sed 's/^        //' << EOF >$dummy.c
918         #undef CPU
919         #undef mips64
920         #undef mips64el
921         #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
922         CPU=mips64el
923         #else
924         #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
925         CPU=mips64
926         #else
927         CPU=
928         #endif
929         #endif
930 EOF
931         eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
932             /^CPU/{
933                 s: ::g
934                 p
935             }'`"
936         test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
937         ;;
938     or32:Linux:*:*)
939         echo or32-unknown-linux-gnu
940         exit ;;
941     ppc:Linux:*:*)
942         echo powerpc-unknown-linux-gnu
943         exit ;;
944     ppc64:Linux:*:*)
945         echo powerpc64-unknown-linux-gnu
946         exit ;;
947     alpha:Linux:*:*)
948         case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
949           EV5)   UNAME_MACHINE=alphaev5 ;;
950           EV56)  UNAME_MACHINE=alphaev56 ;;
951           PCA56) UNAME_MACHINE=alphapca56 ;;
952           PCA57) UNAME_MACHINE=alphapca56 ;;
953           EV6)   UNAME_MACHINE=alphaev6 ;;
954           EV67)  UNAME_MACHINE=alphaev67 ;;
955           EV68*) UNAME_MACHINE=alphaev68 ;;
956         esac
957         objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
958         if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
959         echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
960         exit ;;
961     padre:Linux:*:*)
962         echo sparc-unknown-linux-gnu
963         exit ;;
964     parisc:Linux:*:* | hppa:Linux:*:*)
965         # Look for CPU level
966         case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
967           PA7*) echo hppa1.1-unknown-linux-gnu ;;
968           PA8*) echo hppa2.0-unknown-linux-gnu ;;
969           *)    echo hppa-unknown-linux-gnu ;;
970         esac
971         exit ;;
972     parisc64:Linux:*:* | hppa64:Linux:*:*)
973         echo hppa64-unknown-linux-gnu
974         exit ;;
975     s390:Linux:*:* | s390x:Linux:*:*)
976         echo ${UNAME_MACHINE}-ibm-linux
977         exit ;;
978     sh64*:Linux:*:*)
979         echo ${UNAME_MACHINE}-unknown-linux-gnu
980         exit ;;
981     sh*:Linux:*:*)
982         echo ${UNAME_MACHINE}-unknown-linux-gnu
983         exit ;;
984     sparc:Linux:*:* | sparc64:Linux:*:*)
985         echo ${UNAME_MACHINE}-unknown-linux-gnu
986         exit ;;
987     vax:Linux:*:*)
988         echo ${UNAME_MACHINE}-dec-linux-gnu
989         exit ;;
990     x86_64:Linux:*:*)
991         echo x86_64-unknown-linux-gnu
992         exit ;;
993     xtensa*:Linux:*:*)
994         echo ${UNAME_MACHINE}-unknown-linux-gnu
995         exit ;;
996     i*86:Linux:*:*)
997         # The BFD linker knows what the default object file format is, so
998         # first see if it will tell us. cd to the root directory to prevent
999         # problems with other programs or directories called `ld' in the path.
1000         # Set LC_ALL=C to ensure ld outputs messages in English.
1001         ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
1002                          | sed -ne '/supported targets:/!d
1003                                     s/[         ][      ]*/ /g
1004                                     s/.*supported targets: *//
1005                                     s/ .*//
1006                                     p'`
1007         case "$ld_supported_targets" in
1008           elf32-i386)
1009                 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
1010                 ;;
1011           a.out-i386-linux)
1012                 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
1013                 exit ;;
1014           "")
1015                 # Either a pre-BFD a.out linker (linux-gnuoldld) or
1016                 # one that does not give us useful --help.
1017                 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
1018                 exit ;;
1019         esac
1020         # Determine whether the default compiler is a.out or elf
1021         eval $set_cc_for_build
1022         sed 's/^        //' << EOF >$dummy.c
1023         #include <features.h>
1024         #ifdef __ELF__
1025         # ifdef __GLIBC__
1026         #  if __GLIBC__ >= 2
1027         LIBC=gnu
1028         #  else
1029         LIBC=gnulibc1
1030         #  endif
1031         # else
1032         LIBC=gnulibc1
1033         # endif
1034         #else
1035         #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
1036         LIBC=gnu
1037         #else
1038         LIBC=gnuaout
1039         #endif
1040         #endif
1041         #ifdef __dietlibc__
1042         LIBC=dietlibc
1043         #endif
1044 EOF
1045         eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
1046             /^LIBC/{
1047                 s: ::g
1048                 p
1049             }'`"
1050         test x"${LIBC}" != x && {
1051                 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
1052                 exit
1053         }
1054         test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
1055         ;;
1056     i*86:DYNIX/ptx:4*:*)
1057         # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1058         # earlier versions are messed up and put the nodename in both
1059         # sysname and nodename.
1060         echo i386-sequent-sysv4
1061         exit ;;
1062     i*86:UNIX_SV:4.2MP:2.*)
1063         # Unixware is an offshoot of SVR4, but it has its own version
1064         # number series starting with 2...
1065         # I am not positive that other SVR4 systems won't match this,
1066         # I just have to hope.  -- rms.
1067         # Use sysv4.2uw... so that sysv4* matches it.
1068         echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1069         exit ;;
1070     i*86:OS/2:*:*)
1071         # If we were able to find `uname', then EMX Unix compatibility
1072         # is probably installed.
1073         echo ${UNAME_MACHINE}-pc-os2-emx
1074         exit ;;
1075     i*86:XTS-300:*:STOP)
1076         echo ${UNAME_MACHINE}-unknown-stop
1077         exit ;;
1078     i*86:atheos:*:*)
1079         echo ${UNAME_MACHINE}-unknown-atheos
1080         exit ;;
1081     i*86:syllable:*:*)
1082         echo ${UNAME_MACHINE}-pc-syllable
1083         exit ;;
1084     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1085         echo i386-unknown-lynxos${UNAME_RELEASE}
1086         exit ;;
1087     i*86:*DOS:*:*)
1088         echo ${UNAME_MACHINE}-pc-msdosdjgpp
1089         exit ;;
1090     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1091         UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1092         if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1093                 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1094         else
1095                 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1096         fi
1097         exit ;;
1098     i*86:*:5:[678]*)
1099         # UnixWare 7.x, OpenUNIX and OpenServer 6.
1100         case `/bin/uname -X | grep "^Machine"` in
1101             *486*)           UNAME_MACHINE=i486 ;;
1102             *Pentium)        UNAME_MACHINE=i586 ;;
1103             *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1104         esac
1105         echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1106         exit ;;
1107     i*86:*:3.2:*)
1108         if test -f /usr/options/cb.name; then
1109                 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1110                 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1111         elif /bin/uname -X 2>/dev/null >/dev/null ; then
1112                 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1113                 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1114                 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1115                         && UNAME_MACHINE=i586
1116                 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1117                         && UNAME_MACHINE=i686
1118                 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1119                         && UNAME_MACHINE=i686
1120                 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1121         else
1122                 echo ${UNAME_MACHINE}-pc-sysv32
1123         fi
1124         exit ;;
1125     pc:*:*:*)
1126         # Left here for compatibility:
1127         # uname -m prints for DJGPP always 'pc', but it prints nothing about
1128         # the processor, so we play safe by assuming i386.
1129         echo i386-pc-msdosdjgpp
1130         exit ;;
1131     Intel:Mach:3*:*)
1132         echo i386-pc-mach3
1133         exit ;;
1134     paragon:*:*:*)
1135         echo i860-intel-osf1
1136         exit ;;
1137     i860:*:4.*:*) # i860-SVR4
1138         if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1139           echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1140         else # Add other i860-SVR4 vendors below as they are discovered.
1141           echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
1142         fi
1143         exit ;;
1144     mini*:CTIX:SYS*5:*)
1145         # "miniframe"
1146         echo m68010-convergent-sysv
1147         exit ;;
1148     mc68k:UNIX:SYSTEM5:3.51m)
1149         echo m68k-convergent-sysv
1150         exit ;;
1151     M680?0:D-NIX:5.3:*)
1152         echo m68k-diab-dnix
1153         exit ;;
1154     M68*:*:R3V[5678]*:*)
1155         test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1156     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)
1157         OS_REL=''
1158         test -r /etc/.relid \
1159         && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1160         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1161           && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1162         /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1163           && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1164     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1165         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1166           && { echo i486-ncr-sysv4; exit; } ;;
1167     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1168         echo m68k-unknown-lynxos${UNAME_RELEASE}
1169         exit ;;
1170     mc68030:UNIX_System_V:4.*:*)
1171         echo m68k-atari-sysv4
1172         exit ;;
1173     TSUNAMI:LynxOS:2.*:*)
1174         echo sparc-unknown-lynxos${UNAME_RELEASE}
1175         exit ;;
1176     rs6000:LynxOS:2.*:*)
1177         echo rs6000-unknown-lynxos${UNAME_RELEASE}
1178         exit ;;
1179     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1180         echo powerpc-unknown-lynxos${UNAME_RELEASE}
1181         exit ;;
1182     SM[BE]S:UNIX_SV:*:*)
1183         echo mips-dde-sysv${UNAME_RELEASE}
1184         exit ;;
1185     RM*:ReliantUNIX-*:*:*)
1186         echo mips-sni-sysv4
1187         exit ;;
1188     RM*:SINIX-*:*:*)
1189         echo mips-sni-sysv4
1190         exit ;;
1191     *:SINIX-*:*:*)
1192         if uname -p 2>/dev/null >/dev/null ; then
1193                 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1194                 echo ${UNAME_MACHINE}-sni-sysv4
1195         else
1196                 echo ns32k-sni-sysv
1197         fi
1198         exit ;;
1199     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1200                       # says <Richard.M.Bartel@ccMail.Census.GOV>
1201         echo i586-unisys-sysv4
1202         exit ;;
1203     *:UNIX_System_V:4*:FTX*)
1204         # From Gerald Hewes <hewes@openmarket.com>.
1205         # How about differentiating between stratus architectures? -djm
1206         echo hppa1.1-stratus-sysv4
1207         exit ;;
1208     *:*:*:FTX*)
1209         # From seanf@swdc.stratus.com.
1210         echo i860-stratus-sysv4
1211         exit ;;
1212     i*86:VOS:*:*)
1213         # From Paul.Green@stratus.com.
1214         echo ${UNAME_MACHINE}-stratus-vos
1215         exit ;;
1216     *:VOS:*:*)
1217         # From Paul.Green@stratus.com.
1218         echo hppa1.1-stratus-vos
1219         exit ;;
1220     mc68*:A/UX:*:*)
1221         echo m68k-apple-aux${UNAME_RELEASE}
1222         exit ;;
1223     news*:NEWS-OS:6*:*)
1224         echo mips-sony-newsos6
1225         exit ;;
1226     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1227         if [ -d /usr/nec ]; then
1228                 echo mips-nec-sysv${UNAME_RELEASE}
1229         else
1230                 echo mips-unknown-sysv${UNAME_RELEASE}
1231         fi
1232         exit ;;
1233     BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
1234         echo powerpc-be-beos
1235         exit ;;
1236     BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
1237         echo powerpc-apple-beos
1238         exit ;;
1239     BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
1240         echo i586-pc-beos
1241         exit ;;
1242     BePC:Haiku:*:*)     # Haiku running on Intel PC compatible.
1243         echo i586-pc-haiku
1244         exit ;;
1245     SX-4:SUPER-UX:*:*)
1246         echo sx4-nec-superux${UNAME_RELEASE}
1247         exit ;;
1248     SX-5:SUPER-UX:*:*)
1249         echo sx5-nec-superux${UNAME_RELEASE}
1250         exit ;;
1251     SX-6:SUPER-UX:*:*)
1252         echo sx6-nec-superux${UNAME_RELEASE}
1253         exit ;;
1254     SX-7:SUPER-UX:*:*)
1255         echo sx7-nec-superux${UNAME_RELEASE}
1256         exit ;;
1257     SX-8:SUPER-UX:*:*)
1258         echo sx8-nec-superux${UNAME_RELEASE}
1259         exit ;;
1260     SX-8R:SUPER-UX:*:*)
1261         echo sx8r-nec-superux${UNAME_RELEASE}
1262         exit ;;
1263     Power*:Rhapsody:*:*)
1264         echo powerpc-apple-rhapsody${UNAME_RELEASE}
1265         exit ;;
1266     *:Rhapsody:*:*)
1267         echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1268         exit ;;
1269     *:Darwin:*:*)
1270         UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1271         case $UNAME_PROCESSOR in
1272             unknown) UNAME_PROCESSOR=powerpc ;;
1273         esac
1274         echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1275         exit ;;
1276     *:procnto*:*:* | *:QNX:[0123456789]*:*)
1277         UNAME_PROCESSOR=`uname -p`
1278         if test "$UNAME_PROCESSOR" = "x86"; then
1279                 UNAME_PROCESSOR=i386
1280                 UNAME_MACHINE=pc
1281         fi
1282         echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1283         exit ;;
1284     *:QNX:*:4*)
1285         echo i386-pc-qnx
1286         exit ;;
1287     NSE-?:NONSTOP_KERNEL:*:*)
1288         echo nse-tandem-nsk${UNAME_RELEASE}
1289         exit ;;
1290     NSR-?:NONSTOP_KERNEL:*:*)
1291         echo nsr-tandem-nsk${UNAME_RELEASE}
1292         exit ;;
1293     *:NonStop-UX:*:*)
1294         echo mips-compaq-nonstopux
1295         exit ;;
1296     BS2000:POSIX*:*:*)
1297         echo bs2000-siemens-sysv
1298         exit ;;
1299     DS/*:UNIX_System_V:*:*)
1300         echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1301         exit ;;
1302     *:Plan9:*:*)
1303         # "uname -m" is not consistent, so use $cputype instead. 386
1304         # is converted to i386 for consistency with other x86
1305         # operating systems.
1306         if test "$cputype" = "386"; then
1307             UNAME_MACHINE=i386
1308         else
1309             UNAME_MACHINE="$cputype"
1310         fi
1311         echo ${UNAME_MACHINE}-unknown-plan9
1312         exit ;;
1313     *:TOPS-10:*:*)
1314         echo pdp10-unknown-tops10
1315         exit ;;
1316     *:TENEX:*:*)
1317         echo pdp10-unknown-tenex
1318         exit ;;
1319     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1320         echo pdp10-dec-tops20
1321         exit ;;
1322     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1323         echo pdp10-xkl-tops20
1324         exit ;;
1325     *:TOPS-20:*:*)
1326         echo pdp10-unknown-tops20
1327         exit ;;
1328     *:ITS:*:*)
1329         echo pdp10-unknown-its
1330         exit ;;
1331     SEI:*:*:SEIUX)
1332         echo mips-sei-seiux${UNAME_RELEASE}
1333         exit ;;
1334     *:DragonFly:*:*)
1335         echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1336         exit ;;
1337     *:*VMS:*:*)
1338         UNAME_MACHINE=`(uname -p) 2>/dev/null`
1339         case "${UNAME_MACHINE}" in
1340             A*) echo alpha-dec-vms ; exit ;;
1341             I*) echo ia64-dec-vms ; exit ;;
1342             V*) echo vax-dec-vms ; exit ;;
1343         esac ;;
1344     *:XENIX:*:SysV)
1345         echo i386-pc-xenix
1346         exit ;;
1347     i*86:skyos:*:*)
1348         echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1349         exit ;;
1350     i*86:rdos:*:*)
1351         echo ${UNAME_MACHINE}-pc-rdos
1352         exit ;;
1353 esac
1354
1355 #echo '(No uname command or uname output not recognized.)' 1>&2
1356 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1357
1358 eval $set_cc_for_build
1359 cat >$dummy.c <<EOF
1360 #ifdef _SEQUENT_
1361 # include <sys/types.h>
1362 # include <sys/utsname.h>
1363 #endif
1364 main ()
1365 {
1366 #if defined (sony)
1367 #if defined (MIPSEB)
1368   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1369      I don't know....  */
1370   printf ("mips-sony-bsd\n"); exit (0);
1371 #else
1372 #include <sys/param.h>
1373   printf ("m68k-sony-newsos%s\n",
1374 #ifdef NEWSOS4
1375           "4"
1376 #else
1377           ""
1378 #endif
1379          ); exit (0);
1380 #endif
1381 #endif
1382
1383 #if defined (__arm) && defined (__acorn) && defined (__unix)
1384   printf ("arm-acorn-riscix\n"); exit (0);
1385 #endif
1386
1387 #if defined (hp300) && !defined (hpux)
1388   printf ("m68k-hp-bsd\n"); exit (0);
1389 #endif
1390
1391 #if defined (NeXT)
1392 #if !defined (__ARCHITECTURE__)
1393 #define __ARCHITECTURE__ "m68k"
1394 #endif
1395   int version;
1396   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1397   if (version < 4)
1398     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1399   else
1400     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1401   exit (0);
1402 #endif
1403
1404 #if defined (MULTIMAX) || defined (n16)
1405 #if defined (UMAXV)
1406   printf ("ns32k-encore-sysv\n"); exit (0);
1407 #else
1408 #if defined (CMU)
1409   printf ("ns32k-encore-mach\n"); exit (0);
1410 #else
1411   printf ("ns32k-encore-bsd\n"); exit (0);
1412 #endif
1413 #endif
1414 #endif
1415
1416 #if defined (__386BSD__)
1417   printf ("i386-pc-bsd\n"); exit (0);
1418 #endif
1419
1420 #if defined (sequent)
1421 #if defined (i386)
1422   printf ("i386-sequent-dynix\n"); exit (0);
1423 #endif
1424 #if defined (ns32000)
1425   printf ("ns32k-sequent-dynix\n"); exit (0);
1426 #endif
1427 #endif
1428
1429 #if defined (_SEQUENT_)
1430     struct utsname un;
1431
1432     uname(&un);
1433
1434     if (strncmp(un.version, "V2", 2) == 0) {
1435         printf ("i386-sequent-ptx2\n"); exit (0);
1436     }
1437     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1438         printf ("i386-sequent-ptx1\n"); exit (0);
1439     }
1440     printf ("i386-sequent-ptx\n"); exit (0);
1441
1442 #endif
1443
1444 #if defined (vax)
1445 # if !defined (ultrix)
1446 #  include <sys/param.h>
1447 #  if defined (BSD)
1448 #   if BSD == 43
1449       printf ("vax-dec-bsd4.3\n"); exit (0);
1450 #   else
1451 #    if BSD == 199006
1452       printf ("vax-dec-bsd4.3reno\n"); exit (0);
1453 #    else
1454       printf ("vax-dec-bsd\n"); exit (0);
1455 #    endif
1456 #   endif
1457 #  else
1458     printf ("vax-dec-bsd\n"); exit (0);
1459 #  endif
1460 # else
1461     printf ("vax-dec-ultrix\n"); exit (0);
1462 # endif
1463 #endif
1464
1465 #if defined (alliant) && defined (i860)
1466   printf ("i860-alliant-bsd\n"); exit (0);
1467 #endif
1468
1469   exit (1);
1470 }
1471 EOF
1472
1473 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1474         { echo "$SYSTEM_NAME"; exit; }
1475
1476 # Apollos put the system type in the environment.
1477
1478 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1479
1480 # Convex versions that predate uname can use getsysinfo(1)
1481
1482 if [ -x /usr/convex/getsysinfo ]
1483 then
1484     case `getsysinfo -f cpu_type` in
1485     c1*)
1486         echo c1-convex-bsd
1487         exit ;;
1488     c2*)
1489         if getsysinfo -f scalar_acc
1490         then echo c32-convex-bsd
1491         else echo c2-convex-bsd
1492         fi
1493         exit ;;
1494     c34*)
1495         echo c34-convex-bsd
1496         exit ;;
1497     c38*)
1498         echo c38-convex-bsd
1499         exit ;;
1500     c4*)
1501         echo c4-convex-bsd
1502         exit ;;
1503     esac
1504 fi
1505
1506 cat >&2 <<EOF
1507 $0: unable to guess system type
1508
1509 This script, last modified $timestamp, has failed to recognize
1510 the operating system you are using. It is advised that you
1511 download the most up to date version of the config scripts from
1512
1513   http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1514 and
1515   http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1516
1517 If the version you run ($0) is already up to date, please
1518 send the following data and any information you think might be
1519 pertinent to <config-patches@gnu.org> in order to provide the needed
1520 information to handle your system.
1521
1522 config.guess timestamp = $timestamp
1523
1524 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1525 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1526 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1527 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1528
1529 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1530 /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1531
1532 hostinfo               = `(hostinfo) 2>/dev/null`
1533 /bin/universe          = `(/bin/universe) 2>/dev/null`
1534 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1535 /bin/arch              = `(/bin/arch) 2>/dev/null`
1536 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1537 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1538
1539 UNAME_MACHINE = ${UNAME_MACHINE}
1540 UNAME_RELEASE = ${UNAME_RELEASE}
1541 UNAME_SYSTEM  = ${UNAME_SYSTEM}
1542 UNAME_VERSION = ${UNAME_VERSION}
1543 EOF
1544
1545 exit 1
1546
1547 # Local variables:
1548 # eval: (add-hook 'write-file-hooks 'time-stamp)
1549 # time-stamp-start: "timestamp='"
1550 # time-stamp-format: "%:y-%02m-%02d"
1551 # time-stamp-end: "'"
1552 # End: