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='2008-11-15'
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 '\n#ifdef __amd64\nIS_64BIT_ARCH\n#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 i386.
1119	echo i386-pc-msdosdjgpp
1120        exit ;;
1121    Intel:Mach:3*:*)
1122	echo i386-pc-mach3
1123	exit ;;
1124    paragon:*:*:*)
1125	echo i860-intel-osf1
1126	exit ;;
1127    i860:*:4.*:*) # i860-SVR4
1128	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1129	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1130	else # Add other i860-SVR4 vendors below as they are discovered.
1131	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
1132	fi
1133	exit ;;
1134    mini*:CTIX:SYS*5:*)
1135	# "miniframe"
1136	echo m68010-convergent-sysv
1137	exit ;;
1138    mc68k:UNIX:SYSTEM5:3.51m)
1139	echo m68k-convergent-sysv
1140	exit ;;
1141    M680?0:D-NIX:5.3:*)
1142	echo m68k-diab-dnix
1143	exit ;;
1144    M68*:*:R3V[5678]*:*)
1145	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1146    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)
1147	OS_REL=''
1148	test -r /etc/.relid \
1149	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1150	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1151	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1152	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1153	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1154    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1155        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1156          && { echo i486-ncr-sysv4; exit; } ;;
1157    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1158	echo m68k-unknown-lynxos${UNAME_RELEASE}
1159	exit ;;
1160    mc68030:UNIX_System_V:4.*:*)
1161	echo m68k-atari-sysv4
1162	exit ;;
1163    TSUNAMI:LynxOS:2.*:*)
1164	echo sparc-unknown-lynxos${UNAME_RELEASE}
1165	exit ;;
1166    rs6000:LynxOS:2.*:*)
1167	echo rs6000-unknown-lynxos${UNAME_RELEASE}
1168	exit ;;
1169    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1170	echo powerpc-unknown-lynxos${UNAME_RELEASE}
1171	exit ;;
1172    SM[BE]S:UNIX_SV:*:*)
1173	echo mips-dde-sysv${UNAME_RELEASE}
1174	exit ;;
1175    RM*:ReliantUNIX-*:*:*)
1176	echo mips-sni-sysv4
1177	exit ;;
1178    RM*:SINIX-*:*:*)
1179	echo mips-sni-sysv4
1180	exit ;;
1181    *:SINIX-*:*:*)
1182	if uname -p 2>/dev/null >/dev/null ; then
1183		UNAME_MACHINE=`(uname -p) 2>/dev/null`
1184		echo ${UNAME_MACHINE}-sni-sysv4
1185	else
1186		echo ns32k-sni-sysv
1187	fi
1188	exit ;;
1189    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1190                      # says <Richard.M.Bartel@ccMail.Census.GOV>
1191        echo i586-unisys-sysv4
1192        exit ;;
1193    *:UNIX_System_V:4*:FTX*)
1194	# From Gerald Hewes <hewes@openmarket.com>.
1195	# How about differentiating between stratus architectures? -djm
1196	echo hppa1.1-stratus-sysv4
1197	exit ;;
1198    *:*:*:FTX*)
1199	# From seanf@swdc.stratus.com.
1200	echo i860-stratus-sysv4
1201	exit ;;
1202    i*86:VOS:*:*)
1203	# From Paul.Green@stratus.com.
1204	echo ${UNAME_MACHINE}-stratus-vos
1205	exit ;;
1206    *:VOS:*:*)
1207	# From Paul.Green@stratus.com.
1208	echo hppa1.1-stratus-vos
1209	exit ;;
1210    mc68*:A/UX:*:*)
1211	echo m68k-apple-aux${UNAME_RELEASE}
1212	exit ;;
1213    news*:NEWS-OS:6*:*)
1214	echo mips-sony-newsos6
1215	exit ;;
1216    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1217	if [ -d /usr/nec ]; then
1218	        echo mips-nec-sysv${UNAME_RELEASE}
1219	else
1220	        echo mips-unknown-sysv${UNAME_RELEASE}
1221	fi
1222        exit ;;
1223    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
1224	echo powerpc-be-beos
1225	exit ;;
1226    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
1227	echo powerpc-apple-beos
1228	exit ;;
1229    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
1230	echo i586-pc-beos
1231	exit ;;
1232    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
1233	echo i586-pc-haiku
1234	exit ;;
1235    SX-4:SUPER-UX:*:*)
1236	echo sx4-nec-superux${UNAME_RELEASE}
1237	exit ;;
1238    SX-5:SUPER-UX:*:*)
1239	echo sx5-nec-superux${UNAME_RELEASE}
1240	exit ;;
1241    SX-6:SUPER-UX:*:*)
1242	echo sx6-nec-superux${UNAME_RELEASE}
1243	exit ;;
1244    SX-7:SUPER-UX:*:*)
1245	echo sx7-nec-superux${UNAME_RELEASE}
1246	exit ;;
1247    SX-8:SUPER-UX:*:*)
1248	echo sx8-nec-superux${UNAME_RELEASE}
1249	exit ;;
1250    SX-8R:SUPER-UX:*:*)
1251	echo sx8r-nec-superux${UNAME_RELEASE}
1252	exit ;;
1253    Power*:Rhapsody:*:*)
1254	echo powerpc-apple-rhapsody${UNAME_RELEASE}
1255	exit ;;
1256    *:Rhapsody:*:*)
1257	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1258	exit ;;
1259    *:Darwin:*:*)
1260	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1261	case $UNAME_PROCESSOR in
1262	    unknown) UNAME_PROCESSOR=powerpc ;;
1263	esac
1264	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1265	exit ;;
1266    *:procnto*:*:* | *:QNX:[0123456789]*:*)
1267	UNAME_PROCESSOR=`uname -p`
1268	if test "$UNAME_PROCESSOR" = "x86"; then
1269		UNAME_PROCESSOR=i386
1270		UNAME_MACHINE=pc
1271	fi
1272	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1273	exit ;;
1274    *:QNX:*:4*)
1275	echo i386-pc-qnx
1276	exit ;;
1277    NSE-?:NONSTOP_KERNEL:*:*)
1278	echo nse-tandem-nsk${UNAME_RELEASE}
1279	exit ;;
1280    NSR-?:NONSTOP_KERNEL:*:*)
1281	echo nsr-tandem-nsk${UNAME_RELEASE}
1282	exit ;;
1283    *:NonStop-UX:*:*)
1284	echo mips-compaq-nonstopux
1285	exit ;;
1286    BS2000:POSIX*:*:*)
1287	echo bs2000-siemens-sysv
1288	exit ;;
1289    DS/*:UNIX_System_V:*:*)
1290	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1291	exit ;;
1292    *:Plan9:*:*)
1293	# "uname -m" is not consistent, so use $cputype instead. 386
1294	# is converted to i386 for consistency with other x86
1295	# operating systems.
1296	if test "$cputype" = "386"; then
1297	    UNAME_MACHINE=i386
1298	else
1299	    UNAME_MACHINE="$cputype"
1300	fi
1301	echo ${UNAME_MACHINE}-unknown-plan9
1302	exit ;;
1303    *:TOPS-10:*:*)
1304	echo pdp10-unknown-tops10
1305	exit ;;
1306    *:TENEX:*:*)
1307	echo pdp10-unknown-tenex
1308	exit ;;
1309    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1310	echo pdp10-dec-tops20
1311	exit ;;
1312    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1313	echo pdp10-xkl-tops20
1314	exit ;;
1315    *:TOPS-20:*:*)
1316	echo pdp10-unknown-tops20
1317	exit ;;
1318    *:ITS:*:*)
1319	echo pdp10-unknown-its
1320	exit ;;
1321    SEI:*:*:SEIUX)
1322        echo mips-sei-seiux${UNAME_RELEASE}
1323	exit ;;
1324    *:DragonFly:*:*)
1325	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1326	exit ;;
1327    *:*VMS:*:*)
1328    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
1329	case "${UNAME_MACHINE}" in
1330	    A*) echo alpha-dec-vms ; exit ;;
1331	    I*) echo ia64-dec-vms ; exit ;;
1332	    V*) echo vax-dec-vms ; exit ;;
1333	esac ;;
1334    *:XENIX:*:SysV)
1335	echo i386-pc-xenix
1336	exit ;;
1337    i*86:skyos:*:*)
1338	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1339	exit ;;
1340    i*86:rdos:*:*)
1341	echo ${UNAME_MACHINE}-pc-rdos
1342	exit ;;
1343esac
1344
1345#echo '(No uname command or uname output not recognized.)' 1>&2
1346#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1347
1348eval $set_cc_for_build
1349cat >$dummy.c <<EOF
1350#ifdef _SEQUENT_
1351# include <sys/types.h>
1352# include <sys/utsname.h>
1353#endif
1354main ()
1355{
1356#if defined (sony)
1357#if defined (MIPSEB)
1358  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1359     I don't know....  */
1360  printf ("mips-sony-bsd\n"); exit (0);
1361#else
1362#include <sys/param.h>
1363  printf ("m68k-sony-newsos%s\n",
1364#ifdef NEWSOS4
1365          "4"
1366#else
1367	  ""
1368#endif
1369         ); exit (0);
1370#endif
1371#endif
1372
1373#if defined (__arm) && defined (__acorn) && defined (__unix)
1374  printf ("arm-acorn-riscix\n"); exit (0);
1375#endif
1376
1377#if defined (hp300) && !defined (hpux)
1378  printf ("m68k-hp-bsd\n"); exit (0);
1379#endif
1380
1381#if defined (NeXT)
1382#if !defined (__ARCHITECTURE__)
1383#define __ARCHITECTURE__ "m68k"
1384#endif
1385  int version;
1386  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1387  if (version < 4)
1388    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1389  else
1390    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1391  exit (0);
1392#endif
1393
1394#if defined (MULTIMAX) || defined (n16)
1395#if defined (UMAXV)
1396  printf ("ns32k-encore-sysv\n"); exit (0);
1397#else
1398#if defined (CMU)
1399  printf ("ns32k-encore-mach\n"); exit (0);
1400#else
1401  printf ("ns32k-encore-bsd\n"); exit (0);
1402#endif
1403#endif
1404#endif
1405
1406#if defined (__386BSD__)
1407  printf ("i386-pc-bsd\n"); exit (0);
1408#endif
1409
1410#if defined (sequent)
1411#if defined (i386)
1412  printf ("i386-sequent-dynix\n"); exit (0);
1413#endif
1414#if defined (ns32000)
1415  printf ("ns32k-sequent-dynix\n"); exit (0);
1416#endif
1417#endif
1418
1419#if defined (_SEQUENT_)
1420    struct utsname un;
1421
1422    uname(&un);
1423
1424    if (strncmp(un.version, "V2", 2) == 0) {
1425	printf ("i386-sequent-ptx2\n"); exit (0);
1426    }
1427    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1428	printf ("i386-sequent-ptx1\n"); exit (0);
1429    }
1430    printf ("i386-sequent-ptx\n"); exit (0);
1431
1432#endif
1433
1434#if defined (vax)
1435# if !defined (ultrix)
1436#  include <sys/param.h>
1437#  if defined (BSD)
1438#   if BSD == 43
1439      printf ("vax-dec-bsd4.3\n"); exit (0);
1440#   else
1441#    if BSD == 199006
1442      printf ("vax-dec-bsd4.3reno\n"); exit (0);
1443#    else
1444      printf ("vax-dec-bsd\n"); exit (0);
1445#    endif
1446#   endif
1447#  else
1448    printf ("vax-dec-bsd\n"); exit (0);
1449#  endif
1450# else
1451    printf ("vax-dec-ultrix\n"); exit (0);
1452# endif
1453#endif
1454
1455#if defined (alliant) && defined (i860)
1456  printf ("i860-alliant-bsd\n"); exit (0);
1457#endif
1458
1459  exit (1);
1460}
1461EOF
1462
1463$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1464	{ echo "$SYSTEM_NAME"; exit; }
1465
1466# Apollos put the system type in the environment.
1467
1468test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1469
1470# Convex versions that predate uname can use getsysinfo(1)
1471
1472if [ -x /usr/convex/getsysinfo ]
1473then
1474    case `getsysinfo -f cpu_type` in
1475    c1*)
1476	echo c1-convex-bsd
1477	exit ;;
1478    c2*)
1479	if getsysinfo -f scalar_acc
1480	then echo c32-convex-bsd
1481	else echo c2-convex-bsd
1482	fi
1483	exit ;;
1484    c34*)
1485	echo c34-convex-bsd
1486	exit ;;
1487    c38*)
1488	echo c38-convex-bsd
1489	exit ;;
1490    c4*)
1491	echo c4-convex-bsd
1492	exit ;;
1493    esac
1494fi
1495
1496cat >&2 <<EOF
1497$0: unable to guess system type
1498
1499This script, last modified $timestamp, has failed to recognize
1500the operating system you are using. It is advised that you
1501download the most up to date version of the config scripts from
1502
1503  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1504and
1505  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1506
1507If the version you run ($0) is already up to date, please
1508send the following data and any information you think might be
1509pertinent to <config-patches@gnu.org> in order to provide the needed
1510information to handle your system.
1511
1512config.guess timestamp = $timestamp
1513
1514uname -m = `(uname -m) 2>/dev/null || echo unknown`
1515uname -r = `(uname -r) 2>/dev/null || echo unknown`
1516uname -s = `(uname -s) 2>/dev/null || echo unknown`
1517uname -v = `(uname -v) 2>/dev/null || echo unknown`
1518
1519/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1520/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1521
1522hostinfo               = `(hostinfo) 2>/dev/null`
1523/bin/universe          = `(/bin/universe) 2>/dev/null`
1524/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1525/bin/arch              = `(/bin/arch) 2>/dev/null`
1526/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1527/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1528
1529UNAME_MACHINE = ${UNAME_MACHINE}
1530UNAME_RELEASE = ${UNAME_RELEASE}
1531UNAME_SYSTEM  = ${UNAME_SYSTEM}
1532UNAME_VERSION = ${UNAME_VERSION}
1533EOF
1534
1535exit 1
1536
1537# Local variables:
1538# eval: (add-hook 'write-file-hooks 'time-stamp)
1539# time-stamp-start: "timestamp='"
1540# time-stamp-format: "%:y-%02m-%02d"
1541# time-stamp-end: "'"
1542# End:
1543