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