config.guess 44.9 KB
Newer Older
1 2
#! /bin/sh
# Attempt to guess a canonical system name.
3
#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 5
#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
#   Free Software Foundation, Inc.
ken's avatar
ken committed
6

7
timestamp='2008-11-15'
ken's avatar
ken committed
8

9 10 11 12 13 14 15 16 17 18 19 20
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
21 22
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
# 02110-1301, USA.
23 24 25 26 27 28
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.

29

30 31 32
# Originally written by Per Bothner <per@bothner.com>.
# Please send patches to <config-patches@gnu.org>.  Submit a context
# diff and a properly formatted ChangeLog entry.
33 34 35 36 37 38
#
# This script attempts to guess a canonical system name similar to
# config.sub.  If it succeeds, it prints the system name on stdout, and
# exits with 0.  Otherwise, it exits with 1.
#
# The plan is that this can be called by configure scripts if you
ken's avatar
ken committed
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
# don't specify an explicit build system type.

me=`echo "$0" | sed -e 's,.*/,,'`

usage="\
Usage: $0 [OPTION]

Output the configuration name of the system \`$me' is run on.

Operation modes:
  -h, --help         print this help, then exit
  -t, --time-stamp   print date of last modification, then exit
  -v, --version      print version number, then exit

Report bugs and patches to <config-patches@gnu.org>."

version="\
GNU config.guess ($timestamp)

Originally written by Per Bothner.
59 60
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
ken's avatar
ken committed
61 62 63 64 65 66 67 68 69 70 71

This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."

help="
Try \`$me --help' for more information."

# Parse command line
while test $# -gt 0 ; do
  case $1 in
    --time-stamp | --time* | -t )
72
       echo "$timestamp" ; exit ;;
ken's avatar
ken committed
73
    --version | -v )
74
       echo "$version" ; exit ;;
ken's avatar
ken committed
75
    --help | --h* | -h )
76
       echo "$usage"; exit ;;
ken's avatar
ken committed
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
    -- )     # Stop option processing
       shift; break ;;
    - )	# Use stdin as input.
       break ;;
    -* )
       echo "$me: invalid option $1$help" >&2
       exit 1 ;;
    * )
       break ;;
  esac
done

if test $# != 0; then
  echo "$me: too many arguments$help" >&2
  exit 1
fi

94
trap 'exit 1' 1 2 15
ken's avatar
ken committed
95

96 97 98 99
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
ken's avatar
ken committed
100 101 102 103

# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.

104
# Portable tmp directory creation inspired by the Autoconf team.
105

106 107 108 109
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
110
 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
111 112 113 114 115
 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
116 117 118 119
case $CC_FOR_BUILD,$HOST_CC,$CC in
 ,,)    echo "int x;" > $dummy.c ;
	for c in cc gcc c89 c99 ; do
	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
ken's avatar
ken committed
120 121 122 123 124 125 126 127 128
	     CC_FOR_BUILD="$c"; break ;
	  fi ;
	done ;
	if test x"$CC_FOR_BUILD" = x ; then
	  CC_FOR_BUILD=no_compiler_found ;
	fi
	;;
 ,,*)   CC_FOR_BUILD=$CC ;;
 ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
129
esac ; set_cc_for_build= ;'
130 131

# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
ken's avatar
ken committed
132
# (ghazi@noc.rutgers.edu 1994-08-24)
133 134 135 136 137 138
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
	PATH=$PATH:/.attbin ; export PATH
fi

UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
ken's avatar
ken committed
139
UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
140 141 142 143 144
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown

# Note: order is significant - the case branches are not exclusive.

case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
ken's avatar
ken committed
145
    *:NetBSD:*:*)
146
	# NetBSD (nbsd) targets should (where applicable) match one or
ken's avatar
ken committed
147 148 149 150 151 152
	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
	# switched to ELF, *-*-netbsd* would select the old
	# object file format.  This provides both forward
	# compatibility and a consistent mechanism for selecting the
	# object file format.
153 154 155 156 157 158 159 160 161 162 163
	#
	# Note: NetBSD doesn't particularly care about the vendor
	# portion of the name.  We always set it to "unknown".
	sysctl="sysctl -n hw.machine_arch"
	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
	case "${UNAME_MACHINE_ARCH}" in
	    armeb) machine=armeb-unknown ;;
	    arm*) machine=arm-unknown ;;
	    sh3el) machine=shl-unknown ;;
	    sh3eb) machine=sh-unknown ;;
164
	    sh5el) machine=sh5le-unknown ;;
165
	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
ken's avatar
ken committed
166 167 168
	esac
	# The Operating System including object format, if it has switched
	# to ELF recently, or will in the future.
169 170
	case "${UNAME_MACHINE_ARCH}" in
	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
ken's avatar
ken committed
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
		eval $set_cc_for_build
		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
			| grep __ELF__ >/dev/null
		then
		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
		    # Return netbsd for either.  FIX?
		    os=netbsd
		else
		    os=netbsdelf
		fi
		;;
	    *)
	        os=netbsd
		;;
	esac
	# The OS release
187 188 189 190 191 192 193 194 195 196 197 198
	# Debian GNU/NetBSD machines have a different userland, and
	# thus, need a distinct triplet. However, they do not need
	# kernel version information, so it can be replaced with a
	# suitable tag, in the style of linux-gnu.
	case "${UNAME_VERSION}" in
	    Debian*)
		release='-gnu'
		;;
	    *)
		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
		;;
	esac
ken's avatar
ken committed
199 200 201 202
	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
	# contains redundant information, the shorter form:
	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
	echo "${machine}-${os}${release}"
203
	exit ;;
204
    *:OpenBSD:*:*)
205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
	exit ;;
    *:ekkoBSD:*:*)
	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
	exit ;;
    *:SolidBSD:*:*)
	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
	exit ;;
    macppc:MirBSD:*:*)
	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
	exit ;;
    *:MirBSD:*:*)
	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
	exit ;;
220
    alpha:OSF1:*:*)
221 222
	case $UNAME_RELEASE in
	*4.0)
223
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
224 225 226 227 228
		;;
	*5.*)
	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
		;;
	esac
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265
	# According to Compaq, /usr/sbin/psrinfo has been available on
	# OSF/1 and Tru64 systems produced since 1995.  I hope that
	# covers most systems running today.  This code pipes the CPU
	# types through head -n 1, so we only detect the type of CPU 0.
	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
	case "$ALPHA_CPU_TYPE" in
	    "EV4 (21064)")
		UNAME_MACHINE="alpha" ;;
	    "EV4.5 (21064)")
		UNAME_MACHINE="alpha" ;;
	    "LCA4 (21066/21068)")
		UNAME_MACHINE="alpha" ;;
	    "EV5 (21164)")
		UNAME_MACHINE="alphaev5" ;;
	    "EV5.6 (21164A)")
		UNAME_MACHINE="alphaev56" ;;
	    "EV5.6 (21164PC)")
		UNAME_MACHINE="alphapca56" ;;
	    "EV5.7 (21164PC)")
		UNAME_MACHINE="alphapca57" ;;
	    "EV6 (21264)")
		UNAME_MACHINE="alphaev6" ;;
	    "EV6.7 (21264A)")
		UNAME_MACHINE="alphaev67" ;;
	    "EV6.8CB (21264C)")
		UNAME_MACHINE="alphaev68" ;;
	    "EV6.8AL (21264B)")
		UNAME_MACHINE="alphaev68" ;;
	    "EV6.8CX (21264D)")
		UNAME_MACHINE="alphaev68" ;;
	    "EV6.9A (21264/EV69A)")
		UNAME_MACHINE="alphaev69" ;;
	    "EV7 (21364)")
		UNAME_MACHINE="alphaev7" ;;
	    "EV7.9 (21364A)")
		UNAME_MACHINE="alphaev79" ;;
	esac
266
	# A Pn.n version is a patched version.
267 268 269
	# A Vn.n version is a released version.
	# A Tn.n version is a released field test version.
	# A Xn.n version is an unreleased experimental baselevel.
270
	# 1.2 uses "1.2" for uname -r.
271 272
	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
	exit ;;
ken's avatar
ken committed
273 274 275 276 277
    Alpha\ *:Windows_NT*:*)
	# How do we know it's Interix rather than the generic POSIX subsystem?
	# Should we change UNAME_MACHINE based on the output of uname instead
	# of the specific Alpha model?
	echo alpha-pc-interix
278
	exit ;;
279 280
    21064:Windows_NT:50:3)
	echo alpha-dec-winnt3.5
281
	exit ;;
282
    Amiga*:UNIX_System_V:4.0:*)
ken's avatar
ken committed
283
	echo m68k-unknown-sysv4
284
	exit ;;
285 286
    *:[Aa]miga[Oo][Ss]:*:*)
	echo ${UNAME_MACHINE}-unknown-amigaos
287
	exit ;;
288 289
    *:[Mm]orph[Oo][Ss]:*:*)
	echo ${UNAME_MACHINE}-unknown-morphos
290
	exit ;;
ken's avatar
ken committed
291 292
    *:OS/390:*:*)
	echo i370-ibm-openedition
293 294 295 296 297 298 299
	exit ;;
    *:z/VM:*:*)
	echo s390-ibm-zvmoe
	exit ;;
    *:OS400:*:*)
        echo powerpc-ibm-os400
	exit ;;
300 301
    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
	echo arm-acorn-riscix${UNAME_RELEASE}
302 303 304 305
	exit ;;
    arm:riscos:*:*|arm:RISCOS:*:*)
	echo arm-unknown-riscos
	exit ;;
ken's avatar
ken committed
306
    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
307
	echo hppa1.1-hitachi-hiuxmpp
308
	exit ;;
ken's avatar
ken committed
309
    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
310
	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
311 312 313 314 315
	if test "`(/bin/universe) 2>/dev/null`" = att ; then
		echo pyramid-pyramid-sysv3
	else
		echo pyramid-pyramid-bsd
	fi
316
	exit ;;
ken's avatar
ken committed
317
    NILE*:*:*:dcosx)
318
	echo pyramid-pyramid-svr4
319
	exit ;;
320 321
    DRS?6000:unix:4.0:6*)
	echo sparc-icl-nx6
322 323
	exit ;;
    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 328
    sun4H:SunOS:5.*:*)
	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 334 335 336 337 338 339
    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
	eval $set_cc_for_build
	SUN_ARCH="i386"
	# If there is a compiler, see if it is configured for 64-bit objects.
	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
	# This test works for both compilers.
	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
340 341 342 343 344 345 346 347 348 349 350
            # bash is not able to generate correct code here
            # i.e. it leaves \ns there
            # so we need to use /usr/bin/echo to get what we want
            # note that if config.guess is run by /bin/sh then
            # this works as expected even without /usr/bin/echo
            # but the problem is that configure is clever enough
            # to find bash installed and then runs config.guess
            # by bash instead of by /bin/sh
            # It seems that using /usr/bin/echo here is the most
            # portable Solaris fix
	    if /usr/bin/echo '\n#ifdef __amd64\nIS_64BIT_ARCH\n#endif' | \
351 352 353 354 355 356 357
		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
		grep IS_64BIT_ARCH >/dev/null
	    then
		SUN_ARCH="x86_64"
	    fi
	fi
	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
358
	exit ;;
359 360 361 362 363
    sun4*:SunOS:6*:*)
	# According to config.sub, this is the proper way to canonicalize
	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
	# it's likely to be more like Solaris than SunOS4.
	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
364
	exit ;;
365 366 367 368 369 370 371 372
    sun4*:SunOS:*:*)
	case "`/usr/bin/arch -k`" in
	    Series*|S4*)
		UNAME_RELEASE=`uname -v`
		;;
	esac
	# Japanese Language versions have a version number like `4.1.3-JL'.
	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
