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