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