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