config.guess 42.7 KB
Newer Older
Cullen Jennings's avatar
Cullen Jennings committed
1 2
#! /bin/sh
# Attempt to guess a canonical system name.
3
#   Copyright 1992-2016 Free Software Foundation, Inc.
4

5
timestamp='2016-05-15'
6

Cullen Jennings's avatar
Cullen Jennings committed
7 8
# 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
9
# the Free Software Foundation; either version 3 of the License, or
Cullen Jennings's avatar
Cullen Jennings committed
10 11 12 13 14 15 16 17
# (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
18
# along with this program; if not, see <http://www.gnu.org/licenses/>.
Cullen Jennings's avatar
Cullen Jennings committed
19 20 21 22
#
# 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
23 24 25
# the same distribution terms that you use for the rest of that
# program.  This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
Cullen Jennings's avatar
Cullen Jennings committed
26
#
27
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
Cullen Jennings's avatar
Cullen Jennings committed
28
#
29
# You can get the latest version of this script from:
30 31 32 33
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
#
# Please send patches to <config-patches@gnu.org>.

Cullen Jennings's avatar
Cullen Jennings committed
34

35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
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.
53
Copyright 1992-2016 Free Software Foundation, Inc.
54 55 56 57 58 59 60 61 62 63 64

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 )
65
       echo "$timestamp" ; exit ;;
66
    --version | -v )
67
       echo "$version" ; exit ;;
68
    --help | --h* | -h )
69
       echo "$usage"; exit ;;
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
    -- )     # 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
Cullen Jennings's avatar
Cullen Jennings committed
85 86
fi

87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
trap 'exit 1' 1 2 15

# 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.

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