373
	exit ;;
374 375
    sun3*:SunOS:*:*)
	echo m68k-sun-sunos${UNAME_RELEASE}
376
	exit ;;
377
    sun*:*:4.2BSD:*)
378
	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
379 380 381 382 383 384 385 386 387
	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
	case "`/bin/arch`" in
	    sun3)
		echo m68k-sun-sunos${UNAME_RELEASE}
		;;
	    sun4)
		echo sparc-sun-sunos${UNAME_RELEASE}
		;;
	esac
388
	exit ;;
389 390
    aushp:SunOS:*:*)
	echo sparc-auspex-sunos${UNAME_RELEASE}
391
	exit ;;
ken's avatar
ken committed
392 393 394 395 396 397 398 399 400 401
    # The situation for MiNT is a little confusing.  The machine name
    # can be virtually everything (everything which is not
    # "atarist" or "atariste" at least should have a processor
    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
    # to the lowercase version "mint" (or "freemint").  Finally
    # the system name "TOS" denotes a system which is actually not
    # MiNT.  But MiNT is downward compatible to TOS, so this should
    # be no problem.
    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
        echo m68k-atari-mint${UNAME_RELEASE}
402
	exit ;;
ken's avatar
ken committed
403 404
    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
	echo m68k-atari-mint${UNAME_RELEASE}
