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