# Portable tmp directory creation inspired by the Autoconf team.

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} ;
103
 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
 { 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" ;
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
	     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 ;;
122
esac ; set_cc_for_build= ;'
Cullen Jennings's avatar
Cullen Jennings committed
123 124

# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
125
# (ghazi@noc.rutgers.edu 1994-08-24)
Cullen Jennings's avatar
Cullen Jennings committed
126 127 128 129 130 131
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
132
UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
Cullen Jennings's avatar
Cullen Jennings committed
133 134
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown

135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
case "${UNAME_SYSTEM}" in
Linux|GNU|GNU/*)
	# If the system lacks a compiler, then just pick glibc.
	# We could probably try harder.
	LIBC=gnu

	eval $set_cc_for_build
	cat <<-EOF > $dummy.c
	#include <features.h>
	#if defined(__UCLIBC__)
	LIBC=uclibc
	#elif defined(__dietlibc__)
	LIBC=dietlibc
	#else
	LIBC=gnu
	#endif
	EOF
	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
	;;
esac

Cullen Jennings's avatar
Cullen Jennings committed
156 157 158 159
# Note: order is significant - the case branches are not exclusive.

case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
    *:NetBSD:*:*)
160
	# NetBSD (nbsd) targets should (where applicable) match one or
161
	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
Cullen Jennings's avatar
Cullen Jennings committed
162 163 164 165 166
	# *-*-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.
167 168 169 170
	#
	# 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"
171 172 173 174
	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
	    /sbin/$sysctl 2>/dev/null || \
	    /usr/sbin/$sysctl 2>/dev/null || \
	    echo unknown)`
175 176 177 178 179
	case "${UNAME_MACHINE_ARCH}" in
	    armeb) machine=armeb-unknown ;;
	    arm*) machine=arm-unknown ;;
	    sh3el) machine=shl-unknown ;;
	    sh3eb) machine=sh-unknown ;;
180
	    sh5el) machine=sh5le-unknown ;;
181 182 183 184 185
	    earmv*)
		arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
		endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
		machine=${arch}${endian}-unknown
		;;
186 187 188
	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
	esac
	# The Operating System including object format, if it has switched
189
	# to ELF recently (or will in the future) and ABI.
190
	case "${UNAME_MACHINE_ARCH}" in
191 192 193
	    earm*)
		os=netbsdelf
		;;
194 195 196
	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
		eval $set_cc_for_build
		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
197
			| grep -q __ELF__
198 199 200 201 202 203 204 205 206
		then
		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
		    # Return netbsd for either.  FIX?
		    os=netbsd
		else
		    os=netbsdelf
		fi
		;;
	    *)
207
		os=netbsd
208
		;;
Cullen Jennings's avatar
Cullen Jennings committed
209
	esac
210 211 212 213 214 215 216
	# Determine ABI tags.
	case "${UNAME_MACHINE_ARCH}" in
	    earm*)
		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
		abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
		;;
	esac
Cullen Jennings's avatar
Cullen Jennings committed
217
	# The OS release
218 219 220 221 222 223 224 225 226
	# 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'
		;;
	    *)
227
		release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
228 229
		;;
	esac
Cullen Jennings's avatar
Cullen Jennings committed
230 231 232
	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
	# contains redundant information, the shorter form:
	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
233 234 235 236 237
	echo "${machine}-${os}${release}${abi}"
	exit ;;
    *:Bitrig:*:*)
	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
238
	exit ;;
239
    *:OpenBSD:*:*)
240 241 242
	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
	exit ;;
243 244 245 246
    *:LibertyBSD:*:*)
	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
	echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
	exit ;;
247 248
    *:ekkoBSD:*:*)
	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
249 250 251 252
	exit ;;
    *:SolidBSD:*:*)
	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
	exit ;;
253
    macppc:MirBSD:*:*)
254 255
	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
	exit ;;
256 257
    *:MirBSD:*:*)
	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
258
	exit ;;
259 260 261
    *:Sortix:*:*)
	echo ${UNAME_MACHINE}-unknown-sortix
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
262
    alpha:OSF1:*:*)
263 264
	case $UNAME_RELEASE in
	*4.0)
Cullen Jennings's avatar
Cullen Jennings committed
265
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
266 267
		;;
	*5.*)
268
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
269 270 271 272 273 274 275 276 277
		;;
	esac
	# 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)")
278
		UNAME_MACHINE=alpha ;;
279
	    "EV4.5 (21064)")
280
		UNAME_MACHINE=alpha ;;
281
	    "LCA4 (21066/21068)")
282
		UNAME_MACHINE=alpha ;;
283
	    "EV5 (21164)")
284
		UNAME_MACHINE=alphaev5 ;;
285
	    "EV5.6 (21164A)")
286
		UNAME_MACHINE=alphaev56 ;;
287
	    "EV5.6 (21164PC)")
288
		UNAME_MACHINE=alphapca56 ;;
289
	    "EV5.7 (21164PC)")
290
		UNAME_MACHINE=alphapca57 ;;
291
	    "EV6 (21264)")
292
		UNAME_MACHINE=alphaev6 ;;
293
	    "EV6.7 (21264A)")
294
		UNAME_MACHINE=alphaev67 ;;
295
	    "EV6.8CB (21264C)")
296
		UNAME_MACHINE=alphaev68 ;;
297
	    "EV6.8AL (21264B)")
298
		UNAME_MACHINE=alphaev68 ;;
299
	    "EV6.8CX (21264D)")
300
		UNAME_MACHINE=alphaev68 ;;
301
	    "EV6.9A (21264/EV69A)")
302
		UNAME_MACHINE=alphaev69 ;;
303
	    "EV7 (21364)")
304
		UNAME_MACHINE=alphaev7 ;;
305
	    "EV7.9 (21364A)")
306
		UNAME_MACHINE=alphaev79 ;;
307 308
	esac
	# A Pn.n version is a patched version.
Cullen Jennings's avatar
Cullen Jennings committed
309 310 311 312
	# 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.
	# 1.2 uses "1.2" for uname -r.
313
	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
314 315 316 317
	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
	exitcode=$?
	trap '' 0
	exit $exitcode ;;
Cullen Jennings's avatar
Cullen Jennings committed
318 319 320 321 322
    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
323
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
324 325
    21064:Windows_NT:50:3)
	echo alpha-dec-winnt3.5
326
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
327
    Amiga*:UNIX_System_V:4.0:*)
328
	echo m68k-unknown-sysv4
329
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
330 331
    *:[Aa]miga[Oo][Ss]:*:*)
	echo ${UNAME_MACHINE}-unknown-amigaos
332
	exit ;;
333 334
    *:[Mm]orph[Oo][Ss]:*:*)
	echo ${UNAME_MACHINE}-unknown-morphos
335
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
336 337
    *:OS/390:*:*)
	echo i370-ibm-openedition
338 339 340 341
	exit ;;
    *:z/VM:*:*)
	echo s390-ibm-zvmoe
	exit ;;
342
    *:OS400:*:*)
343 344
	echo powerpc-ibm-os400
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
345 346
    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
	echo arm-acorn-riscix${UNAME_RELEASE}
347
	exit ;;
348
    arm*:riscos:*:*|arm*:RISCOS:*:*)
349 350
	echo arm-unknown-riscos
	exit ;;
351
    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
Cullen Jennings's avatar
Cullen Jennings committed
352
	echo hppa1.1-hitachi-hiuxmpp
353
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
354 355 356 357 358 359 360
    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
	if test "`(/bin/universe) 2>/dev/null`" = att ; then
		echo pyramid-pyramid-sysv3
	else
		echo pyramid-pyramid-bsd
	fi
361
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
362 363
    NILE*:*:*:dcosx)
	echo pyramid-pyramid-svr4
364
	exit ;;
365 366
    DRS?6000:unix:4.0:6*)
	echo sparc-icl-nx6
367 368
	exit ;;
    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
369
	case `/usr/bin/uname -p` in
370
	    sparc) echo sparc-icl-nx7; exit ;;
371
	esac ;;
372 373 374
    s390x:SunOS:*:*)
	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
375 376
    sun4H:SunOS:5.*:*)
	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
377
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
378 379
    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
380 381 382 383 384 385
	exit ;;
    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
	echo i386-pc-auroraux${UNAME_RELEASE}
	exit ;;
    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
	eval $set_cc_for_build
386
	SUN_ARCH=i386
387 388 389
	# 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.
390
	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
391
	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
392
		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
393 394
		grep IS_64BIT_ARCH >/dev/null
	    then
395
		SUN_ARCH=x86_64
396 397 398 399
	    fi
	fi
	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
400 401 402 403 404
    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/[^.]*//'`
405
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
406 407 408 409 410 411 412 413
    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/-/_/'`
414
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
415 416
    sun3*:SunOS:*:*)
	echo m68k-sun-sunos${UNAME_RELEASE}
