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