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

Paul Eggert's avatar
Paul Eggert committed
5
timestamp='2020-07-12'
Paul Eggert's avatar
Paul Eggert committed
6 7 8 9 10 11 12 13 14 15 16 17

# 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 3 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
Paul Eggert's avatar
Paul Eggert committed
18
# along with this program; if not, see <https://www.gnu.org/licenses/>.
Paul Eggert's avatar
Paul Eggert committed
19 20 21 22 23 24 25 26 27 28 29
#
# 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.  This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
Paul Eggert's avatar
Paul Eggert committed
30
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
Paul Eggert's avatar
Paul Eggert committed
31 32 33 34 35 36 37 38 39 40 41
#
# Please send patches to <config-patches@gnu.org>.


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

usage="\
Usage: $0 [OPTION]

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

Paul Eggert's avatar
Paul Eggert committed
42
Options:
Paul Eggert's avatar
Paul Eggert committed
43 44 45 46 47 48 49 50 51 52
  -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.
Paul Eggert's avatar
Paul Eggert committed
53
Copyright 1992-2020 Free Software Foundation, Inc.
Paul Eggert's avatar
Paul Eggert committed
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

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 )
       echo "$timestamp" ; exit ;;
    --version | -v )
       echo "$version" ; exit ;;
    --help | --h* | -h )
       echo "$usage"; exit ;;
    -- )     # 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

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

Paul Eggert's avatar
Paul Eggert committed
97 98
tmp=
# shellcheck disable=SC2172
Paul Eggert's avatar
Paul Eggert committed
99
trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
Paul Eggert's avatar
Paul Eggert committed
100 101

set_cc_for_build() {
Paul Eggert's avatar
Paul Eggert committed
102 103
    # prevent multiple calls if $tmp is already set
    test "$tmp" && return 0
Paul Eggert's avatar
Paul Eggert committed
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
    : "${TMPDIR=/tmp}"
    # shellcheck disable=SC2039
    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
    dummy=$tmp/dummy
    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
	,,)    echo "int x;" > "$dummy.c"
	       for driver in cc gcc c89 c99 ; do
		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
		       CC_FOR_BUILD="$driver"
		       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 ;;
    esac
}
Paul Eggert's avatar
Paul Eggert committed
127 128 129

# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
Paul Eggert's avatar
Paul Eggert committed
130
if test -f /.attbin/uname ; then
Paul Eggert's avatar
Paul Eggert committed
131 132 133 134 135 136 137 138
	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
UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown

