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