config.guess revision c253c3b982466d649458c40fde0bf26427515f79
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#   2011, 2012, 2013 Free Software Foundation, Inc.
6
7timestamp='2012-12-30'
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 3 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, see <http://www.gnu.org/licenses/>.
21#
22# As a special exception to the GNU General Public License, if you
23# distribute this file as part of a program that contains a
24# configuration script generated by Autoconf, you may include it under
25# the same distribution terms that you use for the rest of that
26# program.  This Exception is an additional permission under section 7
27# of the GNU General Public License, version 3 ("GPLv3").
28#
29# Originally written by Per Bothner.
30#
31# You can get the latest version of this script from:
32# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
33#
34# Please send patches with a ChangeLog entry to config-patches@gnu.org.
35
36
37me=`echo "$0" | sed -e 's,.*/,,'`
38
39usage="\
40Usage: $0 [OPTION]
41
42Output the configuration name of the system \`$me' is run on.
43
44Operation modes:
45  -h, --help         print this help, then exit
46  -t, --time-stamp   print date of last modification, then exit
47  -v, --version      print version number, then exit
48
49Report bugs and patches to <config-patches@gnu.org>."
50
51version="\
52GNU config.guess ($timestamp)
53
54Originally written by Per Bothner.
55Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
562001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
572012, 2013 Free Software Foundation, Inc.
58
59This is free software; see the source for copying conditions.  There is NO
60warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
61
62help="
63Try \`$me --help' for more information."
64
65# Parse command line
66while test $# -gt 0 ; do
67  case $1 in
68    --time-stamp | --time* | -t )
69       echo "$timestamp" ; exit ;;
70    --version | -v )
71       echo "$version" ; exit ;;
72    --help | --h* | -h )
73       echo "$usage"; exit ;;
74    -- )     # Stop option processing
75       shift; break ;;
76    - )	# Use stdin as input.
77       break ;;
78    -* )
79       echo "$me: invalid option $1$help" >&2
80       exit 1 ;;
81    * )
82       break ;;
83  esac
84done
85
86if test $# != 0; then
87  echo "$me: too many arguments$help" >&2
88  exit 1
89fi
90
91trap 'exit 1' 1 2 15
92
93# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
94# compiler to aid in system detection is discouraged as it requires
95# temporary files to be created and, as you can see below, it is a
96# headache to deal with in a portable fashion.
97
98# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
99# use `HOST_CC' if defined, but it is deprecated.
100
101# Portable tmp directory creation inspired by the Autoconf team.
102
103set_cc_for_build='
104trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
105trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
106: ${TMPDIR=/tmp} ;
107 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
108 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
109 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
110 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
111dummy=$tmp/dummy ;
112tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
113case $CC_FOR_BUILD,$HOST_CC,$CC in
114 ,,)    echo "int x;" > $dummy.c ;
115	for c in cc gcc c89 c99 ; do
116	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
117	     CC_FOR_BUILD="$c"; break ;
118	  fi ;
119	done ;
120	if test x"$CC_FOR_BUILD" = x ; then
121	  CC_FOR_BUILD=no_compiler_found ;
122	fi
123	;;
124 ,,*)   CC_FOR_BUILD=$CC ;;
125 ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
126esac ; set_cc_for_build= ;'
127
128# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
129# (ghazi@noc.rutgers.edu 1994-08-24)
130if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
131	PATH=$PATH:/.attbin ; export PATH
132fi
133
134UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
135UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
136UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
137UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
138
139# Note: order is significant - the case branches are not exclusive.
140
141case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
142    *:NetBSD:*:*)
143	# NetBSD (nbsd) targets should (where applicable) match one or
144	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
145	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
146	# switched to ELF, *-*-netbsd* would select the old
147	# object file format.  This provides both forward
148	# compatibility and a consistent mechanism for selecting the
149	# object file format.
150	#
151	# Note: NetBSD doesn't particularly care about the vendor
152	# portion of the name.  We always set it to "unknown".
153	sysctl="sysctl -n hw.machine_arch"
154	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
155	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
156	case "${UNAME_MACHINE_ARCH}" in
157	    armeb) machine=armeb-unknown ;;
158	    arm*) machine=arm-unknown ;;
159	    sh3el) machine=shl-unknown ;;
160	    sh3eb) machine=sh-unknown ;;
161	    sh5el) machine=sh5le-unknown ;;
162	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
163	esac
164	# The Operating System including object format, if it has switched
165	# to ELF recently, or will in the future.
166	case "${UNAME_MACHINE_ARCH}" in
167	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
168		eval $set_cc_for_build
169		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
170			| grep -q __ELF__
171		then
172		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
173		    # Return netbsd for either.  FIX?
174		    os=netbsd
175		else
176		    os=netbsdelf
177		fi
178		;;
179	    *)
180		os=netbsd
181		;;
182	esac
183	# The OS release
184	# Debian GNU/NetBSD machines have a different userland, and
185	# thus, need a distinct triplet. However, they do not need
186	# kernel version information, so it can be replaced with a
187	# suitable tag, in the style of linux-gnu.
188	case "${UNAME_VERSION}" in
189	    Debian*)
190		release='-gnu'
191		;;
192	    *)
193		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
194		;;
195	esac
196	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
197	# contains redundant information, the shorter form:
198	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
199	echo "${machine}-${os}${release}"
200	exit ;;
201    *:Bitrig:*:*)
202	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
203	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_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	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
274	exitcode=$?
275	trap '' 0
276	exit $exitcode ;;
277    Alpha\ *:Windows_NT*:*)
278	# How do we know it's Interix rather than the generic POSIX subsystem?
279	# Should we change UNAME_MACHINE based on the output of uname instead
280	# of the specific Alpha model?
281	echo alpha-pc-interix
282	exit ;;
283    21064:Windows_NT:50:3)
284	echo alpha-dec-winnt3.5
285	exit ;;
286    Amiga*:UNIX_System_V:4.0:*)
287	echo m68k-unknown-sysv4
288	exit ;;
289    *:[Aa]miga[Oo][Ss]:*:*)
290	echo ${UNAME_MACHINE}-unknown-amigaos
291	exit ;;
292    *:[Mm]orph[Oo][Ss]:*:*)
293	echo ${UNAME_MACHINE}-unknown-morphos
294	exit ;;
295    *:OS/390:*:*)
296	echo i370-ibm-openedition
297	exit ;;
298    *:z/VM:*:*)
299	echo s390-ibm-zvmoe
300	exit ;;
301    *:OS400:*:*)
302	echo powerpc-ibm-os400
303	exit ;;
304    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
305	echo arm-acorn-riscix${UNAME_RELEASE}
306	exit ;;
307    arm*:riscos:*:*|arm*:RISCOS:*:*)
308	echo arm-unknown-riscos
309	exit ;;
310    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
311	echo hppa1.1-hitachi-hiuxmpp
312	exit ;;
313    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
314	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
315	if test "`(/bin/universe) 2>/dev/null`" = att ; then
316		echo pyramid-pyramid-sysv3
317	else
318		echo pyramid-pyramid-bsd
319	fi
320	exit ;;
321    NILE*:*:*:dcosx)
322	echo pyramid-pyramid-svr4
323	exit ;;
324    DRS?6000:unix:4.0:6*)
325	echo sparc-icl-nx6
326	exit ;;
327    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
328	case `/usr/bin/uname -p` in
329	    sparc) echo sparc-icl-nx7; exit ;;
330	esac ;;
331    s390x:SunOS:*:*)
332	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
333	exit ;;
334    sun4H:SunOS:5.*:*)
335	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
336	exit ;;
337    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
338	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
339	exit ;;
340    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
341	echo i386-pc-auroraux${UNAME_RELEASE}
342	exit ;;
343    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
344	eval $set_cc_for_build
345	SUN_ARCH="i386"
346	# If there is a compiler, see if it is configured for 64-bit objects.
347	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
348	# This test works for both compilers.
349	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
350	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#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	}
458EOF
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			}
545EOF
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:*:[4567])
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		}
647EOF
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 -q __LP64__
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	}
705EOF
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	UNAME_PROCESSOR=`/usr/bin/uname -p`
796	case ${UNAME_PROCESSOR} in
797	    amd64)
798		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
799	    *)
800		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
801	esac
802	exit ;;
803    i*:CYGWIN*:*)
804	echo ${UNAME_MACHINE}-pc-cygwin
805	exit ;;
806    *:MINGW64*:*)
807	echo ${UNAME_MACHINE}-pc-mingw64
808	exit ;;
809    *:MINGW*:*)
810	echo ${UNAME_MACHINE}-pc-mingw32
811	exit ;;
812    i*:MSYS*:*)
813	echo ${UNAME_MACHINE}-pc-msys
814	exit ;;
815    i*:windows32*:*)
816	# uname -m includes "-pc" on this system.
817	echo ${UNAME_MACHINE}-mingw32
818	exit ;;
819    i*:PW*:*)
820	echo ${UNAME_MACHINE}-pc-pw32
821	exit ;;
822    *:Interix*:*)
823	case ${UNAME_MACHINE} in
824	    x86)
825		echo i586-pc-interix${UNAME_RELEASE}
826		exit ;;
827	    authenticamd | genuineintel | EM64T)
828		echo x86_64-unknown-interix${UNAME_RELEASE}
829		exit ;;
830	    IA64)
831		echo ia64-unknown-interix${UNAME_RELEASE}
832		exit ;;
833	esac ;;
834    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
835	echo i${UNAME_MACHINE}-pc-mks
836	exit ;;
837    8664:Windows_NT:*)
838	echo x86_64-pc-mks
839	exit ;;
840    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
841	# How do we know it's Interix rather than the generic POSIX subsystem?
842	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
843	# UNAME_MACHINE based on the output of uname instead of i386?
844	echo i586-pc-interix
845	exit ;;
846    i*:UWIN*:*)
847	echo ${UNAME_MACHINE}-pc-uwin
848	exit ;;
849    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
850	echo x86_64-unknown-cygwin
851	exit ;;
852    p*:CYGWIN*:*)
853	echo powerpcle-unknown-cygwin
854	exit ;;
855    prep*:SunOS:5.*:*)
856	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
857	exit ;;
858    *:GNU:*:*)
859	# the GNU system
860	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
861	exit ;;
862    *:GNU/*:*:*)
863	# other systems with GNU libc and userland
864	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
865	exit ;;
866    i*86:Minix:*:*)
867	echo ${UNAME_MACHINE}-pc-minix
868	exit ;;
869    aarch64:Linux:*:*)
870	echo ${UNAME_MACHINE}-unknown-linux-gnu
871	exit ;;
872    aarch64_be:Linux:*:*)
873	UNAME_MACHINE=aarch64_be
874	echo ${UNAME_MACHINE}-unknown-linux-gnu
875	exit ;;
876    alpha:Linux:*:*)
877	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
878	  EV5)   UNAME_MACHINE=alphaev5 ;;
879	  EV56)  UNAME_MACHINE=alphaev56 ;;
880	  PCA56) UNAME_MACHINE=alphapca56 ;;
881	  PCA57) UNAME_MACHINE=alphapca56 ;;
882	  EV6)   UNAME_MACHINE=alphaev6 ;;
883	  EV67)  UNAME_MACHINE=alphaev67 ;;
884	  EV68*) UNAME_MACHINE=alphaev68 ;;
885	esac
886	objdump --private-headers /bin/sh | grep -q ld.so.1
887	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
888	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
889	exit ;;
890    arm*:Linux:*:*)
891	eval $set_cc_for_build
892	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
893	    | grep -q __ARM_EABI__
894	then
895	    echo ${UNAME_MACHINE}-unknown-linux-gnu
896	else
897	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
898		| grep -q __ARM_PCS_VFP
899	    then
900		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
901	    else
902		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
903	    fi
904	fi
905	exit ;;
906    avr32*:Linux:*:*)
907	echo ${UNAME_MACHINE}-unknown-linux-gnu
908	exit ;;
909    cris:Linux:*:*)
910	echo ${UNAME_MACHINE}-axis-linux-gnu
911	exit ;;
912    crisv32:Linux:*:*)
913	echo ${UNAME_MACHINE}-axis-linux-gnu
914	exit ;;
915    frv:Linux:*:*)
916	echo ${UNAME_MACHINE}-unknown-linux-gnu
917	exit ;;
918    hexagon:Linux:*:*)
919	echo ${UNAME_MACHINE}-unknown-linux-gnu
920	exit ;;
921    i*86:Linux:*:*)
922	LIBC=gnu
923	eval $set_cc_for_build
924	sed 's/^	//' << EOF >$dummy.c
925	#ifdef __dietlibc__
926	LIBC=dietlibc
927	#endif
928EOF
929	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
930	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
931	exit ;;
932    ia64:Linux:*:*)
933	echo ${UNAME_MACHINE}-unknown-linux-gnu
934	exit ;;
935    m32r*:Linux:*:*)
936	echo ${UNAME_MACHINE}-unknown-linux-gnu
937	exit ;;
938    m68*:Linux:*:*)
939	echo ${UNAME_MACHINE}-unknown-linux-gnu
940	exit ;;
941    mips:Linux:*:* | mips64:Linux:*:*)
942	eval $set_cc_for_build
943	sed 's/^	//' << EOF >$dummy.c
944	#undef CPU
945	#undef ${UNAME_MACHINE}
946	#undef ${UNAME_MACHINE}el
947	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
948	CPU=${UNAME_MACHINE}el
949	#else
950	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
951	CPU=${UNAME_MACHINE}
952	#else
953	CPU=
954	#endif
955	#endif
956EOF
957	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
958	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
959	;;
960    or32:Linux:*:*)
961	echo ${UNAME_MACHINE}-unknown-linux-gnu
962	exit ;;
963    padre:Linux:*:*)
964	echo sparc-unknown-linux-gnu
965	exit ;;
966    parisc64:Linux:*:* | hppa64:Linux:*:*)
967	echo hppa64-unknown-linux-gnu
968	exit ;;
969    parisc:Linux:*:* | hppa:Linux:*:*)
970	# Look for CPU level
971	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
972	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
973	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
974	  *)    echo hppa-unknown-linux-gnu ;;
975	esac
976	exit ;;
977    ppc64:Linux:*:*)
978	echo powerpc64-unknown-linux-gnu
979	exit ;;
980    ppc:Linux:*:*)
981	echo powerpc-unknown-linux-gnu
982	exit ;;
983    s390:Linux:*:* | s390x:Linux:*:*)
984	echo ${UNAME_MACHINE}-ibm-linux
985	exit ;;
986    sh64*:Linux:*:*)
987	echo ${UNAME_MACHINE}-unknown-linux-gnu
988	exit ;;
989    sh*:Linux:*:*)
990	echo ${UNAME_MACHINE}-unknown-linux-gnu
991	exit ;;
992    sparc:Linux:*:* | sparc64:Linux:*:*)
993	echo ${UNAME_MACHINE}-unknown-linux-gnu
994	exit ;;
995    tile*:Linux:*:*)
996	echo ${UNAME_MACHINE}-unknown-linux-gnu
997	exit ;;
998    vax:Linux:*:*)
999	echo ${UNAME_MACHINE}-dec-linux-gnu
1000	exit ;;
1001    x86_64:Linux:*:*)
1002	echo ${UNAME_MACHINE}-unknown-linux-gnu
1003	exit ;;
1004    xtensa*:Linux:*:*)
1005	echo ${UNAME_MACHINE}-unknown-linux-gnu
1006	exit ;;
1007    i*86:DYNIX/ptx:4*:*)
1008	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1009	# earlier versions are messed up and put the nodename in both
1010	# sysname and nodename.
1011	echo i386-sequent-sysv4
1012	exit ;;
1013    i*86:UNIX_SV:4.2MP:2.*)
1014	# Unixware is an offshoot of SVR4, but it has its own version
1015	# number series starting with 2...
1016	# I am not positive that other SVR4 systems won't match this,
1017	# I just have to hope.  -- rms.
1018	# Use sysv4.2uw... so that sysv4* matches it.
1019	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1020	exit ;;
1021    i*86:OS/2:*:*)
1022	# If we were able to find `uname', then EMX Unix compatibility
1023	# is probably installed.
1024	echo ${UNAME_MACHINE}-pc-os2-emx
1025	exit ;;
1026    i*86:XTS-300:*:STOP)
1027	echo ${UNAME_MACHINE}-unknown-stop
1028	exit ;;
1029    i*86:atheos:*:*)
1030	echo ${UNAME_MACHINE}-unknown-atheos
1031	exit ;;
1032    i*86:syllable:*:*)
1033	echo ${UNAME_MACHINE}-pc-syllable
1034	exit ;;
1035    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1036	echo i386-unknown-lynxos${UNAME_RELEASE}
1037	exit ;;
1038    i*86:*DOS:*:*)
1039	echo ${UNAME_MACHINE}-pc-msdosdjgpp
1040	exit ;;
1041    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1042	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1043	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1044		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1045	else
1046		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1047	fi
1048	exit ;;
1049    i*86:*:5:[678]*)
1050	# UnixWare 7.x, OpenUNIX and OpenServer 6.
1051	case `/bin/uname -X | grep "^Machine"` in
1052	    *486*)	     UNAME_MACHINE=i486 ;;
1053	    *Pentium)	     UNAME_MACHINE=i586 ;;
1054	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1055	esac
1056	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1057	exit ;;
1058    i*86:*:3.2:*)
1059	if test -f /usr/options/cb.name; then
1060		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1061		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1062	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1063		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1064		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1065		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1066			&& UNAME_MACHINE=i586
1067		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1068			&& UNAME_MACHINE=i686
1069		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1070			&& UNAME_MACHINE=i686
1071		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1072	else
1073		echo ${UNAME_MACHINE}-pc-sysv32
1074	fi
1075	exit ;;
1076    pc:*:*:*)
1077	# Left here for compatibility:
1078	# uname -m prints for DJGPP always 'pc', but it prints nothing about
1079	# the processor, so we play safe by assuming i586.
1080	# Note: whatever this is, it MUST be the same as what config.sub
1081	# prints for the "djgpp" host, or else GDB configury will decide that
1082	# this is a cross-build.
1083	echo i586-pc-msdosdjgpp
1084	exit ;;
1085    Intel:Mach:3*:*)
1086	echo i386-pc-mach3
1087	exit ;;
1088    paragon:*:*:*)
1089	echo i860-intel-osf1
1090	exit ;;
1091    i860:*:4.*:*) # i860-SVR4
1092	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1093	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1094	else # Add other i860-SVR4 vendors below as they are discovered.
1095	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
1096	fi
1097	exit ;;
1098    mini*:CTIX:SYS*5:*)
1099	# "miniframe"
1100	echo m68010-convergent-sysv
1101	exit ;;
1102    mc68k:UNIX:SYSTEM5:3.51m)
1103	echo m68k-convergent-sysv
1104	exit ;;
1105    M680?0:D-NIX:5.3:*)
1106	echo m68k-diab-dnix
1107	exit ;;
1108    M68*:*:R3V[5678]*:*)
1109	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1110    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)
1111	OS_REL=''
1112	test -r /etc/.relid \
1113	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1114	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1115	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1116	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1117	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1118    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1119	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1120	  && { echo i486-ncr-sysv4; exit; } ;;
1121    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1122	OS_REL='.3'
1123	test -r /etc/.relid \
1124	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1125	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1126	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1127	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1128	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1129	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1130	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1131    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1132	echo m68k-unknown-lynxos${UNAME_RELEASE}
1133	exit ;;
1134    mc68030:UNIX_System_V:4.*:*)
1135	echo m68k-atari-sysv4
1136	exit ;;
1137    TSUNAMI:LynxOS:2.*:*)
1138	echo sparc-unknown-lynxos${UNAME_RELEASE}
1139	exit ;;
1140    rs6000:LynxOS:2.*:*)
1141	echo rs6000-unknown-lynxos${UNAME_RELEASE}
1142	exit ;;
1143    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1144	echo powerpc-unknown-lynxos${UNAME_RELEASE}
1145	exit ;;
1146    SM[BE]S:UNIX_SV:*:*)
1147	echo mips-dde-sysv${UNAME_RELEASE}
1148	exit ;;
1149    RM*:ReliantUNIX-*:*:*)
1150	echo mips-sni-sysv4
1151	exit ;;
1152    RM*:SINIX-*:*:*)
1153	echo mips-sni-sysv4
1154	exit ;;
1155    *:SINIX-*:*:*)
1156	if uname -p 2>/dev/null >/dev/null ; then
1157		UNAME_MACHINE=`(uname -p) 2>/dev/null`
1158		echo ${UNAME_MACHINE}-sni-sysv4
1159	else
1160		echo ns32k-sni-sysv
1161	fi
1162	exit ;;
1163    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1164			# says <Richard.M.Bartel@ccMail.Census.GOV>
1165	echo i586-unisys-sysv4
1166	exit ;;
1167    *:UNIX_System_V:4*:FTX*)
1168	# From Gerald Hewes <hewes@openmarket.com>.
1169	# How about differentiating between stratus architectures? -djm
1170	echo hppa1.1-stratus-sysv4
1171	exit ;;
1172    *:*:*:FTX*)
1173	# From seanf@swdc.stratus.com.
1174	echo i860-stratus-sysv4
1175	exit ;;
1176    i*86:VOS:*:*)
1177	# From Paul.Green@stratus.com.
1178	echo ${UNAME_MACHINE}-stratus-vos
1179	exit ;;
1180    *:VOS:*:*)
1181	# From Paul.Green@stratus.com.
1182	echo hppa1.1-stratus-vos
1183	exit ;;
1184    mc68*:A/UX:*:*)
1185	echo m68k-apple-aux${UNAME_RELEASE}
1186	exit ;;
1187    news*:NEWS-OS:6*:*)
1188	echo mips-sony-newsos6
1189	exit ;;
1190    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1191	if [ -d /usr/nec ]; then
1192		echo mips-nec-sysv${UNAME_RELEASE}
1193	else
1194		echo mips-unknown-sysv${UNAME_RELEASE}
1195	fi
1196	exit ;;
1197    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
1198	echo powerpc-be-beos
1199	exit ;;
1200    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
1201	echo powerpc-apple-beos
1202	exit ;;
1203    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
1204	echo i586-pc-beos
1205	exit ;;
1206    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
1207	echo i586-pc-haiku
1208	exit ;;
1209    x86_64:Haiku:*:*)
1210	echo x86_64-unknown-haiku
1211	exit ;;
1212    SX-4:SUPER-UX:*:*)
1213	echo sx4-nec-superux${UNAME_RELEASE}
1214	exit ;;
1215    SX-5:SUPER-UX:*:*)
1216	echo sx5-nec-superux${UNAME_RELEASE}
1217	exit ;;
1218    SX-6:SUPER-UX:*:*)
1219	echo sx6-nec-superux${UNAME_RELEASE}
1220	exit ;;
1221    SX-7:SUPER-UX:*:*)
1222	echo sx7-nec-superux${UNAME_RELEASE}
1223	exit ;;
1224    SX-8:SUPER-UX:*:*)
1225	echo sx8-nec-superux${UNAME_RELEASE}
1226	exit ;;
1227    SX-8R:SUPER-UX:*:*)
1228	echo sx8r-nec-superux${UNAME_RELEASE}
1229	exit ;;
1230    Power*:Rhapsody:*:*)
1231	echo powerpc-apple-rhapsody${UNAME_RELEASE}
1232	exit ;;
1233    *:Rhapsody:*:*)
1234	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1235	exit ;;
1236    *:Darwin:*:*)
1237	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1238	case $UNAME_PROCESSOR in
1239	    i386)
1240		eval $set_cc_for_build
1241		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1242		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1243		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1244		      grep IS_64BIT_ARCH >/dev/null
1245		  then
1246		      UNAME_PROCESSOR="x86_64"
1247		  fi
1248		fi ;;
1249	    unknown) UNAME_PROCESSOR=powerpc ;;
1250	esac
1251	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1252	exit ;;
1253    *:procnto*:*:* | *:QNX:[0123456789]*:*)
1254	UNAME_PROCESSOR=`uname -p`
1255	if test "$UNAME_PROCESSOR" = "x86"; then
1256		UNAME_PROCESSOR=i386
1257		UNAME_MACHINE=pc
1258	fi
1259	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1260	exit ;;
1261    *:QNX:*:4*)
1262	echo i386-pc-qnx
1263	exit ;;
1264    NEO-?:NONSTOP_KERNEL:*:*)
1265	echo neo-tandem-nsk${UNAME_RELEASE}
1266	exit ;;
1267    NSE-*:NONSTOP_KERNEL:*:*)
1268	echo nse-tandem-nsk${UNAME_RELEASE}
1269	exit ;;
1270    NSR-?:NONSTOP_KERNEL:*:*)
1271	echo nsr-tandem-nsk${UNAME_RELEASE}
1272	exit ;;
1273    *:NonStop-UX:*:*)
1274	echo mips-compaq-nonstopux
1275	exit ;;
1276    BS2000:POSIX*:*:*)
1277	echo bs2000-siemens-sysv
1278	exit ;;
1279    DS/*:UNIX_System_V:*:*)
1280	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1281	exit ;;
1282    *:Plan9:*:*)
1283	# "uname -m" is not consistent, so use $cputype instead. 386
1284	# is converted to i386 for consistency with other x86
1285	# operating systems.
1286	if test "$cputype" = "386"; then
1287	    UNAME_MACHINE=i386
1288	else
1289	    UNAME_MACHINE="$cputype"
1290	fi
1291	echo ${UNAME_MACHINE}-unknown-plan9
1292	exit ;;
1293    *:TOPS-10:*:*)
1294	echo pdp10-unknown-tops10
1295	exit ;;
1296    *:TENEX:*:*)
1297	echo pdp10-unknown-tenex
1298	exit ;;
1299    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1300	echo pdp10-dec-tops20
1301	exit ;;
1302    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1303	echo pdp10-xkl-tops20
1304	exit ;;
1305    *:TOPS-20:*:*)
1306	echo pdp10-unknown-tops20
1307	exit ;;
1308    *:ITS:*:*)
1309	echo pdp10-unknown-its
1310	exit ;;
1311    SEI:*:*:SEIUX)
1312	echo mips-sei-seiux${UNAME_RELEASE}
1313	exit ;;
1314    *:DragonFly:*:*)
1315	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1316	exit ;;
1317    *:*VMS:*:*)
1318	UNAME_MACHINE=`(uname -p) 2>/dev/null`
1319	case "${UNAME_MACHINE}" in
1320	    A*) echo alpha-dec-vms ; exit ;;
1321	    I*) echo ia64-dec-vms ; exit ;;
1322	    V*) echo vax-dec-vms ; exit ;;
1323	esac ;;
1324    *:XENIX:*:SysV)
1325	echo i386-pc-xenix
1326	exit ;;
1327    i*86:skyos:*:*)
1328	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1329	exit ;;
1330    i*86:rdos:*:*)
1331	echo ${UNAME_MACHINE}-pc-rdos
1332	exit ;;
1333    i*86:AROS:*:*)
1334	echo ${UNAME_MACHINE}-pc-aros
1335	exit ;;
1336    x86_64:VMkernel:*:*)
1337	echo ${UNAME_MACHINE}-unknown-esx
1338	exit ;;
1339esac
1340
1341eval $set_cc_for_build
1342cat >$dummy.c <<EOF
1343#ifdef _SEQUENT_
1344# include <sys/types.h>
1345# include <sys/utsname.h>
1346#endif
1347main ()
1348{
1349#if defined (sony)
1350#if defined (MIPSEB)
1351  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1352     I don't know....  */
1353  printf ("mips-sony-bsd\n"); exit (0);
1354#else
1355#include <sys/param.h>
1356  printf ("m68k-sony-newsos%s\n",
1357#ifdef NEWSOS4
1358	"4"
1359#else
1360	""
1361#endif
1362	); exit (0);
1363#endif
1364#endif
1365
1366#if defined (__arm) && defined (__acorn) && defined (__unix)
1367  printf ("arm-acorn-riscix\n"); exit (0);
1368#endif
1369
1370#if defined (hp300) && !defined (hpux)
1371  printf ("m68k-hp-bsd\n"); exit (0);
1372#endif
1373
1374#if defined (NeXT)
1375#if !defined (__ARCHITECTURE__)
1376#define __ARCHITECTURE__ "m68k"
1377#endif
1378  int version;
1379  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1380  if (version < 4)
1381    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1382  else
1383    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1384  exit (0);
1385#endif
1386
1387#if defined (MULTIMAX) || defined (n16)
1388#if defined (UMAXV)
1389  printf ("ns32k-encore-sysv\n"); exit (0);
1390#else
1391#if defined (CMU)
1392  printf ("ns32k-encore-mach\n"); exit (0);
1393#else
1394  printf ("ns32k-encore-bsd\n"); exit (0);
1395#endif
1396#endif
1397#endif
1398
1399#if defined (__386BSD__)
1400  printf ("i386-pc-bsd\n"); exit (0);
1401#endif
1402
1403#if defined (sequent)
1404#if defined (i386)
1405  printf ("i386-sequent-dynix\n"); exit (0);
1406#endif
1407#if defined (ns32000)
1408  printf ("ns32k-sequent-dynix\n"); exit (0);
1409#endif
1410#endif
1411
1412#if defined (_SEQUENT_)
1413    struct utsname un;
1414
1415    uname(&un);
1416
1417    if (strncmp(un.version, "V2", 2) == 0) {
1418	printf ("i386-sequent-ptx2\n"); exit (0);
1419    }
1420    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1421	printf ("i386-sequent-ptx1\n"); exit (0);
1422    }
1423    printf ("i386-sequent-ptx\n"); exit (0);
1424
1425#endif
1426
1427#if defined (vax)
1428# if !defined (ultrix)
1429#  include <sys/param.h>
1430#  if defined (BSD)
1431#   if BSD == 43
1432      printf ("vax-dec-bsd4.3\n"); exit (0);
1433#   else
1434#    if BSD == 199006
1435      printf ("vax-dec-bsd4.3reno\n"); exit (0);
1436#    else
1437      printf ("vax-dec-bsd\n"); exit (0);
1438#    endif
1439#   endif
1440#  else
1441    printf ("vax-dec-bsd\n"); exit (0);
1442#  endif
1443# else
1444    printf ("vax-dec-ultrix\n"); exit (0);
1445# endif
1446#endif
1447
1448#if defined (alliant) && defined (i860)
1449  printf ("i860-alliant-bsd\n"); exit (0);
1450#endif
1451
1452  exit (1);
1453}
1454EOF
1455
1456$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1457	{ echo "$SYSTEM_NAME"; exit; }
1458
1459# Apollos put the system type in the environment.
1460
1461test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1462
1463# Convex versions that predate uname can use getsysinfo(1)
1464
1465if [ -x /usr/convex/getsysinfo ]
1466then
1467    case `getsysinfo -f cpu_type` in
1468    c1*)
1469	echo c1-convex-bsd
1470	exit ;;
1471    c2*)
1472	if getsysinfo -f scalar_acc
1473	then echo c32-convex-bsd
1474	else echo c2-convex-bsd
1475	fi
1476	exit ;;
1477    c34*)
1478	echo c34-convex-bsd
1479	exit ;;
1480    c38*)
1481	echo c38-convex-bsd
1482	exit ;;
1483    c4*)
1484	echo c4-convex-bsd
1485	exit ;;
1486    esac
1487fi
1488
1489cat >&2 <<EOF
1490$0: unable to guess system type
1491
1492This script, last modified $timestamp, has failed to recognize
1493the operating system you are using. It is advised that you
1494download the most up to date version of the config scripts from
1495
1496  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1497and
1498  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1499
1500If the version you run ($0) is already up to date, please
1501send the following data and any information you think might be
1502pertinent to <config-patches@gnu.org> in order to provide the needed
1503information to handle your system.
1504
1505config.guess timestamp = $timestamp
1506
1507uname -m = `(uname -m) 2>/dev/null || echo unknown`
1508uname -r = `(uname -r) 2>/dev/null || echo unknown`
1509uname -s = `(uname -s) 2>/dev/null || echo unknown`
1510uname -v = `(uname -v) 2>/dev/null || echo unknown`
1511
1512/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1513/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1514
1515hostinfo               = `(hostinfo) 2>/dev/null`
1516/bin/universe          = `(/bin/universe) 2>/dev/null`
1517/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1518/bin/arch              = `(/bin/arch) 2>/dev/null`
1519/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1520/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1521
1522UNAME_MACHINE = ${UNAME_MACHINE}
1523UNAME_RELEASE = ${UNAME_RELEASE}
1524UNAME_SYSTEM  = ${UNAME_SYSTEM}
1525UNAME_VERSION = ${UNAME_VERSION}
1526EOF
1527
1528exit 1
1529
1530# Local variables:
1531# eval: (add-hook 'write-file-hooks 'time-stamp)
1532# time-stamp-start: "timestamp='"
1533# time-stamp-format: "%:y-%02m-%02d"
1534# time-stamp-end: "'"
1535# End:
1536