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