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