417
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
418
    sun*:*:4.2BSD:*)
419
	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
420
	test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
Cullen Jennings's avatar
Cullen Jennings committed
421 422 423 424 425 426 427 428
	case "`/bin/arch`" in
	    sun3)
		echo m68k-sun-sunos${UNAME_RELEASE}
		;;
	    sun4)
		echo sparc-sun-sunos${UNAME_RELEASE}
		;;
	esac
429
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
430 431
    aushp:SunOS:*:*)
	echo sparc-auspex-sunos${UNAME_RELEASE}
432
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
433 434 435 436 437 438 439 440 441
    # 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:*:*)
442 443
	echo m68k-atari-mint${UNAME_RELEASE}
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
444 445
    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
	echo m68k-atari-mint${UNAME_RELEASE}
446
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
447
    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
448 449
	echo m68k-atari-mint${UNAME_RELEASE}
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
450
    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
451 452
	echo m68k-milan-mint${UNAME_RELEASE}
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
453
    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
454 455
	echo m68k-hades-mint${UNAME_RELEASE}
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
456
    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
457 458
	echo m68k-unknown-mint${UNAME_RELEASE}
	exit ;;
459 460
    m68k:machten:*:*)
	echo m68k-apple-machten${UNAME_RELEASE}
461
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
462 463
    powerpc:machten:*:*)
	echo powerpc-apple-machten${UNAME_RELEASE}
464
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
465 466
    RISC*:Mach:*:*)
	echo mips-dec-mach_bsd4.3
467
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
468 469
    RISC*:ULTRIX:*:*)
	echo mips-dec-ultrix${UNAME_RELEASE}
470
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
471 472
    VAX*:ULTRIX*:*:*)
	echo vax-dec-ultrix${UNAME_RELEASE}
473
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
474 475
    2020:CLIX:*:* | 2430:CLIX:*:*)
	echo clipper-intergraph-clix${UNAME_RELEASE}
476
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
477
    mips:*:*:UMIPS | mips:*:*:RISCos)
478
	eval $set_cc_for_build
Cullen Jennings's avatar
Cullen Jennings committed
479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499
	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
	#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
500 501 502 503
	$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; }
Cullen Jennings's avatar
Cullen Jennings committed
504
	echo mips-mips-riscos${UNAME_RELEASE}
505
	exit ;;
506 507
    Motorola:PowerMAX_OS:*:*)
	echo powerpc-motorola-powermax
508
	exit ;;
509 510
    Motorola:*:4.3:PL8-*)
	echo powerpc-harris-powermax
