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