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