511
	exit ;;
512 513
    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
	echo powerpc-harris-powermax
514
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
515 516
    Night_Hawk:Power_UNIX:*:*)
	echo powerpc-harris-powerunix
517
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
518 519
    m88k:CX/UX:7*:*)
	echo m88k-harris-cxux7
520
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
521 522
    m88k:*:4*:R4*)
	echo m88k-motorola-sysv4
523
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
524 525
    m88k:*:3*:R3*)
	echo m88k-motorola-sysv3
526
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
527
    AViiON:dgux:*:*)
528 529
	# DG/UX returns AViiON for all architectures
	UNAME_PROCESSOR=`/usr/bin/uname -p`
Cullen Jennings's avatar
Cullen Jennings committed
530 531 532 533 534 535 536 537 538 539 540 541
	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
	then
	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
	       [ ${TARGET_BINARY_INTERFACE}x = x ]
	    then
		echo m88k-dg-dgux${UNAME_RELEASE}
	    else
		echo m88k-dg-dguxbcs${UNAME_RELEASE}
	    fi
	else
	    echo i586-dg-dgux${UNAME_RELEASE}
	fi
542
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
543 544
    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
	echo m88k-dolphin-sysv3
545
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
546 547 548
    M88*:*:R3*:*)
	# Delta 88k system running SVR3
	echo m88k-motorola-sysv3
549
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
550 551
    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
	echo m88k-tektronix-sysv3
552
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
553 554
    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
	echo m68k-tektronix-bsd
555
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
556 557
    *:IRIX*:*:*)
	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
558
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
559
    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
560 561
	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
562
    i*86:AIX:*:*)
Cullen Jennings's avatar
Cullen Jennings committed
563
	echo i386-ibm-aix
564
	exit ;;
565 566 567 568 569 570 571
    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}
572
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
573 574
    *:AIX:2:3)
	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
575
		eval $set_cc_for_build
Cullen Jennings's avatar
Cullen Jennings committed
576 577 578 579 580 581 582 583 584 585 586
		sed 's/^		//' << EOF >$dummy.c
		#include <sys/systemcfg.h>

		main()
			{
			if (!__power_pc())
				exit(1);
			puts("powerpc-ibm-aix3.2.5");
			exit(0);
			}
EOF
587 588 589 590 591 592
		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
		then
			echo "$SYSTEM_NAME"
		else
			echo rs6000-ibm-aix3.2.5
		fi
Cullen Jennings's avatar
Cullen Jennings committed
593 594 595 596 597
	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
598 599
	exit ;;
    *:AIX:*:[4567])
600 601
	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
Cullen Jennings's avatar
Cullen Jennings committed
602 603 604 605
		IBM_ARCH=rs6000
	else
		IBM_ARCH=powerpc
	fi
606 607 608
	if [ -x /usr/bin/lslpp ] ; then
		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
Cullen Jennings's avatar
Cullen Jennings committed
609
	else
610
		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
Cullen Jennings's avatar
Cullen Jennings committed
611 612
	fi
	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
613
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
614 615
    *:AIX:*:*)
	echo rs6000-ibm-aix
616
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
617 618
    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
	echo romp-ibm-bsd4.4
619
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
620 621
    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
622
	exit ;;                             # report: romp-ibm BSD 4.3
Cullen Jennings's avatar
Cullen Jennings committed
623 624
    *:BOSX:*:*)
	echo rs6000-bull-bosx
625
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
626 627
    DPX/2?00:B.O.S.:*:*)
	echo m68k-bull-sysv3
628
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
629 630
    9000/[34]??:4.3bsd:1.*:*)
	echo m68k-hp-bsd
631
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
632 633
    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
	echo m68k-hp-bsd4.4
634
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
635
    9000/[34678]??:HP-UX:*:*)
636
	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
Cullen Jennings's avatar
Cullen Jennings committed
637 638 639 640
	case "${UNAME_MACHINE}" in
	    9000/31? )            HP_ARCH=m68000 ;;
	    9000/[34]?? )         HP_ARCH=m68k ;;
	    9000/[678][0-9][0-9])
641 642
		if [ -x /usr/bin/getconf ]; then
		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
643 644
		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
		    case "${sc_cpu_version}" in
645 646
		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
647 648
		      532)                      # CPU_PA_RISC2_0
			case "${sc_kernel_bits}" in