405
        exit ;;
ken's avatar
ken committed
406 407
    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
        echo m68k-atari-mint${UNAME_RELEASE}
408
	exit ;;
ken's avatar
ken committed
409 410
    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
        echo m68k-milan-mint${UNAME_RELEASE}
411
        exit ;;
ken's avatar
ken committed
412 413
    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
        echo m68k-hades-mint${UNAME_RELEASE}
414
        exit ;;
ken's avatar
ken committed
415 416
    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
        echo m68k-unknown-mint${UNAME_RELEASE}
417 418 419 420
        exit ;;
    m68k:machten:*:*)
	echo m68k-apple-machten${UNAME_RELEASE}
	exit ;;
421 422
    powerpc:machten:*:*)
	echo powerpc-apple-machten${UNAME_RELEASE}
423
	exit ;;
424 425
    RISC*:Mach:*:*)
	echo mips-dec-mach_bsd4.3
426
	exit ;;
427 428
    RISC*:ULTRIX:*:*)
	echo mips-dec-ultrix${UNAME_RELEASE}
429
	exit ;;
430 431
    VAX*:ULTRIX*:*:*)
	echo vax-dec-ultrix${UNAME_RELEASE}
432
	exit ;;
ken's avatar
ken committed
433
    2020:CLIX:*:* | 2430:CLIX:*:*)
434
	echo clipper-intergraph-clix${UNAME_RELEASE}
435
	exit ;;
436
    mips:*:*:UMIPS | mips:*:*:RISCos)
437
	eval $set_cc_for_build
ken's avatar
ken committed
438 439 440 441 442 443 444
	sed 's/^	//' << EOF >$dummy.c
#ifdef __cplusplus
#include <stdio.h>  /* for printf() prototype */
	int main (int argc, char *argv[]) {
#else
	int main (argc, argv) int argc; char *argv[]; {
#endif
445 446 447 448 449 450 451 452 453 454 455 456 457 458
	#if defined (host_mips) && defined (MIPSEB)
	#if defined (SYSTYPE_SYSV)
	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
	#endif
	#if defined (SYSTYPE_SVR4)
	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
	#endif
	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
	#endif
	#endif
	  exit (-1);
	}
EOF
459 460 461 462
	$CC_FOR_BUILD -o $dummy $dummy.c &&
	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
	  SYSTEM_NAME=`$dummy $dummyarg` &&
	    { echo "$SYSTEM_NAME"; exit; }
463
	echo mips-mips-riscos${UNAME_RELEASE}
464
	exit ;;
ken's avatar
ken committed
465 466
    Motorola:PowerMAX_OS:*:*)
	echo powerpc-motorola-powermax
