2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992-2002, 2015 Free Software Foundation, Inc.
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 2 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, write to the Free Software
19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
26 # Originally written by Per Bothner <per@bothner.com>.
27 # Please send patches to <config-patches@gnu.org>. Submit a context
28 # diff and a properly formatted ChangeLog entry.
30 # This script attempts to guess a canonical system name similar to
31 # config.sub. If it succeeds, it prints the system name on stdout, and
32 # exits with 0. Otherwise, it exits with 1.
34 # The plan is that this can be called by configure scripts if you
35 # don't specify an explicit build system type.
37 me=`echo "$0" | sed -e 's,.*/,,'`
42 Output the configuration name of the system \`$me' is run on.
45 -h, --help print this help, then exit
46 -t, --time-stamp print date of last modification, then exit
47 -v, --version print version number, then exit
49 Report bugs and patches to <config-patches@gnu.org>."
52 GNU config.guess ($timestamp)
54 Originally written by Per Bothner.
55 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
56 Free Software Foundation, Inc.
58 This is free software; see the source for copying conditions. There is NO
59 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
62 Try \`$me --help' for more information."
65 while test $# -gt 0 ; do
67 --time-stamp | --time* | -t )
68 echo "$timestamp" ; exit 0 ;;
70 echo "$version" ; exit 0 ;;
72 echo "$usage"; exit 0 ;;
73 -- ) # Stop option processing
75 - ) # Use stdin as input.
78 echo "$me: invalid option $1$help" >&2
86 echo "$me: too many arguments$help" >&2
92 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
93 # compiler to aid in system detection is discouraged as it requires
94 # temporary files to be created and, as you can see below, it is a
95 # headache to deal with in a portable fashion.
97 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
98 # use `HOST_CC' if defined, but it is deprecated.
100 # This shell variable is my proudest work .. or something. --bje
102 set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
103 (old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
104 || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
105 dummy=$tmpdir/dummy ;
106 files="$dummy.c $dummy.o $dummy.rel $dummy" ;
107 trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
108 case $CC_FOR_BUILD,$HOST_CC,$CC in
109 ,,) echo "int x;" > $dummy.c ;
110 for c in cc gcc c89 c99 ; do
111 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
112 CC_FOR_BUILD="$c"; break ;
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 ;;
125 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
126 # (ghazi@noc.rutgers.edu 1994-08-24)
127 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
128 PATH=$PATH:/.attbin ; export PATH
131 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
132 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
133 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
134 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
136 # Note: order is significant - the case branches are not exclusive.
138 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
140 # NetBSD (nbsd) targets should (where applicable) match one or
141 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
142 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
143 # switched to ELF, *-*-netbsd* would select the old
144 # object file format. This provides both forward
145 # compatibility and a consistent mechanism for selecting the
146 # object file format.
148 # Note: NetBSD doesn't particularly care about the vendor
149 # portion of the name. We always set it to "unknown".
150 sysctl="sysctl -n hw.machine_arch"
151 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
152 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
153 case "${UNAME_MACHINE_ARCH}" in
154 armeb) machine=armeb-unknown ;;
155 arm*) machine=arm-unknown ;;
156 sh3el) machine=shl-unknown ;;
157 sh3eb) machine=sh-unknown ;;
158 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
160 # The Operating System including object format, if it has switched
161 # to ELF recently, or will in the future.
162 case "${UNAME_MACHINE_ARCH}" in
163 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
164 eval $set_cc_for_build
165 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
166 | grep __ELF__ >/dev/null
168 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
169 # Return netbsd for either. FIX?
180 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
181 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
182 # contains redundant information, the shorter form:
183 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
184 echo "${machine}-${os}${release}"
187 echo m68k-unknown-openbsd${UNAME_RELEASE}
190 echo mipsel-unknown-openbsd${UNAME_RELEASE}
193 echo m68k-unknown-openbsd${UNAME_RELEASE}
196 echo m68k-unknown-openbsd${UNAME_RELEASE}
199 echo powerpc-unknown-openbsd${UNAME_RELEASE}
202 echo m68k-unknown-openbsd${UNAME_RELEASE}
205 echo m88k-unknown-openbsd${UNAME_RELEASE}
208 echo powerpc-unknown-openbsd${UNAME_RELEASE}
211 echo mipsel-unknown-openbsd${UNAME_RELEASE}
214 echo mipseb-unknown-openbsd${UNAME_RELEASE}
217 echo m68k-unknown-openbsd${UNAME_RELEASE}
220 echo mipsel-unknown-openbsd${UNAME_RELEASE}
223 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
226 if test $UNAME_RELEASE = "V4.0"; then
227 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
229 # A Vn.n version is a released version.
230 # A Tn.n version is a released field test version.
231 # A Xn.n version is an unreleased experimental baselevel.
232 # 1.2 uses "1.2" for uname -r.
233 eval $set_cc_for_build
237 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
244 .frame \$30,16,\$26,0
247 .long 0x47e03d80 # implver \$0
249 .long 0x47e20c21 # amask \$2,\$1
259 $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
260 if test "$?" = 0 ; then
263 UNAME_MACHINE="alpha"
266 UNAME_MACHINE="alphaev5"
269 UNAME_MACHINE="alphaev56"
272 UNAME_MACHINE="alphapca56"
275 UNAME_MACHINE="alphaev6"
278 UNAME_MACHINE="alphaev67"
281 UNAME_MACHINE="alphaev68"
284 UNAME_MACHINE="alphaev7"
288 rm -f $dummy.s $dummy && rmdir $tmpdir
289 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
291 Alpha\ *:Windows_NT*:*)
292 # How do we know it's Interix rather than the generic POSIX subsystem?
293 # Should we change UNAME_MACHINE based on the output of uname instead
294 # of the specific Alpha model?
295 echo alpha-pc-interix
297 21064:Windows_NT:50:3)
298 echo alpha-dec-winnt3.5
300 Amiga*:UNIX_System_V:4.0:*)
301 echo m68k-unknown-sysv4
303 *:[Aa]miga[Oo][Ss]:*:*)
304 echo ${UNAME_MACHINE}-unknown-amigaos
306 *:[Mm]orph[Oo][Ss]:*:*)
307 echo ${UNAME_MACHINE}-unknown-morphos
310 echo i370-ibm-openedition
312 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
313 echo arm-acorn-riscix${UNAME_RELEASE}
315 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
316 echo hppa1.1-hitachi-hiuxmpp
318 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
319 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
320 if test "`(/bin/universe) 2>/dev/null`" = att ; then
321 echo pyramid-pyramid-sysv3
323 echo pyramid-pyramid-bsd
327 echo pyramid-pyramid-svr4
329 DRS?6000:UNIX_SV:4.2*:7*)
330 case `/usr/bin/uname -p` in
331 sparc) echo sparc-icl-nx7 && exit 0 ;;
334 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
336 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
337 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
340 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
343 # According to config.sub, this is the proper way to canonicalize
344 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
345 # it's likely to be more like Solaris than SunOS4.
346 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
349 case "`/usr/bin/arch -k`" in
351 UNAME_RELEASE=`uname -v`
354 # Japanese Language versions have a version number like `4.1.3-JL'.
355 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
358 echo m68k-sun-sunos${UNAME_RELEASE}
361 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
362 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
363 case "`/bin/arch`" in
365 echo m68k-sun-sunos${UNAME_RELEASE}
368 echo sparc-sun-sunos${UNAME_RELEASE}
373 echo sparc-auspex-sunos${UNAME_RELEASE}
375 # The situation for MiNT is a little confusing. The machine name
376 # can be virtually everything (everything which is not
377 # "atarist" or "atariste" at least should have a processor
378 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
379 # to the lowercase version "mint" (or "freemint"). Finally
380 # the system name "TOS" denotes a system which is actually not
381 # MiNT. But MiNT is downward compatible to TOS, so this should
383 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
384 echo m68k-atari-mint${UNAME_RELEASE}
386 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
387 echo m68k-atari-mint${UNAME_RELEASE}
389 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
390 echo m68k-atari-mint${UNAME_RELEASE}
392 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
393 echo m68k-milan-mint${UNAME_RELEASE}
395 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
396 echo m68k-hades-mint${UNAME_RELEASE}
398 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
399 echo m68k-unknown-mint${UNAME_RELEASE}
402 echo powerpc-apple-machten${UNAME_RELEASE}
405 echo mips-dec-mach_bsd4.3
408 echo mips-dec-ultrix${UNAME_RELEASE}
411 echo vax-dec-ultrix${UNAME_RELEASE}
413 2020:CLIX:*:* | 2430:CLIX:*:*)
414 echo clipper-intergraph-clix${UNAME_RELEASE}
416 mips:*:*:UMIPS | mips:*:*:RISCos)
417 eval $set_cc_for_build
418 sed 's/^ //' << EOF >$dummy.c
420 #include <stdio.h> /* for printf() prototype */
421 int main (int argc, char *argv[]) {
423 int main (argc, argv) int argc; char *argv[]; {
425 #if defined (host_mips) && defined (MIPSEB)
426 #if defined (SYSTYPE_SYSV)
427 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
429 #if defined (SYSTYPE_SVR4)
430 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
432 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
433 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
439 $CC_FOR_BUILD -o $dummy $dummy.c \
440 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
441 && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
442 rm -f $dummy.c $dummy && rmdir $tmpdir
443 echo mips-mips-riscos${UNAME_RELEASE}
445 Motorola:PowerMAX_OS:*:*)
446 echo powerpc-motorola-powermax
448 Motorola:*:4.3:PL8-*)
449 echo powerpc-harris-powermax
451 Night_Hawk:*:*:PowerMAX_OS)
452 echo powerpc-harris-powermax
454 Night_Hawk:Power_UNIX:*:*)
455 echo powerpc-harris-powerunix
458 echo m88k-harris-cxux7
461 echo m88k-motorola-sysv4
464 echo m88k-motorola-sysv3
467 # DG/UX returns AViiON for all architectures
468 UNAME_PROCESSOR=`/usr/bin/uname -p`
469 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
471 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
472 [ ${TARGET_BINARY_INTERFACE}x = x ]
474 echo m88k-dg-dgux${UNAME_RELEASE}
476 echo m88k-dg-dguxbcs${UNAME_RELEASE}
479 echo i586-dg-dgux${UNAME_RELEASE}
482 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
483 echo m88k-dolphin-sysv3
486 # Delta 88k system running SVR3
487 echo m88k-motorola-sysv3
489 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
490 echo m88k-tektronix-sysv3
492 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
493 echo m68k-tektronix-bsd
496 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
498 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
499 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
500 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
505 if [ -x /usr/bin/oslevel ] ; then
506 IBM_REV=`/usr/bin/oslevel`
508 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
510 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
513 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
514 eval $set_cc_for_build
515 sed 's/^ //' << EOF >$dummy.c
516 #include <sys/systemcfg.h>
522 puts("powerpc-ibm-aix3.2.5");
526 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
527 rm -f $dummy.c $dummy && rmdir $tmpdir
528 echo rs6000-ibm-aix3.2.5
529 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
530 echo rs6000-ibm-aix3.2.4
532 echo rs6000-ibm-aix3.2
536 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
537 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
542 if [ -x /usr/bin/oslevel ] ; then
543 IBM_REV=`/usr/bin/oslevel`
545 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
547 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
552 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
555 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
556 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
557 exit 0 ;; # report: romp-ibm BSD 4.3
559 echo rs6000-bull-bosx
564 9000/[34]??:4.3bsd:1.*:*)
567 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
570 9000/[34678]??:HP-UX:*:*)
571 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
572 case "${UNAME_MACHINE}" in
573 9000/31? ) HP_ARCH=m68000 ;;
574 9000/[34]?? ) HP_ARCH=m68k ;;
575 9000/[678][0-9][0-9])
576 if [ -x /usr/bin/getconf ]; then
577 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
578 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
579 case "${sc_cpu_version}" in
580 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
581 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
582 532) # CPU_PA_RISC2_0
583 case "${sc_kernel_bits}" in
584 32) HP_ARCH="hppa2.0n" ;;
585 64) HP_ARCH="hppa2.0w" ;;
586 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
590 if [ "${HP_ARCH}" = "" ]; then
591 eval $set_cc_for_build
592 sed 's/^ //' << EOF >$dummy.c
600 #if defined(_SC_KERNEL_BITS)
601 long bits = sysconf(_SC_KERNEL_BITS);
603 long cpu = sysconf (_SC_CPU_VERSION);
607 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
608 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
610 #if defined(_SC_KERNEL_BITS)
613 case 64: puts ("hppa2.0w"); break;
614 case 32: puts ("hppa2.0n"); break;
615 default: puts ("hppa2.0"); break;
617 #else /* !defined(_SC_KERNEL_BITS) */
618 puts ("hppa2.0"); break;
620 default: puts ("hppa1.0"); break;
625 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
626 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
627 rm -f $dummy.c $dummy && rmdir $tmpdir
630 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
633 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
634 echo ia64-hp-hpux${HPUX_REV}
637 eval $set_cc_for_build
638 sed 's/^ //' << EOF >$dummy.c
643 long cpu = sysconf (_SC_CPU_VERSION);
644 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
645 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
647 if (CPU_IS_PA_RISC (cpu))
651 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
652 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
653 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
654 default: puts ("hppa-hitachi-hiuxwe2"); break;
657 else if (CPU_IS_HP_MC68K (cpu))
658 puts ("m68k-hitachi-hiuxwe2");
659 else puts ("unknown-hitachi-hiuxwe2");
663 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
664 rm -f $dummy.c $dummy && rmdir $tmpdir
665 echo unknown-hitachi-hiuxwe2
667 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
673 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
674 echo hppa1.0-hp-mpeix
676 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
683 if [ -x /usr/sbin/sysversion ] ; then
684 echo ${UNAME_MACHINE}-unknown-osf1mk
686 echo ${UNAME_MACHINE}-unknown-osf1
690 echo hppa1.1-hp-lites
692 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
695 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
696 if getsysinfo -f scalar_acc
697 then echo c32-convex-bsd
698 else echo c2-convex-bsd
701 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
704 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
707 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
711 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
714 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
715 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
716 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
720 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
723 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
726 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
729 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
731 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
732 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
733 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
734 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
735 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
737 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
738 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
741 echo sparc-unknown-bsdi${UNAME_RELEASE}
744 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
747 # Determine whether the default compiler uses glibc.
748 eval $set_cc_for_build
749 sed 's/^ //' << EOF >$dummy.c
750 #include <features.h>
757 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
758 rm -f $dummy.c && rmdir $tmpdir
759 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
762 echo ${UNAME_MACHINE}-pc-cygwin
765 echo ${UNAME_MACHINE}-pc-mingw32
768 echo ${UNAME_MACHINE}-pc-pw32
771 echo i386-pc-interix3
773 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
774 # How do we know it's Interix rather than the generic POSIX subsystem?
775 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
776 # UNAME_MACHINE based on the output of uname instead of i386?
780 echo ${UNAME_MACHINE}-pc-uwin
783 echo powerpcle-unknown-cygwin
786 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
789 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
792 echo ${UNAME_MACHINE}-pc-minix
795 echo ${UNAME_MACHINE}-unknown-linux-gnu
798 echo ${UNAME_MACHINE}-unknown-linux-gnu
801 echo ${UNAME_MACHINE}-unknown-linux-gnu
804 eval $set_cc_for_build
805 sed 's/^ //' << EOF >$dummy.c
809 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
812 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
819 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
820 rm -f $dummy.c && rmdir $tmpdir
821 test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
824 echo powerpc-unknown-linux-gnu
827 echo powerpc64-unknown-linux-gnu
830 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
831 EV5) UNAME_MACHINE=alphaev5 ;;
832 EV56) UNAME_MACHINE=alphaev56 ;;
833 PCA56) UNAME_MACHINE=alphapca56 ;;
834 PCA57) UNAME_MACHINE=alphapca56 ;;
835 EV6) UNAME_MACHINE=alphaev6 ;;
836 EV67) UNAME_MACHINE=alphaev67 ;;
837 EV68*) UNAME_MACHINE=alphaev68 ;;
839 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
840 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
841 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
843 parisc:Linux:*:* | hppa:Linux:*:*)
845 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
846 PA7*) echo hppa1.1-unknown-linux-gnu ;;
847 PA8*) echo hppa2.0-unknown-linux-gnu ;;
848 *) echo hppa-unknown-linux-gnu ;;
851 parisc64:Linux:*:* | hppa64:Linux:*:*)
852 echo hppa64-unknown-linux-gnu
854 s390:Linux:*:* | s390x:Linux:*:*)
855 echo ${UNAME_MACHINE}-ibm-linux
858 echo ${UNAME_MACHINE}-unknown-linux-gnu
860 sparc:Linux:*:* | sparc64:Linux:*:*)
861 echo ${UNAME_MACHINE}-unknown-linux-gnu
864 echo x86_64-unknown-linux-gnu
867 # The BFD linker knows what the default object file format is, so
868 # first see if it will tell us. cd to the root directory to prevent
869 # problems with other programs or directories called `ld' in the path.
870 # Set LC_ALL=C to ensure ld outputs messages in English.
871 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
872 | sed -ne '/supported targets:/!d
874 s/.*supported targets: *//
877 case "$ld_supported_targets" in
879 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
882 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
885 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
888 # Either a pre-BFD a.out linker (linux-gnuoldld) or
889 # one that does not give us useful --help.
890 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
893 # Determine whether the default compiler is a.out or elf
894 eval $set_cc_for_build
895 sed 's/^ //' << EOF >$dummy.c
896 #include <features.h>
908 #ifdef __INTEL_COMPILER
915 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
916 rm -f $dummy.c && rmdir $tmpdir
917 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
918 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
921 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
922 # earlier versions are messed up and put the nodename in both
923 # sysname and nodename.
924 echo i386-sequent-sysv4
926 i*86:UNIX_SV:4.2MP:2.*)
927 # Unixware is an offshoot of SVR4, but it has its own version
928 # number series starting with 2...
929 # I am not positive that other SVR4 systems won't match this,
930 # I just have to hope. -- rms.
931 # Use sysv4.2uw... so that sysv4* matches it.
932 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
934 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
935 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
936 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
937 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
939 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
943 case `/bin/uname -X | grep "^Machine"` in
944 *486*) UNAME_MACHINE=i486 ;;
945 *Pentium) UNAME_MACHINE=i586 ;;
946 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
948 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
951 if test -f /usr/options/cb.name; then
952 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
953 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
954 elif /bin/uname -X 2>/dev/null >/dev/null ; then
955 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
956 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
957 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
958 && UNAME_MACHINE=i586
959 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
960 && UNAME_MACHINE=i686
961 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
962 && UNAME_MACHINE=i686
963 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
965 echo ${UNAME_MACHINE}-pc-sysv32
969 echo ${UNAME_MACHINE}-pc-msdosdjgpp
972 # Left here for compatibility:
973 # uname -m prints for DJGPP always 'pc', but it prints nothing about
974 # the processor, so we play safe by assuming i386.
975 echo i386-pc-msdosdjgpp
983 i860:*:4.*:*) # i860-SVR4
984 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
985 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
986 else # Add other i860-SVR4 vendors below as they are discovered.
987 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
992 echo m68010-convergent-sysv
994 mc68k:UNIX:SYSTEM5:3.51m)
995 echo m68k-convergent-sysv
998 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
999 3[34]??:*: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)
1001 test -r /etc/.relid \
1002 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1003 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1004 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1005 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1006 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1007 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1008 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1009 && echo i486-ncr-sysv4 && exit 0 ;;
1010 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1011 echo m68k-unknown-lynxos${UNAME_RELEASE}
1013 mc68030:UNIX_System_V:4.*:*)
1014 echo m68k-atari-sysv4
1016 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1017 echo i386-unknown-lynxos${UNAME_RELEASE}
1019 TSUNAMI:LynxOS:2.*:*)
1020 echo sparc-unknown-lynxos${UNAME_RELEASE}
1022 rs6000:LynxOS:2.*:*)
1023 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1025 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1026 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1028 SM[BE]S:UNIX_SV:*:*)
1029 echo mips-dde-sysv${UNAME_RELEASE}
1031 RM*:ReliantUNIX-*:*:*)
1038 if uname -p 2>/dev/null >/dev/null ; then
1039 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1040 echo ${UNAME_MACHINE}-sni-sysv4
1045 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1046 # says <Richard.M.Bartel@ccMail.Census.GOV>
1047 echo i586-unisys-sysv4
1049 *:UNIX_System_V:4*:FTX*)
1050 # From Gerald Hewes <hewes@openmarket.com>.
1051 # How about differentiating between stratus architectures? -djm
1052 echo hppa1.1-stratus-sysv4
1055 # From seanf@swdc.stratus.com.
1056 echo i860-stratus-sysv4
1059 # From Paul.Green@stratus.com.
1060 echo hppa1.1-stratus-vos
1063 echo m68k-apple-aux${UNAME_RELEASE}
1066 echo mips-sony-newsos6
1068 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1069 if [ -d /usr/nec ]; then
1070 echo mips-nec-sysv${UNAME_RELEASE}
1072 echo mips-unknown-sysv${UNAME_RELEASE}
1075 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1076 echo powerpc-be-beos
1078 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1079 echo powerpc-apple-beos
1081 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1085 echo sx4-nec-superux${UNAME_RELEASE}
1088 echo sx5-nec-superux${UNAME_RELEASE}
1091 echo sx6-nec-superux${UNAME_RELEASE}
1093 Power*:Rhapsody:*:*)
1094 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1097 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1100 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1102 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1103 UNAME_PROCESSOR=`uname -p`
1104 if test "$UNAME_PROCESSOR" = "x86"; then
1105 UNAME_PROCESSOR=i386
1108 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1113 NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
1114 echo nsr-tandem-nsk${UNAME_RELEASE}
1117 echo mips-compaq-nonstopux
1120 echo bs2000-siemens-sysv
1122 DS/*:UNIX_System_V:*:*)
1123 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1126 # "uname -m" is not consistent, so use $cputype instead. 386
1127 # is converted to i386 for consistency with other x86
1128 # operating systems.
1129 if test "$cputype" = "386"; then
1132 UNAME_MACHINE="$cputype"
1134 echo ${UNAME_MACHINE}-unknown-plan9
1137 # If we were able to find `uname', then EMX Unix compatibility
1138 # is probably installed.
1139 echo ${UNAME_MACHINE}-pc-os2-emx
1142 echo pdp10-unknown-tops10
1145 echo pdp10-unknown-tenex
1147 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1148 echo pdp10-dec-tops20
1150 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1151 echo pdp10-xkl-tops20
1154 echo pdp10-unknown-tops20
1157 echo pdp10-unknown-its
1159 i*86:XTS-300:*:STOP)
1160 echo ${UNAME_MACHINE}-unknown-stop
1163 echo ${UNAME_MACHINE}-unknown-atheos
1167 #echo '(No uname command or uname output not recognized.)' 1>&2
1168 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1170 eval $set_cc_for_build
1173 # include <sys/types.h>
1174 # include <sys/utsname.h>
1179 #if defined (MIPSEB)
1180 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1182 printf ("mips-sony-bsd\n"); exit (0);
1184 #include <sys/param.h>
1185 printf ("m68k-sony-newsos%s\n",
1195 #if defined (__arm) && defined (__acorn) && defined (__unix)
1196 printf ("arm-acorn-riscix"); exit (0);
1199 #if defined (hp300) && !defined (hpux)
1200 printf ("m68k-hp-bsd\n"); exit (0);
1204 #if !defined (__ARCHITECTURE__)
1205 #define __ARCHITECTURE__ "m68k"
1208 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1210 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1212 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1216 #if defined (MULTIMAX) || defined (n16)
1218 printf ("ns32k-encore-sysv\n"); exit (0);
1221 printf ("ns32k-encore-mach\n"); exit (0);
1223 printf ("ns32k-encore-bsd\n"); exit (0);
1228 #if defined (__386BSD__)
1229 printf ("i386-pc-bsd\n"); exit (0);
1232 #if defined (sequent)
1234 printf ("i386-sequent-dynix\n"); exit (0);
1236 #if defined (ns32000)
1237 printf ("ns32k-sequent-dynix\n"); exit (0);
1241 #if defined (_SEQUENT_)
1246 if (strncmp(un.version, "V2", 2) == 0) {
1247 printf ("i386-sequent-ptx2\n"); exit (0);
1249 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1250 printf ("i386-sequent-ptx1\n"); exit (0);
1252 printf ("i386-sequent-ptx\n"); exit (0);
1257 # if !defined (ultrix)
1258 # include <sys/param.h>
1261 printf ("vax-dec-bsd4.3\n"); exit (0);
1264 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1266 printf ("vax-dec-bsd\n"); exit (0);
1270 printf ("vax-dec-bsd\n"); exit (0);
1273 printf ("vax-dec-ultrix\n"); exit (0);
1277 #if defined (alliant) && defined (i860)
1278 printf ("i860-alliant-bsd\n"); exit (0);
1285 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1286 rm -f $dummy.c $dummy && rmdir $tmpdir
1288 # Apollos put the system type in the environment.
1290 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1292 # Convex versions that predate uname can use getsysinfo(1)
1294 if [ -x /usr/convex/getsysinfo ]
1296 case `getsysinfo -f cpu_type` in
1301 if getsysinfo -f scalar_acc
1302 then echo c32-convex-bsd
1303 else echo c2-convex-bsd
1319 $0: unable to guess system type
1321 This script, last modified $timestamp, has failed to recognize
1322 the operating system you are using. It is advised that you
1323 download the most up to date version of the config scripts from
1325 ftp://ftp.gnu.org/pub/gnu/config/
1327 If the version you run ($0) is already up to date, please
1328 send the following data and any information you think might be
1329 pertinent to <config-patches@gnu.org> in order to provide the needed
1330 information to handle your system.
1332 config.guess timestamp = $timestamp
1334 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1335 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1336 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1337 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1339 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1340 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1342 hostinfo = `(hostinfo) 2>/dev/null`
1343 /bin/universe = `(/bin/universe) 2>/dev/null`
1344 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1345 /bin/arch = `(/bin/arch) 2>/dev/null`
1346 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1347 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1349 UNAME_MACHINE = ${UNAME_MACHINE}
1350 UNAME_RELEASE = ${UNAME_RELEASE}
1351 UNAME_SYSTEM = ${UNAME_SYSTEM}
1352 UNAME_VERSION = ${UNAME_VERSION}
1358 # eval: (add-hook 'write-file-hooks 'time-stamp)
1359 # time-stamp-start: "timestamp='"
1360 # time-stamp-format: "%:y-%02m-%02d"
1361 # time-stamp-end: "'"