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