467
	exit ;;
468 469
    Motorola:*:4.3:PL8-*)
	echo powerpc-harris-powermax
470
	exit ;;
471 472
    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
	echo powerpc-harris-powermax
473
	exit ;;
474 475
    Night_Hawk:Power_UNIX:*:*)
	echo powerpc-harris-powerunix
476
	exit ;;
477 478
    m88k:CX/UX:7*:*)
	echo m88k-harris-cxux7
479
	exit ;;
480 481
    m88k:*:4*:R4*)
	echo m88k-motorola-sysv4
482
	exit ;;
483 484
    m88k:*:3*:R3*)
	echo m88k-motorola-sysv3
485
	exit ;;
486
    AViiON:dgux:*:*)
487
        # DG/UX returns AViiON for all architectures
488
        UNAME_PROCESSOR=`/usr/bin/uname -p`
ken's avatar
ken committed
489 490 491 492 493
	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
	then
	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
	       [ ${TARGET_BINARY_INTERFACE}x = x ]
	    then
494
		echo m88k-dg-dgux${UNAME_RELEASE}
ken's avatar
ken committed
495
	    else
496
		echo m88k-dg-dguxbcs${UNAME_RELEASE}
ken's avatar
ken committed
497 498 499
	    fi
	else
	    echo i586-dg-dgux${UNAME_RELEASE}
500
	fi
501
 	exit ;;
502 503
    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
	echo m88k-dolphin-sysv3
504
	exit ;;
505 506 507
    M88*:*:R3*:*)
	# Delta 88k system running SVR3
	echo m88k-motorola-sysv3
508
	exit ;;
509 510
    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
	echo m88k-tektronix-sysv3
511
	exit ;;
512 513
    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
	echo m68k-tektronix-bsd
514
	exit ;;
515 516
    *:IRIX*:*:*)
	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
517
	exit ;;
518
    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
519 520
	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
ken's avatar
ken committed
521
    i*86:AIX:*:*)
522
	echo i386-ibm-aix
523
	exit ;;
ken's avatar
ken committed
524 525 526 527 528 529 530
    ia64:AIX:*:*)
	if [ -x /usr/bin/oslevel ] ; then
		IBM_REV=`/usr/bin/oslevel`
	else
		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
	fi
	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
531
	exit ;;
532 533
    *:AIX:2:3)
	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
534
		eval $set_cc_for_build
ken's avatar
ken committed
535
		sed 's/^		//' << EOF >$dummy.c
536 537 538 539 540 541 542 543 544 545
		#include <sys/systemcfg.h>

		main()
			{
			if (!__power_pc())
				exit(1);
			puts("powerpc-ibm-aix3.2.5");
			exit(0);
			}
EOF
546 547 548 549 550 551
		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
		then
			echo "$SYSTEM_NAME"
		else
			echo rs6000-ibm-aix3.2.5
		fi
552 553 554 555 556
	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
		echo rs6000-ibm-aix3.2.4
	else
		echo rs6000-ibm-aix3.2
	fi
557
	exit ;;
558
    *:AIX:*:[456])
559
	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
ken's avatar
ken committed
560
	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
561 562 563 564
		IBM_ARCH=rs6000
	else
		IBM_ARCH=powerpc
	fi
565 566
	if [ -x /usr/bin/oslevel ] ; then
		IBM_REV=`/usr/bin/oslevel`
567
	else
ken's avatar
ken committed
568
		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
569 570
	fi
	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
571
	exit ;;
572 573
    *:AIX:*:*)
	echo rs6000-ibm-aix
574
	exit ;;
575 576
    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
	echo romp-ibm-bsd4.4
577
	exit ;;
ken's avatar
ken committed
578
    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
579
	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
580
	exit ;;                             # report: romp-ibm BSD 4.3
581 582
    *:BOSX:*:*)
	echo rs6000-bull-bosx
583
	exit ;;
584 585
    DPX/2?00:B.O.S.:*:*)
	echo m68k-bull-sysv3
586
	exit ;;
587 588
    9000/[34]??:4.3bsd:1.*:*)
	echo m68k-hp-bsd
589
	exit ;;
590 591
    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
	echo m68k-hp-bsd4.4
592
	exit ;;
593
    9000/[34678]??:HP-UX:*:*)
ken's avatar
ken committed
594
	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
595 596 597
	case "${UNAME_MACHINE}" in
	    9000/31? )            HP_ARCH=m68000 ;;
	    9000/[34]?? )         HP_ARCH=m68k ;;
ken's avatar
ken committed
598
	    9000/[678][0-9][0-9])
599 600
		if [ -x /usr/bin/getconf ]; then
		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
