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#   Free Software Foundation, Inc.
6
7timestamp='2010-09-24-OpenLDAP'
8# $OpenLDAP$
9
10# This file is free software; you can redistribute it and/or modify it
11# under the terms of the GNU General Public License as published by
12# the Free Software Foundation; either version 2 of the License, or
13# (at your option) any later version.
14#
15# This program is distributed in the hope that it will be useful, but
16# WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18# General Public License for more details.
19#
20# You should have received a copy of the GNU General Public License
21# along with this program; if not, write to the Free Software
22# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
23# 02110-1301, USA.
24#
25# As a special exception to the GNU General Public License, if you
26# distribute this file as part of a program that contains a
27# configuration script generated by Autoconf, you may include it under
28# the same distribution terms that you use for the rest of that program.
29
30
31# Originally written by Per Bothner.  Please send patches (context
32# diff format) to <config-patches@gnu.org> and include a ChangeLog
33# entry.
34#
35# This script attempts to guess a canonical system name similar to
36# config.sub.  If it succeeds, it prints the system name on stdout, and
37# exits with 0.  Otherwise, it exits with 1.
38#
39# You can get the latest version of this script from:
40# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
41
42me=`echo "$0" | sed -e 's,.*/,,'`
43
44usage="\
45Usage: $0 [OPTION]
46
47Output the configuration name of the system \`$me' is run on.
48
49Operation modes:
50  -h, --help         print this help, then exit
51  -t, --time-stamp   print date of last modification, then exit
52  -v, --version      print version number, then exit
53
54Report bugs and patches to <config-patches@gnu.org>."
55
56version="\
57GNU config.guess ($timestamp)
58
59Originally written by Per Bothner.
60Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
612001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
62Software Foundation, Inc.
63
64This is free software; see the source for copying conditions.  There is NO
65warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
66
67help="
68Try \`$me --help' for more information."
69
70# Parse command line
71while test $# -gt 0 ; do
72  case $1 in
73    --time-stamp | --time* | -t )
74       echo "$timestamp" ; exit ;;
75    --version | -v )
76       echo "$version" ; exit ;;
77    --help | --h* | -h )
78       echo "$usage"; exit ;;
79    -- )     # Stop option processing
80       shift; break ;;
81    - )	# Use stdin as input.
82       break ;;
83    -* )
84       echo "$me: invalid option $1$help" >&2
85       exit 1 ;;
86    * )
87       break ;;
88  esac
89done
90
91if test $# != 0; then
92  echo "$me: too many arguments$help" >&2
93  exit 1
94fi
95
96trap 'exit 1' HUP INT TERM
97
98# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
99# compiler to aid in system detection is discouraged as it requires
100# temporary files to be created and, as you can see below, it is a
101# headache to deal with in a portable fashion.
102
103# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
104# use `HOST_CC' if defined, but it is deprecated.
105
106# Portable tmp directory creation inspired by the Autoconf team.
107
108set_cc_for_build='
109trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
110trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
111: ${TMPDIR=/tmp} ;
112 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
113 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
114 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
115 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
116dummy=$tmp/dummy ;
117tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
118case $CC_FOR_BUILD,$HOST_CC,$CC in
119 ,,)    echo "int x;" > $dummy.c ;
120	for c in cc gcc c89 c99 ; do
121	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
122	     CC_FOR_BUILD="$c"; break ;
123	  fi ;
124	done ;
125	if test x"$CC_FOR_BUILD" = x ; then
126	  CC_FOR_BUILD=no_compiler_found ;
127	fi
128	;;
129 ,,*)   CC_FOR_BUILD=$CC ;;
130 ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
131esac ; set_cc_for_build= ;'
132
133# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
134# (ghazi@noc.rutgers.edu 1994-08-24)
135if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
136	PATH=$PATH:/.attbin ; export PATH
137fi
138
139UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
140UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
141UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
142UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
143
144# Note: order is significant - the case branches are not exclusive.
145
146case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
147    *:NetBSD:*:*)
148	# NetBSD (nbsd) targets should (where applicable) match one or
149	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
150	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
151	# switched to ELF, *-*-netbsd* would select the old
152	# object file format.  This provides both forward
153	# compatibility and a consistent mechanism for selecting the
154	# object file format.
155	#
156	# Note: NetBSD doesn't particularly care about the vendor
157	# portion of the name.  We always set it to "unknown".
158	sysctl="sysctl -n hw.machine_arch"
159	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
160	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
161	case "${UNAME_MACHINE_ARCH}" in
162	    armeb) machine=armeb-unknown ;;
163	    arm*) machine=arm-unknown ;;
164	    sh3el) machine=shl-unknown ;;
165	    sh3eb) machine=sh-unknown ;;
166	    sh5el) machine=sh5le-unknown ;;
167	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
168	esac
169	# The Operating System including object format, if it has switched
170	# to ELF recently, or will in the future.
171	case "${UNAME_MACHINE_ARCH}" in
172	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
173		eval $set_cc_for_build
174		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
175			| grep -q __ELF__
176		then
177		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
178		    # Return netbsd for either.  FIX?
179		    os=netbsd
180		else
181		    os=netbsdelf
182		fi
183		;;
184	    *)
185	        os=netbsd
186		;;
187	esac
188	# The OS release
189	# Debian GNU/NetBSD machines have a different userland, and
190	# thus, need a distinct triplet. However, they do not need
191	# kernel version information, so it can be replaced with a
192	# suitable tag, in the style of linux-gnu.
193	case "${UNAME_VERSION}" in
194	    Debian*)
195		release='-gnu'
196		;;
197	    *)
198		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
199		;;
200	esac
201	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
202	# contains redundant information, the shorter form:
203	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
204	echo "${machine}-${os}${release}"
205	exit ;;
206    *:OpenBSD:*:*)
207	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
208	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
209	exit ;;
210    *:ekkoBSD:*:*)
211	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
212	exit ;;
213    *:SolidBSD:*:*)
214	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
215	exit ;;
216    macppc:MirBSD:*:*)
217	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
218	exit ;;
219    *:MirBSD:*:*)
220	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
221	exit ;;
222    alpha:OSF1:*:*)
223	case $UNAME_RELEASE in
224	*4.0)
225		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
226		;;
227	*5.*)
228	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
229		;;
230	esac
231	# According to Compaq, /usr/sbin/psrinfo has been available on
232	# OSF/1 and Tru64 systems produced since 1995.  I hope that
233	# covers most systems running today.  This code pipes the CPU
234	# types through head -n 1, so we only detect the type of CPU 0.
235	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
236	case "$ALPHA_CPU_TYPE" in
237	    "EV4 (21064)")
238		UNAME_MACHINE="alpha" ;;
239	    "EV4.5 (21064)")
240		UNAME_MACHINE="alpha" ;;
241	    "LCA4 (21066/21068)")
242		UNAME_MACHINE="alpha" ;;
243	    "EV5 (21164)")
244		UNAME_MACHINE="alphaev5" ;;
245	    "EV5.6 (21164A)")
246		UNAME_MACHINE="alphaev56" ;;
247	    "EV5.6 (21164PC)")
248		UNAME_MACHINE="alphapca56" ;;
249	    "EV5.7 (21164PC)")
250		UNAME_MACHINE="alphapca57" ;;
251	    "EV6 (21264)")
252		UNAME_MACHINE="alphaev6" ;;
253	    "EV6.7 (21264A)")
254		UNAME_MACHINE="alphaev67" ;;
255	    "EV6.8CB (21264C)")
256		UNAME_MACHINE="alphaev68" ;;
257	    "EV6.8AL (21264B)")
258		UNAME_MACHINE="alphaev68" ;;
259	    "EV6.8CX (21264D)")
260		UNAME_MACHINE="alphaev68" ;;
261	    "EV6.9A (21264/EV69A)")
262		UNAME_MACHINE="alphaev69" ;;
263	    "EV7 (21364)")
264		UNAME_MACHINE="alphaev7" ;;
265	    "EV7.9 (21364A)")
266		UNAME_MACHINE="alphaev79" ;;
267	esac
268	# A Pn.n version is a patched version.
269	# A Vn.n version is a released version.
270	# A Tn.n version is a released field test version.
271	# A Xn.n version is an unreleased experimental baselevel.
272	# 1.2 uses "1.2" for uname -r.
273	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
274	exit ;;
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	case ${UNAME_MACHINE} in
794	    pc98)
795		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
796	    amd64)
797		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
798	    *)
799		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
800	esac
801	exit ;;
802    i*:CYGWIN*:*)
803	echo ${UNAME_MACHINE}-pc-cygwin
804	exit ;;
805    *:MINGW*:*)
806	echo ${UNAME_MACHINE}-pc-mingw32
807	exit ;;
808    i*:windows32*:*)
809    	# uname -m includes "-pc" on this system.
810    	echo ${UNAME_MACHINE}-mingw32
811	exit ;;
812    i*:PW*:*)
813	echo ${UNAME_MACHINE}-pc-pw32
814	exit ;;
815    *:Interix*:*)
816    	case ${UNAME_MACHINE} in
817	    x86)
818		echo i586-pc-interix${UNAME_RELEASE}
819		exit ;;
820	    authenticamd | genuineintel | EM64T)
821		echo x86_64-unknown-interix${UNAME_RELEASE}
822		exit ;;
823	    IA64)
824		echo ia64-unknown-interix${UNAME_RELEASE}
825		exit ;;
826	esac ;;
827    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
828	echo i${UNAME_MACHINE}-pc-mks
829	exit ;;
830    8664:Windows_NT:*)
831	echo x86_64-pc-mks
832	exit ;;
833    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
834	# How do we know it's Interix rather than the generic POSIX subsystem?
835	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
836	# UNAME_MACHINE based on the output of uname instead of i386?
837	echo i586-pc-interix
838	exit ;;
839    i*:UWIN*:*)
840	echo ${UNAME_MACHINE}-pc-uwin
841	exit ;;
842    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
843	echo x86_64-unknown-cygwin
844	exit ;;
845    p*:CYGWIN*:*)
846	echo powerpcle-unknown-cygwin
847	exit ;;
848    prep*:SunOS:5.*:*)
849	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
850	exit ;;
851    *:GNU:*:*)
852	# the GNU system
853	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
854	exit ;;
855    *:GNU/*:*:*)
856	# other systems with GNU libc and userland
857	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
858	exit ;;
859    i*86:Minix:*:*)
860	echo ${UNAME_MACHINE}-pc-minix
861	exit ;;
862    alpha:Linux:*:*)
863	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
864	  EV5)   UNAME_MACHINE=alphaev5 ;;
865	  EV56)  UNAME_MACHINE=alphaev56 ;;
866	  PCA56) UNAME_MACHINE=alphapca56 ;;
867	  PCA57) UNAME_MACHINE=alphapca56 ;;
868	  EV6)   UNAME_MACHINE=alphaev6 ;;
869	  EV67)  UNAME_MACHINE=alphaev67 ;;
870	  EV68*) UNAME_MACHINE=alphaev68 ;;
871        esac
872	objdump --private-headers /bin/sh | grep -q ld.so.1
873	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
874	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
875	exit ;;
876    arm*:Linux:*:*)
877	eval $set_cc_for_build
878	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
879	    | grep -q __ARM_EABI__
880	then
881	    echo ${UNAME_MACHINE}-unknown-linux-gnu
882	else
883	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
884	fi
885	exit ;;
886    avr32*:Linux:*:*)
887	echo ${UNAME_MACHINE}-unknown-linux-gnu
888	exit ;;
889    cris:Linux:*:*)
890	echo cris-axis-linux-gnu
891	exit ;;
892    crisv32:Linux:*:*)
893	echo crisv32-axis-linux-gnu
894	exit ;;
895    frv:Linux:*:*)
896    	echo frv-unknown-linux-gnu
897	exit ;;
898    i*86:Linux:*:*)
899	LIBC=gnu
900	eval $set_cc_for_build
901	sed 's/^	//' << EOF >$dummy.c
902	#ifdef __dietlibc__
903	LIBC=dietlibc
904	#endif
905EOF
906	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
907	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
908	exit ;;
909    ia64:Linux:*:*)
910	echo ${UNAME_MACHINE}-unknown-linux-gnu
911	exit ;;
912    m32r*:Linux:*:*)
913	echo ${UNAME_MACHINE}-unknown-linux-gnu
914	exit ;;
915    m68*:Linux:*:*)
916	echo ${UNAME_MACHINE}-unknown-linux-gnu
917	exit ;;
918    mips:Linux:*:* | mips64:Linux:*:*)
919	eval $set_cc_for_build
920	sed 's/^	//' << EOF >$dummy.c
921	#undef CPU
922	#undef ${UNAME_MACHINE}
923	#undef ${UNAME_MACHINE}el
924	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
925	CPU=${UNAME_MACHINE}el
926	#else
927	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
928	CPU=${UNAME_MACHINE}
929	#else
930	CPU=
931	#endif
932	#endif
933EOF
934	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
935	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
936	;;
937    or32:Linux:*:*)
938	echo or32-unknown-linux-gnu
939	exit ;;
940    padre:Linux:*:*)
941	echo sparc-unknown-linux-gnu
942	exit ;;
943    parisc64:Linux:*:* | hppa64:Linux:*:*)
944	echo hppa64-unknown-linux-gnu
945	exit ;;
946    parisc:Linux:*:* | hppa:Linux:*:*)
947	# Look for CPU level
948	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
949	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
950	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
951	  *)    echo hppa-unknown-linux-gnu ;;
952	esac
953	exit ;;
954    ppc64:Linux:*:*)
955	echo powerpc64-unknown-linux-gnu
956	exit ;;
957    ppc:Linux:*:*)
958	echo powerpc-unknown-linux-gnu
959	exit ;;
960    s390:Linux:*:* | s390x:Linux:*:*)
961	echo ${UNAME_MACHINE}-ibm-linux
962	exit ;;
963    sh64*:Linux:*:*)
964    	echo ${UNAME_MACHINE}-unknown-linux-gnu
965	exit ;;
966    sh*:Linux:*:*)
967	echo ${UNAME_MACHINE}-unknown-linux-gnu
968	exit ;;
969    sparc:Linux:*:* | sparc64:Linux:*:*)
970	echo ${UNAME_MACHINE}-unknown-linux-gnu
971	exit ;;
972    tile*:Linux:*:*)
973	echo ${UNAME_MACHINE}-tilera-linux-gnu
974	exit ;;
975    vax:Linux:*:*)
976	echo ${UNAME_MACHINE}-dec-linux-gnu
977	exit ;;
978    x86_64:Linux:*:*)
979	echo x86_64-unknown-linux-gnu
980	exit ;;
981    xtensa*:Linux:*:*)
982    	echo ${UNAME_MACHINE}-unknown-linux-gnu
983	exit ;;
984    i*86:DYNIX/ptx:4*:*)
985	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
986	# earlier versions are messed up and put the nodename in both
987	# sysname and nodename.
988	echo i386-sequent-sysv4
989	exit ;;
990    i*86:UNIX_SV:4.2MP:2.*)
991        # Unixware is an offshoot of SVR4, but it has its own version
992        # number series starting with 2...
993        # I am not positive that other SVR4 systems won't match this,
994	# I just have to hope.  -- rms.
995        # Use sysv4.2uw... so that sysv4* matches it.
996	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
997	exit ;;
998    i*86:OS/2:*:*)
999	# If we were able to find `uname', then EMX Unix compatibility
1000	# is probably installed.
1001	echo ${UNAME_MACHINE}-pc-os2-emx
1002	exit ;;
1003    i*86:XTS-300:*:STOP)
1004	echo ${UNAME_MACHINE}-unknown-stop
1005	exit ;;
1006    i*86:atheos:*:*)
1007	echo ${UNAME_MACHINE}-unknown-atheos
1008	exit ;;
1009    i*86:syllable:*:*)
1010	echo ${UNAME_MACHINE}-pc-syllable
1011	exit ;;
1012    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1013	echo i386-unknown-lynxos${UNAME_RELEASE}
1014	exit ;;
1015    i*86:*DOS:*:*)
1016	echo ${UNAME_MACHINE}-pc-msdosdjgpp
1017	exit ;;
1018    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1019	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1020	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1021		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1022	else
1023		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1024	fi
1025	exit ;;
1026    i*86:*:5:[678]*)
1027    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
1028	case `/bin/uname -X | grep "^Machine"` in
1029	    *486*)	     UNAME_MACHINE=i486 ;;
1030	    *Pentium)	     UNAME_MACHINE=i586 ;;
1031	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1032	esac
1033	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1034	exit ;;
1035    i*86:*:3.2:*)
1036	if test -f /usr/options/cb.name; then
1037		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1038		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1039	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1040		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1041		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1042		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1043			&& UNAME_MACHINE=i586
1044		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1045			&& UNAME_MACHINE=i686
1046		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1047			&& UNAME_MACHINE=i686
1048		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1049	else
1050		echo ${UNAME_MACHINE}-pc-sysv32
1051	fi
1052	exit ;;
1053    pc:*:*:*)
1054	# Left here for compatibility:
1055        # uname -m prints for DJGPP always 'pc', but it prints nothing about
1056        # the processor, so we play safe by assuming i586.
1057	# Note: whatever this is, it MUST be the same as what config.sub
1058	# prints for the "djgpp" host, or else GDB configury will decide that
1059	# this is a cross-build.
1060	echo i586-pc-msdosdjgpp
1061        exit ;;
1062    Intel:Mach:3*:*)
1063	echo i386-pc-mach3
1064	exit ;;
1065    paragon:*:*:*)
1066	echo i860-intel-osf1
1067	exit ;;
1068    i860:*:4.*:*) # i860-SVR4
1069	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1070	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1071	else # Add other i860-SVR4 vendors below as they are discovered.
1072	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
1073	fi
1074	exit ;;
1075    mini*:CTIX:SYS*5:*)
1076	# "miniframe"
1077	echo m68010-convergent-sysv
1078	exit ;;
1079    mc68k:UNIX:SYSTEM5:3.51m)
1080	echo m68k-convergent-sysv
1081	exit ;;
1082    M680?0:D-NIX:5.3:*)
1083	echo m68k-diab-dnix
1084	exit ;;
1085    M68*:*:R3V[5678]*:*)
1086	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1087    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)
1088	OS_REL=''
1089	test -r /etc/.relid \
1090	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1091	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1092	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1093	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1094	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1095    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1096        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1097          && { echo i486-ncr-sysv4; exit; } ;;
1098    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1099	OS_REL='.3'
1100	test -r /etc/.relid \
1101	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1102	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1103	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1104	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1105	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1106	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1107	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1108    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1109	echo m68k-unknown-lynxos${UNAME_RELEASE}
1110	exit ;;
1111    mc68030:UNIX_System_V:4.*:*)
1112	echo m68k-atari-sysv4
1113	exit ;;
1114    TSUNAMI:LynxOS:2.*:*)
1115	echo sparc-unknown-lynxos${UNAME_RELEASE}
1116	exit ;;
1117    rs6000:LynxOS:2.*:*)
1118	echo rs6000-unknown-lynxos${UNAME_RELEASE}
1119	exit ;;
1120    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1121	echo powerpc-unknown-lynxos${UNAME_RELEASE}
1122	exit ;;
1123    SM[BE]S:UNIX_SV:*:*)
1124	echo mips-dde-sysv${UNAME_RELEASE}
1125	exit ;;
1126    RM*:ReliantUNIX-*:*:*)
1127	echo mips-sni-sysv4
1128	exit ;;
1129    RM*:SINIX-*:*:*)
1130	echo mips-sni-sysv4
1131	exit ;;
1132    *:SINIX-*:*:*)
1133	if uname -p 2>/dev/null >/dev/null ; then
1134		UNAME_MACHINE=`(uname -p) 2>/dev/null`
1135		echo ${UNAME_MACHINE}-sni-sysv4
1136	else
1137		echo ns32k-sni-sysv
1138	fi
1139	exit ;;
1140    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1141                      # says <Richard.M.Bartel@ccMail.Census.GOV>
1142        echo i586-unisys-sysv4
1143        exit ;;
1144    *:UNIX_System_V:4*:FTX*)
1145	# From Gerald Hewes <hewes@openmarket.com>.
1146	# How about differentiating between stratus architectures? -djm
1147	echo hppa1.1-stratus-sysv4
1148	exit ;;
1149    *:*:*:FTX*)
1150	# From seanf@swdc.stratus.com.
1151	echo i860-stratus-sysv4
1152	exit ;;
1153    i*86:VOS:*:*)
1154	# From Paul.Green@stratus.com.
1155	echo ${UNAME_MACHINE}-stratus-vos
1156	exit ;;
1157    *:VOS:*:*)
1158	# From Paul.Green@stratus.com.
1159	echo hppa1.1-stratus-vos
1160	exit ;;
1161    mc68*:A/UX:*:*)
1162	echo m68k-apple-aux${UNAME_RELEASE}
1163	exit ;;
1164    news*:NEWS-OS:6*:*)
1165	echo mips-sony-newsos6
1166	exit ;;
1167    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1168	if [ -d /usr/nec ]; then
1169	        echo mips-nec-sysv${UNAME_RELEASE}
1170	else
1171	        echo mips-unknown-sysv${UNAME_RELEASE}
1172	fi
1173        exit ;;
1174    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
1175	echo powerpc-be-beos
1176	exit ;;
1177    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
1178	echo powerpc-apple-beos
1179	exit ;;
1180    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
1181	echo i586-pc-beos
1182	exit ;;
1183    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
1184	echo i586-pc-haiku
1185	exit ;;
1186    SX-4:SUPER-UX:*:*)
1187	echo sx4-nec-superux${UNAME_RELEASE}
1188	exit ;;
1189    SX-5:SUPER-UX:*:*)
1190	echo sx5-nec-superux${UNAME_RELEASE}
1191	exit ;;
1192    SX-6:SUPER-UX:*:*)
1193	echo sx6-nec-superux${UNAME_RELEASE}
1194	exit ;;
1195    SX-7:SUPER-UX:*:*)
1196	echo sx7-nec-superux${UNAME_RELEASE}
1197	exit ;;
1198    SX-8:SUPER-UX:*:*)
1199	echo sx8-nec-superux${UNAME_RELEASE}
1200	exit ;;
1201    SX-8R:SUPER-UX:*:*)
1202	echo sx8r-nec-superux${UNAME_RELEASE}
1203	exit ;;
1204    Power*:Rhapsody:*:*)
1205	echo powerpc-apple-rhapsody${UNAME_RELEASE}
1206	exit ;;
1207    *:Rhapsody:*:*)
1208	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1209	exit ;;
1210    *:Darwin:*:*)
1211	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1212	case $UNAME_PROCESSOR in
1213	    i386)
1214		eval $set_cc_for_build
1215		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1216		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1217		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1218		      grep IS_64BIT_ARCH >/dev/null
1219		  then
1220		      UNAME_PROCESSOR="x86_64"
1221		  fi
1222		fi ;;
1223	    unknown) UNAME_PROCESSOR=powerpc ;;
1224	esac
1225	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1226	exit ;;
1227    *:procnto*:*:* | *:QNX:[0123456789]*:*)
1228	UNAME_PROCESSOR=`uname -p`
1229	if test "$UNAME_PROCESSOR" = "x86"; then
1230		UNAME_PROCESSOR=i386
1231		UNAME_MACHINE=pc
1232	fi
1233	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1234	exit ;;
1235    *:QNX:*:4*)
1236	echo i386-pc-qnx
1237	exit ;;
1238    NEO-?:NONSTOP_KERNEL:*:*)
1239	echo neo-tandem-nsk${UNAME_RELEASE}
1240	exit ;;
1241    NSE-?:NONSTOP_KERNEL:*:*)
1242	echo nse-tandem-nsk${UNAME_RELEASE}
1243	exit ;;
1244    NSR-?:NONSTOP_KERNEL:*:*)
1245	echo nsr-tandem-nsk${UNAME_RELEASE}
1246	exit ;;
1247    *:NonStop-UX:*:*)
1248	echo mips-compaq-nonstopux
1249	exit ;;
1250    BS2000:POSIX*:*:*)
1251	echo bs2000-siemens-sysv
1252	exit ;;
1253    DS/*:UNIX_System_V:*:*)
1254	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1255	exit ;;
1256    *:Plan9:*:*)
1257	# "uname -m" is not consistent, so use $cputype instead. 386
1258	# is converted to i386 for consistency with other x86
1259	# operating systems.
1260	if test "$cputype" = "386"; then
1261	    UNAME_MACHINE=i386
1262	else
1263	    UNAME_MACHINE="$cputype"
1264	fi
1265	echo ${UNAME_MACHINE}-unknown-plan9
1266	exit ;;
1267    *:TOPS-10:*:*)
1268	echo pdp10-unknown-tops10
1269	exit ;;
1270    *:TENEX:*:*)
1271	echo pdp10-unknown-tenex
1272	exit ;;
1273    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1274	echo pdp10-dec-tops20
1275	exit ;;
1276    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1277	echo pdp10-xkl-tops20
1278	exit ;;
1279    *:TOPS-20:*:*)
1280	echo pdp10-unknown-tops20
1281	exit ;;
1282    *:ITS:*:*)
1283	echo pdp10-unknown-its
1284	exit ;;
1285    SEI:*:*:SEIUX)
1286        echo mips-sei-seiux${UNAME_RELEASE}
1287	exit ;;
1288    *:DragonFly:*:*)
1289	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1290	exit ;;
1291    *:*VMS:*:*)
1292    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
1293	case "${UNAME_MACHINE}" in
1294	    A*) echo alpha-dec-vms ; exit ;;
1295	    I*) echo ia64-dec-vms ; exit ;;
1296	    V*) echo vax-dec-vms ; exit ;;
1297	esac ;;
1298    *:XENIX:*:SysV)
1299	echo i386-pc-xenix
1300	exit ;;
1301    i*86:skyos:*:*)
1302	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1303	exit ;;
1304    i*86:rdos:*:*)
1305	echo ${UNAME_MACHINE}-pc-rdos
1306	exit ;;
1307    i*86:AROS:*:*)
1308	echo ${UNAME_MACHINE}-pc-aros
1309	exit ;;
1310esac
1311
1312#echo '(No uname command or uname output not recognized.)' 1>&2
1313#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1314
1315eval $set_cc_for_build
1316cat >$dummy.c <<EOF
1317#ifdef _SEQUENT_
1318# include <sys/types.h>
1319# include <sys/utsname.h>
1320#endif
1321main ()
1322{
1323#if defined (sony)
1324#if defined (MIPSEB)
1325  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1326     I don't know....  */
1327  printf ("mips-sony-bsd\n"); exit (0);
1328#else
1329#include <sys/param.h>
1330  printf ("m68k-sony-newsos%s\n",
1331#ifdef NEWSOS4
1332          "4"
1333#else
1334	  ""
1335#endif
1336         ); exit (0);
1337#endif
1338#endif
1339
1340#if defined (__arm) && defined (__acorn) && defined (__unix)
1341  printf ("arm-acorn-riscix\n"); exit (0);
1342#endif
1343
1344#if defined (hp300) && !defined (hpux)
1345  printf ("m68k-hp-bsd\n"); exit (0);
1346#endif
1347
1348#if defined (NeXT)
1349#if !defined (__ARCHITECTURE__)
1350#define __ARCHITECTURE__ "m68k"
1351#endif
1352  int version;
1353  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1354  if (version < 4)
1355    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1356  else
1357    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1358  exit (0);
1359#endif
1360
1361#if defined (MULTIMAX) || defined (n16)
1362#if defined (UMAXV)
1363  printf ("ns32k-encore-sysv\n"); exit (0);
1364#else
1365#if defined (CMU)
1366  printf ("ns32k-encore-mach\n"); exit (0);
1367#else
1368  printf ("ns32k-encore-bsd\n"); exit (0);
1369#endif
1370#endif
1371#endif
1372
1373#if defined (__386BSD__)
1374  printf ("i386-pc-bsd\n"); exit (0);
1375#endif
1376
1377#if defined (sequent)
1378#if defined (i386)
1379  printf ("i386-sequent-dynix\n"); exit (0);
1380#endif
1381#if defined (ns32000)
1382  printf ("ns32k-sequent-dynix\n"); exit (0);
1383#endif
1384#endif
1385
1386#if defined (_SEQUENT_)
1387    struct utsname un;
1388
1389    uname(&un);
1390
1391    if (strncmp(un.version, "V2", 2) == 0) {
1392	printf ("i386-sequent-ptx2\n"); exit (0);
1393    }
1394    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1395	printf ("i386-sequent-ptx1\n"); exit (0);
1396    }
1397    printf ("i386-sequent-ptx\n"); exit (0);
1398
1399#endif
1400
1401#if defined (vax)
1402# if !defined (ultrix)
1403#  include <sys/param.h>
1404#  if defined (BSD)
1405#   if BSD == 43
1406      printf ("vax-dec-bsd4.3\n"); exit (0);
1407#   else
1408#    if BSD == 199006
1409      printf ("vax-dec-bsd4.3reno\n"); exit (0);
1410#    else
1411      printf ("vax-dec-bsd\n"); exit (0);
1412#    endif
1413#   endif
1414#  else
1415    printf ("vax-dec-bsd\n"); exit (0);
1416#  endif
1417# else
1418    printf ("vax-dec-ultrix\n"); exit (0);
1419# endif
1420#endif
1421
1422#if defined (alliant) && defined (i860)
1423  printf ("i860-alliant-bsd\n"); exit (0);
1424#endif
1425
1426  exit (1);
1427}
1428EOF
1429
1430$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1431	{ echo "$SYSTEM_NAME"; exit; }
1432
1433# Apollos put the system type in the environment.
1434
1435test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1436
1437# Convex versions that predate uname can use getsysinfo(1)
1438
1439if [ -x /usr/convex/getsysinfo ]
1440then
1441    case `getsysinfo -f cpu_type` in
1442    c1*)
1443	echo c1-convex-bsd
1444	exit ;;
1445    c2*)
1446	if getsysinfo -f scalar_acc
1447	then echo c32-convex-bsd
1448	else echo c2-convex-bsd
1449	fi
1450	exit ;;
1451    c34*)
1452	echo c34-convex-bsd
1453	exit ;;
1454    c38*)
1455	echo c38-convex-bsd
1456	exit ;;
1457    c4*)
1458	echo c4-convex-bsd
1459	exit ;;
1460    esac
1461fi
1462
1463cat >&2 <<EOF
1464$0: unable to guess system type
1465
1466This script, last modified $timestamp, has failed to recognize
1467the operating system you are using. It is advised that you
1468download the most up to date version of the config scripts from
1469
1470  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1471and
1472  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1473
1474If the version you run ($0) is already up to date, please
1475send the following data and any information you think might be
1476pertinent to <config-patches@gnu.org> in order to provide the needed
1477information to handle your system.
1478
1479config.guess timestamp = $timestamp
1480
1481uname -m = `(uname -m) 2>/dev/null || echo unknown`
1482uname -r = `(uname -r) 2>/dev/null || echo unknown`
1483uname -s = `(uname -s) 2>/dev/null || echo unknown`
1484uname -v = `(uname -v) 2>/dev/null || echo unknown`
1485
1486/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1487/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1488
1489hostinfo               = `(hostinfo) 2>/dev/null`
1490/bin/universe          = `(/bin/universe) 2>/dev/null`
1491/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1492/bin/arch              = `(/bin/arch) 2>/dev/null`
1493/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1494/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1495
1496UNAME_MACHINE = ${UNAME_MACHINE}
1497UNAME_RELEASE = ${UNAME_RELEASE}
1498UNAME_SYSTEM  = ${UNAME_SYSTEM}
1499UNAME_VERSION = ${UNAME_VERSION}
1500EOF
1501
1502exit 1
1503
1504# Local variables:
1505# eval: (add-hook 'write-file-hooks 'time-stamp)
1506# time-stamp-start: "timestamp='"
1507# time-stamp-format: "%:y-%02m-%02d"
1508# time-stamp-end: "'"
1509# End:
1510