2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 # 2000, 2001, 2002 Free Software Foundation, Inc.
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Originally written by Per Bothner <per@bothner.com>.
28 # Please send patches to <config-patches@gnu.org>. Submit a context
29 # diff and a properly formatted ChangeLog entry.
31 # This script attempts to guess a canonical system name similar to
32 # config.sub. If it succeeds, it prints the system name on stdout, and
33 # exits with 0. Otherwise, it exits with 1.
35 # The plan is that this can be called by configure scripts if you
36 # don't specify an explicit build system type.
38 me=`echo "$0" | sed -e 's,.*/,,'`
43 Output the configuration name of the system \`$me' is run on.
46 -h, --help print this help, then exit
47 -t, --time-stamp print date of last modification, then exit
48 -v, --version print version number, then exit
50 Report bugs and patches to <config-patches@gnu.org>."
53 GNU config.guess ($timestamp)
55 Originally written by Per Bothner.
56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
57 Free Software Foundation, Inc.
59 This is free software; see the source for copying conditions. There is NO
60 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
63 Try \`$me --help' for more information."
66 while test $# -gt 0 ; do
68 --time-stamp | --time* | -t )
69 echo "$timestamp" ; exit 0 ;;
71 echo "$version" ; exit 0 ;;
73 echo "$usage"; exit 0 ;;
74 -- ) # Stop option processing
76 - ) # Use stdin as input.
79 echo "$me: invalid option $1$help" >&2
87 echo "$me: too many arguments$help" >&2
93 trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
95 # CC_FOR_BUILD -- compiler used by this script.
96 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
97 # use `HOST_CC' if defined, but it is deprecated.
99 set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
100 ,,) echo "int dummy(){}" > $dummy.c ;
101 for c in cc gcc c89 c99 ; do
102 ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
103 if test $? = 0 ; then
104 CC_FOR_BUILD="$c"; break ;
107 rm -f $dummy.c $dummy.o $dummy.rel ;
108 if test x"$CC_FOR_BUILD" = x ; then
109 CC_FOR_BUILD=no_compiler_found ;
112 ,,*) CC_FOR_BUILD=$CC ;;
113 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
116 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
117 # (ghazi@noc.rutgers.edu 1994-08-24)
118 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
119 PATH=$PATH:/.attbin ; export PATH
120 elif (test -f /usr/5bin/uname) >/dev/null 2>&1 ; then # bash
124 UNAME=`(uname) 2>/dev/null` || UNAME=unknown # bash
125 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
126 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
127 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
128 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
130 # Note: order is significant - the case branches are not exclusive.
132 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
133 # NOTE -- begin cases added for bash (mostly legacy) -- NOTE
135 echo mac68k-apple-machten${UNAME_RELEASE}
138 if test "`(/bin/universe) 2>/dev/null`" = att ; then
139 echo concurrent-concurrent-sysv3
141 echo concurrent-concurrent-bsd
145 echo ppc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
148 echo sparc-unknown-sysv${UNAME_RELEASE}
151 echo mips-mips-sysv${UNAME_RELEASE}
157 echo mips-mips-bsd4.4
159 MIS*:SMP_DC.OSx:*:dcosx) # not the same as below
160 echo pyramid-pyramid-sysv4
163 echo mips-sony-newsos${UNAME_RELEASE}
166 echo ibm370-ibm-aix${UNAME_RELEASE}
171 esa:OSF*1:*:* | ESA:OSF*:*:*)
180 Alpha*:Windows_NT:*:SP*)
187 # NOTE -- end legacy cases added for bash -- NOTE
189 # NetBSD (nbsd) targets should (where applicable) match one or
190 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
191 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
192 # switched to ELF, *-*-netbsd* would select the old
193 # object file format. This provides both forward
194 # compatibility and a consistent mechanism for selecting the
195 # object file format.
197 # Note: NetBSD doesn't particularly care about the vendor
198 # portion of the name. We always set it to "unknown".
199 sysctl="sysctl -n hw.machine_arch"
200 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
201 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
202 case "${UNAME_MACHINE_ARCH}" in
203 arm*) machine=arm-unknown ;;
204 sh3el) machine=shl-unknown ;;
205 sh3eb) machine=sh-unknown ;;
206 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
208 # The Operating System including object format, if it has switched
209 # to ELF recently, or will in the future.
210 case "${UNAME_MACHINE_ARCH}" in
211 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
212 eval $set_cc_for_build
213 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
214 | grep __ELF__ >/dev/null
216 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
217 # Return netbsd for either. FIX?
228 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
229 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
230 # contains redundant information, the shorter form:
231 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
232 echo "${machine}-${os}${release}"
235 echo m68k-unknown-openbsd${UNAME_RELEASE}
238 echo mipsel-unknown-openbsd${UNAME_RELEASE}
241 echo m68k-unknown-openbsd${UNAME_RELEASE}
244 echo m68k-unknown-openbsd${UNAME_RELEASE}
247 echo powerpc-unknown-openbsd${UNAME_RELEASE}
250 echo m68k-unknown-openbsd${UNAME_RELEASE}
253 echo m88k-unknown-openbsd${UNAME_RELEASE}
256 echo powerpc-unknown-openbsd${UNAME_RELEASE}
259 echo mipsel-unknown-openbsd${UNAME_RELEASE}
262 echo mipseb-unknown-openbsd${UNAME_RELEASE}
265 echo m68k-unknown-openbsd${UNAME_RELEASE}
267 vax:OpenBSD:*:*) # bash
268 echo vax-dec-openbsd${UNAME_RELEASE}
271 echo mipsel-unknown-openbsd${UNAME_RELEASE}
274 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
277 if test $UNAME_RELEASE = "V4.0"; then
278 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
280 # A Vn.n version is a released version.
281 # A Tn.n version is a released field test version.
282 # A Xn.n version is an unreleased experimental baselevel.
283 # 1.2 uses "1.2" for uname -r.
287 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
294 .frame \$30,16,\$26,0
297 .long 0x47e03d80 # implver \$0
299 .long 0x47e20c21 # amask \$2,\$1
309 eval $set_cc_for_build
310 $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
311 if test "$?" = 0 ; then
314 UNAME_MACHINE="alpha"
317 UNAME_MACHINE="alphaev5"
320 UNAME_MACHINE="alphaev56"
323 UNAME_MACHINE="alphapca56"
326 UNAME_MACHINE="alphaev6"
329 UNAME_MACHINE="alphaev67"
332 UNAME_MACHINE="alphaev68"
336 rm -f $dummy.s $dummy
337 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
339 Alpha\ *:Windows_NT*:*)
340 # How do we know it's Interix rather than the generic POSIX subsystem?
341 # Should we change UNAME_MACHINE based on the output of uname instead
342 # of the specific Alpha model?
343 echo alpha-pc-interix
345 21064:Windows_NT:50:3)
346 echo alpha-dec-winnt3.5
348 Amiga*:UNIX_System_V:4.0:*)
349 echo m68k-unknown-sysv4
351 *:[Aa]miga[Oo][Ss]:*:*)
352 echo ${UNAME_MACHINE}-unknown-amigaos
354 *:[Mm]orph[Oo][Ss]:*:*)
355 echo ${UNAME_MACHINE}-unknown-morphos
358 echo i370-ibm-openedition
360 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
361 echo arm-acorn-riscix${UNAME_RELEASE}
363 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
364 echo hppa1.1-hitachi-hiuxmpp
366 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
367 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
368 if test "`(/bin/universe) 2>/dev/null`" = att ; then
369 echo pyramid-pyramid-sysv3
371 echo pyramid-pyramid-bsd
375 echo pyramid-pyramid-svr4
378 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
380 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
381 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
384 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
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/[^.]*//'`
393 case "`/usr/bin/arch -k`" in
395 UNAME_RELEASE=`uname -v`
398 # Japanese Language versions have a version number like `4.1.3-JL'.
399 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
402 echo m68k-sun-sunos${UNAME_RELEASE}
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
409 echo m68k-sun-sunos${UNAME_RELEASE}
412 echo sparc-sun-sunos${UNAME_RELEASE}
417 echo sparc-auspex-sunos${UNAME_RELEASE}
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
427 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
428 echo m68k-atari-mint${UNAME_RELEASE}
430 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
431 echo m68k-atari-mint${UNAME_RELEASE}
433 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
434 echo m68k-atari-mint${UNAME_RELEASE}
436 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
437 echo m68k-milan-mint${UNAME_RELEASE}
439 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
440 echo m68k-hades-mint${UNAME_RELEASE}
442 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
443 echo m68k-unknown-mint${UNAME_RELEASE}
446 echo powerpc-apple-machten${UNAME_RELEASE}
449 echo mips-dec-mach_bsd4.3
452 echo mips-dec-ultrix${UNAME_RELEASE}
455 echo vax-dec-ultrix${UNAME_RELEASE}
457 2020:CLIX:*:* | 2430:CLIX:*:*)
458 echo clipper-intergraph-clix${UNAME_RELEASE}
460 mips:*:*:UMIPS | mips:*:*:RISCos)
461 eval $set_cc_for_build
462 sed 's/^ //' << EOF >$dummy.c
464 #include <stdio.h> /* for printf() prototype */
465 int main (int argc, char *argv[]) {
467 int main (argc, argv) int argc; char *argv[]; {
469 #if defined (host_mips) && defined (MIPSEB)
470 #if defined (SYSTYPE_SYSV)
471 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
473 #if defined (SYSTYPE_SVR4)
474 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
476 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
477 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
483 $CC_FOR_BUILD $dummy.c -o $dummy \
484 && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
485 && rm -f $dummy.c $dummy && exit 0
486 rm -f $dummy.c $dummy
487 echo mips-mips-riscos${UNAME_RELEASE}
489 Motorola:PowerMAX_OS:*:*)
490 echo powerpc-motorola-powermax
492 Night_Hawk:Power_UNIX:*:*)
493 echo powerpc-harris-powerunix
496 echo m88k-harris-cxux7
499 echo m88k-motorola-sysv4
502 echo m88k-motorola-sysv3
505 # DG/UX returns AViiON for all architectures
506 UNAME_PROCESSOR=`/usr/bin/uname -p`
507 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
509 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
510 [ ${TARGET_BINARY_INTERFACE}x = x ]
512 echo m88k-dg-dgux${UNAME_RELEASE}
514 echo m88k-dg-dguxbcs${UNAME_RELEASE}
517 echo i586-dg-dgux${UNAME_RELEASE}
520 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
521 echo m88k-dolphin-sysv3
524 # Delta 88k system running SVR3
525 echo m88k-motorola-sysv3
527 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
528 echo m88k-tektronix-sysv3
530 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
531 echo m68k-tektronix-bsd
534 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
536 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
537 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
538 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
543 if [ -x /usr/bin/oslevel ] ; then
544 IBM_REV=`/usr/bin/oslevel`
546 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
548 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
551 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
552 eval $set_cc_for_build
553 sed 's/^ //' << EOF >$dummy.c
554 #include <sys/systemcfg.h>
560 puts("powerpc-ibm-aix3.2.5");
564 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
565 rm -f $dummy.c $dummy
566 echo rs6000-ibm-aix3.2.5
567 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
568 echo rs6000-ibm-aix3.2.4
570 echo rs6000-ibm-aix3.2
574 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
575 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
580 if [ -x /usr/bin/oslevel ] ; then
581 IBM_REV=`/usr/bin/oslevel`
583 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
585 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
590 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
593 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
594 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
595 exit 0 ;; # report: romp-ibm BSD 4.3
597 echo rs6000-bull-bosx
602 9000/[34]??:4.3bsd:1.*:*)
605 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
608 9000/[34678]??:HP-UX:*:*)
609 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
610 case "${UNAME_MACHINE}" in
611 9000/31? ) HP_ARCH=m68000 ;;
612 9000/[34]?? ) HP_ARCH=m68k ;;
613 9000/[678][0-9][0-9])
614 if [ -x /usr/bin/getconf ]; then
615 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
616 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
617 case "${sc_cpu_version}" in
618 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
619 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
620 532) # CPU_PA_RISC2_0
621 case "${sc_kernel_bits}" in
622 32) HP_ARCH="hppa2.0n" ;;
623 64) HP_ARCH="hppa2.0w" ;;
624 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
628 if [ "${HP_ARCH}" = "" ]; then
629 eval $set_cc_for_build
630 sed 's/^ //' << EOF >$dummy.c
638 #if defined(_SC_KERNEL_BITS)
639 long bits = sysconf(_SC_KERNEL_BITS);
641 long cpu = sysconf (_SC_CPU_VERSION);
645 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
646 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
648 #if defined(_SC_KERNEL_BITS)
651 case 64: puts ("hppa2.0w"); break;
652 case 32: puts ("hppa2.0n"); break;
653 default: puts ("hppa2.0"); break;
655 #else /* !defined(_SC_KERNEL_BITS) */
656 puts ("hppa2.0"); break;
658 default: puts ("hppa1.0"); break;
663 (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`./$dummy`
664 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
665 rm -f $dummy.c $dummy
668 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
671 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
672 echo ia64-hp-hpux${HPUX_REV}
675 eval $set_cc_for_build
676 sed 's/^ //' << EOF >$dummy.c
681 long cpu = sysconf (_SC_CPU_VERSION);
682 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
683 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
685 if (CPU_IS_PA_RISC (cpu))
689 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
690 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
691 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
692 default: puts ("hppa-hitachi-hiuxwe2"); break;
695 else if (CPU_IS_HP_MC68K (cpu))
696 puts ("m68k-hitachi-hiuxwe2");
697 else puts ("unknown-hitachi-hiuxwe2");
701 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
702 rm -f $dummy.c $dummy
703 echo unknown-hitachi-hiuxwe2
705 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
711 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
712 echo hppa1.0-hp-mpeix
714 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
721 if [ -x /usr/sbin/sysversion ] ; then
722 echo ${UNAME_MACHINE}-unknown-osf1mk
724 echo ${UNAME_MACHINE}-unknown-osf1
728 echo hppa1.1-hp-lites
730 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
733 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
734 if getsysinfo -f scalar_acc
735 then echo c32-convex-bsd
736 else echo c2-convex-bsd
739 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
742 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
745 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
749 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
752 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
753 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
754 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
758 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
761 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
764 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
767 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
769 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
770 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
771 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
772 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
773 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
775 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
776 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
779 echo sparc-unknown-bsdi${UNAME_RELEASE}
782 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
785 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
788 echo ${UNAME_MACHINE}-pc-cygwin
791 echo ${UNAME_MACHINE}-pc-mingw32
794 echo ${UNAME_MACHINE}-pc-pw32
797 echo i386-pc-interix3
799 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
800 # How do we know it's Interix rather than the generic POSIX subsystem?
801 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
802 # UNAME_MACHINE based on the output of uname instead of i386?
806 echo ${UNAME_MACHINE}-pc-uwin
809 echo powerpcle-unknown-cygwin
812 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
815 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
818 echo ${UNAME_MACHINE}-pc-minix
821 echo ${UNAME_MACHINE}-unknown-linux-gnu
824 echo ${UNAME_MACHINE}-unknown-linux-gnu
827 echo ${UNAME_MACHINE}-unknown-linux-gnu
830 eval $set_cc_for_build
831 sed 's/^ //' << EOF >$dummy.c
835 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
838 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
845 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
847 test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
850 echo powerpc-unknown-linux-gnu
853 echo powerpc64-unknown-linux-gnu
856 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
857 EV5) UNAME_MACHINE=alphaev5 ;;
858 EV56) UNAME_MACHINE=alphaev56 ;;
859 PCA56) UNAME_MACHINE=alphapca56 ;;
860 PCA57) UNAME_MACHINE=alphapca56 ;;
861 EV6) UNAME_MACHINE=alphaev6 ;;
862 EV67) UNAME_MACHINE=alphaev67 ;;
863 EV68*) UNAME_MACHINE=alphaev68 ;;
865 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
866 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
867 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
869 parisc:Linux:*:* | hppa:Linux:*:*)
871 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
872 PA7*) echo hppa1.1-unknown-linux-gnu ;;
873 PA8*) echo hppa2.0-unknown-linux-gnu ;;
874 *) echo hppa-unknown-linux-gnu ;;
877 parisc64:Linux:*:* | hppa64:Linux:*:*)
878 echo hppa64-unknown-linux-gnu
880 s390:Linux:*:* | s390x:Linux:*:*)
881 echo ${UNAME_MACHINE}-ibm-linux
884 echo ${UNAME_MACHINE}-unknown-linux-gnu
886 sparc:Linux:*:* | sparc64:Linux:*:*)
887 echo ${UNAME_MACHINE}-unknown-linux-gnu
890 echo x86_64-unknown-linux-gnu
893 # The BFD linker knows what the default object file format is, so
894 # first see if it will tell us. cd to the root directory to prevent
895 # problems with other programs or directories called `ld' in the path.
896 # Set LC_ALL=C to ensure ld outputs messages in English.
897 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
898 | sed -ne '/supported targets:/!d
900 s/.*supported targets: *//
903 case "$ld_supported_targets" in
905 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
908 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
911 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
914 # Either a pre-BFD a.out linker (linux-gnuoldld) or
915 # one that does not give us useful --help.
916 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
919 # Determine whether the default compiler is a.out or elf
920 eval $set_cc_for_build
921 sed 's/^ //' << EOF >$dummy.c
922 #include <features.h>
934 #ifdef __INTEL_COMPILER
941 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
943 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
944 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
947 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
948 # earlier versions are messed up and put the nodename in both
949 # sysname and nodename.
950 echo i386-sequent-sysv4
952 i*86:UNIX_SV:4.2MP:2.*)
953 # Unixware is an offshoot of SVR4, but it has its own version
954 # number series starting with 2...
955 # I am not positive that other SVR4 systems won't match this,
956 # I just have to hope. -- rms.
957 # Use sysv4.2uw... so that sysv4* matches it.
958 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
960 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
961 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
962 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
963 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
965 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
969 case `/bin/uname -X | grep "^Machine"` in
970 *486*) UNAME_MACHINE=i486 ;;
971 *Pentium) UNAME_MACHINE=i586 ;;
972 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
974 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
977 if test -f /usr/options/cb.name; then
978 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
979 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
980 elif /bin/uname -X 2>/dev/null >/dev/null ; then
981 UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
982 (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
983 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
984 && UNAME_MACHINE=i586
985 (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
986 && UNAME_MACHINE=i686
987 (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
988 && UNAME_MACHINE=i686
989 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
991 echo ${UNAME_MACHINE}-pc-sysv32
995 echo ${UNAME_MACHINE}-pc-msdosdjgpp
998 # Left here for compatibility:
999 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1000 # the processor, so we play safe by assuming i386.
1001 echo i386-pc-msdosdjgpp
1007 echo i860-intel-osf1
1009 i860:*:4.*:*) # i860-SVR4
1010 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1011 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1012 else # Add other i860-SVR4 vendors below as they are discovered.
1013 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1018 echo m68010-convergent-sysv
1021 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1022 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 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
1024 test -r /etc/.relid \
1025 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1026 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1027 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1028 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1029 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1030 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1031 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1032 && echo i486-ncr-sysv4 && exit 0 ;;
1033 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1034 echo m68k-unknown-lynxos${UNAME_RELEASE}
1036 mc68030:UNIX_System_V:4.*:*)
1037 echo m68k-atari-sysv4
1039 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1040 echo i386-unknown-lynxos${UNAME_RELEASE}
1042 TSUNAMI:LynxOS:2.*:*)
1043 echo sparc-unknown-lynxos${UNAME_RELEASE}
1045 rs6000:LynxOS:2.*:*)
1046 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1048 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1049 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1051 SM[BE]S:UNIX_SV:*:*)
1052 echo mips-dde-sysv${UNAME_RELEASE}
1054 RM*:ReliantUNIX-*:*:*)
1061 if uname -p 2>/dev/null >/dev/null ; then
1062 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1063 echo ${UNAME_MACHINE}-sni-sysv4
1068 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1069 # says <Richard.M.Bartel@ccMail.Census.GOV>
1070 echo i586-unisys-sysv4
1072 *:UNIX_System_V:4*:FTX*)
1073 # From Gerald Hewes <hewes@openmarket.com>.
1074 # How about differentiating between stratus architectures? -djm
1075 echo hppa1.1-stratus-sysv4
1078 # From seanf@swdc.stratus.com.
1079 echo i860-stratus-sysv4
1082 # From Paul.Green@stratus.com.
1083 echo hppa1.1-stratus-vos
1086 echo m68k-apple-aux${UNAME_RELEASE}
1089 echo mips-sony-newsos6
1091 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1092 if [ -d /usr/nec ]; then
1093 echo mips-nec-sysv${UNAME_RELEASE}
1095 echo mips-unknown-sysv${UNAME_RELEASE}
1098 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1099 echo powerpc-be-beos
1101 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1102 echo powerpc-apple-beos
1104 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1108 echo sx4-nec-superux${UNAME_RELEASE}
1111 echo sx5-nec-superux${UNAME_RELEASE}
1113 Power*:Rhapsody:*:*)
1114 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1117 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1120 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1122 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1123 UNAME_PROCESSOR=`uname -p`
1124 if test "$UNAME_PROCESSOR" = "x86"; then
1125 UNAME_PROCESSOR=i386
1128 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1133 NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
1134 echo nsr-tandem-nsk${UNAME_RELEASE}
1137 echo mips-compaq-nonstopux
1140 echo bs2000-siemens-sysv
1142 DS/*:UNIX_System_V:*:*)
1143 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1146 # "uname -m" is not consistent, so use $cputype instead. 386
1147 # is converted to i386 for consistency with other x86
1148 # operating systems.
1149 if test "$cputype" = "386"; then
1152 UNAME_MACHINE="$cputype"
1154 echo ${UNAME_MACHINE}-unknown-plan9
1157 # If we were able to find `uname', then EMX Unix compatibility
1158 # is probably installed.
1159 echo ${UNAME_MACHINE}-pc-os2-emx
1162 echo pdp10-unknown-tops10
1165 echo pdp10-unknown-tenex
1167 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1168 echo pdp10-dec-tops20
1170 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1171 echo pdp10-xkl-tops20
1174 echo pdp10-unknown-tops20
1177 echo pdp10-unknown-its
1179 i*86:XTS-300:*:STOP)
1180 echo ${UNAME_MACHINE}-unknown-stop
1183 echo ${UNAME_MACHINE}-unknown-atheos
1187 #echo '(No uname command or uname output not recognized.)' 1>&2
1188 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1190 eval $set_cc_for_build
1193 # include <sys/types.h>
1194 # include <sys/utsname.h>
1199 #if defined (MIPSEB)
1200 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1202 printf ("mips-sony-bsd\n"); exit (0);
1204 #include <sys/param.h>
1205 printf ("m68k-sony-newsos%s\n",
1215 #if defined (__arm) && defined (__acorn) && defined (__unix)
1216 printf ("arm-acorn-riscix"); exit (0);
1219 #if defined (hp300) && !defined (hpux)
1220 printf ("m68k-hp-bsd\n"); exit (0);
1224 #if !defined (__ARCHITECTURE__)
1225 #define __ARCHITECTURE__ "m68k"
1228 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1230 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1232 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1236 #if defined (MULTIMAX) || defined (n16)
1238 printf ("ns32k-encore-sysv\n"); exit (0);
1241 printf ("ns32k-encore-mach\n"); exit (0);
1243 printf ("ns32k-encore-bsd\n"); exit (0);
1248 #if defined (__386BSD__)
1249 printf ("i386-pc-bsd\n"); exit (0);
1252 #if defined (sequent)
1254 printf ("i386-sequent-dynix\n"); exit (0);
1256 #if defined (ns32000)
1257 printf ("ns32k-sequent-dynix\n"); exit (0);
1261 #if defined (_SEQUENT_)
1266 if (strncmp(un.version, "V2", 2) == 0) {
1267 printf ("i386-sequent-ptx2\n"); exit (0);
1269 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1270 printf ("i386-sequent-ptx1\n"); exit (0);
1272 printf ("i386-sequent-ptx\n"); exit (0);
1277 # if !defined (ultrix)
1278 # include <sys/param.h>
1281 printf ("vax-dec-bsd4.3\n"); exit (0);
1284 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1286 printf ("vax-dec-bsd\n"); exit (0);
1290 printf ("vax-dec-bsd\n"); exit (0);
1293 printf ("vax-dec-ultrix\n"); exit (0);
1297 #if defined (alliant) && defined (i860)
1298 printf ("i860-alliant-bsd\n"); exit (0);
1305 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
1306 rm -f $dummy.c $dummy
1308 # Apollos put the system type in the environment.
1310 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1312 # Convex versions that predate uname can use getsysinfo(1)
1314 if [ -x /usr/convex/getsysinfo ]
1316 case `getsysinfo -f cpu_type` in
1321 if getsysinfo -f scalar_acc
1322 then echo c32-convex-bsd
1323 else echo c2-convex-bsd
1338 # NOTE -- Begin fallback cases added for bash -- NOTE
1340 uts) echo uts-amdahl-sysv${UNAME_RELEASE}; exit 0 ;;
1343 if [ -f /bin/fxc.info ]; then
1344 echo fxc-alliant-concentrix
1347 # NOTE -- End fallback cases added for bash -- NOTE
1350 $0: unable to guess system type
1352 This script, last modified $timestamp, has failed to recognize
1353 the operating system you are using. It is advised that you
1354 download the most up to date version of the config scripts from
1356 ftp://ftp.gnu.org/pub/gnu/config/
1358 If the version you run ($0) is already up to date, please
1359 send the following data and any information you think might be
1360 pertinent to <config-patches@gnu.org> in order to provide the needed
1361 information to handle your system.
1363 config.guess timestamp = $timestamp
1365 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1366 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1367 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1368 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1370 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1371 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1373 hostinfo = `(hostinfo) 2>/dev/null`
1374 /bin/universe = `(/bin/universe) 2>/dev/null`
1375 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1376 /bin/arch = `(/bin/arch) 2>/dev/null`
1377 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1378 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1380 UNAME_MACHINE = ${UNAME_MACHINE}
1381 UNAME_RELEASE = ${UNAME_RELEASE}
1382 UNAME_SYSTEM = ${UNAME_SYSTEM}
1383 UNAME_VERSION = ${UNAME_VERSION}
1389 # eval: (add-hook 'write-file-hooks 'time-stamp)
1390 # time-stamp-start: "timestamp='"
1391 # time-stamp-format: "%:y-%02m-%02d"
1392 # time-stamp-end: "'"