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