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