ken's avatar
ken committed
601 602 603 604 605 606 607 608
                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
                    case "${sc_cpu_version}" in
                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
                      532)                      # CPU_PA_RISC2_0
                        case "${sc_kernel_bits}" in
                          32) HP_ARCH="hppa2.0n" ;;
                          64) HP_ARCH="hppa2.0w" ;;
609
			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
ken's avatar
ken committed
610 611
                        esac ;;
                    esac
612 613 614 615
		fi
		if [ "${HP_ARCH}" = "" ]; then
		    eval $set_cc_for_build
		    sed 's/^              //' << EOF >$dummy.c
ken's avatar
ken committed
616 617

              #define _HPUX_SOURCE
618 619
              #include <stdlib.h>
              #include <unistd.h>
ken's avatar
ken committed
620

621 622 623 624
              int main ()
              {
              #if defined(_SC_KERNEL_BITS)
                  long bits = sysconf(_SC_KERNEL_BITS);
ken's avatar
ken committed
625
              #endif
626
                  long cpu  = sysconf (_SC_CPU_VERSION);
ken's avatar
ken committed
627 628

                  switch (cpu)
629 630 631
              	{
              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
ken's avatar
ken committed
632
              	case CPU_PA_RISC2_0:
633
              #if defined(_SC_KERNEL_BITS)
ken's avatar
ken committed
634
              	    switch (bits)
635 636 637 638 639 640 641
              		{
              		case 64: puts ("hppa2.0w"); break;
              		case 32: puts ("hppa2.0n"); break;
              		default: puts ("hppa2.0"); break;
              		} break;
              #else  /* !defined(_SC_KERNEL_BITS) */
              	    puts ("hppa2.0"); break;
ken's avatar
ken committed
642
              #endif
643 644 645 646 647
              	default: puts ("hppa1.0"); break;
              	}
                  exit (0);
              }
EOF
648 649 650
		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
		    test -z "$HP_ARCH" && HP_ARCH=hppa
		fi ;;
651
	esac
652 653
	if [ ${HP_ARCH} = "hppa2.0w" ]
	then
654 655 656 657 658 659 660 661 662 663 664 665 666
	    eval $set_cc_for_build

	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
	    # generating 64-bit code.  GNU and HP use different nomenclature:
	    #
	    # $ CC_FOR_BUILD=cc ./config.guess
	    # => hppa2.0w-hp-hpux11.23
	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
	    # => hppa64-hp-hpux11.23

	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
		grep __LP64__ >/dev/null
667 668 669 670 671 672
	    then
		HP_ARCH="hppa2.0w"
	    else
		HP_ARCH="hppa64"
	    fi
	fi
673
	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
674
	exit ;;
ken's avatar
ken committed
675 676 677
    ia64:HP-UX:*:*)
	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
	echo ia64-hp-hpux${HPUX_REV}
678
	exit ;;
679
    3050*:HI-UX:*:*)
680
	eval $set_cc_for_build
ken's avatar
ken committed
681
	sed 's/^	//' << EOF >$dummy.c
682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705
	#include <unistd.h>
	int
	main ()
	{
	  long cpu = sysconf (_SC_CPU_VERSION);
	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
	     results, however.  */
	  if (CPU_IS_PA_RISC (cpu))
	    {
	      switch (cpu)
		{
		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
		  default: puts ("hppa-hitachi-hiuxwe2"); break;
		}
	    }
	  else if (CPU_IS_HP_MC68K (cpu))
	    puts ("m68k-hitachi-hiuxwe2");
	  else puts ("unknown-hitachi-hiuxwe2");
	  exit (0);
	}
EOF
706 707
	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
		{ echo "$SYSTEM_NAME"; exit; }
708
	echo unknown-hitachi-hiuxwe2
709
	exit ;;
710
    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
711
	echo hppa1.1-hp-bsd
712
	exit ;;
713 714
    9000/8??:4.3bsd:*:*)
	echo hppa1.0-hp-bsd
715
	exit ;;
ken's avatar
ken committed
716 717
    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
	echo hppa1.0-hp-mpeix
718
	exit ;;
719
    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
720
	echo hppa1.1-hp-osf
721
	exit ;;
722 723
    hp8??:OSF1:*:*)
	echo hppa1.0-hp-osf
724
	exit ;;
ken's avatar
ken committed
725
    i*86:OSF1:*:*)
726 727 728 729 730
	if [ -x /usr/sbin/sysversion ] ; then
	    echo ${UNAME_MACHINE}-unknown-osf1mk
	else
	    echo ${UNAME_MACHINE}-unknown-osf1
	fi
731
	exit ;;
732 733
    parisc*:Lites*:*:*)
	echo hppa1.1-hp-lites
734
	exit ;;
735 736
    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
	echo c1-convex-bsd
737
        exit ;;
738 739 740 741 742
    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
	if getsysinfo -f scalar_acc
	then echo c32-convex-bsd
	else echo c2-convex-bsd
	fi
743
        exit ;;
744 745
    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
	echo c34-convex-bsd
746
        exit ;;
747 748
    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
	echo c38-convex-bsd
749
        exit ;;
750 751
    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
	echo c4-convex-bsd
