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