Paul Eggert's avatar
Paul Eggert committed
139
case "$UNAME_SYSTEM" in
Paul Eggert's avatar
Paul Eggert committed
140 141 142 143 144
Linux|GNU|GNU/*)
	# If the system lacks a compiler, then just pick glibc.
	# We could probably try harder.
	LIBC=gnu

Paul Eggert's avatar
Paul Eggert committed
145
	set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
146
	cat <<-EOF > "$dummy.c"
Paul Eggert's avatar
Paul Eggert committed
147 148 149 150 151 152 153 154 155
	#include <features.h>
	#if defined(__UCLIBC__)
	LIBC=uclibc
	#elif defined(__dietlibc__)
	LIBC=dietlibc
	#else
	LIBC=gnu
	#endif
	EOF
Paul Eggert's avatar
Paul Eggert committed
156 157 158 159 160 161 162 163
	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"

	# If ldd exists, use it to detect musl libc.
	if command -v ldd >/dev/null && \
		ldd --version 2>&1 | grep -q ^musl
	then
	    LIBC=musl
	fi
Paul Eggert's avatar
Paul Eggert committed
164 165 166 167 168
	;;
esac

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

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

		main()
			{
			if (!__power_pc())
				exit(1);
			puts("powerpc-ibm-aix3.2.5");
			exit(0);
			}
EOF
Paul Eggert's avatar
Paul Eggert committed
604
		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
Paul Eggert's avatar
Paul Eggert committed
605 606 607 608 609 610 611 612 613 614 615 616 617
		then
			echo "$SYSTEM_NAME"
		else
			echo rs6000-ibm-aix3.2.5
		fi
	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
	exit ;;
    *:AIX:*:[4567])
	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
Paul Eggert's avatar
Paul Eggert committed
618
	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
Paul Eggert's avatar
Paul Eggert committed
619 620 621 622 623 624 625 626
		IBM_ARCH=rs6000
	else
		IBM_ARCH=powerpc
	fi
	if [ -x /usr/bin/lslpp ] ; then
		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
	else
Paul Eggert's avatar
Paul Eggert committed
627
		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
628
	fi
Paul Eggert's avatar
Paul Eggert committed
629
	echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
Paul Eggert's avatar
Paul Eggert committed
630 631 632 633
	exit ;;
    *:AIX:*:*)
	echo rs6000-ibm-aix
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
634
    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
Paul Eggert's avatar
Paul Eggert committed
635 636 637
	echo romp-ibm-bsd4.4
	exit ;;
    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
Paul Eggert's avatar
Paul Eggert committed
638
	echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
Paul Eggert's avatar
Paul Eggert committed
639 640 641 642 643 644 645 646 647 648 649 650 651 652
	exit ;;                             # report: romp-ibm BSD 4.3
    *:BOSX:*:*)
	echo rs6000-bull-bosx
	exit ;;
    DPX/2?00:B.O.S.:*:*)
	echo m68k-bull-sysv3
	exit ;;
    9000/[34]??:4.3bsd:1.*:*)
	echo m68k-hp-bsd
	exit ;;
    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
	echo m68k-hp-bsd4.4
	exit ;;
    9000/[34678]??:HP-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
653 654
	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
	case "$UNAME_MACHINE" in
Paul Eggert's avatar
Paul Eggert committed
655 656
	    9000/31?)            HP_ARCH=m68000 ;;
	    9000/[34]??)         HP_ARCH=m68k ;;
Paul Eggert's avatar
Paul Eggert committed
657 658 659 660
	    9000/[678][0-9][0-9])
		if [ -x /usr/bin/getconf ]; then
		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
Paul Eggert's avatar
Paul Eggert committed
661
		    case "$sc_cpu_version" in
Paul Eggert's avatar
Paul Eggert committed
662 663 664
		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
		      532)                      # CPU_PA_RISC2_0
Paul Eggert's avatar
Paul Eggert committed
665
			case "$sc_kernel_bits" in
Paul Eggert's avatar
Paul Eggert committed
666 667 668 669 670 671
			  32) HP_ARCH=hppa2.0n ;;
			  64) HP_ARCH=hppa2.0w ;;
			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
			esac ;;
		    esac
		fi
Paul Eggert's avatar
Paul Eggert committed
672
		if [ "$HP_ARCH" = "" ]; then
Paul Eggert's avatar
Paul Eggert committed
673
		    set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
674
		    sed 's/^		//' << EOF > "$dummy.c"
Paul Eggert's avatar
Paul Eggert committed
675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706

		#define _HPUX_SOURCE
		#include <stdlib.h>
		#include <unistd.h>

		int main ()
		{
		#if defined(_SC_KERNEL_BITS)
		    long bits = sysconf(_SC_KERNEL_BITS);
		#endif
		    long cpu  = sysconf (_SC_CPU_VERSION);

		    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);
		}
EOF
Paul Eggert's avatar
Paul Eggert committed
707
		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
Paul Eggert's avatar
Paul Eggert committed
708 709 710
		    test -z "$HP_ARCH" && HP_ARCH=hppa
		fi ;;
	esac
Paul Eggert's avatar
Paul Eggert committed
711
	if [ "$HP_ARCH" = hppa2.0w ]
Paul Eggert's avatar
Paul Eggert committed
712
	then
Paul Eggert's avatar
Paul Eggert committed
713
	    set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731

	    # 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 -q __LP64__
	    then
		HP_ARCH=hppa2.0w
	    else
		HP_ARCH=hppa64
	    fi
	fi
Paul Eggert's avatar
Paul Eggert committed
732
	echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
Paul Eggert's avatar
Paul Eggert committed
733 734
	exit ;;
    ia64:HP-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
735 736
	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
	echo ia64-hp-hpux"$HPUX_REV"
Paul Eggert's avatar
Paul Eggert committed
737 738
	exit ;;
    3050*:HI-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
739
	set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
740
	sed 's/^	//' << EOF > "$dummy.c"
Paul Eggert's avatar
Paul Eggert committed
741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764
	#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
Paul Eggert's avatar
Paul Eggert committed
765
	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
Paul Eggert's avatar
Paul Eggert committed
766 767 768
		{ echo "$SYSTEM_NAME"; exit; }
	echo unknown-hitachi-hiuxwe2
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
769
    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
Paul Eggert's avatar
Paul Eggert committed
770 771 772 773 774 775 776 777
	echo hppa1.1-hp-bsd
	exit ;;
    9000/8??:4.3bsd:*:*)
	echo hppa1.0-hp-bsd
	exit ;;
    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
	echo hppa1.0-hp-mpeix
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
778
    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
Paul Eggert's avatar
Paul Eggert committed
779 780 781 782 783 784 785
	echo hppa1.1-hp-osf
	exit ;;
    hp8??:OSF1:*:*)
	echo hppa1.0-hp-osf
	exit ;;
    i*86:OSF1:*:*)
	if [ -x /usr/sbin/sysversion ] ; then
Paul Eggert's avatar
Paul Eggert committed
786
	    echo "$UNAME_MACHINE"-unknown-osf1mk
Paul Eggert's avatar
Paul Eggert committed
787
	else
Paul Eggert's avatar
Paul Eggert committed
788
	    echo "$UNAME_MACHINE"-unknown-osf1
Paul Eggert's avatar
Paul Eggert committed
789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812
	fi
	exit ;;
    parisc*:Lites*:*:*)
	echo hppa1.1-hp-lites
	exit ;;
    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
	echo c1-convex-bsd
	exit ;;
    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
	if getsysinfo -f scalar_acc
	then echo c32-convex-bsd
	else echo c2-convex-bsd
	fi
	exit ;;
    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
	echo c34-convex-bsd
	exit ;;
    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
	echo c38-convex-bsd
	exit ;;
    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
	echo c4-convex-bsd
	exit ;;
    CRAY*Y-MP:*:*:*)
Paul Eggert's avatar
Paul Eggert committed
813
	echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
Paul Eggert's avatar
Paul Eggert committed
814 815
	exit ;;
    CRAY*[A-Z]90:*:*:*)
Paul Eggert's avatar
Paul Eggert committed
816
	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
Paul Eggert's avatar
Paul Eggert committed
817 818 819 820 821
	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
	      -e 's/\.[^.]*$/.X/'
	exit ;;
    CRAY*TS:*:*:*)
Paul Eggert's avatar
Paul Eggert committed
822
	echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
Paul Eggert's avatar
Paul Eggert committed
823 824
	exit ;;
    CRAY*T3E:*:*:*)
Paul Eggert's avatar
Paul Eggert committed
825
	echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
Paul Eggert's avatar
Paul Eggert committed
826 827
	exit ;;
    CRAY*SV1:*:*:*)
Paul Eggert's avatar
Paul Eggert committed
828
	echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
Paul Eggert's avatar
Paul Eggert committed
829 830
	exit ;;
    *:UNICOS/mp:*:*)
Paul Eggert's avatar
Paul Eggert committed
831
	echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
Paul Eggert's avatar
Paul Eggert committed
832 833 834 835
	exit ;;
    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/\///'`
Paul Eggert's avatar
Paul Eggert committed
836
	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
Paul Eggert's avatar
Paul Eggert committed
837 838 839 840
	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
	exit ;;
    5000:UNIX_System_V:4.*:*)
	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
Paul Eggert's avatar
Paul Eggert committed
841
	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
Paul Eggert's avatar
Paul Eggert committed
842 843 844
	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
	exit ;;
    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
Paul Eggert's avatar
Paul Eggert committed
845
	echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
846 847
	exit ;;
    sparc*:BSD/OS:*:*)
Paul Eggert's avatar
Paul Eggert committed
848
	echo sparc-unknown-bsdi"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
849 850
	exit ;;
    *:BSD/OS:*:*)
Paul Eggert's avatar
Paul Eggert committed
851
	echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
852
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
853
    arm:FreeBSD:*:*)
Paul Eggert's avatar
Paul Eggert committed
854 855 856 857 858 859 860 861 862 863
	UNAME_PROCESSOR=`uname -p`
	set_cc_for_build
	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
	    | grep -q __ARM_PCS_VFP
	then
	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
	else
	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
	fi
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
864 865
    *:FreeBSD:*:*)
	UNAME_PROCESSOR=`/usr/bin/uname -p`
Paul Eggert's avatar
Paul Eggert committed
866
	case "$UNAME_PROCESSOR" in
Paul Eggert's avatar
Paul Eggert committed
867 868 869 870 871
	    amd64)
		UNAME_PROCESSOR=x86_64 ;;
	    i386)
		UNAME_PROCESSOR=i586 ;;
	esac
Paul Eggert's avatar
Paul Eggert committed
872
	echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
Paul Eggert's avatar
Paul Eggert committed
873 874
	exit ;;
    i*:CYGWIN*:*)
Paul Eggert's avatar
Paul Eggert committed
875
	echo "$UNAME_MACHINE"-pc-cygwin
Paul Eggert's avatar
Paul Eggert committed
876 877
	exit ;;
    *:MINGW64*:*)
Paul Eggert's avatar
Paul Eggert committed
878
	echo "$UNAME_MACHINE"-pc-mingw64
Paul Eggert's avatar
Paul Eggert committed
879 880
	exit ;;
    *:MINGW*:*)
Paul Eggert's avatar
Paul Eggert committed
881
	echo "$UNAME_MACHINE"-pc-mingw32
Paul Eggert's avatar
Paul Eggert committed
882 883
	exit ;;
    *:MSYS*:*)
Paul Eggert's avatar
Paul Eggert committed
884
	echo "$UNAME_MACHINE"-pc-msys
Paul Eggert's avatar
Paul Eggert committed
885 886
	exit ;;
    i*:PW*:*)
Paul Eggert's avatar
Paul Eggert committed
887
	echo "$UNAME_MACHINE"-pc-pw32
Paul Eggert's avatar
Paul Eggert committed
888 889
	exit ;;
    *:Interix*:*)
Paul Eggert's avatar
Paul Eggert committed
890
	case "$UNAME_MACHINE" in
Paul Eggert's avatar
Paul Eggert committed
891
	    x86)
Paul Eggert's avatar
Paul Eggert committed
892
		echo i586-pc-interix"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
893 894
		exit ;;
	    authenticamd | genuineintel | EM64T)
Paul Eggert's avatar
Paul Eggert committed
895
		echo x86_64-unknown-interix"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
896 897
		exit ;;
	    IA64)
Paul Eggert's avatar
Paul Eggert committed
898
		echo ia64-unknown-interix"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
899 900 901
		exit ;;
	esac ;;
    i*:UWIN*:*)
Paul Eggert's avatar
Paul Eggert committed
902
	echo "$UNAME_MACHINE"-pc-uwin
Paul Eggert's avatar
Paul Eggert committed
903 904
	exit ;;
    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
Paul Eggert's avatar
Paul Eggert committed
905
	echo x86_64-pc-cygwin
Paul Eggert's avatar
Paul Eggert committed
906 907
	exit ;;
    prep*:SunOS:5.*:*)
Paul Eggert's avatar
Paul Eggert committed
908
	echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
Paul Eggert's avatar
Paul Eggert committed
909 910 911
	exit ;;
    *:GNU:*:*)
	# the GNU system
Paul Eggert's avatar
Paul Eggert committed
912
	echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
Paul Eggert's avatar
Paul Eggert committed
913 914 915
	exit ;;
    *:GNU/*:*:*)
	# other systems with GNU libc and userland
Paul Eggert's avatar
Paul Eggert committed
916
	echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
Paul Eggert's avatar
Paul Eggert committed
917
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
918 919
    *:Minix:*:*)
	echo "$UNAME_MACHINE"-unknown-minix
Paul Eggert's avatar
Paul Eggert committed
920 921
	exit ;;
    aarch64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
922
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
923 924 925
	exit ;;
    aarch64_be:Linux:*:*)
	UNAME_MACHINE=aarch64_be
Paul Eggert's avatar
Paul Eggert committed
926
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
927 928
	exit ;;
    alpha:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
929
	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
Paul Eggert's avatar
Paul Eggert committed
930 931 932 933 934 935 936 937 938 939
	  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
	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
Paul Eggert's avatar
Paul Eggert committed
940
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
941 942
	exit ;;
    arc:Linux:*:* | arceb:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
943
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
944 945
	exit ;;
    arm*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
946
	set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
947 948 949
	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
	    | grep -q __ARM_EABI__
	then
Paul Eggert's avatar
Paul Eggert committed
950
	    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
951 952 953 954
	else
	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
		| grep -q __ARM_PCS_VFP
	    then
Paul Eggert's avatar
Paul Eggert committed
955
		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
Paul Eggert's avatar
Paul Eggert committed
956
	    else
Paul Eggert's avatar
Paul Eggert committed
957
		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
Paul Eggert's avatar
Paul Eggert committed
958 959 960 961
	    fi
	fi
	exit ;;
    avr32*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
962
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
963 964
	exit ;;
    cris:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
965
	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
966 967
	exit ;;
    crisv32:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
968
	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
969 970
	exit ;;
    e2k:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
971
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
972 973
	exit ;;
    frv:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
974
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
975 976
	exit ;;
    hexagon:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
977
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
978 979
	exit ;;
    i*86:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
980
	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
981 982
	exit ;;
    ia64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
983
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
984 985
	exit ;;
    k1om:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
986
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
987 988
	exit ;;
    m32r*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
989
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
990 991
	exit ;;
    m68*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
992
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
993 994
	exit ;;
    mips:Linux:*:* | mips64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
995
	set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
996 997
	IS_GLIBC=0
	test x"${LIBC}" = xgnu && IS_GLIBC=1
Paul Eggert's avatar
Paul Eggert committed
998
	sed 's/^	//' << EOF > "$dummy.c"
Paul Eggert's avatar
Paul Eggert committed
999
	#undef CPU
Paul Eggert's avatar
Paul Eggert committed
1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027
	#undef mips
	#undef mipsel
	#undef mips64
	#undef mips64el
	#if ${IS_GLIBC} && defined(_ABI64)
	LIBCABI=gnuabi64
	#else
	#if ${IS_GLIBC} && defined(_ABIN32)
	LIBCABI=gnuabin32
	#else
	LIBCABI=${LIBC}
	#endif
	#endif

	#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
	CPU=mipsisa64r6
	#else
	#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
	CPU=mipsisa32r6
	#else
	#if defined(__mips64)
	CPU=mips64
	#else
	CPU=mips
	#endif
	#endif
	#endif

Paul Eggert's avatar
Paul Eggert committed
1028
	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
Paul Eggert's avatar
Paul Eggert committed
1029
	MIPS_ENDIAN=el
Paul Eggert's avatar
Paul Eggert committed
1030 1031
	#else
	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
Paul Eggert's avatar
Paul Eggert committed
1032
	MIPS_ENDIAN=
Paul Eggert's avatar
Paul Eggert committed
1033
	#else
Paul Eggert's avatar
Paul Eggert committed
1034
	MIPS_ENDIAN=
Paul Eggert's avatar
Paul Eggert committed
1035 1036 1037
	#endif
	#endif
EOF
Paul Eggert's avatar
Paul Eggert committed
1038 1039
	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
Paul Eggert's avatar
Paul Eggert committed
1040 1041
	;;
    mips64el:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1042
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1043 1044
	exit ;;
    openrisc*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1045
	echo or1k-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1046 1047
	exit ;;
    or32:Linux:*:* | or1k*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1048
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1049 1050
	exit ;;
    padre:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1051
	echo sparc-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1052 1053
	exit ;;
    parisc64:Linux:*:* | hppa64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1054
	echo hppa64-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1055 1056 1057 1058
	exit ;;
    parisc:Linux:*:* | hppa:Linux:*:*)
	# Look for CPU level
	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
Paul Eggert's avatar
Paul Eggert committed
1059 1060 1061
	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
	  *)    echo hppa-unknown-linux-"$LIBC" ;;
Paul Eggert's avatar
Paul Eggert committed
1062 1063 1064
	esac
	exit ;;
    ppc64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1065
	echo powerpc64-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1066 1067
	exit ;;
    ppc:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1068
	echo powerpc-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1069 1070
	exit ;;
    ppc64le:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1071
	echo powerpc64le-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1072 1073
	exit ;;
    ppcle:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1074
	echo powerpcle-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1075 1076
	exit ;;
    riscv32:Linux:*:* | riscv64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1077
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1078 1079
	exit ;;
    s390:Linux:*:* | s390x:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1080
	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1081 1082
	exit ;;
    sh64*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1083
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1084 1085
	exit ;;
    sh*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1086
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1087 1088
	exit ;;
    sparc:Linux:*:* | sparc64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1089
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1090 1091
	exit ;;
    tile*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1092
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1093 1094
	exit ;;
    vax:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1095
	echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1096 1097
	exit ;;
    x86_64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108
	set_cc_for_build
	LIBCABI=$LIBC
	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
	    if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
		grep IS_X32 >/dev/null
	    then
		LIBCABI="$LIBC"x32
	    fi
	fi
	echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
Paul Eggert's avatar
Paul Eggert committed
1109 1110
	exit ;;
    xtensa*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1111
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Paul Eggert's avatar
Paul Eggert committed
1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124
	exit ;;
    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.
	echo i386-sequent-sysv4
	exit ;;
    i*86:UNIX_SV:4.2MP:2.*)
	# 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.
Paul Eggert's avatar
Paul Eggert committed
1125
	echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
Paul Eggert's avatar
Paul Eggert committed
1126 1127 1128 1129
	exit ;;
    i*86:OS/2:*:*)
	# If we were able to find `uname', then EMX Unix compatibility
	# is probably installed.
Paul Eggert's avatar
Paul Eggert committed
1130
	echo "$UNAME_MACHINE"-pc-os2-emx
Paul Eggert's avatar
Paul Eggert committed
1131 1132
	exit ;;
    i*86:XTS-300:*:STOP)
Paul Eggert's avatar
Paul Eggert committed
1133
	echo "$UNAME_MACHINE"-unknown-stop
Paul Eggert's avatar
Paul Eggert committed
1134 1135
	exit ;;
    i*86:atheos:*:*)
Paul Eggert's avatar
Paul Eggert committed
1136
	echo "$UNAME_MACHINE"-unknown-atheos
Paul Eggert's avatar
Paul Eggert committed
1137 1138
	exit ;;
    i*86:syllable:*:*)
Paul Eggert's avatar
Paul Eggert committed
1139
	echo "$UNAME_MACHINE"-pc-syllable
Paul Eggert's avatar
Paul Eggert committed
1140 1141
	exit ;;
    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
Paul Eggert's avatar
Paul Eggert committed
1142
	echo i386-unknown-lynxos"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1143 1144
	exit ;;
    i*86:*DOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
1145
	echo "$UNAME_MACHINE"-pc-msdosdjgpp
Paul Eggert's avatar
Paul Eggert committed
1146
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
1147
    i*86:*:4.*:*)
Paul Eggert's avatar
Paul Eggert committed
1148
	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
Paul Eggert's avatar
Paul Eggert committed
1149
	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
Paul Eggert's avatar
Paul Eggert committed
1150
		echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
Paul Eggert's avatar
Paul Eggert committed
1151
	else
Paul Eggert's avatar
Paul Eggert committed
1152
		echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
Paul Eggert's avatar
Paul Eggert committed
1153 1154 1155 1156 1157 1158 1159 1160 1161
	fi
	exit ;;
    i*86:*:5:[678]*)
	# UnixWare 7.x, OpenUNIX and OpenServer 6.
	case `/bin/uname -X | grep "^Machine"` in
	    *486*)	     UNAME_MACHINE=i486 ;;
	    *Pentium)	     UNAME_MACHINE=i586 ;;
	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
	esac
Paul Eggert's avatar
Paul Eggert committed
1162
	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
Paul Eggert's avatar
Paul Eggert committed
1163 1164 1165 1166
	exit ;;
    i*86:*:3.2:*)
	if test -f /usr/options/cb.name; then
		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
Paul Eggert's avatar
Paul Eggert committed
1167
		echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
Paul Eggert's avatar
Paul Eggert committed
1168 1169 1170 1171 1172 1173 1174 1175 1176
	elif /bin/uname -X 2>/dev/null >/dev/null ; then
		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) \
			&& UNAME_MACHINE=i586
		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
			&& UNAME_MACHINE=i686
		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
			&& UNAME_MACHINE=i686
Paul Eggert's avatar
Paul Eggert committed
1177
		echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
Paul Eggert's avatar
Paul Eggert committed
1178
	else
Paul Eggert's avatar
Paul Eggert committed
1179
		echo "$UNAME_MACHINE"-pc-sysv32
Paul Eggert's avatar
Paul Eggert committed
1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198
	fi
	exit ;;
    pc:*:*:*)
	# Left here for compatibility:
	# 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
	# prints for the "djgpp" host, or else GDB configure will decide that
	# this is a cross-build.
	echo i586-pc-msdosdjgpp
	exit ;;
    Intel:Mach:3*:*)
	echo i386-pc-mach3
	exit ;;
    paragon:*:*:*)
	echo i860-intel-osf1
	exit ;;
    i860:*:4.*:*) # i860-SVR4
	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
Paul Eggert's avatar
Paul Eggert committed
1199
	  echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
Paul Eggert's avatar
Paul Eggert committed
1200
	else # Add other i860-SVR4 vendors below as they are discovered.
Paul Eggert's avatar
Paul Eggert committed
1201
	  echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
Paul Eggert's avatar
Paul Eggert committed
1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220
	fi
	exit ;;
    mini*:CTIX:SYS*5:*)
	# "miniframe"
	echo m68010-convergent-sysv
	exit ;;
    mc68k:UNIX:SYSTEM5:3.51m)
	echo m68k-convergent-sysv
	exit ;;
    M680?0:D-NIX:5.3:*)
	echo m68k-diab-dnix
	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)
	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 \
Paul Eggert's avatar
Paul Eggert committed
1221
	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
Paul Eggert's avatar
Paul Eggert committed
1222
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
Paul Eggert's avatar
Paul Eggert committed
1223
	  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
Paul Eggert's avatar
Paul Eggert committed
1224 1225 1226 1227 1228 1229 1230 1231
    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
	/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 \
Paul Eggert's avatar
Paul Eggert committed
1232
	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
Paul Eggert's avatar
Paul Eggert committed
1233
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
Paul Eggert's avatar
Paul Eggert committed
1234
	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
Paul Eggert's avatar
Paul Eggert committed
1235
	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
Paul Eggert's avatar
Paul Eggert committed
1236
	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
Paul Eggert's avatar
Paul Eggert committed
1237
    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
Paul Eggert's avatar
Paul Eggert committed
1238
	echo m68k-unknown-lynxos"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1239 1240 1241 1242 1243
	exit ;;
    mc68030:UNIX_System_V:4.*:*)
	echo m68k-atari-sysv4
	exit ;;
    TSUNAMI:LynxOS:2.*:*)
Paul Eggert's avatar
Paul Eggert committed
1244
	echo sparc-unknown-lynxos"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1245 1246
	exit ;;
    rs6000:LynxOS:2.*:*)
Paul Eggert's avatar
Paul Eggert committed
1247
	echo rs6000-unknown-lynxos"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1248 1249
	exit ;;
    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
Paul Eggert's avatar
Paul Eggert committed
1250
	echo powerpc-unknown-lynxos"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1251 1252
	exit ;;
    SM[BE]S:UNIX_SV:*:*)
Paul Eggert's avatar
Paul Eggert committed
1253
	echo mips-dde-sysv"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1254 1255 1256 1257 1258 1259 1260 1261 1262 1263
	exit ;;
    RM*:ReliantUNIX-*:*:*)
	echo mips-sni-sysv4
	exit ;;
    RM*:SINIX-*:*:*)
	echo mips-sni-sysv4
	exit ;;
    *:SINIX-*:*:*)
	if uname -p 2>/dev/null >/dev/null ; then
		UNAME_MACHINE=`(uname -p) 2>/dev/null`
Paul Eggert's avatar
Paul Eggert committed
1264
		echo "$UNAME_MACHINE"-sni-sysv4
Paul Eggert's avatar
Paul Eggert committed
1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283
	else
		echo ns32k-sni-sysv
	fi
	exit ;;
    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
			# says <Richard.M.Bartel@ccMail.Census.GOV>
	echo i586-unisys-sysv4
	exit ;;
    *:UNIX_System_V:4*:FTX*)
	# From Gerald Hewes <hewes@openmarket.com>.
	# How about differentiating between stratus architectures? -djm
	echo hppa1.1-stratus-sysv4
	exit ;;
    *:*:*:FTX*)
	# From seanf@swdc.stratus.com.
	echo i860-stratus-sysv4
	exit ;;
    i*86:VOS:*:*)
	# From Paul.Green@stratus.com.
Paul Eggert's avatar
Paul Eggert committed
1284
	echo "$UNAME_MACHINE"-stratus-vos
Paul Eggert's avatar
Paul Eggert committed
1285 1286 1287 1288 1289 1290
	exit ;;
    *:VOS:*:*)
	# From Paul.Green@stratus.com.
	echo hppa1.1-stratus-vos
	exit ;;
    mc68*:A/UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1291
	echo m68k-apple-aux"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1292 1293 1294 1295 1296 1297
	exit ;;
    news*:NEWS-OS:6*:*)
	echo mips-sony-newsos6
	exit ;;
    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
	if [ -d /usr/nec ]; then
Paul Eggert's avatar
Paul Eggert committed
1298
		echo mips-nec-sysv"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1299
	else
Paul Eggert's avatar
Paul Eggert committed
1300
		echo mips-unknown-sysv"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318
	fi
	exit ;;
    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
	echo powerpc-be-beos
	exit ;;
    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
	echo powerpc-apple-beos
	exit ;;
    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
	echo i586-pc-beos
	exit ;;
    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
	echo i586-pc-haiku
	exit ;;
    x86_64:Haiku:*:*)
	echo x86_64-unknown-haiku
	exit ;;
    SX-4:SUPER-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1319
	echo sx4-nec-superux"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1320 1321
	exit ;;
    SX-5:SUPER-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1322
	echo sx5-nec-superux"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
1323 1324
	exit ;;
    SX-6:SUPER-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1325
	echo sx6-nec-superux"$UNAME_RELEASE"