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