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.
6 # $Sudo: config.guess,v 1.10 2004/08/09 23:04:35 millert Exp $
10 # This file is free software; you can redistribute it and/or modify it
11 # under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2 of the License, or
13 # (at your option) any later version.
15 # This program is distributed in the hope that it will be useful, but
16 # WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 # General Public License for more details.
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 # As a special exception to the GNU General Public License, if you
25 # distribute this file as part of a program that contains a
26 # configuration script generated by Autoconf, you may include it under
27 # the same distribution terms that you use for the rest of that program.
29 # Originally written by Per Bothner <per@bothner.com>.
30 # Please send patches to <config-patches@gnu.org>. Submit a context
31 # diff and a properly formatted ChangeLog entry.
33 # This script attempts to guess a canonical system name similar to
34 # config.sub. If it succeeds, it prints the system name on stdout, and
35 # exits with 0. Otherwise, it exits with 1.
37 # The plan is that this can be called by configure scripts if you
38 # don't specify an explicit build system type.
40 me=`echo "$0" | sed -e 's,.*/,,'`
45 Output the configuration name of the system \`$me' is run on.
48 -h, --help print this help, then exit
49 -t, --time-stamp print date of last modification, then exit
50 -v, --version print version number, then exit
52 Report bugs and patches to <config-patches@gnu.org>."
55 GNU config.guess ($timestamp)
57 Originally written by Per Bothner.
58 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
59 Free Software Foundation, Inc.
61 This is free software; see the source for copying conditions. There is NO
62 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
65 Try \`$me --help' for more information."
68 while test $# -gt 0 ; do
70 --time-stamp | --time* | -t )
71 echo "$timestamp" ; exit 0 ;;
73 echo "$version" ; exit 0 ;;
75 echo "$usage"; exit 0 ;;
76 -- ) # Stop option processing
78 - ) # Use stdin as input.
81 echo "$me: invalid option $1$help" >&2
89 echo "$me: too many arguments$help" >&2
95 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
96 # compiler to aid in system detection is discouraged as it requires
97 # temporary files to be created and, as you can see below, it is a
98 # headache to deal with in a portable fashion.
100 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
101 # use `HOST_CC' if defined, but it is deprecated.
103 # This shell variable is my proudest work .. or something. --bje
105 set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
106 (old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
107 || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
108 dummy=$tmpdir/dummy ;
109 files="$dummy.c $dummy.o $dummy.rel $dummy" ;
110 trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
111 case $CC_FOR_BUILD,$HOST_CC,$CC in
112 ,,) echo "int x;" > $dummy.c ;
113 for c in cc gcc c89 c99 ; do
114 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
115 CC_FOR_BUILD="$c"; break ;
119 if test x"$CC_FOR_BUILD" = x ; then
120 CC_FOR_BUILD=no_compiler_found ;
123 ,,*) CC_FOR_BUILD=$CC ;;
124 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
128 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
129 # (ghazi@noc.rutgers.edu 1994-08-24)
130 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
131 PATH=$PATH:/.attbin ; export PATH
134 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
135 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
136 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
137 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
139 # Note: order is significant - the case branches are not exclusive.
141 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
143 # NetBSD (nbsd) targets should (where applicable) match one or
144 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
145 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
146 # switched to ELF, *-*-netbsd* would select the old
147 # object file format. This provides both forward
148 # compatibility and a consistent mechanism for selecting the
149 # object file format.
151 # Note: NetBSD doesn't particularly care about the vendor
152 # portion of the name. We always set it to "unknown".
153 sysctl="sysctl -n hw.machine_arch"
154 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
155 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
156 case "${UNAME_MACHINE_ARCH}" in
157 armeb) machine=armeb-unknown ;;
158 arm*) machine=arm-unknown ;;
159 sh3el) machine=shl-unknown ;;
160 sh3eb) machine=sh-unknown ;;
161 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
163 # The Operating System including object format, if it has switched
164 # to ELF recently, or will in the future.
165 case "${UNAME_MACHINE_ARCH}" in
166 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
167 eval $set_cc_for_build
168 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
169 | grep __ELF__ >/dev/null
171 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
172 # Return netbsd for either. FIX?
183 # Debian GNU/NetBSD machines have a different userland, and
184 # thus, need a distinct triplet. However, they do not need
185 # kernel version information, so it can be replaced with a
186 # suitable tag, in the style of linux-gnu.
187 case "${UNAME_VERSION}" in
192 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
195 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
196 # contains redundant information, the shorter form:
197 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
198 echo "${machine}-${os}${release}"
201 echo m68k-unknown-openbsd${UNAME_RELEASE}
204 echo m68k-unknown-openbsd${UNAME_RELEASE}
207 echo m68k-unknown-openbsd${UNAME_RELEASE}
210 echo powerpc-unknown-openbsd${UNAME_RELEASE}
213 echo m68k-unknown-openbsd${UNAME_RELEASE}
216 echo m88k-unknown-openbsd${UNAME_RELEASE}
219 echo powerpc-unknown-openbsd${UNAME_RELEASE}
222 echo mips64-unknown-openbsd${UNAME_RELEASE}
225 echo m68k-unknown-openbsd${UNAME_RELEASE}
228 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
231 if test $UNAME_RELEASE = "V4.0"; then
232 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
234 # A Vn.n version is a released version.
235 # A Tn.n version is a released field test version.
236 # A Xn.n version is an unreleased experimental baselevel.
237 # 1.2 uses "1.2" for uname -r.
238 eval $set_cc_for_build
242 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
249 .frame \$30,16,\$26,0
252 .long 0x47e03d80 # implver \$0
254 .long 0x47e20c21 # amask \$2,\$1
264 $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
265 if test "$?" = 0 ; then
268 UNAME_MACHINE="alpha"
271 UNAME_MACHINE="alphaev5"
274 UNAME_MACHINE="alphaev56"
277 UNAME_MACHINE="alphapca56"
280 UNAME_MACHINE="alphaev6"
283 UNAME_MACHINE="alphaev67"
286 UNAME_MACHINE="alphaev68"
289 UNAME_MACHINE="alphaev7"
293 rm -f $dummy.s $dummy && rmdir $tmpdir
294 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
296 Alpha\ *:Windows_NT*:*)
297 # How do we know it's Interix rather than the generic POSIX subsystem?
298 # Should we change UNAME_MACHINE based on the output of uname instead
299 # of the specific Alpha model?
300 echo alpha-pc-interix
302 21064:Windows_NT:50:3)
303 echo alpha-dec-winnt3.5
305 Amiga*:UNIX_System_V:4.0:*)
306 echo m68k-unknown-sysv4
308 *:[Aa]miga[Oo][Ss]:*:*)
309 echo ${UNAME_MACHINE}-unknown-amigaos
311 *:[Mm]orph[Oo][Ss]:*:*)
312 echo ${UNAME_MACHINE}-unknown-morphos
315 echo i370-ibm-openedition
317 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
318 echo arm-acorn-riscix${UNAME_RELEASE}
320 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
321 echo hppa1.1-hitachi-hiuxmpp
323 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
324 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
325 if test "`(/bin/universe) 2>/dev/null`" = att ; then
326 echo pyramid-pyramid-sysv3
328 echo pyramid-pyramid-bsd
332 echo pyramid-pyramid-svr4
334 DRS?6000:UNIX_SV:4.2*:7*)
335 case `/usr/bin/uname -p` in
336 sparc) echo sparc-icl-nx7 && exit 0 ;;
339 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
341 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
342 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
345 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
348 # According to config.sub, this is the proper way to canonicalize
349 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
350 # it's likely to be more like Solaris than SunOS4.
351 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
354 case "`/usr/bin/arch -k`" in
356 UNAME_RELEASE=`uname -v`
359 # Japanese Language versions have a version number like `4.1.3-JL'.
360 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
363 echo m68k-sun-sunos${UNAME_RELEASE}
366 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
367 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
368 case "`/bin/arch`" in
370 echo m68k-sun-sunos${UNAME_RELEASE}
373 echo sparc-sun-sunos${UNAME_RELEASE}
378 echo sparc-auspex-sunos${UNAME_RELEASE}
380 # The situation for MiNT is a little confusing. The machine name
381 # can be virtually everything (everything which is not
382 # "atarist" or "atariste" at least should have a processor
383 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
384 # to the lowercase version "mint" (or "freemint"). Finally
385 # the system name "TOS" denotes a system which is actually not
386 # MiNT. But MiNT is downward compatible to TOS, so this should
388 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
389 echo m68k-atari-mint${UNAME_RELEASE}
391 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
392 echo m68k-atari-mint${UNAME_RELEASE}
394 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
395 echo m68k-atari-mint${UNAME_RELEASE}
397 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
398 echo m68k-milan-mint${UNAME_RELEASE}
400 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
401 echo m68k-hades-mint${UNAME_RELEASE}
403 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
404 echo m68k-unknown-mint${UNAME_RELEASE}
407 echo powerpc-apple-machten${UNAME_RELEASE}
410 echo mips-dec-mach_bsd4.3
413 echo mips-dec-ultrix${UNAME_RELEASE}
416 echo vax-dec-ultrix${UNAME_RELEASE}
418 2020:CLIX:*:* | 2430:CLIX:*:*)
419 echo clipper-intergraph-clix${UNAME_RELEASE}
421 mips:*:*:UMIPS | mips:*:*:RISCos)
422 eval $set_cc_for_build
423 sed 's/^ //' << EOF >$dummy.c
425 #include <stdio.h> /* for printf() prototype */
426 int main (int argc, char *argv[]) {
428 int main (argc, argv) int argc; char *argv[]; {
430 #if defined (host_mips) && defined (MIPSEB)
431 #if defined (SYSTYPE_SYSV)
432 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
434 #if defined (SYSTYPE_SVR4)
435 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
437 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
438 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
444 $CC_FOR_BUILD -o $dummy $dummy.c \
445 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
446 && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
447 rm -f $dummy.c $dummy && rmdir $tmpdir
448 echo mips-mips-riscos${UNAME_RELEASE}
450 Motorola:PowerMAX_OS:*:*)
451 echo powerpc-motorola-powermax
453 Motorola:*:4.3:PL8-*)
454 echo powerpc-harris-powermax
456 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
457 echo powerpc-harris-powermax
459 Night_Hawk:Power_UNIX:*:*)
460 echo powerpc-harris-powerunix
463 echo m88k-harris-cxux7
466 echo m88k-motorola-sysv4
469 echo m88k-motorola-sysv3
472 # DG/UX returns AViiON for all architectures
473 UNAME_PROCESSOR=`/usr/bin/uname -p`
474 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
476 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
477 [ ${TARGET_BINARY_INTERFACE}x = x ]
479 echo m88k-dg-dgux${UNAME_RELEASE}
481 echo m88k-dg-dguxbcs${UNAME_RELEASE}
484 echo i586-dg-dgux${UNAME_RELEASE}
487 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
488 echo m88k-dolphin-sysv3
491 # Delta 88k system running SVR3
492 echo m88k-motorola-sysv3
494 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
495 echo m88k-tektronix-sysv3
497 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
498 echo m68k-tektronix-bsd
501 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
503 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
504 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
505 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
510 if [ -x /usr/bin/oslevel ] ; then
511 IBM_REV=`/usr/bin/oslevel`
513 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
515 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
518 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
519 eval $set_cc_for_build
520 sed 's/^ //' << EOF >$dummy.c
521 #include <sys/systemcfg.h>
527 puts("powerpc-ibm-aix3.2.5");
531 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
532 rm -f $dummy.c $dummy && rmdir $tmpdir
533 echo rs6000-ibm-aix3.2.5
534 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
535 echo rs6000-ibm-aix3.2.4
537 echo rs6000-ibm-aix3.2
541 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
542 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
547 if [ -x /usr/bin/oslevel ] ; then
548 IBM_REV=`/usr/bin/oslevel`
550 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
552 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
557 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
560 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
561 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
562 exit 0 ;; # report: romp-ibm BSD 4.3
564 echo rs6000-bull-bosx
569 9000/[34]??:4.3bsd:1.*:*)
572 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
575 9000/[34678]??:HP-UX:*:*)
576 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
577 case "${UNAME_MACHINE}" in
578 9000/31? ) HP_ARCH=m68000 ;;
579 9000/[34]?? ) HP_ARCH=m68k ;;
580 9000/[678][0-9][0-9])
581 if [ -x /usr/bin/getconf ]; then
582 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
583 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
584 case "${sc_cpu_version}" in
585 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
586 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
587 532) # CPU_PA_RISC2_0
588 case "${sc_kernel_bits}" in
589 32) HP_ARCH="hppa2.0n" ;;
590 64) HP_ARCH="hppa2.0w" ;;
591 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
595 if [ "${HP_ARCH}" = "" ]; then
596 eval $set_cc_for_build
597 sed 's/^ //' << EOF >$dummy.c
605 #if defined(_SC_KERNEL_BITS)
606 long bits = sysconf(_SC_KERNEL_BITS);
608 long cpu = sysconf (_SC_CPU_VERSION);
612 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
613 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
615 #if defined(_SC_KERNEL_BITS)
618 case 64: puts ("hppa2.0w"); break;
619 case 32: puts ("hppa2.0n"); break;
620 default: puts ("hppa2.0"); break;
622 #else /* !defined(_SC_KERNEL_BITS) */
623 puts ("hppa2.0"); break;
625 default: puts ("hppa1.0"); break;
630 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
631 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
632 rm -f $dummy.c $dummy && rmdir $tmpdir
635 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
638 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
639 echo ia64-hp-hpux${HPUX_REV}
642 eval $set_cc_for_build
643 sed 's/^ //' << EOF >$dummy.c
648 long cpu = sysconf (_SC_CPU_VERSION);
649 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
650 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
652 if (CPU_IS_PA_RISC (cpu))
656 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
657 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
658 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
659 default: puts ("hppa-hitachi-hiuxwe2"); break;
662 else if (CPU_IS_HP_MC68K (cpu))
663 puts ("m68k-hitachi-hiuxwe2");
664 else puts ("unknown-hitachi-hiuxwe2");
668 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
669 rm -f $dummy.c $dummy && rmdir $tmpdir
670 echo unknown-hitachi-hiuxwe2
672 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
678 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
679 echo hppa1.0-hp-mpeix
681 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
688 if [ -x /usr/sbin/sysversion ] ; then
689 echo ${UNAME_MACHINE}-unknown-osf1mk
691 echo ${UNAME_MACHINE}-unknown-osf1
695 echo hppa1.1-hp-lites
697 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
700 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
701 if getsysinfo -f scalar_acc
702 then echo c32-convex-bsd
703 else echo c2-convex-bsd
706 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
709 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
712 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
716 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
719 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
720 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
721 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
725 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
728 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
731 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
734 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
736 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
737 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
738 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
739 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
740 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
742 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
743 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
746 echo sparc-unknown-bsdi${UNAME_RELEASE}
749 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
752 # Determine whether the default compiler uses glibc.
753 eval $set_cc_for_build
754 sed 's/^ //' << EOF >$dummy.c
755 #include <features.h>
762 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
763 rm -f $dummy.c && rmdir $tmpdir
764 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
767 echo ${UNAME_MACHINE}-pc-cygwin
770 echo ${UNAME_MACHINE}-pc-mingw32
773 echo ${UNAME_MACHINE}-pc-pw32
776 echo i586-pc-interix3
778 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
779 echo i${UNAME_MACHINE}-pc-mks
781 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
782 # How do we know it's Interix rather than the generic POSIX subsystem?
783 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
784 # UNAME_MACHINE based on the output of uname instead of i386?
788 echo ${UNAME_MACHINE}-pc-uwin
791 echo powerpcle-unknown-cygwin
794 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
797 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
800 echo ${UNAME_MACHINE}-pc-minix
803 echo ${UNAME_MACHINE}-unknown-linux-gnu
806 echo ${UNAME_MACHINE}-unknown-linux-gnu
809 echo ${UNAME_MACHINE}-unknown-linux-gnu
812 eval $set_cc_for_build
813 sed 's/^ //' << EOF >$dummy.c
817 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
820 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
827 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
828 rm -f $dummy.c && rmdir $tmpdir
829 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
832 eval $set_cc_for_build
833 sed 's/^ //' << EOF >$dummy.c
837 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
840 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
847 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
848 rm -f $dummy.c && rmdir $tmpdir
849 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
852 echo powerpc-unknown-linux-gnu
855 echo powerpc64-unknown-linux-gnu
858 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
859 EV5) UNAME_MACHINE=alphaev5 ;;
860 EV56) UNAME_MACHINE=alphaev56 ;;
861 PCA56) UNAME_MACHINE=alphapca56 ;;
862 PCA57) UNAME_MACHINE=alphapca56 ;;
863 EV6) UNAME_MACHINE=alphaev6 ;;
864 EV67) UNAME_MACHINE=alphaev67 ;;
865 EV68*) UNAME_MACHINE=alphaev68 ;;
867 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
868 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
869 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
871 parisc:Linux:*:* | hppa:Linux:*:*)
873 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
874 PA7*) echo hppa1.1-unknown-linux-gnu ;;
875 PA8*) echo hppa2.0-unknown-linux-gnu ;;
876 *) echo hppa-unknown-linux-gnu ;;
879 parisc64:Linux:*:* | hppa64:Linux:*:*)
880 echo hppa64-unknown-linux-gnu
882 s390:Linux:*:* | s390x:Linux:*:*)
883 echo ${UNAME_MACHINE}-ibm-linux
886 echo ${UNAME_MACHINE}-unknown-linux-gnu
888 sparc:Linux:*:* | sparc64:Linux:*:*)
889 echo ${UNAME_MACHINE}-unknown-linux-gnu
892 echo x86_64-unknown-linux-gnu
895 # The BFD linker knows what the default object file format is, so
896 # first see if it will tell us. cd to the root directory to prevent
897 # problems with other programs or directories called `ld' in the path.
898 # Set LC_ALL=C to ensure ld outputs messages in English.
899 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
900 | sed -ne '/supported targets:/!d
902 s/.*supported targets: *//
905 case "$ld_supported_targets" in
907 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
910 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
913 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
916 # Either a pre-BFD a.out linker (linux-gnuoldld) or
917 # one that does not give us useful --help.
918 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
921 # Determine whether the default compiler is a.out or elf
922 eval $set_cc_for_build
923 sed 's/^ //' << EOF >$dummy.c
924 #include <features.h>
936 #ifdef __INTEL_COMPILER
943 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
944 rm -f $dummy.c && rmdir $tmpdir
945 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
946 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
949 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
950 # earlier versions are messed up and put the nodename in both
951 # sysname and nodename.
952 echo i386-sequent-sysv4
954 i*86:UNIX_SV:4.2MP:2.*)
955 # Unixware is an offshoot of SVR4, but it has its own version
956 # number series starting with 2...
957 # I am not positive that other SVR4 systems won't match this,
958 # I just have to hope. -- rms.
959 # Use sysv4.2uw... so that sysv4* matches it.
960 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
963 # If we were able to find `uname', then EMX Unix compatibility
964 # is probably installed.
965 echo ${UNAME_MACHINE}-pc-os2-emx
968 echo ${UNAME_MACHINE}-unknown-stop
971 echo ${UNAME_MACHINE}-unknown-atheos
973 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
974 echo i386-unknown-lynxos${UNAME_RELEASE}
977 echo ${UNAME_MACHINE}-pc-msdosdjgpp
979 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
980 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
981 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
982 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
984 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
988 case `/bin/uname -X | grep "^Machine"` in
989 *486*) UNAME_MACHINE=i486 ;;
990 *Pentium) UNAME_MACHINE=i586 ;;
991 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
993 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
996 if test -f /usr/options/cb.name; then
997 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
998 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
999 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1000 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1001 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1002 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1003 && UNAME_MACHINE=i586
1004 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1005 && UNAME_MACHINE=i686
1006 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1007 && UNAME_MACHINE=i686
1008 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1010 echo ${UNAME_MACHINE}-pc-sysv32
1014 # Left here for compatibility:
1015 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1016 # the processor, so we play safe by assuming i386.
1017 echo i386-pc-msdosdjgpp
1023 echo i860-intel-osf1
1025 i860:*:4.*:*) # i860-SVR4
1026 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1027 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1028 else # Add other i860-SVR4 vendors below as they are discovered.
1029 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1034 echo m68010-convergent-sysv
1036 mc68k:UNIX:SYSTEM5:3.51m)
1037 echo m68k-convergent-sysv
1043 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1044 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 | SDS2:*:4.0:3.0)
1046 test -r /etc/.relid \
1047 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1048 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1049 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1050 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1051 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1052 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1053 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1054 && echo i486-ncr-sysv4 && exit 0 ;;
1055 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1056 echo m68k-unknown-lynxos${UNAME_RELEASE}
1058 mc68030:UNIX_System_V:4.*:*)
1059 echo m68k-atari-sysv4
1061 TSUNAMI:LynxOS:2.*:*)
1062 echo sparc-unknown-lynxos${UNAME_RELEASE}
1064 rs6000:LynxOS:2.*:*)
1065 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1067 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1068 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1070 SM[BE]S:UNIX_SV:*:*)
1071 echo mips-dde-sysv${UNAME_RELEASE}
1073 RM*:ReliantUNIX-*:*:*)
1080 if uname -p 2>/dev/null >/dev/null ; then
1081 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1082 echo ${UNAME_MACHINE}-sni-sysv4
1087 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1088 # says <Richard.M.Bartel@ccMail.Census.GOV>
1089 echo i586-unisys-sysv4
1091 *:UNIX_System_V:4*:FTX*)
1092 # From Gerald Hewes <hewes@openmarket.com>.
1093 # How about differentiating between stratus architectures? -djm
1094 echo hppa1.1-stratus-sysv4
1097 # From seanf@swdc.stratus.com.
1098 echo i860-stratus-sysv4
1101 # From Paul.Green@stratus.com.
1102 echo hppa1.1-stratus-vos
1105 echo m68k-apple-aux${UNAME_RELEASE}
1108 echo mips-sony-newsos6
1110 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1111 if [ -d /usr/nec ]; then
1112 echo mips-nec-sysv${UNAME_RELEASE}
1114 echo mips-unknown-sysv${UNAME_RELEASE}
1117 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1118 echo powerpc-be-beos
1120 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1121 echo powerpc-apple-beos
1123 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1127 echo sx4-nec-superux${UNAME_RELEASE}
1130 echo sx5-nec-superux${UNAME_RELEASE}
1133 echo sx6-nec-superux${UNAME_RELEASE}
1135 Power*:Rhapsody:*:*)
1136 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1139 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1142 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1144 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1145 UNAME_PROCESSOR=`uname -p`
1146 if test "$UNAME_PROCESSOR" = "x86"; then
1147 UNAME_PROCESSOR=i386
1150 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1155 NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
1156 echo nsr-tandem-nsk${UNAME_RELEASE}
1159 echo mips-compaq-nonstopux
1162 echo bs2000-siemens-sysv
1164 DS/*:UNIX_System_V:*:*)
1165 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1168 # "uname -m" is not consistent, so use $cputype instead. 386
1169 # is converted to i386 for consistency with other x86
1170 # operating systems.
1171 if test "$cputype" = "386"; then
1174 UNAME_MACHINE="$cputype"
1176 echo ${UNAME_MACHINE}-unknown-plan9
1179 echo pdp10-unknown-tops10
1182 echo pdp10-unknown-tenex
1184 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1185 echo pdp10-dec-tops20
1187 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1188 echo pdp10-xkl-tops20
1191 echo pdp10-unknown-tops20
1194 echo pdp10-unknown-its
1198 #echo '(No uname command or uname output not recognized.)' 1>&2
1199 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1201 eval $set_cc_for_build
1204 # include <sys/types.h>
1205 # include <sys/utsname.h>
1210 #if defined (MIPSEB)
1211 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1213 printf ("mips-sony-bsd\n"); exit (0);
1215 #include <sys/param.h>
1216 printf ("m68k-sony-newsos%s\n",
1226 #if defined (__arm) && defined (__acorn) && defined (__unix)
1227 printf ("arm-acorn-riscix"); exit (0);
1230 #if defined (hp300) && !defined (hpux)
1231 printf ("m68k-hp-bsd\n"); exit (0);
1235 #if !defined (__ARCHITECTURE__)
1236 #define __ARCHITECTURE__ "m68k"
1239 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1241 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1243 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1247 #if defined (MULTIMAX) || defined (n16)
1249 printf ("ns32k-encore-sysv\n"); exit (0);
1252 printf ("ns32k-encore-mach\n"); exit (0);
1254 printf ("ns32k-encore-bsd\n"); exit (0);
1259 #if defined (__386BSD__)
1260 printf ("i386-pc-bsd\n"); exit (0);
1263 #if defined (sequent)
1265 printf ("i386-sequent-dynix\n"); exit (0);
1267 #if defined (ns32000)
1268 printf ("ns32k-sequent-dynix\n"); exit (0);
1272 #if defined (_SEQUENT_)
1277 if (strncmp(un.version, "V2", 2) == 0) {
1278 printf ("i386-sequent-ptx2\n"); exit (0);
1280 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1281 printf ("i386-sequent-ptx1\n"); exit (0);
1283 printf ("i386-sequent-ptx\n"); exit (0);
1288 # if !defined (ultrix)
1289 # include <sys/param.h>
1292 printf ("vax-dec-bsd4.3\n"); exit (0);
1295 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1297 printf ("vax-dec-bsd\n"); exit (0);
1301 printf ("vax-dec-bsd\n"); exit (0);
1304 printf ("vax-dec-ultrix\n"); exit (0);
1308 #if defined (alliant) && defined (i860)
1309 printf ("i860-alliant-bsd\n"); exit (0);
1316 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1317 rm -f $dummy.c $dummy && rmdir $tmpdir
1319 # Apollos put the system type in the environment.
1321 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1323 # Convex versions that predate uname can use getsysinfo(1)
1325 if [ -x /usr/convex/getsysinfo ]
1327 case `getsysinfo -f cpu_type` in
1332 if getsysinfo -f scalar_acc
1333 then echo c32-convex-bsd
1334 else echo c2-convex-bsd
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: "'"