649 650 651
			  32) HP_ARCH=hppa2.0n ;;
			  64) HP_ARCH=hppa2.0w ;;
			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
652 653
			esac ;;
		    esac
654 655 656
		fi
		if [ "${HP_ARCH}" = "" ]; then
		    eval $set_cc_for_build
657
		    sed 's/^		//' << EOF >$dummy.c
Cullen Jennings's avatar
Cullen Jennings committed
658

659 660 661
		#define _HPUX_SOURCE
		#include <stdlib.h>
		#include <unistd.h>
Cullen Jennings's avatar
Cullen Jennings committed
662

663 664 665 666 667 668
		int main ()
		{
		#if defined(_SC_KERNEL_BITS)
		    long bits = sysconf(_SC_KERNEL_BITS);
		#endif
		    long cpu  = sysconf (_SC_CPU_VERSION);
Cullen Jennings's avatar
Cullen Jennings committed
669

670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688
		    switch (cpu)
			{
			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
			case CPU_PA_RISC2_0:
		#if defined(_SC_KERNEL_BITS)
			    switch (bits)
				{
				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;
		#endif
			default: puts ("hppa1.0"); break;
			}
		    exit (0);
		}
Cullen Jennings's avatar
Cullen Jennings committed
689
EOF
690
		    (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
691 692
		    test -z "$HP_ARCH" && HP_ARCH=hppa
		fi ;;
Cullen Jennings's avatar
Cullen Jennings committed
693
	esac
694
	if [ ${HP_ARCH} = hppa2.0w ]
695
	then
696 697 698 699 700 701 702 703 704 705 706
	    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

707
	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
708
		grep -q __LP64__
709
	    then
710
		HP_ARCH=hppa2.0w
711
	    else
712
		HP_ARCH=hppa64
713 714
	    fi
	fi
Cullen Jennings's avatar
Cullen Jennings committed
715
	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
716
	exit ;;
717 718 719
    ia64:HP-UX:*:*)
	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
	echo ia64-hp-hpux${HPUX_REV}
720
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
721
    3050*:HI-UX:*:*)
722
	eval $set_cc_for_build
Cullen Jennings's avatar
Cullen Jennings committed
723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747
	sed 's/^	//' << EOF >$dummy.c
	#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
748 749
	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
		{ echo "$SYSTEM_NAME"; exit; }
Cullen Jennings's avatar
Cullen Jennings committed
750
	echo unknown-hitachi-hiuxwe2
751
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
752 753
    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
	echo hppa1.1-hp-bsd
754
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
755 756
    9000/8??:4.3bsd:*:*)
	echo hppa1.0-hp-bsd
757
	exit ;;
758
    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
Cullen Jennings's avatar
Cullen Jennings committed
759
	echo hppa1.0-hp-mpeix
760
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
761 762
    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
	echo hppa1.1-hp-osf
763
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
764 765
    hp8??:OSF1:*:*)
	echo hppa1.0-hp-osf
766
	exit ;;
767
    i*86:OSF1:*:*)
Cullen Jennings's avatar
Cullen Jennings committed
768 769 770 771 772
	if [ -x /usr/sbin/sysversion ] ; then
	    echo ${UNAME_MACHINE}-unknown-osf1mk
	else
	    echo ${UNAME_MACHINE}-unknown-osf1
	fi
773
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
774 775
    parisc*:Lites*:*:*)
	echo hppa1.1-hp-lites
776
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
777 778
    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
	echo c1-convex-bsd
779
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
780 781 782 783 784
    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
	if getsysinfo -f scalar_acc
	then echo c32-convex-bsd
	else echo c2-convex-bsd
	fi
785
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
786 787
    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
	echo c34-convex-bsd
788
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
789 790
    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
	echo c38-convex-bsd
791
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
792 793
    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
	echo c4-convex-bsd
794
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
795
    CRAY*Y-MP:*:*:*)
796
	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
797
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
798 799 800
    CRAY*[A-Z]90:*:*:*)
	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
801 802
	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
	      -e 's/\.[^.]*$/.X/'
803
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
804 805
    CRAY*TS:*:*:*)
	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
806
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
807
    CRAY*T3E:*:*:*)
808
	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
809
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
810 811
    CRAY*SV1:*:*:*)
	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
812
	exit ;;
813 814
    *:UNICOS/mp:*:*)
	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
815
	exit ;;
816
    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
817 818
	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
