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

5
timestamp='2019-04-28'
Dries Kimpe's avatar
Dries Kimpe committed
6 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
Dries Kimpe's avatar
Dries Kimpe 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 <https://www.gnu.org/licenses/>.
Dries Kimpe's avatar
Dries Kimpe 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").
Dries Kimpe's avatar
Dries Kimpe committed
26
#
27
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
Dries Kimpe's avatar
Dries Kimpe committed
28
#
29 30 31 32 33
# You can get the latest version of this script from:
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
#
# Please send patches to <config-patches@gnu.org>.

Dries Kimpe's avatar
Dries Kimpe committed
34 35 36 37 38 39 40 41

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

usage="\
Usage: $0 [OPTION]

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

42
Options:
Dries Kimpe's avatar
Dries Kimpe 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.
53
Copyright 1992-2019 Free Software Foundation, Inc.
Dries Kimpe's avatar
Dries Kimpe 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.

97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
tmp=
# shellcheck disable=SC2172
trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15

set_cc_for_build() {
    : "${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
}
Dries Kimpe's avatar
Dries Kimpe committed
125 126 127

# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
128
if test -f /.attbin/uname ; then
Dries Kimpe's avatar
Dries Kimpe committed
129 130 131 132 133 134 135 136
	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

137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
case "$UNAME_SYSTEM" in
Linux|GNU|GNU/*)
	# If the system lacks a compiler, then just pick glibc.
	# We could probably try harder.
	LIBC=gnu

	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'`"

	# 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
	;;
esac

Dries Kimpe's avatar
Dries Kimpe committed
165 166
# Note: order is significant - the case branches are not exclusive.

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

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

668 669 670
		#define _HPUX_SOURCE
		#include <stdlib.h>
		#include <unistd.h>
Dries Kimpe's avatar
Dries Kimpe committed
671

672 673 674 675 676 677
		int main ()
		{
		#if defined(_SC_KERNEL_BITS)
		    long bits = sysconf(_SC_KERNEL_BITS);
		#endif
		    long cpu  = sysconf (_SC_CPU_VERSION);
Dries Kimpe's avatar
Dries Kimpe committed
678

679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697
		    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);
		}
Dries Kimpe's avatar
Dries Kimpe committed
698
EOF
699
		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
Dries Kimpe's avatar
Dries Kimpe committed
700 701 702
		    test -z "$HP_ARCH" && HP_ARCH=hppa
		fi ;;
	esac
703
	if [ "$HP_ARCH" = hppa2.0w ]
Dries Kimpe's avatar
Dries Kimpe committed
704
	then
705
	    set_cc_for_build
Dries Kimpe's avatar
Dries Kimpe committed
706 707 708 709 710 711 712 713 714 715

	    # 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

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

	#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

Dries Kimpe's avatar
Dries Kimpe committed
1020
	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
1021
	MIPS_ENDIAN=el
Dries Kimpe's avatar
Dries Kimpe committed
1022 1023
	#else
	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
1024
	MIPS_ENDIAN=
Dries Kimpe's avatar
Dries Kimpe committed
1025
	#else
1026
	MIPS_ENDIAN=
Dries Kimpe's avatar
Dries Kimpe committed
1027 1028 1029
	#endif
	#endif
EOF
1030 1031
	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; }
Dries Kimpe's avatar
Dries Kimpe committed
1032
	;;
1033 1034
    mips64el:Linux:*:*)
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Dries Kimpe's avatar
Dries Kimpe committed
1035
	exit ;;
1036 1037
    openrisc*:Linux:*:*)
	echo or1k-unknown-linux-"$LIBC"
Dries Kimpe's avatar
Dries Kimpe committed
1038
	exit ;;
1039 1040
    or32:Linux:*:* | or1k*:Linux:*:*)
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Dries Kimpe's avatar
Dries Kimpe committed
1041
	exit ;;
1042 1043 1044 1045 1046
    padre:Linux:*:*)
	echo sparc-unknown-linux-"$LIBC"
	exit ;;
    parisc64:Linux:*:* | hppa64:Linux:*:*)
	echo hppa64-unknown-linux-"$LIBC"
Dries Kimpe's avatar
Dries Kimpe committed
1047 1048 1049 1050
	exit ;;
    parisc:Linux:*:* | hppa:Linux:*:*)
	# Look for CPU level
	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1051 1052 1053
	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
	  *)    echo hppa-unknown-linux-"$LIBC" ;;
Dries Kimpe's avatar
Dries Kimpe committed
1054 1055
	esac
	exit ;;
1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069
    ppc64:Linux:*:*)
	echo powerpc64-unknown-linux-"$LIBC"
	exit ;;
    ppc:Linux:*:*)
	echo powerpc-unknown-linux-"$LIBC"
	exit ;;
    ppc64le:Linux:*:*)
	echo powerpc64le-unknown-linux-"$LIBC"
	exit ;;
    ppcle:Linux:*:*)
	echo powerpcle-unknown-linux-"$LIBC"
	exit ;;
    riscv32:Linux:*:* | riscv64:Linux:*:*)
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Dries Kimpe's avatar
Dries Kimpe committed
1070 1071
	exit ;;
    s390:Linux:*:* | s390x:Linux:*:*)
1072
	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
Dries Kimpe's avatar
Dries Kimpe committed
1073 1074
	exit ;;
    sh64*:Linux:*:*)
1075
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Dries Kimpe's avatar
Dries Kimpe committed
1076 1077
	exit ;;
    sh*:Linux:*:*)
1078
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Dries Kimpe's avatar
Dries Kimpe committed
1079 1080
	exit ;;
    sparc:Linux:*:* | sparc64:Linux:*:*)
1081 1082 1083 1084
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
	exit ;;
    tile*:Linux:*:*)
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
Dries Kimpe's avatar
Dries Kimpe committed
1085 1086
	exit ;;
    vax:L