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