819 820 821
	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
	exit ;;
822
    5000:UNIX_System_V:4.*:*)
823 824
	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
825 826
	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
	exit ;;
827
    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
Cullen Jennings's avatar
Cullen Jennings committed
828
	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
829
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
830 831
    sparc*:BSD/OS:*:*)
	echo sparc-unknown-bsdi${UNAME_RELEASE}
832
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
833 834
    *:BSD/OS:*:*)
	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
835
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
836
    *:FreeBSD:*:*)
837 838
	UNAME_PROCESSOR=`/usr/bin/uname -p`
	case ${UNAME_PROCESSOR} in
839 840 841
	    amd64)
		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
	    *)
842
		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
843 844
	esac
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
845 846
    i*:CYGWIN*:*)
	echo ${UNAME_MACHINE}-pc-cygwin
847
	exit ;;
848 849 850
    *:MINGW64*:*)
	echo ${UNAME_MACHINE}-pc-mingw64
	exit ;;
851
    *:MINGW*:*)
Cullen Jennings's avatar
Cullen Jennings committed
852
	echo ${UNAME_MACHINE}-pc-mingw32
853
	exit ;;
854 855 856
    *:MSYS*:*)
	echo ${UNAME_MACHINE}-pc-msys
	exit ;;
857 858 859 860
    i*:windows32*:*)
	# uname -m includes "-pc" on this system.
	echo ${UNAME_MACHINE}-mingw32
	exit ;;
861 862
    i*:PW*:*)
	echo ${UNAME_MACHINE}-pc-pw32
863 864 865 866 867 868 869 870 871 872 873 874 875
	exit ;;
    *:Interix*:*)
	case ${UNAME_MACHINE} in
	    x86)
		echo i586-pc-interix${UNAME_RELEASE}
		exit ;;
	    authenticamd | genuineintel | EM64T)
		echo x86_64-unknown-interix${UNAME_RELEASE}
		exit ;;
	    IA64)
		echo ia64-unknown-interix${UNAME_RELEASE}
		exit ;;
	esac ;;
876 877
    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
	echo i${UNAME_MACHINE}-pc-mks
878 879 880 881
	exit ;;
    8664:Windows_NT:*)
	echo x86_64-pc-mks
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
882 883 884 885
    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?
886
	echo i586-pc-interix
887
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
888 889
    i*:UWIN*:*)
	echo ${UNAME_MACHINE}-pc-uwin
890 891 892 893
	exit ;;
    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
	echo x86_64-unknown-cygwin
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
894 895
    p*:CYGWIN*:*)
	echo powerpcle-unknown-cygwin
896
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
897 898
    prep*:SunOS:5.*:*)
	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
899
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
900
    *:GNU:*:*)
901
	# the GNU system
902
	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
903
	exit ;;
