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