752
        exit ;;
753
    CRAY*Y-MP:*:*:*)
754
	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
755
	exit ;;
756 757 758
    CRAY*[A-Z]90:*:*:*)
	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
759 760
	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
	      -e 's/\.[^.]*$/.X/'
761
	exit ;;
762
    CRAY*TS:*:*:*)
ken's avatar
ken committed
763
	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
764
	exit ;;
ken's avatar
ken committed
765 766
    CRAY*T3E:*:*:*)
	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
767
	exit ;;
ken's avatar
ken committed
768 769
    CRAY*SV1:*:*:*)
	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
770
	exit ;;
771
    *:UNICOS/mp:*:*)
772 773
	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
	exit ;;
ken's avatar
ken committed
774 775 776
    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
777
        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
ken's avatar
ken committed
778
        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
779 780 781 782 783 784
        exit ;;
    5000:UNIX_System_V:4.*:*)
        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
	exit ;;
ken's avatar
ken committed
785 786
    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
787
	exit ;;
788 789
    sparc*:BSD/OS:*:*)
	echo sparc-unknown-bsdi${UNAME_RELEASE}
790
	exit ;;
ken's avatar
ken committed
791 792
    *:BSD/OS:*:*)
	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
793 794 795 796 797 798 799 800 801 802 803
	exit ;;
    *:FreeBSD:*:*)
	case ${UNAME_MACHINE} in
	    pc98)
		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
	    amd64)
		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
	    *)
		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
	esac
	exit ;;
804
    i*:CYGWIN*:*)
805
	echo ${UNAME_MACHINE}-pc-cygwin
806
	exit ;;
807
    *:MINGW*:*)
808
	echo ${UNAME_MACHINE}-pc-mingw32
809 810 811 812 813
	exit ;;
    i*:windows32*:*)
    	# uname -m includes "-pc" on this system.
    	echo ${UNAME_MACHINE}-mingw32
	exit ;;
ken's avatar
ken committed
814 815
    i*:PW*:*)
	echo ${UNAME_MACHINE}-pc-pw32
816
	exit ;;
817 818 819 820 821 822 823 824 825 826 827 828
    *:Interix*:[3456]*)
    	case ${UNAME_MACHINE} in
	    x86)
		echo i586-pc-interix${UNAME_RELEASE}
		exit ;;
	    EM64T | authenticamd | genuineintel)
		echo x86_64-unknown-interix${UNAME_RELEASE}
		exit ;;
	    IA64)
		echo ia64-unknown-interix${UNAME_RELEASE}
		exit ;;
	esac ;;
829 830
    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
	echo i${UNAME_MACHINE}-pc-mks
831
	exit ;;
ken's avatar
ken committed
832 833 834 835
    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
	# How do we know it's Interix rather than the generic POSIX subsystem?
	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
	# UNAME_MACHINE based on the output of uname instead of i386?
836
	echo i586-pc-interix
837
	exit ;;
ken's avatar
ken committed
838 839
    i*:UWIN*:*)
	echo ${UNAME_MACHINE}-pc-uwin
840 841 842 843
	exit ;;
    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
	echo x86_64-unknown-cygwin
	exit ;;
844
    p*:CYGWIN*:*)
845
	echo powerpcle-unknown-cygwin
846
	exit ;;
847 848
    prep*:SunOS:5.*:*)
	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
849
	exit ;;
850
    *:GNU:*:*)
851
	# the GNU system
852
	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
