Home | History | Annotate | Download | only in autoconf
      1 #! /bin/sh
      2 # Attempt to guess a canonical system name.
      3 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
      4 #   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
      5 
      6 timestamp='2003-02-22'
      7 
      8 # This file is free software; you can redistribute it and/or modify it
      9 # under the terms of the GNU General Public License as published by
     10 # the Free Software Foundation; either version 2 of the License, or
     11 # (at your option) any later version.
     12 #
     13 # This program is distributed in the hope that it will be useful, but
     14 # WITHOUT ANY WARRANTY; without even the implied warranty of
     15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     16 # General Public License for more details.
     17 #
     18 # You should have received a copy of the GNU General Public License
     19 # along with this program; if not, write to the Free Software
     20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     21 #
     22 # As a special exception to the GNU General Public License, if you
     23 # distribute this file as part of a program that contains a
     24 # configuration script generated by Autoconf, you may include it under
     25 # the same distribution terms that you use for the rest of that program.
     26 
     27 # Originally written by Per Bothner <per (at] bothner.com>.
     28 # Please send patches to <config-patches (at] gnu.org>.  Submit a context
     29 # diff and a properly formatted ChangeLog entry.
     30 #
     31 # This script attempts to guess a canonical system name similar to
     32 # config.sub.  If it succeeds, it prints the system name on stdout, and
     33 # exits with 0.  Otherwise, it exits with 1.
     34 #
     35 # The plan is that this can be called by configure scripts if you
     36 # don't specify an explicit build system type.
     37 
     38 me=`echo "$0" | sed -e 's,.*/,,'`
     39 
     40 usage="\
     41 Usage: $0 [OPTION]
     42 
     43 Output the configuration name of the system \`$me' is run on.
     44 
     45 Operation modes:
     46   -h, --help         print this help, then exit
     47   -t, --time-stamp   print date of last modification, then exit
     48   -v, --version      print version number, then exit
     49 
     50 Report bugs and patches to <config-patches (at] gnu.org>."
     51 
     52 version="\
     53 GNU config.guess ($timestamp)
     54 
     55 Originally written by Per Bothner.
     56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
     57 Free Software Foundation, Inc.
     58 
     59 This is free software; see the source for copying conditions.  There is NO
     60 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
     61 
     62 help="
     63 Try \`$me --help' for more information."
     64 
     65 # Parse command line
     66 while test $# -gt 0 ; do
     67   case $1 in
     68     --time-stamp | --time* | -t )
     69        echo "$timestamp" ; exit 0 ;;
     70     --version | -v )
     71        echo "$version" ; exit 0 ;;
     72     --help | --h* | -h )
     73        echo "$usage"; exit 0 ;;
     74     -- )     # Stop option processing
     75        shift; break ;;
     76     - )	# Use stdin as input.
     77        break ;;
     78     -* )
     79        echo "$me: invalid option $1$help" >&2
     80        exit 1 ;;
     81     * )
     82        break ;;
     83   esac
     84 done
     85 
     86 if test $# != 0; then
     87   echo "$me: too many arguments$help" >&2
     88   exit 1
     89 fi
     90 
     91 trap 'exit 1' 1 2 15
     92 
     93 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
     94 # compiler to aid in system detection is discouraged as it requires
     95 # temporary files to be created and, as you can see below, it is a
     96 # headache to deal with in a portable fashion.
     97 
     98 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
     99 # use `HOST_CC' if defined, but it is deprecated.
    100 
    101 # Portable tmp directory creation inspired by the Autoconf team.
    102 
    103 set_cc_for_build='
    104 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
    105 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
    106 : ${TMPDIR=/tmp} ;
    107  { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
    108  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
    109  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
    110 dummy=$tmp/dummy ;
    111 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
    112 case $CC_FOR_BUILD,$HOST_CC,$CC in
    113  ,,)    echo "int x;" > $dummy.c ;
    114 	for c in cc gcc c89 c99 ; do
    115 	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
    116 	     CC_FOR_BUILD="$c"; break ;
    117 	  fi ;
    118 	done ;
    119 	if test x"$CC_FOR_BUILD" = x ; then
    120 	  CC_FOR_BUILD=no_compiler_found ;
    121 	fi
    122 	;;
    123  ,,*)   CC_FOR_BUILD=$CC ;;
    124  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
    125 esac ;'
    126 
    127 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
    128 # (ghazi (at] noc.rutgers.edu 1994-08-24)
    129 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
    130 	PATH=$PATH:/.attbin ; export PATH
    131 fi
    132 
    133 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
    134 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
    135 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
    136 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
    137 
    138 # Note: order is significant - the case branches are not exclusive.
    139 
    140 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
    141     *:NetBSD:*:*)
    142 	# NetBSD (nbsd) targets should (where applicable) match one or
    143 	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
    144 	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
    145 	# switched to ELF, *-*-netbsd* would select the old
    146 	# object file format.  This provides both forward
    147 	# compatibility and a consistent mechanism for selecting the
    148 	# object file format.
    149 	#
    150 	# Note: NetBSD doesn't particularly care about the vendor
    151 	# portion of the name.  We always set it to "unknown".
    152 	sysctl="sysctl -n hw.machine_arch"
    153 	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
    154 	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
    155 	case "${UNAME_MACHINE_ARCH}" in
    156 	    armeb) machine=armeb-unknown ;;
    157 	    arm*) machine=arm-unknown ;;
    158 	    sh3el) machine=shl-unknown ;;
    159 	    sh3eb) machine=sh-unknown ;;
    160 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
    161 	esac
    162 	# The Operating System including object format, if it has switched
    163 	# to ELF recently, or will in the future.
    164 	case "${UNAME_MACHINE_ARCH}" in
    165 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
    166 		eval $set_cc_for_build
    167 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
    168 			| grep __ELF__ >/dev/null
    169 		then
    170 		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
    171 		    # Return netbsd for either.  FIX?
    172 		    os=netbsd
    173 		else
    174 		    os=netbsdelf
    175 		fi
    176 		;;
    177 	    *)
    178 	        os=netbsd
    179 		;;
    180 	esac
    181 	# The OS release
    182 	# Debian GNU/NetBSD machines have a different userland, and
    183 	# thus, need a distinct triplet. However, they do not need
    184 	# kernel version information, so it can be replaced with a
    185 	# suitable tag, in the style of linux-gnu.
    186 	case "${UNAME_VERSION}" in
    187 	    Debian*)
    188 		release='-gnu'
    189 		;;
    190 	    *)
    191 		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
    192 		;;
    193 	esac
    194 	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
    195 	# contains redundant information, the shorter form:
    196 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
    197 	echo "${machine}-${os}${release}"
    198 	exit 0 ;;
    199     amiga:OpenBSD:*:*)
    200 	echo m68k-unknown-openbsd${UNAME_RELEASE}
    201 	exit 0 ;;
    202     arc:OpenBSD:*:*)
    203 	echo mipsel-unknown-openbsd${UNAME_RELEASE}
    204 	exit 0 ;;
    205     hp300:OpenBSD:*:*)
    206 	echo m68k-unknown-openbsd${UNAME_RELEASE}
    207 	exit 0 ;;
    208     mac68k:OpenBSD:*:*)
    209 	echo m68k-unknown-openbsd${UNAME_RELEASE}
    210 	exit 0 ;;
    211     macppc:OpenBSD:*:*)
    212 	echo powerpc-unknown-openbsd${UNAME_RELEASE}
    213 	exit 0 ;;
    214     mvme68k:OpenBSD:*:*)
    215 	echo m68k-unknown-openbsd${UNAME_RELEASE}
    216 	exit 0 ;;
    217     mvme88k:OpenBSD:*:*)
    218 	echo m88k-unknown-openbsd${UNAME_RELEASE}
    219 	exit 0 ;;
    220     mvmeppc:OpenBSD:*:*)
    221 	echo powerpc-unknown-openbsd${UNAME_RELEASE}
    222 	exit 0 ;;
    223     pmax:OpenBSD:*:*)
    224 	echo mipsel-unknown-openbsd${UNAME_RELEASE}
    225 	exit 0 ;;
    226     sgi:OpenBSD:*:*)
    227 	echo mipseb-unknown-openbsd${UNAME_RELEASE}
    228 	exit 0 ;;
    229     sun3:OpenBSD:*:*)
    230 	echo m68k-unknown-openbsd${UNAME_RELEASE}
    231 	exit 0 ;;
    232     wgrisc:OpenBSD:*:*)
    233 	echo mipsel-unknown-openbsd${UNAME_RELEASE}
    234 	exit 0 ;;
    235     *:OpenBSD:*:*)
    236 	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
    237 	exit 0 ;;
    238     alpha:OSF1:*:*)
    239 	if test $UNAME_RELEASE = "V4.0"; then
    240 		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
    241 	fi
    242 	# According to Compaq, /usr/sbin/psrinfo has been available on
    243 	# OSF/1 and Tru64 systems produced since 1995.  I hope that
    244 	# covers most systems running today.  This code pipes the CPU
    245 	# types through head -n 1, so we only detect the type of CPU 0.
    246 	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
    247 	case "$ALPHA_CPU_TYPE" in
    248 	    "EV4 (21064)")
    249 		UNAME_MACHINE="alpha" ;;
    250 	    "EV4.5 (21064)")
    251 		UNAME_MACHINE="alpha" ;;
    252 	    "LCA4 (21066/21068)")
    253 		UNAME_MACHINE="alpha" ;;
    254 	    "EV5 (21164)")
    255 		UNAME_MACHINE="alphaev5" ;;
    256 	    "EV5.6 (21164A)")
    257 		UNAME_MACHINE="alphaev56" ;;
    258 	    "EV5.6 (21164PC)")
    259 		UNAME_MACHINE="alphapca56" ;;
    260 	    "EV5.7 (21164PC)")
    261 		UNAME_MACHINE="alphapca57" ;;
    262 	    "EV6 (21264)")
    263 		UNAME_MACHINE="alphaev6" ;;
    264 	    "EV6.7 (21264A)")
    265 		UNAME_MACHINE="alphaev67" ;;
    266 	    "EV6.8CB (21264C)")
    267 		UNAME_MACHINE="alphaev68" ;;
    268 	    "EV6.8AL (21264B)")
    269 		UNAME_MACHINE="alphaev68" ;;
    270 	    "EV6.8CX (21264D)")
    271 		UNAME_MACHINE="alphaev68" ;;
    272 	    "EV6.9A (21264/EV69A)")
    273 		UNAME_MACHINE="alphaev69" ;;
    274 	    "EV7 (21364)")
    275 		UNAME_MACHINE="alphaev7" ;;
    276 	    "EV7.9 (21364A)")
    277 		UNAME_MACHINE="alphaev79" ;;
    278 	esac
    279 	# A Vn.n version is a released version.
    280 	# A Tn.n version is a released field test version.
    281 	# A Xn.n version is an unreleased experimental baselevel.
    282 	# 1.2 uses "1.2" for uname -r.
    283 	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
    284 	exit 0 ;;
    285     Alpha\ *:Windows_NT*:*)
    286 	# How do we know it's Interix rather than the generic POSIX subsystem?
    287 	# Should we change UNAME_MACHINE based on the output of uname instead
    288 	# of the specific Alpha model?
    289 	echo alpha-pc-interix
    290 	exit 0 ;;
    291     21064:Windows_NT:50:3)
    292 	echo alpha-dec-winnt3.5
    293 	exit 0 ;;
    294     Amiga*:UNIX_System_V:4.0:*)
    295 	echo m68k-unknown-sysv4
    296 	exit 0;;
    297     *:[Aa]miga[Oo][Ss]:*:*)
    298 	echo ${UNAME_MACHINE}-unknown-amigaos
    299 	exit 0 ;;
    300     *:[Mm]orph[Oo][Ss]:*:*)
    301 	echo ${UNAME_MACHINE}-unknown-morphos
    302 	exit 0 ;;
    303     *:OS/390:*:*)
    304 	echo i370-ibm-openedition
    305 	exit 0 ;;
    306     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
    307 	echo arm-acorn-riscix${UNAME_RELEASE}
    308 	exit 0;;
    309     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
    310 	echo hppa1.1-hitachi-hiuxmpp
    311 	exit 0;;
    312     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
    313 	# akee (at] wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
    314 	if test "`(/bin/universe) 2>/dev/null`" = att ; then
    315 		echo pyramid-pyramid-sysv3
    316 	else
    317 		echo pyramid-pyramid-bsd
    318 	fi
    319 	exit 0 ;;
    320     NILE*:*:*:dcosx)
    321 	echo pyramid-pyramid-svr4
    322 	exit 0 ;;
    323     DRS?6000:UNIX_SV:4.2*:7*)
    324 	case `/usr/bin/uname -p` in
    325 	    sparc) echo sparc-icl-nx7 && exit 0 ;;
    326 	esac ;;
    327     sun4H:SunOS:5.*:*)
    328 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    329 	exit 0 ;;
    330     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
    331 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    332 	exit 0 ;;
    333     i86pc:SunOS:5.*:*)
    334 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    335 	exit 0 ;;
    336     sun4*:SunOS:6*:*)
    337 	# According to config.sub, this is the proper way to canonicalize
    338 	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
    339 	# it's likely to be more like Solaris than SunOS4.
    340 	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    341 	exit 0 ;;
    342     sun4*:SunOS:*:*)
    343 	case "`/usr/bin/arch -k`" in
    344 	    Series*|S4*)
    345 		UNAME_RELEASE=`uname -v`
    346 		;;
    347 	esac
    348 	# Japanese Language versions have a version number like `4.1.3-JL'.
    349 	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
    350 	exit 0 ;;
    351     sun3*:SunOS:*:*)
    352 	echo m68k-sun-sunos${UNAME_RELEASE}
    353 	exit 0 ;;
    354     sun*:*:4.2BSD:*)
    355 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
    356 	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
    357 	case "`/bin/arch`" in
    358 	    sun3)
    359 		echo m68k-sun-sunos${UNAME_RELEASE}
    360 		;;
    361 	    sun4)
    362 		echo sparc-sun-sunos${UNAME_RELEASE}
    363 		;;
    364 	esac
    365 	exit 0 ;;
    366     aushp:SunOS:*:*)
    367 	echo sparc-auspex-sunos${UNAME_RELEASE}
    368 	exit 0 ;;
    369     # The situation for MiNT is a little confusing.  The machine name
    370     # can be virtually everything (everything which is not
    371     # "atarist" or "atariste" at least should have a processor
    372     # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
    373     # to the lowercase version "mint" (or "freemint").  Finally
    374     # the system name "TOS" denotes a system which is actually not
    375     # MiNT.  But MiNT is downward compatible to TOS, so this should
    376     # be no problem.
    377     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
    378         echo m68k-atari-mint${UNAME_RELEASE}
    379 	exit 0 ;;
    380     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
    381 	echo m68k-atari-mint${UNAME_RELEASE}
    382         exit 0 ;;
    383     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
    384         echo m68k-atari-mint${UNAME_RELEASE}
    385 	exit 0 ;;
    386     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
    387         echo m68k-milan-mint${UNAME_RELEASE}
    388         exit 0 ;;
    389     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
    390         echo m68k-hades-mint${UNAME_RELEASE}
    391         exit 0 ;;
    392     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
    393         echo m68k-unknown-mint${UNAME_RELEASE}
    394         exit 0 ;;
    395     powerpc:machten:*:*)
    396 	echo powerpc-apple-machten${UNAME_RELEASE}
    397 	exit 0 ;;
    398     RISC*:Mach:*:*)
    399 	echo mips-dec-mach_bsd4.3
    400 	exit 0 ;;
    401     RISC*:ULTRIX:*:*)
    402 	echo mips-dec-ultrix${UNAME_RELEASE}
    403 	exit 0 ;;
    404     VAX*:ULTRIX*:*:*)
    405 	echo vax-dec-ultrix${UNAME_RELEASE}
    406 	exit 0 ;;
    407     2020:CLIX:*:* | 2430:CLIX:*:*)
    408 	echo clipper-intergraph-clix${UNAME_RELEASE}
    409 	exit 0 ;;
    410     mips:*:*:UMIPS | mips:*:*:RISCos)
    411 	eval $set_cc_for_build
    412 	sed 's/^	//' << EOF >$dummy.c
    413 #ifdef __cplusplus
    414 #include <stdio.h>  /* for printf() prototype */
    415 	int main (int argc, char *argv[]) {
    416 #else
    417 	int main (argc, argv) int argc; char *argv[]; {
    418 #endif
    419 	#if defined (host_mips) && defined (MIPSEB)
    420 	#if defined (SYSTYPE_SYSV)
    421 	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
    422 	#endif
    423 	#if defined (SYSTYPE_SVR4)
    424 	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
    425 	#endif
    426 	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
    427 	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
    428 	#endif
    429 	#endif
    430 	  exit (-1);
    431 	}
    432 EOF
    433 	$CC_FOR_BUILD -o $dummy $dummy.c \
    434 	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
    435 	  && exit 0
    436 	echo mips-mips-riscos${UNAME_RELEASE}
    437 	exit 0 ;;
    438     Motorola:PowerMAX_OS:*:*)
    439 	echo powerpc-motorola-powermax
    440 	exit 0 ;;
    441     Motorola:*:4.3:PL8-*)
    442 	echo powerpc-harris-powermax
    443 	exit 0 ;;
    444     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
    445 	echo powerpc-harris-powermax
    446 	exit 0 ;;
    447     Night_Hawk:Power_UNIX:*:*)
    448 	echo powerpc-harris-powerunix
    449 	exit 0 ;;
    450     m88k:CX/UX:7*:*)
    451 	echo m88k-harris-cxux7
    452 	exit 0 ;;
    453     m88k:*:4*:R4*)
    454 	echo m88k-motorola-sysv4
    455 	exit 0 ;;
    456     m88k:*:3*:R3*)
    457 	echo m88k-motorola-sysv3
    458 	exit 0 ;;
    459     AViiON:dgux:*:*)
    460         # DG/UX returns AViiON for all architectures
    461         UNAME_PROCESSOR=`/usr/bin/uname -p`
    462 	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
    463 	then
    464 	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
    465 	       [ ${TARGET_BINARY_INTERFACE}x = x ]
    466 	    then
    467 		echo m88k-dg-dgux${UNAME_RELEASE}
    468 	    else
    469 		echo m88k-dg-dguxbcs${UNAME_RELEASE}
    470 	    fi
    471 	else
    472 	    echo i586-dg-dgux${UNAME_RELEASE}
    473 	fi
    474  	exit 0 ;;
    475     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
    476 	echo m88k-dolphin-sysv3
    477 	exit 0 ;;
    478     M88*:*:R3*:*)
    479 	# Delta 88k system running SVR3
    480 	echo m88k-motorola-sysv3
    481 	exit 0 ;;
    482     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
    483 	echo m88k-tektronix-sysv3
    484 	exit 0 ;;
    485     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
    486 	echo m68k-tektronix-bsd
    487 	exit 0 ;;
    488     *:IRIX*:*:*)
    489 	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
    490 	exit 0 ;;
    491     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
    492 	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
    493 	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
    494     i*86:AIX:*:*)
    495 	echo i386-ibm-aix
    496 	exit 0 ;;
    497     ia64:AIX:*:*)
    498 	if [ -x /usr/bin/oslevel ] ; then
    499 		IBM_REV=`/usr/bin/oslevel`
    500 	else
    501 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
    502 	fi
    503 	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
    504 	exit 0 ;;
    505     *:AIX:2:3)
    506 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
    507 		eval $set_cc_for_build
    508 		sed 's/^		//' << EOF >$dummy.c
    509 		#include <sys/systemcfg.h>
    510 
    511 		main()
    512 			{
    513 			if (!__power_pc())
    514 				exit(1);
    515 			puts("powerpc-ibm-aix3.2.5");
    516 			exit(0);
    517 			}
    518 EOF
    519 		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
    520 		echo rs6000-ibm-aix3.2.5
    521 	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
    522 		echo rs6000-ibm-aix3.2.4
    523 	else
    524 		echo rs6000-ibm-aix3.2
    525 	fi
    526 	exit 0 ;;
    527     *:AIX:*:[45])
    528 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
    529 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
    530 		IBM_ARCH=rs6000
    531 	else
    532 		IBM_ARCH=powerpc
    533 	fi
    534 	if [ -x /usr/bin/oslevel ] ; then
    535 		IBM_REV=`/usr/bin/oslevel`
    536 	else
    537 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
    538 	fi
    539 	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
    540 	exit 0 ;;
    541     *:AIX:*:*)
    542 	echo rs6000-ibm-aix
    543 	exit 0 ;;
    544     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
    545 	echo romp-ibm-bsd4.4
    546 	exit 0 ;;
    547     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
    548 	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
    549 	exit 0 ;;                           # report: romp-ibm BSD 4.3
    550     *:BOSX:*:*)
    551 	echo rs6000-bull-bosx
    552 	exit 0 ;;
    553     DPX/2?00:B.O.S.:*:*)
    554 	echo m68k-bull-sysv3
    555 	exit 0 ;;
    556     9000/[34]??:4.3bsd:1.*:*)
    557 	echo m68k-hp-bsd
    558 	exit 0 ;;
    559     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
    560 	echo m68k-hp-bsd4.4
    561 	exit 0 ;;
    562     9000/[34678]??:HP-UX:*:*)
    563 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
    564 	case "${UNAME_MACHINE}" in
    565 	    9000/31? )            HP_ARCH=m68000 ;;
    566 	    9000/[34]?? )         HP_ARCH=m68k ;;
    567 	    9000/[678][0-9][0-9])
    568 		if [ -x /usr/bin/getconf ]; then
    569 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
    570                     sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
    571                     case "${sc_cpu_version}" in
    572                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
    573                       528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
    574                       532)                      # CPU_PA_RISC2_0
    575                         case "${sc_kernel_bits}" in
    576                           32) HP_ARCH="hppa2.0n" ;;
    577                           64) HP_ARCH="hppa2.0w" ;;
    578 			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
    579                         esac ;;
    580                     esac
    581 		fi
    582 		if [ "${HP_ARCH}" = "" ]; then
    583 		    eval $set_cc_for_build
    584 		    sed 's/^              //' << EOF >$dummy.c
    585 
    586               #define _HPUX_SOURCE
    587               #include <stdlib.h>
    588               #include <unistd.h>
    589 
    590               int main ()
    591               {
    592               #if defined(_SC_KERNEL_BITS)
    593                   long bits = sysconf(_SC_KERNEL_BITS);
    594               #endif
    595                   long cpu  = sysconf (_SC_CPU_VERSION);
    596 
    597                   switch (cpu)
    598               	{
    599               	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
    600               	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
    601               	case CPU_PA_RISC2_0:
    602               #if defined(_SC_KERNEL_BITS)
    603               	    switch (bits)
    604               		{
    605               		case 64: puts ("hppa2.0w"); break;
    606               		case 32: puts ("hppa2.0n"); break;
    607               		default: puts ("hppa2.0"); break;
    608               		} break;
    609               #else  /* !defined(_SC_KERNEL_BITS) */
    610               	    puts ("hppa2.0"); break;
    611               #endif
    612               	default: puts ("hppa1.0"); break;
    613               	}
    614                   exit (0);
    615               }
    616 EOF
    617 		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
    618 		    test -z "$HP_ARCH" && HP_ARCH=hppa
    619 		fi ;;
    620 	esac
    621 	if [ ${HP_ARCH} = "hppa2.0w" ]
    622 	then
    623 	    # avoid double evaluation of $set_cc_for_build
    624 	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
    625 	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
    626 	    then
    627 		HP_ARCH="hppa2.0w"
    628 	    else
    629 		HP_ARCH="hppa64"
    630 	    fi
    631 	fi
    632 	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
    633 	exit 0 ;;
    634     ia64:HP-UX:*:*)
    635 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
    636 	echo ia64-hp-hpux${HPUX_REV}
    637 	exit 0 ;;
    638     3050*:HI-UX:*:*)
    639 	eval $set_cc_for_build
    640 	sed 's/^	//' << EOF >$dummy.c
    641 	#include <unistd.h>
    642 	int
    643 	main ()
    644 	{
    645 	  long cpu = sysconf (_SC_CPU_VERSION);
    646 	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
    647 	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
    648 	     results, however.  */
    649 	  if (CPU_IS_PA_RISC (cpu))
    650 	    {
    651 	      switch (cpu)
    652 		{
    653 		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
    654 		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
    655 		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
    656 		  default: puts ("hppa-hitachi-hiuxwe2"); break;
    657 		}
    658 	    }
    659 	  else if (CPU_IS_HP_MC68K (cpu))
    660 	    puts ("m68k-hitachi-hiuxwe2");
    661 	  else puts ("unknown-hitachi-hiuxwe2");
    662 	  exit (0);
    663 	}
    664 EOF
    665 	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
    666 	echo unknown-hitachi-hiuxwe2
    667 	exit 0 ;;
    668     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
    669 	echo hppa1.1-hp-bsd
    670 	exit 0 ;;
    671     9000/8??:4.3bsd:*:*)
    672 	echo hppa1.0-hp-bsd
    673 	exit 0 ;;
    674     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
    675 	echo hppa1.0-hp-mpeix
    676 	exit 0 ;;
    677     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
    678 	echo hppa1.1-hp-osf
    679 	exit 0 ;;
    680     hp8??:OSF1:*:*)
    681 	echo hppa1.0-hp-osf
    682 	exit 0 ;;
    683     i*86:OSF1:*:*)
    684 	if [ -x /usr/sbin/sysversion ] ; then
    685 	    echo ${UNAME_MACHINE}-unknown-osf1mk
    686 	else
    687 	    echo ${UNAME_MACHINE}-unknown-osf1
    688 	fi
    689 	exit 0 ;;
    690     parisc*:Lites*:*:*)
    691 	echo hppa1.1-hp-lites
    692 	exit 0 ;;
    693     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
    694 	echo c1-convex-bsd
    695         exit 0 ;;
    696     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
    697 	if getsysinfo -f scalar_acc
    698 	then echo c32-convex-bsd
    699 	else echo c2-convex-bsd
    700 	fi
    701         exit 0 ;;
    702     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
    703 	echo c34-convex-bsd
    704         exit 0 ;;
    705     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
    706 	echo c38-convex-bsd
    707         exit 0 ;;
    708     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
    709 	echo c4-convex-bsd
    710         exit 0 ;;
    711     CRAY*Y-MP:*:*:*)
    712 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    713 	exit 0 ;;
    714     CRAY*[A-Z]90:*:*:*)
    715 	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
    716 	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
    717 	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
    718 	      -e 's/\.[^.]*$/.X/'
    719 	exit 0 ;;
    720     CRAY*TS:*:*:*)
    721 	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    722 	exit 0 ;;
    723     CRAY*T3E:*:*:*)
    724 	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    725 	exit 0 ;;
    726     CRAY*SV1:*:*:*)
    727 	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    728 	exit 0 ;;
    729     *:UNICOS/mp:*:*)
    730 	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
    731 	exit 0 ;;
    732     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
    733 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
    734         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
    735         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
    736         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
    737         exit 0 ;;
    738     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
    739 	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
    740 	exit 0 ;;
    741     sparc*:BSD/OS:*:*)
    742 	echo sparc-unknown-bsdi${UNAME_RELEASE}
    743 	exit 0 ;;
    744     *:BSD/OS:*:*)
    745 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
    746 	exit 0 ;;
    747     *:FreeBSD:*:*)
    748 	# Determine whether the default compiler uses glibc.
    749 	eval $set_cc_for_build
    750 	sed 's/^	//' << EOF >$dummy.c
    751 	#include <features.h>
    752 	#if __GLIBC__ >= 2
    753 	LIBC=gnu
    754 	#else
    755 	LIBC=
    756 	#endif
    757 EOF
    758 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
    759 	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
    760 	exit 0 ;;
    761     i*:CYGWIN*:*)
    762 	echo ${UNAME_MACHINE}-pc-cygwin
    763 	exit 0 ;;
    764     i*:MINGW*:*)
    765 	echo ${UNAME_MACHINE}-pc-mingw32
    766 	exit 0 ;;
    767     i*:PW*:*)
    768 	echo ${UNAME_MACHINE}-pc-pw32
    769 	exit 0 ;;
    770     x86:Interix*:3*)
    771 	echo i586-pc-interix3
    772 	exit 0 ;;
    773     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
    774 	echo i${UNAME_MACHINE}-pc-mks
    775 	exit 0 ;;
    776     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
    777 	# How do we know it's Interix rather than the generic POSIX subsystem?
    778 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
    779 	# UNAME_MACHINE based on the output of uname instead of i386?
    780 	echo i586-pc-interix
    781 	exit 0 ;;
    782     i*:UWIN*:*)
    783 	echo ${UNAME_MACHINE}-pc-uwin
    784 	exit 0 ;;
    785     p*:CYGWIN*:*)
    786 	echo powerpcle-unknown-cygwin
    787 	exit 0 ;;
    788     prep*:SunOS:5.*:*)
    789 	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    790 	exit 0 ;;
    791     *:GNU:*:*)
    792 	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
    793 	exit 0 ;;
    794     i*86:Minix:*:*)
    795 	echo ${UNAME_MACHINE}-pc-minix
    796 	exit 0 ;;
    797     arm*:Linux:*:*)
    798 	echo ${UNAME_MACHINE}-unknown-linux-gnu
    799 	exit 0 ;;
    800     ia64:Linux:*:*)
    801 	echo ${UNAME_MACHINE}-unknown-linux-gnu
    802 	exit 0 ;;
    803     m68*:Linux:*:*)
    804 	echo ${UNAME_MACHINE}-unknown-linux-gnu
    805 	exit 0 ;;
    806     mips:Linux:*:*)
    807 	eval $set_cc_for_build
    808 	sed 's/^	//' << EOF >$dummy.c
    809 	#undef CPU
    810 	#undef mips
    811 	#undef mipsel
    812 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
    813 	CPU=mipsel
    814 	#else
    815 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
    816 	CPU=mips
    817 	#else
    818 	CPU=
    819 	#endif
    820 	#endif
    821 EOF
    822 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
    823 	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
    824 	;;
    825     mips64:Linux:*:*)
    826 	eval $set_cc_for_build
    827 	sed 's/^	//' << EOF >$dummy.c
    828 	#undef CPU
    829 	#undef mips64
    830 	#undef mips64el
    831 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
    832 	CPU=mips64el
    833 	#else
    834 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
    835 	CPU=mips64
    836 	#else
    837 	CPU=
    838 	#endif
    839 	#endif
    840 EOF
    841 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
    842 	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
    843 	;;
    844     ppc:Linux:*:*)
    845 	echo powerpc-unknown-linux-gnu
    846 	exit 0 ;;
    847     ppc64:Linux:*:*)
    848 	echo powerpc64-unknown-linux-gnu
    849 	exit 0 ;;
    850     alpha:Linux:*:*)
    851 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
    852 	  EV5)   UNAME_MACHINE=alphaev5 ;;
    853 	  EV56)  UNAME_MACHINE=alphaev56 ;;
    854 	  PCA56) UNAME_MACHINE=alphapca56 ;;
    855 	  PCA57) UNAME_MACHINE=alphapca56 ;;
    856 	  EV6)   UNAME_MACHINE=alphaev6 ;;
    857 	  EV67)  UNAME_MACHINE=alphaev67 ;;
    858 	  EV68*) UNAME_MACHINE=alphaev68 ;;
    859         esac
    860 	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
    861 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
    862 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
    863 	exit 0 ;;
    864     parisc:Linux:*:* | hppa:Linux:*:*)
    865 	# Look for CPU level
    866 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
    867 	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
    868 	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
    869 	  *)    echo hppa-unknown-linux-gnu ;;
    870 	esac
    871 	exit 0 ;;
    872     parisc64:Linux:*:* | hppa64:Linux:*:*)
    873 	echo hppa64-unknown-linux-gnu
    874 	exit 0 ;;
    875     s390:Linux:*:* | s390x:Linux:*:*)
    876 	echo ${UNAME_MACHINE}-ibm-linux
    877 	exit 0 ;;
    878     sh*:Linux:*:*)
    879 	echo ${UNAME_MACHINE}-unknown-linux-gnu
    880 	exit 0 ;;
    881     sparc:Linux:*:* | sparc64:Linux:*:*)
    882 	echo ${UNAME_MACHINE}-unknown-linux-gnu
    883 	exit 0 ;;
    884     x86_64:Linux:*:*)
    885 	echo x86_64-unknown-linux-gnu
    886 	exit 0 ;;
    887     i*86:Linux:*:*)
    888 	# The BFD linker knows what the default object file format is, so
    889 	# first see if it will tell us. cd to the root directory to prevent
    890 	# problems with other programs or directories called `ld' in the path.
    891 	# Set LC_ALL=C to ensure ld outputs messages in English.
    892 	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
    893 			 | sed -ne '/supported targets:/!d
    894 				    s/[ 	][ 	]*/ /g
    895 				    s/.*supported targets: *//
    896 				    s/ .*//
    897 				    p'`
    898         case "$ld_supported_targets" in
    899 	  elf32-i386)
    900 		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
    901 		;;
    902 	  a.out-i386-linux)
    903 		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
    904 		exit 0 ;;
    905 	  coff-i386)
    906 		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
    907 		exit 0 ;;
    908 	  "")
    909 		# Either a pre-BFD a.out linker (linux-gnuoldld) or
    910 		# one that does not give us useful --help.
    911 		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
    912 		exit 0 ;;
    913 	esac
    914 	# Determine whether the default compiler is a.out or elf
    915 	eval $set_cc_for_build
    916 	sed 's/^	//' << EOF >$dummy.c
    917 	#include <features.h>
    918 	#ifdef __ELF__
    919 	# ifdef __GLIBC__
    920 	#  if __GLIBC__ >= 2
    921 	LIBC=gnu
    922 	#  else
    923 	LIBC=gnulibc1
    924 	#  endif
    925 	# else
    926 	LIBC=gnulibc1
    927 	# endif
    928 	#else
    929 	#ifdef __INTEL_COMPILER
    930 	LIBC=gnu
    931 	#else
    932 	LIBC=gnuaout
    933 	#endif
    934 	#endif
    935 EOF
    936 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
    937 	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
    938 	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
    939 	;;
    940     i*86:DYNIX/ptx:4*:*)
    941 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
    942 	# earlier versions are messed up and put the nodename in both
    943 	# sysname and nodename.
    944 	echo i386-sequent-sysv4
    945 	exit 0 ;;
    946     i*86:UNIX_SV:4.2MP:2.*)
    947         # Unixware is an offshoot of SVR4, but it has its own version
    948         # number series starting with 2...
    949         # I am not positive that other SVR4 systems won't match this,
    950 	# I just have to hope.  -- rms.
    951         # Use sysv4.2uw... so that sysv4* matches it.
    952 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
    953 	exit 0 ;;
    954     i*86:OS/2:*:*)
    955 	# If we were able to find `uname', then EMX Unix compatibility
    956 	# is probably installed.
    957 	echo ${UNAME_MACHINE}-pc-os2-emx
    958 	exit 0 ;;
    959     i*86:XTS-300:*:STOP)
    960 	echo ${UNAME_MACHINE}-unknown-stop
    961 	exit 0 ;;
    962     i*86:atheos:*:*)
    963 	echo ${UNAME_MACHINE}-unknown-atheos
    964 	exit 0 ;;
    965     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
    966 	echo i386-unknown-lynxos${UNAME_RELEASE}
    967 	exit 0 ;;
    968     i*86:*DOS:*:*)
    969 	echo ${UNAME_MACHINE}-pc-msdosdjgpp
    970 	exit 0 ;;
    971     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
    972 	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
    973 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
    974 		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
    975 	else
    976 		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
    977 	fi
    978 	exit 0 ;;
    979     i*86:*:5:[78]*)
    980 	case `/bin/uname -X | grep "^Machine"` in
    981 	    *486*)	     UNAME_MACHINE=i486 ;;
    982 	    *Pentium)	     UNAME_MACHINE=i586 ;;
    983 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
    984 	esac
    985 	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
    986 	exit 0 ;;
    987     i*86:*:3.2:*)
    988 	if test -f /usr/options/cb.name; then
    989 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
    990 		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
    991 	elif /bin/uname -X 2>/dev/null >/dev/null ; then
    992 		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
    993 		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
    994 		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
    995 			&& UNAME_MACHINE=i586
    996 		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
    997 			&& UNAME_MACHINE=i686
    998 		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
    999 			&& UNAME_MACHINE=i686
   1000 		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
   1001 	else
   1002 		echo ${UNAME_MACHINE}-pc-sysv32
   1003 	fi
   1004 	exit 0 ;;
   1005     pc:*:*:*)
   1006 	# Left here for compatibility:
   1007         # uname -m prints for DJGPP always 'pc', but it prints nothing about
   1008         # the processor, so we play safe by assuming i386.
   1009 	echo i386-pc-msdosdjgpp
   1010         exit 0 ;;
   1011     Intel:Mach:3*:*)
   1012 	echo i386-pc-mach3
   1013 	exit 0 ;;
   1014     paragon:*:*:*)
   1015 	echo i860-intel-osf1
   1016 	exit 0 ;;
   1017     i860:*:4.*:*) # i860-SVR4
   1018 	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
   1019 	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
   1020 	else # Add other i860-SVR4 vendors below as they are discovered.
   1021 	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
   1022 	fi
   1023 	exit 0 ;;
   1024     mini*:CTIX:SYS*5:*)
   1025 	# "miniframe"
   1026 	echo m68010-convergent-sysv
   1027 	exit 0 ;;
   1028     mc68k:UNIX:SYSTEM5:3.51m)
   1029 	echo m68k-convergent-sysv
   1030 	exit 0 ;;
   1031     M680?0:D-NIX:5.3:*)
   1032 	echo m68k-diab-dnix
   1033 	exit 0 ;;
   1034     M68*:*:R3V[567]*:*)
   1035 	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
   1036     3[34]??:*: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)
   1037 	OS_REL=''
   1038 	test -r /etc/.relid \
   1039 	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
   1040 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
   1041 	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
   1042 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
   1043 	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
   1044     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
   1045         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
   1046           && echo i486-ncr-sysv4 && exit 0 ;;
   1047     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
   1048 	echo m68k-unknown-lynxos${UNAME_RELEASE}
   1049 	exit 0 ;;
   1050     mc68030:UNIX_System_V:4.*:*)
   1051 	echo m68k-atari-sysv4
   1052 	exit 0 ;;
   1053     TSUNAMI:LynxOS:2.*:*)
   1054 	echo sparc-unknown-lynxos${UNAME_RELEASE}
   1055 	exit 0 ;;
   1056     rs6000:LynxOS:2.*:*)
   1057 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
   1058 	exit 0 ;;
   1059     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
   1060 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
   1061 	exit 0 ;;
   1062     SM[BE]S:UNIX_SV:*:*)
   1063 	echo mips-dde-sysv${UNAME_RELEASE}
   1064 	exit 0 ;;
   1065     RM*:ReliantUNIX-*:*:*)
   1066 	echo mips-sni-sysv4
   1067 	exit 0 ;;
   1068     RM*:SINIX-*:*:*)
   1069 	echo mips-sni-sysv4
   1070 	exit 0 ;;
   1071     *:SINIX-*:*:*)
   1072 	if uname -p 2>/dev/null >/dev/null ; then
   1073 		UNAME_MACHINE=`(uname -p) 2>/dev/null`
   1074 		echo ${UNAME_MACHINE}-sni-sysv4
   1075 	else
   1076 		echo ns32k-sni-sysv
   1077 	fi
   1078 	exit 0 ;;
   1079     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
   1080                       # says <Richard.M.Bartel (at] ccMail.Census.GOV>
   1081         echo i586-unisys-sysv4
   1082         exit 0 ;;
   1083     *:UNIX_System_V:4*:FTX*)
   1084 	# From Gerald Hewes <hewes (at] openmarket.com>.
   1085 	# How about differentiating between stratus architectures? -djm
   1086 	echo hppa1.1-stratus-sysv4
   1087 	exit 0 ;;
   1088     *:*:*:FTX*)
   1089 	# From seanf (at] swdc.stratus.com.
   1090 	echo i860-stratus-sysv4
   1091 	exit 0 ;;
   1092     *:VOS:*:*)
   1093 	# From Paul.Green (at] stratus.com.
   1094 	echo hppa1.1-stratus-vos
   1095 	exit 0 ;;
   1096     mc68*:A/UX:*:*)
   1097 	echo m68k-apple-aux${UNAME_RELEASE}
   1098 	exit 0 ;;
   1099     news*:NEWS-OS:6*:*)
   1100 	echo mips-sony-newsos6
   1101 	exit 0 ;;
   1102     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
   1103 	if [ -d /usr/nec ]; then
   1104 	        echo mips-nec-sysv${UNAME_RELEASE}
   1105 	else
   1106 	        echo mips-unknown-sysv${UNAME_RELEASE}
   1107 	fi
   1108         exit 0 ;;
   1109     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
   1110 	echo powerpc-be-beos
   1111 	exit 0 ;;
   1112     BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
   1113 	echo powerpc-apple-beos
   1114 	exit 0 ;;
   1115     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
   1116 	echo i586-pc-beos
   1117 	exit 0 ;;
   1118     SX-4:SUPER-UX:*:*)
   1119 	echo sx4-nec-superux${UNAME_RELEASE}
   1120 	exit 0 ;;
   1121     SX-5:SUPER-UX:*:*)
   1122 	echo sx5-nec-superux${UNAME_RELEASE}
   1123 	exit 0 ;;
   1124     SX-6:SUPER-UX:*:*)
   1125 	echo sx6-nec-superux${UNAME_RELEASE}
   1126 	exit 0 ;;
   1127     Power*:Rhapsody:*:*)
   1128 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
   1129 	exit 0 ;;
   1130     *:Rhapsody:*:*)
   1131 	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
   1132 	exit 0 ;;
   1133     *:Darwin:*:*)
   1134 	case `uname -p` in
   1135 	    *86) UNAME_PROCESSOR=i686 ;;
   1136 	    powerpc) UNAME_PROCESSOR=powerpc ;;
   1137 	esac
   1138 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
   1139 	exit 0 ;;
   1140     *:procnto*:*:* | *:QNX:[0123456789]*:*)
   1141 	UNAME_PROCESSOR=`uname -p`
   1142 	if test "$UNAME_PROCESSOR" = "x86"; then
   1143 		UNAME_PROCESSOR=i386
   1144 		UNAME_MACHINE=pc
   1145 	fi
   1146 	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
   1147 	exit 0 ;;
   1148     *:QNX:*:4*)
   1149 	echo i386-pc-qnx
   1150 	exit 0 ;;
   1151     NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
   1152 	echo nsr-tandem-nsk${UNAME_RELEASE}
   1153 	exit 0 ;;
   1154     *:NonStop-UX:*:*)
   1155 	echo mips-compaq-nonstopux
   1156 	exit 0 ;;
   1157     BS2000:POSIX*:*:*)
   1158 	echo bs2000-siemens-sysv
   1159 	exit 0 ;;
   1160     DS/*:UNIX_System_V:*:*)
   1161 	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
   1162 	exit 0 ;;
   1163     *:Plan9:*:*)
   1164 	# "uname -m" is not consistent, so use $cputype instead. 386
   1165 	# is converted to i386 for consistency with other x86
   1166 	# operating systems.
   1167 	if test "$cputype" = "386"; then
   1168 	    UNAME_MACHINE=i386
   1169 	else
   1170 	    UNAME_MACHINE="$cputype"
   1171 	fi
   1172 	echo ${UNAME_MACHINE}-unknown-plan9
   1173 	exit 0 ;;
   1174     *:TOPS-10:*:*)
   1175 	echo pdp10-unknown-tops10
   1176 	exit 0 ;;
   1177     *:TENEX:*:*)
   1178 	echo pdp10-unknown-tenex
   1179 	exit 0 ;;
   1180     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
   1181 	echo pdp10-dec-tops20
   1182 	exit 0 ;;
   1183     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
   1184 	echo pdp10-xkl-tops20
   1185 	exit 0 ;;
   1186     *:TOPS-20:*:*)
   1187 	echo pdp10-unknown-tops20
   1188 	exit 0 ;;
   1189     *:ITS:*:*)
   1190 	echo pdp10-unknown-its
   1191 	exit 0 ;;
   1192 esac
   1193 
   1194 #echo '(No uname command or uname output not recognized.)' 1>&2
   1195 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
   1196 
   1197 eval $set_cc_for_build
   1198 cat >$dummy.c <<EOF
   1199 #ifdef _SEQUENT_
   1200 # include <sys/types.h>
   1201 # include <sys/utsname.h>
   1202 #endif
   1203 main ()
   1204 {
   1205 #if defined (sony)
   1206 #if defined (MIPSEB)
   1207   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
   1208      I don't know....  */
   1209   printf ("mips-sony-bsd\n"); exit (0);
   1210 #else
   1211 #include <sys/param.h>
   1212   printf ("m68k-sony-newsos%s\n",
   1213 #ifdef NEWSOS4
   1214           "4"
   1215 #else
   1216 	  ""
   1217 #endif
   1218          ); exit (0);
   1219 #endif
   1220 #endif
   1221 
   1222 #if defined (__arm) && defined (__acorn) && defined (__unix)
   1223   printf ("arm-acorn-riscix"); exit (0);
   1224 #endif
   1225 
   1226 #if defined (hp300) && !defined (hpux)
   1227   printf ("m68k-hp-bsd\n"); exit (0);
   1228 #endif
   1229 
   1230 #if defined (NeXT)
   1231 #if !defined (__ARCHITECTURE__)
   1232 #define __ARCHITECTURE__ "m68k"
   1233 #endif
   1234   int version;
   1235   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
   1236   if (version < 4)
   1237     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
   1238   else
   1239     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
   1240   exit (0);
   1241 #endif
   1242 
   1243 #if defined (MULTIMAX) || defined (n16)
   1244 #if defined (UMAXV)
   1245   printf ("ns32k-encore-sysv\n"); exit (0);
   1246 #else
   1247 #if defined (CMU)
   1248   printf ("ns32k-encore-mach\n"); exit (0);
   1249 #else
   1250   printf ("ns32k-encore-bsd\n"); exit (0);
   1251 #endif
   1252 #endif
   1253 #endif
   1254 
   1255 #if defined (__386BSD__)
   1256   printf ("i386-pc-bsd\n"); exit (0);
   1257 #endif
   1258 
   1259 #if defined (sequent)
   1260 #if defined (i386)
   1261   printf ("i386-sequent-dynix\n"); exit (0);
   1262 #endif
   1263 #if defined (ns32000)
   1264   printf ("ns32k-sequent-dynix\n"); exit (0);
   1265 #endif
   1266 #endif
   1267 
   1268 #if defined (_SEQUENT_)
   1269     struct utsname un;
   1270 
   1271     uname(&un);
   1272 
   1273     if (strncmp(un.version, "V2", 2) == 0) {
   1274 	printf ("i386-sequent-ptx2\n"); exit (0);
   1275     }
   1276     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
   1277 	printf ("i386-sequent-ptx1\n"); exit (0);
   1278     }
   1279     printf ("i386-sequent-ptx\n"); exit (0);
   1280 
   1281 #endif
   1282 
   1283 #if defined (vax)
   1284 # if !defined (ultrix)
   1285 #  include <sys/param.h>
   1286 #  if defined (BSD)
   1287 #   if BSD == 43
   1288       printf ("vax-dec-bsd4.3\n"); exit (0);
   1289 #   else
   1290 #    if BSD == 199006
   1291       printf ("vax-dec-bsd4.3reno\n"); exit (0);
   1292 #    else
   1293       printf ("vax-dec-bsd\n"); exit (0);
   1294 #    endif
   1295 #   endif
   1296 #  else
   1297     printf ("vax-dec-bsd\n"); exit (0);
   1298 #  endif
   1299 # else
   1300     printf ("vax-dec-ultrix\n"); exit (0);
   1301 # endif
   1302 #endif
   1303 
   1304 #if defined (alliant) && defined (i860)
   1305   printf ("i860-alliant-bsd\n"); exit (0);
   1306 #endif
   1307 
   1308   exit (1);
   1309 }
   1310 EOF
   1311 
   1312 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
   1313 
   1314 # Apollos put the system type in the environment.
   1315 
   1316 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
   1317 
   1318 # Convex versions that predate uname can use getsysinfo(1)
   1319 
   1320 if [ -x /usr/convex/getsysinfo ]
   1321 then
   1322     case `getsysinfo -f cpu_type` in
   1323     c1*)
   1324 	echo c1-convex-bsd
   1325 	exit 0 ;;
   1326     c2*)
   1327 	if getsysinfo -f scalar_acc
   1328 	then echo c32-convex-bsd
   1329 	else echo c2-convex-bsd
   1330 	fi
   1331 	exit 0 ;;
   1332     c34*)
   1333 	echo c34-convex-bsd
   1334 	exit 0 ;;
   1335     c38*)
   1336 	echo c38-convex-bsd
   1337 	exit 0 ;;
   1338     c4*)
   1339 	echo c4-convex-bsd
   1340 	exit 0 ;;
   1341     esac
   1342 fi
   1343 
   1344 cat >&2 <<EOF
   1345 $0: unable to guess system type
   1346 
   1347 This script, last modified $timestamp, has failed to recognize
   1348 the operating system you are using. It is advised that you
   1349 download the most up to date version of the config scripts from
   1350 
   1351     ftp://ftp.gnu.org/pub/gnu/config/
   1352 
   1353 If the version you run ($0) is already up to date, please
   1354 send the following data and any information you think might be
   1355 pertinent to <config-patches (at] gnu.org> in order to provide the needed
   1356 information to handle your system.
   1357 
   1358 config.guess timestamp = $timestamp
   1359 
   1360 uname -m = `(uname -m) 2>/dev/null || echo unknown`
   1361 uname -r = `(uname -r) 2>/dev/null || echo unknown`
   1362 uname -s = `(uname -s) 2>/dev/null || echo unknown`
   1363 uname -v = `(uname -v) 2>/dev/null || echo unknown`
   1364 
   1365 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
   1366 /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
   1367 
   1368 hostinfo               = `(hostinfo) 2>/dev/null`
   1369 /bin/universe          = `(/bin/universe) 2>/dev/null`
   1370 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
   1371 /bin/arch              = `(/bin/arch) 2>/dev/null`
   1372 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
   1373 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
   1374 
   1375 UNAME_MACHINE = ${UNAME_MACHINE}
   1376 UNAME_RELEASE = ${UNAME_RELEASE}
   1377 UNAME_SYSTEM  = ${UNAME_SYSTEM}
   1378 UNAME_VERSION = ${UNAME_VERSION}
   1379 EOF
   1380 
   1381 exit 1
   1382 
   1383 # Local variables:
   1384 # eval: (add-hook 'write-file-hooks 'time-stamp)
   1385 # time-stamp-start: "timestamp='"
   1386 # time-stamp-format: "%:y-%02m-%02d"
   1387 # time-stamp-end: "'"
   1388 # End:
   1389