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