853 854 855 856 857
	exit ;;
    *:GNU/*:*:*)
	# other systems with GNU libc and userland
	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
	exit ;;
ken's avatar
ken committed
858 859
    i*86:Minix:*:*)
	echo ${UNAME_MACHINE}-pc-minix
860
	exit ;;
ken's avatar
ken committed
861
    arm*:Linux:*:*)
862 863 864 865 866 867 868 869
	eval $set_cc_for_build
	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
	    | grep -q __ARM_EABI__
	then
	    echo ${UNAME_MACHINE}-unknown-linux-gnu
	else
	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
	fi
870 871 872 873
	exit ;;
    avr32*:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-gnu
	exit ;;
874 875
    cris:Linux:*:*)
	echo cris-axis-linux-gnu
876 877 878 879 880 881 882
	exit ;;
    crisv32:Linux:*:*)
	echo crisv32-axis-linux-gnu
	exit ;;
    frv:Linux:*:*)
    	echo frv-unknown-linux-gnu
	exit ;;
ken's avatar
ken committed
883
    ia64:Linux:*:*)
884
	echo ${UNAME_MACHINE}-unknown-linux-gnu
885 886 887 888
	exit ;;
    m32r*:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-gnu
	exit ;;
ken's avatar
ken committed
889 890
    m68*:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-gnu
891
	exit ;;
ken's avatar
ken committed
892
    mips:Linux:*:*)
893 894 895 896 897 898 899 900 901 902 903 904 905 906 907
	eval $set_cc_for_build
	sed 's/^	//' << EOF >$dummy.c
	#undef CPU
	#undef mips
	#undef mipsel
	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
	CPU=mipsel
	#else
	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
	CPU=mips
	#else
	CPU=
	#endif
	#endif
EOF
908 909 910 911 912 913
	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
	    /^CPU/{
		s: ::g
		p
	    }'`"
	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930
	;;
    mips64:Linux:*:*)
	eval $set_cc_for_build
	sed 's/^	//' << EOF >$dummy.c
	#undef CPU
	#undef mips64
	#undef mips64el
	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
	CPU=mips64el
	#else
	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
	CPU=mips64
	#else
	CPU=
	#endif
	#endif
EOF
931 932 933 934 935 936
	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
	    /^CPU/{
		s: ::g
		p
	    }'`"
	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
ken's avatar
ken committed
937
	;;
938 939 940
    or32:Linux:*:*)
	echo or32-unknown-linux-gnu
	exit ;;
ken's avatar
ken committed
941 942
    ppc:Linux:*:*)
	echo powerpc-unknown-linux-gnu
943
	exit ;;
944 945
    ppc64:Linux:*:*)
	echo powerpc64-unknown-linux-gnu
946
	exit ;;
ken's avatar
ken committed
947 948 949 950 951 952 953 954
    alpha:Linux:*:*)
	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
	  EV5)   UNAME_MACHINE=alphaev5 ;;
	  EV56)  UNAME_MACHINE=alphaev56 ;;
	  PCA56) UNAME_MACHINE=alphapca56 ;;
	  PCA57) UNAME_MACHINE=alphapca56 ;;
	  EV6)   UNAME_MACHINE=alphaev6 ;;
	  EV67)  UNAME_MACHINE=alphaev67 ;;
955
	  EV68*) UNAME_MACHINE=alphaev68 ;;
ken's avatar
ken committed
956 957 958 959
        esac
	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
960
	exit ;;
961 962 963
    padre:Linux:*:*)
	echo sparc-unknown-linux-gnu
	exit ;;
ken's avatar
ken committed
964 965 966 967 968 969 970
    parisc:Linux:*:* | hppa:Linux:*:*)
	# Look for CPU level
	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
	  *)    echo hppa-unknown-linux-gnu ;;
	esac
971
	exit ;;
ken's avatar
ken committed
972 973
    parisc64:Linux:*:* | hppa64:Linux:*:*)
	echo hppa64-unknown-linux-gnu
974
	exit ;;
ken's avatar
ken committed
975 976
    s390:Linux:*:* | s390x:Linux:*:*)
	echo ${UNAME_MACHINE}-ibm-linux
977
	exit ;;
978 979
    sh64*:Linux:*:*)
    	echo ${UNAME_MACHINE}-unknown-linux-gnu
980
	exit ;;
ken's avatar
ken committed
981 982
    sh*:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-gnu
983
	exit ;;
ken's avatar
ken committed
984 985
    sparc:Linux:*:* | sparc64:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-gnu
986 987 988 989
	exit ;;
    vax:Linux:*:*)
	echo ${UNAME_MACHINE}-dec-linux-gnu
	exit ;;
ken's avatar
ken committed
990 991
    x86_64:Linux:*:*)
	echo x86_64-unknown-linux-gnu
992
	exit ;;
993 994 995
    xtensa*:Linux:*:*)
    	echo ${UNAME_MACHINE}-unknown-linux-gnu
	exit ;;
ken's avatar
ken committed
996
    i*86:Linux:*:*)
997
	# The BFD linker knows what the default object file format is, so
ken's avatar
ken committed
998 999
	# first see if it will tell us. cd to the root directory to prevent
	# problems with other programs or directories called `ld' in the path.
1000 1001
	# Set LC_ALL=C to ensure ld outputs messages in English.
	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
ken's avatar
ken committed
1002
			 | sed -ne '/supported targets:/!d
1003
				    s/[ 	][ 	]*/ /g
ken's avatar
ken committed
1004
				    s/.*supported targets: *//
1005 1006
				    s/ .*//
				    p'`
ken's avatar
ken committed
1007 1008 1009 1010 1011 1012
        case "$ld_supported_targets" in
	  elf32-i386)
		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
		;;
	  a.out-i386-linux)
		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
1013
		exit ;;
ken's avatar
ken committed
1014 1015 1016 1017
	  "")
		# Either a pre-BFD a.out linker (linux-gnuoldld) or
		# one that does not give us useful --help.
		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
1018
		exit ;;
1019
	esac
ken's avatar
ken committed
1020 1021
	# Determine whether the default compiler is a.out or elf
	eval $set_cc_for_build
1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034
	sed 's/^	//' << EOF >$dummy.c
	#include <features.h>
	#ifdef __ELF__
	# ifdef __GLIBC__
	#  if __GLIBC__ >= 2
	LIBC=gnu
	#  else
	LIBC=gnulibc1
	#  endif
	# else
	LIBC=gnulibc1
	# endif
	#else
1035
	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
1036 1037 1038 1039 1040
	LIBC=gnu
	#else
	LIBC=gnuaout
	#endif
	#endif
1041 1042 1043
	#ifdef __dietlibc__
	LIBC=dietlibc
	#endif
1044
EOF
1045 1046 1047 1048 1049 1050 1051 1052 1053 1054
	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
	    /^LIBC/{
		s: ::g
		p
	    }'`"
	test x"${LIBC}" != x && {
		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
		exit
	}
	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
