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