904 905
    *:GNU/*:*:*)
	# other systems with GNU libc and userland
906
	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
907
	exit ;;
908 909
    i*86:Minix:*:*)
	echo ${UNAME_MACHINE}-pc-minix
910
	exit ;;
911 912 913 914 915 916 917
    aarch64:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
	exit ;;
    aarch64_be:Linux:*:*)
	UNAME_MACHINE=aarch64_be
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
	exit ;;
918 919 920 921 922 923 924 925 926 927 928
    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 ;;
	  EV68*) UNAME_MACHINE=alphaev68 ;;
	esac
	objdump --private-headers /bin/sh | grep -q ld.so.1
929 930 931 932 933
	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
	exit ;;
    arc:Linux:*:* | arceb:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
934
	exit ;;
935
    arm*:Linux:*:*)
936 937 938 939
	eval $set_cc_for_build
	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
	    | grep -q __ARM_EABI__
	then
940
	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
941 942 943 944
	else
	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
		| grep -q __ARM_PCS_VFP
	    then
945
		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
946
	    else
947
		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
948 949 950 951
	    fi
	fi
	exit ;;
    avr32*:Linux:*:*)
952
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
953
	exit ;;
954
    cris:Linux:*:*)
955
	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
956
	exit ;;
957
    crisv32:Linux:*:*)
958 959 960 961
	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
	exit ;;
    e2k:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
962
	exit ;;
963
    frv:Linux:*:*)
964 965 966 967
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
	exit ;;
    hexagon:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
968 969
	exit ;;
    i*86:Linux:*:*)
970
	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
971
	exit ;;
972
    ia64:Linux:*:*)
973 974 975 976
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
	exit ;;
    k1om:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
977
	exit ;;
978
    m32r*:Linux:*:*)
979
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
980
	exit ;;
981
    m68*:Linux:*:*)
982
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
983 984
	exit ;;
    mips:Linux:*:* | mips64:Linux:*:*)
985 986 987
	eval $set_cc_for_build
	sed 's/^	//' << EOF >$dummy.c
	#undef CPU
988 989
	#undef ${UNAME_MACHINE}
	#undef ${UNAME_MACHINE}el
990
	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
991
	CPU=${UNAME_MACHINE}el
992 993
	#else
	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
994
	CPU=${UNAME_MACHINE}
995 996 997 998 999
	#else
	CPU=
	#endif
	#endif
EOF
1000
	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
1001
	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
1002
	;;
1003 1004 1005 1006 1007
    openrisc*:Linux:*:*)
	echo or1k-unknown-linux-${LIBC}
	exit ;;
    or32:Linux:*:* | or1k*:Linux:*:*)
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1008 1009
	exit ;;
    padre:Linux:*:*)
1010
	echo sparc-unknown-linux-${LIBC}
1011 1012
	exit ;;
    parisc64:Linux:*:* | hppa64:Linux:*:*)
1013
	echo hppa64-unknown-linux-${LIBC}
1014
	exit ;;
1015 1016 1017
    parisc:Linux:*:* | hppa:Linux:*:*)
	# Look for CPU level
	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1018 1019 1020
	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
	  *)    echo hppa-unknown-linux-${LIBC} ;;
1021
	esac
1022 1023
	exit ;;
    ppc64:Linux:*:*)
1024
	echo powerpc64-unknown-linux-${LIBC}
1025 1026
	exit ;;
    ppc:Linux:*:*)
1027 1028 1029 1030 1031 1032 1033
	echo powerpc-unknown-linux-${LIBC}
	exit ;;
    ppc64le:Linux:*:*)
	echo powerpc64le-unknown-linux-${LIBC}
	exit ;;
    ppcle:Linux:*:*)
	echo powerpcle-unknown-linux-${LIBC}
1034
	exit ;;
1035
    s390:Linux:*:* | s390x:Linux:*:*)
1036
	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
1037
	exit ;;
1038
    sh64*:Linux:*:*)
1039
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1040
	exit ;;
1041
    sh*:Linux:*:*)
1042
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1043
	exit ;;
1044
    sparc:Linux:*:* | sparc64:Linux:*:*)
1045
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1046 1047
	exit ;;
    tile*:Linux:*:*)
1048
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1049 1050
	exit ;;
    vax:Linux:*:*)
1051
	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
1052
	exit ;;
1053
    x86_64:Linux:*:*)
1054
	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
1055 1056
	exit ;;
    xtensa*:Linux:*:*)
1057
	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1058
	exit ;;
1059 1060 1061 1062
    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.
Cullen Jennings's avatar
Cullen Jennings committed
1063
	echo i386-sequent-sysv4
1064
	exit ;;
1065
    i*86:UNIX_SV:4.2MP:2.*)
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,
Cullen Jennings's avatar
Cullen Jennings committed
1069
	# I just have to hope.  -- rms.
1070
	# Use sysv4.2uw... so that sysv4* matches it.
Cullen Jennings's avatar
Cullen Jennings committed
1071
	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1072
	exit ;;
1073 1074 1075 1076
    i*86:OS/2:*:*)
	# If we were able to find `uname', then EMX Unix compatibility
	# is probably installed.
	echo ${UNAME_MACHINE}-pc-os2-emx
1077
	exit ;;
1078 1079
    i*86:XTS-300:*:STOP)
	echo ${UNAME_MACHINE}-unknown-stop
1080
	exit ;;
1081 1082
    i*86:atheos:*:*)
	echo ${UNAME_MACHINE}-unknown-atheos
1083 1084
	exit ;;
    i*86:syllable:*:*)
1085
	echo ${UNAME_MACHINE}-pc-syllable
1086 1087
	exit ;;
    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1088
	echo i386-unknown-lynxos${UNAME_RELEASE}
1089
	exit ;;
1090 1091
    i*86:*DOS:*:*)
	echo ${UNAME_MACHINE}-pc-msdosdjgpp
1092
	exit ;;
1093
    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
Cullen Jennings's avatar
Cullen Jennings committed
1094 1095 1096 1097 1098 1099
	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
	else
		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
	fi
1100 1101 1102
	exit ;;
    i*86:*:5:[678]*)
	# UnixWare 7.x, OpenUNIX and OpenServer 6.
1103 1104 1105 1106 1107 1108
	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}
1109
	exit ;;
1110
    i*86:*:3.2:*)
Cullen Jennings's avatar
Cullen Jennings committed
1111 1112 1113 1114
	if test -f /usr/options/cb.name; then
		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1115 1116 1117
		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) \
Cullen Jennings's avatar
Cullen Jennings committed
1118
			&& UNAME_MACHINE=i586
1119
		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
Cullen Jennings's avatar
Cullen Jennings committed
1120
			&& UNAME_MACHINE=i686
1121
		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
Cullen Jennings's avatar
Cullen Jennings committed
1122 1123 1124 1125 1126
			&& UNAME_MACHINE=i686
		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
	else
		echo ${UNAME_MACHINE}-pc-sysv32
	fi
1127
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1128 1129
    pc:*:*:*)
	# Left here for compatibility:
1130 1131 1132
	# uname -m prints for DJGPP always 'pc', but it prints nothing about
	# the processor, so we play safe by assuming i586.
	# Note: whatever this is, it MUST be the same as what config.sub
1133
	# prints for the "djgpp" host, or else GDB configure will decide that
1134 1135 1136
	# this is a cross-build.
	echo i586-pc-msdosdjgpp
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1137 1138
    Intel:Mach:3*:*)
	echo i386-pc-mach3
1139
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1140 1141
    paragon:*:*:*)
	echo i860-intel-osf1
1142
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1143 1144 1145 1146 1147 1148
    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
1149
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1150 1151 1152
    mini*:CTIX:SYS*5:*)
	# "miniframe"
	echo m68010-convergent-sysv
1153
	exit ;;
1154 1155
    mc68k:UNIX:SYSTEM5:3.51m)
	echo m68k-convergent-sysv
1156
	exit ;;
1157 1158
    M680?0:D-NIX:5.3:*)
	echo m68k-diab-dnix
1159
	exit ;;
1160
    M68*:*:R3V[5678]*:*)
1161
	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1162
    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)
Cullen Jennings's avatar
Cullen Jennings committed
1163 1164 1165 1166
	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 \
1167
	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
Cullen Jennings's avatar
Cullen Jennings committed
1168
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1169
	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
Cullen Jennings's avatar
Cullen Jennings committed
1170
    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182
	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
	  && { echo i486-ncr-sysv4; exit; } ;;
    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
	OS_REL='.3'
	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 \
	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1183
    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
Cullen Jennings's avatar
Cullen Jennings committed
1184
	echo m68k-unknown-lynxos${UNAME_RELEASE}
1185
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1186 1187
    mc68030:UNIX_System_V:4.*:*)
	echo m68k-atari-sysv4
1188
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1189 1190
    TSUNAMI:LynxOS:2.*:*)
	echo sparc-unknown-lynxos${UNAME_RELEASE}
1191
	exit ;;
1192
    rs6000:LynxOS:2.*:*)
Cullen Jennings's avatar
Cullen Jennings committed
1193
	echo rs6000-unknown-lynxos${UNAME_RELEASE}
1194 1195
	exit ;;
    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1196
	echo powerpc-unknown-lynxos${UNAME_RELEASE}
1197
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1198 1199
    SM[BE]S:UNIX_SV:*:*)
	echo mips-dde-sysv${UNAME_RELEASE}
1200
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1201 1202
    RM*:ReliantUNIX-*:*:*)
	echo mips-sni-sysv4
1203
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1204 1205
    RM*:SINIX-*:*:*)
	echo mips-sni-sysv4
1206
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1207 1208 1209 1210 1211 1212 1213
    *:SINIX-*:*:*)
	if uname -p 2>/dev/null >/dev/null ; then
		UNAME_MACHINE=`(uname -p) 2>/dev/null`
		echo ${UNAME_MACHINE}-sni-sysv4
	else
		echo ns32k-sni-sysv
	fi
1214 1215 1216 1217 1218
	exit ;;
    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
			# says <Richard.M.Bartel@ccMail.Census.GOV>
	echo i586-unisys-sysv4
	exit ;;
Cullen Jennings's avatar
Cullen Jennings committed
1219 1220