ken's avatar
ken committed
1055 1056 1057 1058 1059
	;;
    i*86:DYNIX/ptx:4*:*)
	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
	# earlier versions are messed up and put the nodename in both
	# sysname and nodename.
1060
	echo i386-sequent-sysv4
1061
	exit ;;
ken's avatar
ken committed
1062
    i*86:UNIX_SV:4.2MP:2.*)
1063 1064 1065 1066 1067 1068
        # Unixware is an offshoot of SVR4, but it has its own version
        # number series starting with 2...
        # I am not positive that other SVR4 systems won't match this,
	# I just have to hope.  -- rms.
        # Use sysv4.2uw... so that sysv4* matches it.
	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1069
	exit ;;
1070 1071 1072 1073
    i*86:OS/2:*:*)
	# If we were able to find `uname', then EMX Unix compatibility
	# is probably installed.
	echo ${UNAME_MACHINE}-pc-os2-emx
1074
	exit ;;
1075 1076
    i*86:XTS-300:*:STOP)
	echo ${UNAME_MACHINE}-unknown-stop
1077
	exit ;;
1078 1079
    i*86:atheos:*:*)
	echo ${UNAME_MACHINE}-unknown-atheos
1080 1081 1082 1083
	exit ;;
    i*86:syllable:*:*)
	echo ${UNAME_MACHINE}-pc-syllable
	exit ;;
1084 1085
    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
	echo i386-unknown-lynxos${UNAME_RELEASE}
1086
	exit ;;
1087 1088
    i*86:*DOS:*:*)
	echo ${UNAME_MACHINE}-pc-msdosdjgpp
1089
	exit ;;
ken's avatar
ken committed
1090 1091
    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1092
	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
ken's avatar
ken committed
1093
		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1094
	else
ken's avatar
ken committed
1095
		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1096
	fi
1097 1098 1099
	exit ;;
    i*86:*:5:[678]*)
    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
ken's avatar
ken committed
1100 1101 1102 1103 1104 1105
	case `/bin/uname -X | grep "^Machine"` in
	    *486*)	     UNAME_MACHINE=i486 ;;
	    *Pentium)	     UNAME_MACHINE=i586 ;;
	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
	esac
	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1106
	exit ;;
ken's avatar
ken committed
1107
    i*86:*:3.2:*)
1108 1109
	if test -f /usr/options/cb.name; then
		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1110
		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1111
	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1112 1113 1114
		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1115
			&& UNAME_MACHINE=i586
1116
		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
ken's avatar
ken committed
1117
			&& UNAME_MACHINE=i686
1118
		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
ken's avatar
ken committed
1119
			&& UNAME_MACHINE=i686
1120
		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1121
	else
1122
		echo ${UNAME_MACHINE}-pc-sysv32
1123
	fi
1124
	exit ;;
1125
    pc:*:*:*)
ken's avatar
ken committed
1126
	# Left here for compatibility:
1127 1128 1129
        # uname -m prints for DJGPP always 'pc', but it prints nothing about
        # the processor, so we play safe by assuming i386.
	echo i386-pc-msdosdjgpp
1130
        exit ;;
1131
    Intel:Mach:3*:*)
1132
	echo i386-pc-mach3
1133
	exit ;;
1134 1135
    paragon:*:*:*)
	echo i860-intel-osf1
1136
	exit ;;
1137 1138 1139 1140 1141 1142
    i860:*:4.*:*) # i860-SVR4
	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
	else # Add other i860-SVR4 vendors below as they are discovered.
	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
	fi
1143
	exit ;;
1144 1145 1146
    mini*:CTIX:SYS*5:*)
	# "miniframe"
	echo m68010-convergent-sysv
1147
	exit ;;
1148 1149
    mc68k:UNIX:SYSTEM5:3.51m)
	echo m68k-convergent-sysv
1150
	exit ;;
1151 1152
    M680?0:D-NIX:5.3:*)
	echo m68k-diab-dnix
1153 1154 1155 1156
	exit ;;
    M68*:*:R3V[5678]*:*)
	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
    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)
1157 1158 1159 1160
	OS_REL=''
	test -r /etc/.relid \
	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1161
	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1162
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1163
	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1164
    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1165
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1166
          && { echo i486-ncr-sysv4; exit; } ;;
ken's avatar
ken committed
1167
    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1168
	echo m68k-unknown-lynxos${UNAME_RELEASE}
1169
	exit ;;
1170 1171
    mc68030:UNIX_System_V:4.*:*)
	echo m68k-atari-sysv4
1172
	exit ;;
1173 1174
    TSUNAMI:LynxOS:2.*:*)
	echo sparc-unknown-lynxos${UNAME_RELEASE}
1175
	exit ;;
ken's avatar
ken committed
1176
    rs6000:LynxOS:2.*:*)
1177
	echo rs6000-unknown-lynxos${UNAME_RELEASE}
1178
	exit ;;
ken's avatar
ken committed
1179 1180
    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
	echo powerpc-unknown-lynxos${UNAME_RELEASE}
1181
	exit ;;