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