xref: /freebsd/crypto/heimdal/config.guess (revision 6ae1554a5d9b318f8ad53ccc39fa5a961403da73)
1#! /bin/sh
2# Attempt to guess a canonical system name.
3#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
5#   Free Software Foundation, Inc.
6
7timestamp='2009-11-20'
8
9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful, but
15# WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17# General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
22# 02110-1301, USA.
23#
24# As a special exception to the GNU General Public License, if you
25# distribute this file as part of a program that contains a
26# configuration script generated by Autoconf, you may include it under
27# the same distribution terms that you use for the rest of that program.
28
29
30# Originally written by Per Bothner.  Please send patches (context
31# diff format) to <config-patches@gnu.org> and include a ChangeLog
32# entry.
33#
34# This script attempts to guess a canonical system name similar to
35# config.sub.  If it succeeds, it prints the system name on stdout, and
36# exits with 0.  Otherwise, it exits with 1.
37#
38# You can get the latest version of this script from:
39# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
40
41me=`echo "$0" | sed -e 's,.*/,,'`
42
43usage="\
44Usage: $0 [OPTION]
45
46Output the configuration name of the system \`$me' is run on.
47
48Operation modes:
49  -h, --help         print this help, then exit
50  -t, --time-stamp   print date of last modification, then exit
51  -v, --version      print version number, then exit
52
53Report bugs and patches to <config-patches@gnu.org>."
54
55version="\
56GNU config.guess ($timestamp)
57
58Originally written by Per Bothner.
59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
602002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
61
62This is free software; see the source for copying conditions.  There is NO
63warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
64
65help="
66Try \`$me --help' for more information."
67
68# Parse command line
69while test $# -gt 0 ; do
70  case $1 in
71    --time-stamp | --time* | -t )
72       echo "$timestamp" ; exit ;;
73    --version | -v )
74       echo "$version" ; exit ;;
75    --help | --h* | -h )
76       echo "$usage"; exit ;;
77    -- )     # Stop option processing
78       shift; break ;;
79    - )	# Use stdin as input.
80       break ;;
81    -* )
82       echo "$me: invalid option $1$help" >&2
83       exit 1 ;;
84    * )
85       break ;;
86  esac
87done
88
89if test $# != 0; then
90  echo "$me: too many arguments$help" >&2
91  exit 1
92fi
93
94trap 'exit 1' 1 2 15
95
96# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
97# compiler to aid in system detection is discouraged as it requires
98# temporary files to be created and, as you can see below, it is a
99# headache to deal with in a portable fashion.
100
101# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
102# use `HOST_CC' if defined, but it is deprecated.
103
104# Portable tmp directory creation inspired by the Autoconf team.
105
106set_cc_for_build='
107trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
108trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
109: ${TMPDIR=/tmp} ;
110 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
111 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
112 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
113 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
114dummy=$tmp/dummy ;
115tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
116case $CC_FOR_BUILD,$HOST_CC,$CC in
117 ,,)    echo "int x;" > $dummy.c ;
118	for c in cc gcc c89 c99 ; do
119	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
120	     CC_FOR_BUILD="$c"; break ;
121	  fi ;
122	done ;
123	if test x"$CC_FOR_BUILD" = x ; then
124	  CC_FOR_BUILD=no_compiler_found ;
125	fi
126	;;
127 ,,*)   CC_FOR_BUILD=$CC ;;
128 ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
129esac ; set_cc_for_build= ;'
130
131# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
132# (ghazi@noc.rutgers.edu 1994-08-24)
133if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
134	PATH=$PATH:/.attbin ; export PATH
135fi
136
137UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
138UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
139UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
140UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
141
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	echo i386-pc-auroraux${UNAME_RELEASE}
338	exit ;;
339    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
340	eval $set_cc_for_build
341	SUN_ARCH="i386"
342	# If there is a compiler, see if it is configured for 64-bit objects.
343	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
344	# This test works for both compilers.
345	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
346	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
347		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
348		grep IS_64BIT_ARCH >/dev/null
349	    then
350		SUN_ARCH="x86_64"
351	    fi
352	fi
353	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
354	exit ;;
355    sun4*:SunOS:6*:*)
356	# According to config.sub, this is the proper way to canonicalize
357	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
358	# it's likely to be more like Solaris than SunOS4.
359	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
360	exit ;;
361    sun4*:SunOS:*:*)
362	case "`/usr/bin/arch -k`" in
363	    Series*|S4*)
364		UNAME_RELEASE=`uname -v`
365		;;
366	esac
367	# Japanese Language versions have a version number like `4.1.3-JL'.
368	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
369	exit ;;
370    sun3*:SunOS:*:*)
371	echo m68k-sun-sunos${UNAME_RELEASE}
372	exit ;;
373    sun*:*:4.2BSD:*)
374	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
375	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
376	case "`/bin/arch`" in
377	    sun3)
378		echo m68k-sun-sunos${UNAME_RELEASE}
379		;;
380	    sun4)
381		echo sparc-sun-sunos${UNAME_RELEASE}
382		;;
383	esac
384	exit ;;
385    aushp:SunOS:*:*)
386	echo sparc-auspex-sunos${UNAME_RELEASE}
387	exit ;;
388    # The situation for MiNT is a little confusing.  The machine name
389    # can be virtually everything (everything which is not
390    # "atarist" or "atariste" at least should have a processor
391    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
392    # to the lowercase version "mint" (or "freemint").  Finally
393    # the system name "TOS" denotes a system which is actually not
394    # MiNT.  But MiNT is downward compatible to TOS, so this should
395    # be no problem.
396    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
397        echo m68k-atari-mint${UNAME_RELEASE}
398	exit ;;
399    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
400	echo m68k-atari-mint${UNAME_RELEASE}
401        exit ;;
402    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
403        echo m68k-atari-mint${UNAME_RELEASE}
404	exit ;;
405    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
406        echo m68k-milan-mint${UNAME_RELEASE}
407        exit ;;
408    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
409        echo m68k-hades-mint${UNAME_RELEASE}
410        exit ;;
411    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
412        echo m68k-unknown-mint${UNAME_RELEASE}
413        exit ;;
414    m68k:machten:*:*)
415	echo m68k-apple-machten${UNAME_RELEASE}
416	exit ;;
417    powerpc:machten:*:*)
418	echo powerpc-apple-machten${UNAME_RELEASE}
419	exit ;;
420    RISC*:Mach:*:*)
421	echo mips-dec-mach_bsd4.3
422	exit ;;
423    RISC*:ULTRIX:*:*)
424	echo mips-dec-ultrix${UNAME_RELEASE}
425	exit ;;
426    VAX*:ULTRIX*:*:*)
427	echo vax-dec-ultrix${UNAME_RELEASE}
428	exit ;;
429    2020:CLIX:*:* | 2430:CLIX:*:*)
430	echo clipper-intergraph-clix${UNAME_RELEASE}
431	exit ;;
432    mips:*:*:UMIPS | mips:*:*:RISCos)
433	eval $set_cc_for_build
434	sed 's/^	//' << EOF >$dummy.c
435#ifdef __cplusplus
436#include <stdio.h>  /* for printf() prototype */
437	int main (int argc, char *argv[]) {
438#else
439	int main (argc, argv) int argc; char *argv[]; {
440#endif
441	#if defined (host_mips) && defined (MIPSEB)
442	#if defined (SYSTYPE_SYSV)
443	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
444	#endif
445	#if defined (SYSTYPE_SVR4)
446	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
447	#endif
448	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
449	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
450	#endif
451	#endif
452	  exit (-1);
453	}
454EOF
455	$CC_FOR_BUILD -o $dummy $dummy.c &&
456	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
457	  SYSTEM_NAME=`$dummy $dummyarg` &&
458	    { echo "$SYSTEM_NAME"; exit; }
459	echo mips-mips-riscos${UNAME_RELEASE}
460	exit ;;
461    Motorola:PowerMAX_OS:*:*)
462	echo powerpc-motorola-powermax
463	exit ;;
464    Motorola:*:4.3:PL8-*)
465	echo powerpc-harris-powermax
466	exit ;;
467    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
468	echo powerpc-harris-powermax
469	exit ;;
470    Night_Hawk:Power_UNIX:*:*)
471	echo powerpc-harris-powerunix
472	exit ;;
473    m88k:CX/UX:7*:*)
474	echo m88k-harris-cxux7
475	exit ;;
476    m88k:*:4*:R4*)
477	echo m88k-motorola-sysv4
478	exit ;;
479    m88k:*:3*:R3*)
480	echo m88k-motorola-sysv3
481	exit ;;
482    AViiON:dgux:*:*)
483        # DG/UX returns AViiON for all architectures
484        UNAME_PROCESSOR=`/usr/bin/uname -p`
485	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
486	then
487	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
488	       [ ${TARGET_BINARY_INTERFACE}x = x ]
489	    then
490		echo m88k-dg-dgux${UNAME_RELEASE}
491	    else
492		echo m88k-dg-dguxbcs${UNAME_RELEASE}
493	    fi
494	else
495	    echo i586-dg-dgux${UNAME_RELEASE}
496	fi
497 	exit ;;
498    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
499	echo m88k-dolphin-sysv3
500	exit ;;
501    M88*:*:R3*:*)
502	# Delta 88k system running SVR3
503	echo m88k-motorola-sysv3
504	exit ;;
505    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
506	echo m88k-tektronix-sysv3
507	exit ;;
508    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
509	echo m68k-tektronix-bsd
510	exit ;;
511    *:IRIX*:*:*)
512	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
513	exit ;;
514    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
515	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
516	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
517    i*86:AIX:*:*)
518	echo i386-ibm-aix
519	exit ;;
520    ia64:AIX:*:*)
521	if [ -x /usr/bin/oslevel ] ; then
522		IBM_REV=`/usr/bin/oslevel`
523	else
524		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
525	fi
526	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
527	exit ;;
528    *:AIX:2:3)
529	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
530		eval $set_cc_for_build
531		sed 's/^		//' << EOF >$dummy.c
532		#include <sys/systemcfg.h>
533
534		main()
535			{
536			if (!__power_pc())
537				exit(1);
538			puts("powerpc-ibm-aix3.2.5");
539			exit(0);
540			}
541EOF
542		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
543		then
544			echo "$SYSTEM_NAME"
545		else
546			echo rs6000-ibm-aix3.2.5
547		fi
548	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
549		echo rs6000-ibm-aix3.2.4
550	else
551		echo rs6000-ibm-aix3.2
552	fi
553	exit ;;
554    *:AIX:*:[456])
555	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
556	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
557		IBM_ARCH=rs6000
558	else
559		IBM_ARCH=powerpc
560	fi
561	if [ -x /usr/bin/oslevel ] ; then
562		IBM_REV=`/usr/bin/oslevel`
563	else
564		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
565	fi
566	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
567	exit ;;
568    *:AIX:*:*)
569	echo rs6000-ibm-aix
570	exit ;;
571    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
572	echo romp-ibm-bsd4.4
573	exit ;;
574    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
575	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
576	exit ;;                             # report: romp-ibm BSD 4.3
577    *:BOSX:*:*)
578	echo rs6000-bull-bosx
579	exit ;;
580    DPX/2?00:B.O.S.:*:*)
581	echo m68k-bull-sysv3
582	exit ;;
583    9000/[34]??:4.3bsd:1.*:*)
584	echo m68k-hp-bsd
585	exit ;;
586    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
587	echo m68k-hp-bsd4.4
588	exit ;;
589    9000/[34678]??:HP-UX:*:*)
590	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
591	case "${UNAME_MACHINE}" in
592	    9000/31? )            HP_ARCH=m68000 ;;
593	    9000/[34]?? )         HP_ARCH=m68k ;;
594	    9000/[678][0-9][0-9])
595		if [ -x /usr/bin/getconf ]; then
596		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
597                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
598                    case "${sc_cpu_version}" in
599                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
600                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
601                      532)                      # CPU_PA_RISC2_0
602                        case "${sc_kernel_bits}" in
603                          32) HP_ARCH="hppa2.0n" ;;
604                          64) HP_ARCH="hppa2.0w" ;;
605			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
606                        esac ;;
607                    esac
608		fi
609		if [ "${HP_ARCH}" = "" ]; then
610		    eval $set_cc_for_build
611		    sed 's/^              //' << EOF >$dummy.c
612
613              #define _HPUX_SOURCE
614              #include <stdlib.h>
615              #include <unistd.h>
616
617              int main ()
618              {
619              #if defined(_SC_KERNEL_BITS)
620                  long bits = sysconf(_SC_KERNEL_BITS);
621              #endif
622                  long cpu  = sysconf (_SC_CPU_VERSION);
623
624                  switch (cpu)
625              	{
626              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
627              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
628              	case CPU_PA_RISC2_0:
629              #if defined(_SC_KERNEL_BITS)
630              	    switch (bits)
631              		{
632              		case 64: puts ("hppa2.0w"); break;
633              		case 32: puts ("hppa2.0n"); break;
634              		default: puts ("hppa2.0"); break;
635              		} break;
636              #else  /* !defined(_SC_KERNEL_BITS) */
637              	    puts ("hppa2.0"); break;
638              #endif
639              	default: puts ("hppa1.0"); break;
640              	}
641                  exit (0);
642              }
643EOF
644		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
645		    test -z "$HP_ARCH" && HP_ARCH=hppa
646		fi ;;
647	esac
648	if [ ${HP_ARCH} = "hppa2.0w" ]
649	then
650	    eval $set_cc_for_build
651
652	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
653	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
654	    # generating 64-bit code.  GNU and HP use different nomenclature:
655	    #
656	    # $ CC_FOR_BUILD=cc ./config.guess
657	    # => hppa2.0w-hp-hpux11.23
658	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
659	    # => hppa64-hp-hpux11.23
660
661	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
662		grep -q __LP64__
663	    then
664		HP_ARCH="hppa2.0w"
665	    else
666		HP_ARCH="hppa64"
667	    fi
668	fi
669	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
670	exit ;;
671    ia64:HP-UX:*:*)
672	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
673	echo ia64-hp-hpux${HPUX_REV}
674	exit ;;
675    3050*:HI-UX:*:*)
676	eval $set_cc_for_build
677	sed 's/^	//' << EOF >$dummy.c
678	#include <unistd.h>
679	int
680	main ()
681	{
682	  long cpu = sysconf (_SC_CPU_VERSION);
683	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
684	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
685	     results, however.  */
686	  if (CPU_IS_PA_RISC (cpu))
687	    {
688	      switch (cpu)
689		{
690		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
691		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
692		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
693		  default: puts ("hppa-hitachi-hiuxwe2"); break;
694		}
695	    }
696	  else if (CPU_IS_HP_MC68K (cpu))
697	    puts ("m68k-hitachi-hiuxwe2");
698	  else puts ("unknown-hitachi-hiuxwe2");
699	  exit (0);
700	}
701EOF
702	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
703		{ echo "$SYSTEM_NAME"; exit; }
704	echo unknown-hitachi-hiuxwe2
705	exit ;;
706    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
707	echo hppa1.1-hp-bsd
708	exit ;;
709    9000/8??:4.3bsd:*:*)
710	echo hppa1.0-hp-bsd
711	exit ;;
712    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
713	echo hppa1.0-hp-mpeix
714	exit ;;
715    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
716	echo hppa1.1-hp-osf
717	exit ;;
718    hp8??:OSF1:*:*)
719	echo hppa1.0-hp-osf
720	exit ;;
721    i*86:OSF1:*:*)
722	if [ -x /usr/sbin/sysversion ] ; then
723	    echo ${UNAME_MACHINE}-unknown-osf1mk
724	else
725	    echo ${UNAME_MACHINE}-unknown-osf1
726	fi
727	exit ;;
728    parisc*:Lites*:*:*)
729	echo hppa1.1-hp-lites
730	exit ;;
731    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
732	echo c1-convex-bsd
733        exit ;;
734    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
735	if getsysinfo -f scalar_acc
736	then echo c32-convex-bsd
737	else echo c2-convex-bsd
738	fi
739        exit ;;
740    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
741	echo c34-convex-bsd
742        exit ;;
743    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
744	echo c38-convex-bsd
745        exit ;;
746    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
747	echo c4-convex-bsd
748        exit ;;
749    CRAY*Y-MP:*:*:*)
750	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
751	exit ;;
752    CRAY*[A-Z]90:*:*:*)
753	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
754	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
755	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
756	      -e 's/\.[^.]*$/.X/'
757	exit ;;
758    CRAY*TS:*:*:*)
759	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
760	exit ;;
761    CRAY*T3E:*:*:*)
762	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
763	exit ;;
764    CRAY*SV1:*:*:*)
765	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
766	exit ;;
767    *:UNICOS/mp:*:*)
768	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
769	exit ;;
770    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
771	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
772        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
773        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
774        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
775        exit ;;
776    5000:UNIX_System_V:4.*:*)
777        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
778        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
779        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
780	exit ;;
781    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
782	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
783	exit ;;
784    sparc*:BSD/OS:*:*)
785	echo sparc-unknown-bsdi${UNAME_RELEASE}
786	exit ;;
787    *:BSD/OS:*:*)
788	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
789	exit ;;
790    *:FreeBSD:*:*)
791	case ${UNAME_MACHINE} in
792	    pc98)
793		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
794	    amd64)
795		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
796	    *)
797		echo ${UNAME_MACHINE}-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*:*)
814    	case ${UNAME_MACHINE} in
815	    x86)
816		echo i586-pc-interix${UNAME_RELEASE}
817		exit ;;
818	    authenticamd | genuineintel | EM64T)
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	LIBC=gnu
898	eval $set_cc_for_build
899	sed 's/^	//' << EOF >$dummy.c
900	#ifdef __dietlibc__
901	LIBC=dietlibc
902	#endif
903EOF
904	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
905	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
906	exit ;;
907    ia64:Linux:*:*)
908	echo ${UNAME_MACHINE}-unknown-linux-gnu
909	exit ;;
910    m32r*:Linux:*:*)
911	echo ${UNAME_MACHINE}-unknown-linux-gnu
912	exit ;;
913    m68*:Linux:*:*)
914	echo ${UNAME_MACHINE}-unknown-linux-gnu
915	exit ;;
916    mips:Linux:*:* | mips64:Linux:*:*)
917	eval $set_cc_for_build
918	sed 's/^	//' << EOF >$dummy.c
919	#undef CPU
920	#undef ${UNAME_MACHINE}
921	#undef ${UNAME_MACHINE}el
922	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
923	CPU=${UNAME_MACHINE}el
924	#else
925	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
926	CPU=${UNAME_MACHINE}
927	#else
928	CPU=
929	#endif
930	#endif
931EOF
932	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
933	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
934	;;
935    or32:Linux:*:*)
936	echo or32-unknown-linux-gnu
937	exit ;;
938    padre:Linux:*:*)
939	echo sparc-unknown-linux-gnu
940	exit ;;
941    parisc64:Linux:*:* | hppa64:Linux:*:*)
942	echo hppa64-unknown-linux-gnu
943	exit ;;
944    parisc:Linux:*:* | hppa:Linux:*:*)
945	# Look for CPU level
946	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
947	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
948	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
949	  *)    echo hppa-unknown-linux-gnu ;;
950	esac
951	exit ;;
952    ppc64:Linux:*:*)
953	echo powerpc64-unknown-linux-gnu
954	exit ;;
955    ppc:Linux:*:*)
956	echo powerpc-unknown-linux-gnu
957	exit ;;
958    s390:Linux:*:* | s390x:Linux:*:*)
959	echo ${UNAME_MACHINE}-ibm-linux
960	exit ;;
961    sh64*:Linux:*:*)
962    	echo ${UNAME_MACHINE}-unknown-linux-gnu
963	exit ;;
964    sh*:Linux:*:*)
965	echo ${UNAME_MACHINE}-unknown-linux-gnu
966	exit ;;
967    sparc:Linux:*:* | sparc64:Linux:*:*)
968	echo ${UNAME_MACHINE}-unknown-linux-gnu
969	exit ;;
970    vax:Linux:*:*)
971	echo ${UNAME_MACHINE}-dec-linux-gnu
972	exit ;;
973    x86_64:Linux:*:*)
974	echo x86_64-unknown-linux-gnu
975	exit ;;
976    xtensa*:Linux:*:*)
977    	echo ${UNAME_MACHINE}-unknown-linux-gnu
978	exit ;;
979    i*86:DYNIX/ptx:4*:*)
980	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
981	# earlier versions are messed up and put the nodename in both
982	# sysname and nodename.
983	echo i386-sequent-sysv4
984	exit ;;
985    i*86:UNIX_SV:4.2MP:2.*)
986        # Unixware is an offshoot of SVR4, but it has its own version
987        # number series starting with 2...
988        # I am not positive that other SVR4 systems won't match this,
989	# I just have to hope.  -- rms.
990        # Use sysv4.2uw... so that sysv4* matches it.
991	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
992	exit ;;
993    i*86:OS/2:*:*)
994	# If we were able to find `uname', then EMX Unix compatibility
995	# is probably installed.
996	echo ${UNAME_MACHINE}-pc-os2-emx
997	exit ;;
998    i*86:XTS-300:*:STOP)
999	echo ${UNAME_MACHINE}-unknown-stop
1000	exit ;;
1001    i*86:atheos:*:*)
1002	echo ${UNAME_MACHINE}-unknown-atheos
1003	exit ;;
1004    i*86:syllable:*:*)
1005	echo ${UNAME_MACHINE}-pc-syllable
1006	exit ;;
1007    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1008	echo i386-unknown-lynxos${UNAME_RELEASE}
1009	exit ;;
1010    i*86:*DOS:*:*)
1011	echo ${UNAME_MACHINE}-pc-msdosdjgpp
1012	exit ;;
1013    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1014	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1015	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1016		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1017	else
1018		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1019	fi
1020	exit ;;
1021    i*86:*:5:[678]*)
1022    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
1023	case `/bin/uname -X | grep "^Machine"` in
1024	    *486*)	     UNAME_MACHINE=i486 ;;
1025	    *Pentium)	     UNAME_MACHINE=i586 ;;
1026	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1027	esac
1028	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1029	exit ;;
1030    i*86:*:3.2:*)
1031	if test -f /usr/options/cb.name; then
1032		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1033		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1034	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1035		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1036		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1037		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1038			&& UNAME_MACHINE=i586
1039		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1040			&& UNAME_MACHINE=i686
1041		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1042			&& UNAME_MACHINE=i686
1043		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1044	else
1045		echo ${UNAME_MACHINE}-pc-sysv32
1046	fi
1047	exit ;;
1048    pc:*:*:*)
1049	# Left here for compatibility:
1050        # uname -m prints for DJGPP always 'pc', but it prints nothing about
1051        # the processor, so we play safe by assuming i586.
1052	# Note: whatever this is, it MUST be the same as what config.sub
1053	# prints for the "djgpp" host, or else GDB configury will decide that
1054	# this is a cross-build.
1055	echo i586-pc-msdosdjgpp
1056        exit ;;
1057    Intel:Mach:3*:*)
1058	echo i386-pc-mach3
1059	exit ;;
1060    paragon:*:*:*)
1061	echo i860-intel-osf1
1062	exit ;;
1063    i860:*:4.*:*) # i860-SVR4
1064	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1065	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1066	else # Add other i860-SVR4 vendors below as they are discovered.
1067	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
1068	fi
1069	exit ;;
1070    mini*:CTIX:SYS*5:*)
1071	# "miniframe"
1072	echo m68010-convergent-sysv
1073	exit ;;
1074    mc68k:UNIX:SYSTEM5:3.51m)
1075	echo m68k-convergent-sysv
1076	exit ;;
1077    M680?0:D-NIX:5.3:*)
1078	echo m68k-diab-dnix
1079	exit ;;
1080    M68*:*:R3V[5678]*:*)
1081	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1082    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)
1083	OS_REL=''
1084	test -r /etc/.relid \
1085	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1086	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1087	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1088	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1089	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1090    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1091        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1092          && { echo i486-ncr-sysv4; exit; } ;;
1093    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1094	OS_REL='.3'
1095	test -r /etc/.relid \
1096	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1097	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1098	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1099	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1100	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1101	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1102	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1103    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1104	echo m68k-unknown-lynxos${UNAME_RELEASE}
1105	exit ;;
1106    mc68030:UNIX_System_V:4.*:*)
1107	echo m68k-atari-sysv4
1108	exit ;;
1109    TSUNAMI:LynxOS:2.*:*)
1110	echo sparc-unknown-lynxos${UNAME_RELEASE}
1111	exit ;;
1112    rs6000:LynxOS:2.*:*)
1113	echo rs6000-unknown-lynxos${UNAME_RELEASE}
1114	exit ;;
1115    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1116	echo powerpc-unknown-lynxos${UNAME_RELEASE}
1117	exit ;;
1118    SM[BE]S:UNIX_SV:*:*)
1119	echo mips-dde-sysv${UNAME_RELEASE}
1120	exit ;;
1121    RM*:ReliantUNIX-*:*:*)
1122	echo mips-sni-sysv4
1123	exit ;;
1124    RM*:SINIX-*:*:*)
1125	echo mips-sni-sysv4
1126	exit ;;
1127    *:SINIX-*:*:*)
1128	if uname -p 2>/dev/null >/dev/null ; then
1129		UNAME_MACHINE=`(uname -p) 2>/dev/null`
1130		echo ${UNAME_MACHINE}-sni-sysv4
1131	else
1132		echo ns32k-sni-sysv
1133	fi
1134	exit ;;
1135    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1136                      # says <Richard.M.Bartel@ccMail.Census.GOV>
1137        echo i586-unisys-sysv4
1138        exit ;;
1139    *:UNIX_System_V:4*:FTX*)
1140	# From Gerald Hewes <hewes@openmarket.com>.
1141	# How about differentiating between stratus architectures? -djm
1142	echo hppa1.1-stratus-sysv4
1143	exit ;;
1144    *:*:*:FTX*)
1145	# From seanf@swdc.stratus.com.
1146	echo i860-stratus-sysv4
1147	exit ;;
1148    i*86:VOS:*:*)
1149	# From Paul.Green@stratus.com.
1150	echo ${UNAME_MACHINE}-stratus-vos
1151	exit ;;
1152    *:VOS:*:*)
1153	# From Paul.Green@stratus.com.
1154	echo hppa1.1-stratus-vos
1155	exit ;;
1156    mc68*:A/UX:*:*)
1157	echo m68k-apple-aux${UNAME_RELEASE}
1158	exit ;;
1159    news*:NEWS-OS:6*:*)
1160	echo mips-sony-newsos6
1161	exit ;;
1162    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1163	if [ -d /usr/nec ]; then
1164	        echo mips-nec-sysv${UNAME_RELEASE}
1165	else
1166	        echo mips-unknown-sysv${UNAME_RELEASE}
1167	fi
1168        exit ;;
1169    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
1170	echo powerpc-be-beos
1171	exit ;;
1172    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
1173	echo powerpc-apple-beos
1174	exit ;;
1175    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
1176	echo i586-pc-beos
1177	exit ;;
1178    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
1179	echo i586-pc-haiku
1180	exit ;;
1181    SX-4:SUPER-UX:*:*)
1182	echo sx4-nec-superux${UNAME_RELEASE}
1183	exit ;;
1184    SX-5:SUPER-UX:*:*)
1185	echo sx5-nec-superux${UNAME_RELEASE}
1186	exit ;;
1187    SX-6:SUPER-UX:*:*)
1188	echo sx6-nec-superux${UNAME_RELEASE}
1189	exit ;;
1190    SX-7:SUPER-UX:*:*)
1191	echo sx7-nec-superux${UNAME_RELEASE}
1192	exit ;;
1193    SX-8:SUPER-UX:*:*)
1194	echo sx8-nec-superux${UNAME_RELEASE}
1195	exit ;;
1196    SX-8R:SUPER-UX:*:*)
1197	echo sx8r-nec-superux${UNAME_RELEASE}
1198	exit ;;
1199    Power*:Rhapsody:*:*)
1200	echo powerpc-apple-rhapsody${UNAME_RELEASE}
1201	exit ;;
1202    *:Rhapsody:*:*)
1203	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1204	exit ;;
1205    *:Darwin:*:*)
1206	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1207	case $UNAME_PROCESSOR in
1208	    i386)
1209		eval $set_cc_for_build
1210		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1211		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1212		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1213		      grep IS_64BIT_ARCH >/dev/null
1214		  then
1215		      UNAME_PROCESSOR="x86_64"
1216		  fi
1217		fi ;;
1218	    unknown) UNAME_PROCESSOR=powerpc ;;
1219	esac
1220	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1221	exit ;;
1222    *:procnto*:*:* | *:QNX:[0123456789]*:*)
1223	UNAME_PROCESSOR=`uname -p`
1224	if test "$UNAME_PROCESSOR" = "x86"; then
1225		UNAME_PROCESSOR=i386
1226		UNAME_MACHINE=pc
1227	fi
1228	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1229	exit ;;
1230    *:QNX:*:4*)
1231	echo i386-pc-qnx
1232	exit ;;
1233    NSE-?:NONSTOP_KERNEL:*:*)
1234	echo nse-tandem-nsk${UNAME_RELEASE}
1235	exit ;;
1236    NSR-?:NONSTOP_KERNEL:*:*)
1237	echo nsr-tandem-nsk${UNAME_RELEASE}
1238	exit ;;
1239    *:NonStop-UX:*:*)
1240	echo mips-compaq-nonstopux
1241	exit ;;
1242    BS2000:POSIX*:*:*)
1243	echo bs2000-siemens-sysv
1244	exit ;;
1245    DS/*:UNIX_System_V:*:*)
1246	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1247	exit ;;
1248    *:Plan9:*:*)
1249	# "uname -m" is not consistent, so use $cputype instead. 386
1250	# is converted to i386 for consistency with other x86
1251	# operating systems.
1252	if test "$cputype" = "386"; then
1253	    UNAME_MACHINE=i386
1254	else
1255	    UNAME_MACHINE="$cputype"
1256	fi
1257	echo ${UNAME_MACHINE}-unknown-plan9
1258	exit ;;
1259    *:TOPS-10:*:*)
1260	echo pdp10-unknown-tops10
1261	exit ;;
1262    *:TENEX:*:*)
1263	echo pdp10-unknown-tenex
1264	exit ;;
1265    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1266	echo pdp10-dec-tops20
1267	exit ;;
1268    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1269	echo pdp10-xkl-tops20
1270	exit ;;
1271    *:TOPS-20:*:*)
1272	echo pdp10-unknown-tops20
1273	exit ;;
1274    *:ITS:*:*)
1275	echo pdp10-unknown-its
1276	exit ;;
1277    SEI:*:*:SEIUX)
1278        echo mips-sei-seiux${UNAME_RELEASE}
1279	exit ;;
1280    *:DragonFly:*:*)
1281	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1282	exit ;;
1283    *:*VMS:*:*)
1284    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
1285	case "${UNAME_MACHINE}" in
1286	    A*) echo alpha-dec-vms ; exit ;;
1287	    I*) echo ia64-dec-vms ; exit ;;
1288	    V*) echo vax-dec-vms ; exit ;;
1289	esac ;;
1290    *:XENIX:*:SysV)
1291	echo i386-pc-xenix
1292	exit ;;
1293    i*86:skyos:*:*)
1294	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1295	exit ;;
1296    i*86:rdos:*:*)
1297	echo ${UNAME_MACHINE}-pc-rdos
1298	exit ;;
1299    i*86:AROS:*:*)
1300	echo ${UNAME_MACHINE}-pc-aros
1301	exit ;;
1302esac
1303
1304#echo '(No uname command or uname output not recognized.)' 1>&2
1305#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1306
1307eval $set_cc_for_build
1308cat >$dummy.c <<EOF
1309#ifdef _SEQUENT_
1310# include <sys/types.h>
1311# include <sys/utsname.h>
1312#endif
1313main ()
1314{
1315#if defined (sony)
1316#if defined (MIPSEB)
1317  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1318     I don't know....  */
1319  printf ("mips-sony-bsd\n"); exit (0);
1320#else
1321#include <sys/param.h>
1322  printf ("m68k-sony-newsos%s\n",
1323#ifdef NEWSOS4
1324          "4"
1325#else
1326	  ""
1327#endif
1328         ); exit (0);
1329#endif
1330#endif
1331
1332#if defined (__arm) && defined (__acorn) && defined (__unix)
1333  printf ("arm-acorn-riscix\n"); exit (0);
1334#endif
1335
1336#if defined (hp300) && !defined (hpux)
1337  printf ("m68k-hp-bsd\n"); exit (0);
1338#endif
1339
1340#if defined (NeXT)
1341#if !defined (__ARCHITECTURE__)
1342#define __ARCHITECTURE__ "m68k"
1343#endif
1344  int version;
1345  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1346  if (version < 4)
1347    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1348  else
1349    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1350  exit (0);
1351#endif
1352
1353#if defined (MULTIMAX) || defined (n16)
1354#if defined (UMAXV)
1355  printf ("ns32k-encore-sysv\n"); exit (0);
1356#else
1357#if defined (CMU)
1358  printf ("ns32k-encore-mach\n"); exit (0);
1359#else
1360  printf ("ns32k-encore-bsd\n"); exit (0);
1361#endif
1362#endif
1363#endif
1364
1365#if defined (__386BSD__)
1366  printf ("i386-pc-bsd\n"); exit (0);
1367#endif
1368
1369#if defined (sequent)
1370#if defined (i386)
1371  printf ("i386-sequent-dynix\n"); exit (0);
1372#endif
1373#if defined (ns32000)
1374  printf ("ns32k-sequent-dynix\n"); exit (0);
1375#endif
1376#endif
1377
1378#if defined (_SEQUENT_)
1379    struct utsname un;
1380
1381    uname(&un);
1382
1383    if (strncmp(un.version, "V2", 2) == 0) {
1384	printf ("i386-sequent-ptx2\n"); exit (0);
1385    }
1386    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1387	printf ("i386-sequent-ptx1\n"); exit (0);
1388    }
1389    printf ("i386-sequent-ptx\n"); exit (0);
1390
1391#endif
1392
1393#if defined (vax)
1394# if !defined (ultrix)
1395#  include <sys/param.h>
1396#  if defined (BSD)
1397#   if BSD == 43
1398      printf ("vax-dec-bsd4.3\n"); exit (0);
1399#   else
1400#    if BSD == 199006
1401      printf ("vax-dec-bsd4.3reno\n"); exit (0);
1402#    else
1403      printf ("vax-dec-bsd\n"); exit (0);
1404#    endif
1405#   endif
1406#  else
1407    printf ("vax-dec-bsd\n"); exit (0);
1408#  endif
1409# else
1410    printf ("vax-dec-ultrix\n"); exit (0);
1411# endif
1412#endif
1413
1414#if defined (alliant) && defined (i860)
1415  printf ("i860-alliant-bsd\n"); exit (0);
1416#endif
1417
1418  exit (1);
1419}
1420EOF
1421
1422$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1423	{ echo "$SYSTEM_NAME"; exit; }
1424
1425# Apollos put the system type in the environment.
1426
1427test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1428
1429# Convex versions that predate uname can use getsysinfo(1)
1430
1431if [ -x /usr/convex/getsysinfo ]
1432then
1433    case `getsysinfo -f cpu_type` in
1434    c1*)
1435	echo c1-convex-bsd
1436	exit ;;
1437    c2*)
1438	if getsysinfo -f scalar_acc
1439	then echo c32-convex-bsd
1440	else echo c2-convex-bsd
1441	fi
1442	exit ;;
1443    c34*)
1444	echo c34-convex-bsd
1445	exit ;;
1446    c38*)
1447	echo c38-convex-bsd
1448	exit ;;
1449    c4*)
1450	echo c4-convex-bsd
1451	exit ;;
1452    esac
1453fi
1454
1455cat >&2 <<EOF
1456$0: unable to guess system type
1457
1458This script, last modified $timestamp, has failed to recognize
1459the operating system you are using. It is advised that you
1460download the most up to date version of the config scripts from
1461
1462  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1463and
1464  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1465
1466If the version you run ($0) is already up to date, please
1467send the following data and any information you think might be
1468pertinent to <config-patches@gnu.org> in order to provide the needed
1469information to handle your system.
1470
1471config.guess timestamp = $timestamp
1472
1473uname -m = `(uname -m) 2>/dev/null || echo unknown`
1474uname -r = `(uname -r) 2>/dev/null || echo unknown`
1475uname -s = `(uname -s) 2>/dev/null || echo unknown`
1476uname -v = `(uname -v) 2>/dev/null || echo unknown`
1477
1478/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1479/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1480
1481hostinfo               = `(hostinfo) 2>/dev/null`
1482/bin/universe          = `(/bin/universe) 2>/dev/null`
1483/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1484/bin/arch              = `(/bin/arch) 2>/dev/null`
1485/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1486/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1487
1488UNAME_MACHINE = ${UNAME_MACHINE}
1489UNAME_RELEASE = ${UNAME_RELEASE}
1490UNAME_SYSTEM  = ${UNAME_SYSTEM}
1491UNAME_VERSION = ${UNAME_VERSION}
1492EOF
1493
1494exit 1
1495
1496# Local variables:
1497# eval: (add-hook 'write-file-hooks 'time-stamp)
1498# time-stamp-start: "timestamp='"
1499# time-stamp-format: "%:y-%02m-%02d"
1500# time-stamp-end: "'"
1501# End:
1502