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