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 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
94 # compiler to aid in system detection is discouraged as it requires
95 # temporary files to be created and, as you can see below, it is a
96 # headache to deal with in a portable fashion.
98 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
99 # use `HOST_CC' if defined, but it is deprecated.
101 # This shell variable is my proudest work .. or something. --bje
103 set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
104 (old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
105 || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
106 dummy=$tmpdir/dummy ;
107 files="$dummy.c $dummy.o $dummy.rel $dummy" ;
108 trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
109 case $CC_FOR_BUILD,$HOST_CC,$CC in
110 ,,) echo "int x;" > $dummy.c ;
111 for c in cc gcc c89 c99 ; do
112 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
113 CC_FOR_BUILD="$c"; break ;
117 if test x"$CC_FOR_BUILD" = x ; then
118 CC_FOR_BUILD=no_compiler_found ;
121 ,,*) CC_FOR_BUILD=$CC ;;
122 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
126 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
127 # (ghazi@noc.rutgers.edu 1994-08-24)
128 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
129 PATH=$PATH:/.attbin ; export PATH
132 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
133 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
134 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
135 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
137 # Note: order is significant - the case branches are not exclusive.
139 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
141 # NetBSD (nbsd) targets should (where applicable) match one or
142 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
143 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
144 # switched to ELF, *-*-netbsd* would select the old
145 # object file format. This provides both forward
146 # compatibility and a consistent mechanism for selecting the
147 # object file format.
149 # Note: NetBSD doesn't particularly care about the vendor
150 # portion of the name. We always set it to "unknown".
151 sysctl="sysctl -n hw.machine_arch"
152 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
153 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
154 case "${UNAME_MACHINE_ARCH}" in
155 armeb) machine=armeb-unknown ;;
156 arm*) machine=arm-unknown ;;
157 sh3el) machine=shl-unknown ;;
158 sh3eb) machine=sh-unknown ;;
159 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
161 # The Operating System including object format, if it has switched
162 # to ELF recently, or will in the future.
163 case "${UNAME_MACHINE_ARCH}" in
164 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
165 eval $set_cc_for_build
166 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
167 | grep __ELF__ >/dev/null
169 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
170 # Return netbsd for either. FIX?
181 # Debian GNU/NetBSD machines have a different userland, and
182 # thus, need a distinct triplet. However, they do not need
183 # kernel version information, so it can be replaced with a
184 # suitable tag, in the style of linux-gnu.
185 case "${UNAME_VERSION}" in
190 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
193 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
194 # contains redundant information, the shorter form:
195 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
196 echo "${machine}-${os}${release}"
199 echo m68k-unknown-openbsd${UNAME_RELEASE}
202 echo mipsel-unknown-openbsd${UNAME_RELEASE}
205 echo m68k-unknown-openbsd${UNAME_RELEASE}
208 echo m68k-unknown-openbsd${UNAME_RELEASE}
211 echo powerpc-unknown-openbsd${UNAME_RELEASE}
214 echo m68k-unknown-openbsd${UNAME_RELEASE}
217 echo m88k-unknown-openbsd${UNAME_RELEASE}
220 echo powerpc-unknown-openbsd${UNAME_RELEASE}
223 echo mipsel-unknown-openbsd${UNAME_RELEASE}
226 echo mipseb-unknown-openbsd${UNAME_RELEASE}
229 echo m68k-unknown-openbsd${UNAME_RELEASE}
232 echo mipsel-unknown-openbsd${UNAME_RELEASE}
235 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
238 if test $UNAME_RELEASE = "V4.0"; then
239 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
241 # A Vn.n version is a released version.
242 # A Tn.n version is a released field test version.
243 # A Xn.n version is an unreleased experimental baselevel.
244 # 1.2 uses "1.2" for uname -r.
245 eval $set_cc_for_build
249 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
256 .frame \$30,16,\$26,0
259 .long 0x47e03d80 # implver \$0
261 .long 0x47e20c21 # amask \$2,\$1
271 $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
272 if test "$?" = 0 ; then
275 UNAME_MACHINE="alpha"
278 UNAME_MACHINE="alphaev5"
281 UNAME_MACHINE="alphaev56"
284 UNAME_MACHINE="alphapca56"
287 UNAME_MACHINE="alphaev6"
290 UNAME_MACHINE="alphaev67"
293 UNAME_MACHINE="alphaev68"
296 UNAME_MACHINE="alphaev7"
300 rm -f $dummy.s $dummy && rmdir $tmpdir
301 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
303 Alpha\ *:Windows_NT*:*)
304 # How do we know it's Interix rather than the generic POSIX subsystem?
305 # Should we change UNAME_MACHINE based on the output of uname instead
306 # of the specific Alpha model?
307 echo alpha-pc-interix
309 21064:Windows_NT:50:3)
310 echo alpha-dec-winnt3.5
312 Amiga*:UNIX_System_V:4.0:*)
313 echo m68k-unknown-sysv4
315 *:[Aa]miga[Oo][Ss]:*:*)
316 echo ${UNAME_MACHINE}-unknown-amigaos
318 *:[Mm]orph[Oo][Ss]:*:*)
319 echo ${UNAME_MACHINE}-unknown-morphos
322 echo i370-ibm-openedition
324 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
325 echo arm-acorn-riscix${UNAME_RELEASE}
327 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
328 echo hppa1.1-hitachi-hiuxmpp
330 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
331 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
332 if test "`(/bin/universe) 2>/dev/null`" = att ; then
333 echo pyramid-pyramid-sysv3
335 echo pyramid-pyramid-bsd
339 echo pyramid-pyramid-svr4
341 DRS?6000:UNIX_SV:4.2*:7*)
342 case `/usr/bin/uname -p` in
343 sparc) echo sparc-icl-nx7 && exit 0 ;;
346 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
348 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
349 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
352 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
355 # According to config.sub, this is the proper way to canonicalize
356 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
357 # it's likely to be more like Solaris than SunOS4.
358 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
361 case "`/usr/bin/arch -k`" in
363 UNAME_RELEASE=`uname -v`
366 # Japanese Language versions have a version number like `4.1.3-JL'.
367 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
370 echo m68k-sun-sunos${UNAME_RELEASE}
373 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
374 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
375 case "`/bin/arch`" in
377 echo m68k-sun-sunos${UNAME_RELEASE}
380 echo sparc-sun-sunos${UNAME_RELEASE}
385 echo sparc-auspex-sunos${UNAME_RELEASE}
387 # The situation for MiNT is a little confusing. The machine name
388 # can be virtually everything (everything which is not
389 # "atarist" or "atariste" at least should have a processor
390 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
391 # to the lowercase version "mint" (or "freemint"). Finally
392 # the system name "TOS" denotes a system which is actually not
393 # MiNT. But MiNT is downward compatible to TOS, so this should
395 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
396 echo m68k-atari-mint${UNAME_RELEASE}
398 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
399 echo m68k-atari-mint${UNAME_RELEASE}
401 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
402 echo m68k-atari-mint${UNAME_RELEASE}
404 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
405 echo m68k-milan-mint${UNAME_RELEASE}
407 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
408 echo m68k-hades-mint${UNAME_RELEASE}
410 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
411 echo m68k-unknown-mint${UNAME_RELEASE}
414 echo powerpc-apple-machten${UNAME_RELEASE}
417 echo mips-dec-mach_bsd4.3
420 echo mips-dec-ultrix${UNAME_RELEASE}
423 echo vax-dec-ultrix${UNAME_RELEASE}
425 2020:CLIX:*:* | 2430:CLIX:*:*)
426 echo clipper-intergraph-clix${UNAME_RELEASE}
428 mips:*:*:UMIPS | mips:*:*:RISCos)
429 eval $set_cc_for_build
430 sed 's/^ //' << EOF >$dummy.c
432 #include <stdio.h> /* for printf() prototype */
433 int main (int argc, char *argv[]) {
435 int main (argc, argv) int argc; char *argv[]; {
437 #if defined (host_mips) && defined (MIPSEB)
438 #if defined (SYSTYPE_SYSV)
439 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
441 #if defined (SYSTYPE_SVR4)
442 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
444 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
445 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
451 $CC_FOR_BUILD -o $dummy $dummy.c \
452 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
453 && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
454 rm -f $dummy.c $dummy && rmdir $tmpdir
455 echo mips-mips-riscos${UNAME_RELEASE}
457 Motorola:PowerMAX_OS:*:*)
458 echo powerpc-motorola-powermax
460 Motorola:*:4.3:PL8-*)
461 echo powerpc-harris-powermax
463 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
464 echo powerpc-harris-powermax
466 Night_Hawk:Power_UNIX:*:*)
467 echo powerpc-harris-powerunix
470 echo m88k-harris-cxux7
473 echo m88k-motorola-sysv4
476 echo m88k-motorola-sysv3
479 # DG/UX returns AViiON for all architectures
480 UNAME_PROCESSOR=`/usr/bin/uname -p`
481 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
483 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
484 [ ${TARGET_BINARY_INTERFACE}x = x ]
486 echo m88k-dg-dgux${UNAME_RELEASE}
488 echo m88k-dg-dguxbcs${UNAME_RELEASE}
491 echo i586-dg-dgux${UNAME_RELEASE}
494 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
495 echo m88k-dolphin-sysv3
498 # Delta 88k system running SVR3
499 echo m88k-motorola-sysv3
501 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
502 echo m88k-tektronix-sysv3
504 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
505 echo m68k-tektronix-bsd
508 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
510 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
511 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
512 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
517 if [ -x /usr/bin/oslevel ] ; then
518 IBM_REV=`/usr/bin/oslevel`
520 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
522 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
525 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
526 eval $set_cc_for_build
527 sed 's/^ //' << EOF >$dummy.c
528 #include <sys/systemcfg.h>
534 puts("powerpc-ibm-aix3.2.5");
538 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
539 rm -f $dummy.c $dummy && rmdir $tmpdir
540 echo rs6000-ibm-aix3.2.5
541 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
542 echo rs6000-ibm-aix3.2.4
544 echo rs6000-ibm-aix3.2
548 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
549 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
554 if [ -x /usr/bin/oslevel ] ; then
555 IBM_REV=`/usr/bin/oslevel`
557 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
559 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
564 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
567 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
568 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
569 exit 0 ;; # report: romp-ibm BSD 4.3
571 echo rs6000-bull-bosx
576 9000/[34]??:4.3bsd:1.*:*)
579 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
582 9000/[34678]??:HP-UX:*:*)
583 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
584 case "${UNAME_MACHINE}" in
585 9000/31? ) HP_ARCH=m68000 ;;
586 9000/[34]?? ) HP_ARCH=m68k ;;
587 9000/[678][0-9][0-9])
588 if [ -x /usr/bin/getconf ]; then
589 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
590 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
591 case "${sc_cpu_version}" in
592 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
593 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
594 532) # CPU_PA_RISC2_0
595 case "${sc_kernel_bits}" in
596 32) HP_ARCH="hppa2.0n" ;;
597 64) HP_ARCH="hppa2.0w" ;;
598 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
602 if [ "${HP_ARCH}" = "" ]; then
603 eval $set_cc_for_build
604 sed 's/^ //' << EOF >$dummy.c
612 #if defined(_SC_KERNEL_BITS)
613 long bits = sysconf(_SC_KERNEL_BITS);
615 long cpu = sysconf (_SC_CPU_VERSION);
619 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
620 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
622 #if defined(_SC_KERNEL_BITS)
625 case 64: puts ("hppa2.0w"); break;
626 case 32: puts ("hppa2.0n"); break;
627 default: puts ("hppa2.0"); break;
629 #else /* !defined(_SC_KERNEL_BITS) */
630 puts ("hppa2.0"); break;
632 default: puts ("hppa1.0"); break;
637 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
638 test -z "$HP_ARCH" && HP_ARCH=hppa
639 rm -f $dummy.c $dummy
642 if [ ${HP_ARCH} = "hppa2.0w" ]
644 # avoid double evaluation of $set_cc_for_build
645 test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
646 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
653 test -n "$CC_FOR_BUILD" && rmdir $tmpdir
654 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
657 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
658 echo ia64-hp-hpux${HPUX_REV}
661 eval $set_cc_for_build
662 sed 's/^ //' << EOF >$dummy.c
667 long cpu = sysconf (_SC_CPU_VERSION);
668 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
669 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
671 if (CPU_IS_PA_RISC (cpu))
675 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
676 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
677 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
678 default: puts ("hppa-hitachi-hiuxwe2"); break;
681 else if (CPU_IS_HP_MC68K (cpu))
682 puts ("m68k-hitachi-hiuxwe2");
683 else puts ("unknown-hitachi-hiuxwe2");
687 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
688 rm -f $dummy.c $dummy && rmdir $tmpdir
689 echo unknown-hitachi-hiuxwe2
691 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
697 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
698 echo hppa1.0-hp-mpeix
700 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
707 if [ -x /usr/sbin/sysversion ] ; then
708 echo ${UNAME_MACHINE}-unknown-osf1mk
710 echo ${UNAME_MACHINE}-unknown-osf1
714 echo hppa1.1-hp-lites
716 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
719 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
720 if getsysinfo -f scalar_acc
721 then echo c32-convex-bsd
722 else echo c2-convex-bsd
725 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
728 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
731 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
735 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
738 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
739 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
740 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
744 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
747 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
750 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
753 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
755 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
756 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
757 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
758 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
759 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
761 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
762 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
765 echo sparc-unknown-bsdi${UNAME_RELEASE}
768 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
771 # Determine whether the default compiler uses glibc.
772 eval $set_cc_for_build
773 sed 's/^ //' << EOF >$dummy.c
774 #include <features.h>
781 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
782 rm -f $dummy.c && rmdir $tmpdir
783 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
786 echo ${UNAME_MACHINE}-pc-cygwin
789 echo ${UNAME_MACHINE}-pc-mingw32
792 echo ${UNAME_MACHINE}-pc-pw32
795 echo i586-pc-interix3
797 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
798 echo i${UNAME_MACHINE}-pc-mks
800 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
801 # How do we know it's Interix rather than the generic POSIX subsystem?
802 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
803 # UNAME_MACHINE based on the output of uname instead of i386?
807 echo ${UNAME_MACHINE}-pc-uwin
810 echo powerpcle-unknown-cygwin
813 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
816 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
819 echo ${UNAME_MACHINE}-pc-minix
822 echo ${UNAME_MACHINE}-unknown-linux-gnu
825 echo ${UNAME_MACHINE}-unknown-linux-gnu
828 echo ${UNAME_MACHINE}-unknown-linux-gnu
831 eval $set_cc_for_build
832 sed 's/^ //' << EOF >$dummy.c
836 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
839 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
846 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
847 rm -f $dummy.c && rmdir $tmpdir
848 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
851 eval $set_cc_for_build
852 sed 's/^ //' << EOF >$dummy.c
856 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
859 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
866 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
867 rm -f $dummy.c && rmdir $tmpdir
868 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
871 echo powerpc-unknown-linux-gnu
874 echo powerpc64-unknown-linux-gnu
877 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
878 EV5) UNAME_MACHINE=alphaev5 ;;
879 EV56) UNAME_MACHINE=alphaev56 ;;
880 PCA56) UNAME_MACHINE=alphapca56 ;;
881 PCA57) UNAME_MACHINE=alphapca56 ;;
882 EV6) UNAME_MACHINE=alphaev6 ;;
883 EV67) UNAME_MACHINE=alphaev67 ;;
884 EV68*) UNAME_MACHINE=alphaev68 ;;
886 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
887 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
888 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
890 parisc:Linux:*:* | hppa:Linux:*:*)
892 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
893 PA7*) echo hppa1.1-unknown-linux-gnu ;;
894 PA8*) echo hppa2.0-unknown-linux-gnu ;;
895 *) echo hppa-unknown-linux-gnu ;;
898 parisc64:Linux:*:* | hppa64:Linux:*:*)
899 echo hppa64-unknown-linux-gnu
901 s390:Linux:*:* | s390x:Linux:*:*)
902 echo ${UNAME_MACHINE}-ibm-linux
905 echo ${UNAME_MACHINE}-unknown-linux-gnu
907 sparc:Linux:*:* | sparc64:Linux:*:*)
908 echo ${UNAME_MACHINE}-unknown-linux-gnu
911 echo x86_64-unknown-linux-gnu
914 # The BFD linker knows what the default object file format is, so
915 # first see if it will tell us. cd to the root directory to prevent
916 # problems with other programs or directories called `ld' in the path.
917 # Set LC_ALL=C to ensure ld outputs messages in English.
918 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
919 | sed -ne '/supported targets:/!d
921 s/.*supported targets: *//
924 case "$ld_supported_targets" in
926 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
929 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
932 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
935 # Either a pre-BFD a.out linker (linux-gnuoldld) or
936 # one that does not give us useful --help.
937 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
940 # Determine whether the default compiler is a.out or elf
941 eval $set_cc_for_build
942 sed 's/^ //' << EOF >$dummy.c
943 #include <features.h>
955 #ifdef __INTEL_COMPILER
962 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
963 rm -f $dummy.c && rmdir $tmpdir
964 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
965 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
968 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
969 # earlier versions are messed up and put the nodename in both
970 # sysname and nodename.
971 echo i386-sequent-sysv4
973 i*86:UNIX_SV:4.2MP:2.*)
974 # Unixware is an offshoot of SVR4, but it has its own version
975 # number series starting with 2...
976 # I am not positive that other SVR4 systems won't match this,
977 # I just have to hope. -- rms.
978 # Use sysv4.2uw... so that sysv4* matches it.
979 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
982 # If we were able to find `uname', then EMX Unix compatibility
983 # is probably installed.
984 echo ${UNAME_MACHINE}-pc-os2-emx
987 echo ${UNAME_MACHINE}-unknown-stop
990 echo ${UNAME_MACHINE}-unknown-atheos
992 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
993 echo i386-unknown-lynxos${UNAME_RELEASE}
996 echo ${UNAME_MACHINE}-pc-msdosdjgpp
998 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
999 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1000 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1001 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1003 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1007 case `/bin/uname -X | grep "^Machine"` in
1008 *486*) UNAME_MACHINE=i486 ;;
1009 *Pentium) UNAME_MACHINE=i586 ;;
1010 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1012 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1015 if test -f /usr/options/cb.name; then
1016 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1017 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1018 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1019 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1020 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1021 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1022 && UNAME_MACHINE=i586
1023 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1024 && UNAME_MACHINE=i686
1025 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1026 && UNAME_MACHINE=i686
1027 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1029 echo ${UNAME_MACHINE}-pc-sysv32
1033 # Left here for compatibility:
1034 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1035 # the processor, so we play safe by assuming i386.
1036 echo i386-pc-msdosdjgpp
1042 echo i860-intel-osf1
1044 i860:*:4.*:*) # i860-SVR4
1045 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1046 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1047 else # Add other i860-SVR4 vendors below as they are discovered.
1048 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1053 echo m68010-convergent-sysv
1055 mc68k:UNIX:SYSTEM5:3.51m)
1056 echo m68k-convergent-sysv
1062 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1063 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)
1065 test -r /etc/.relid \
1066 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1067 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1068 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1069 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1070 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1071 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1072 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1073 && echo i486-ncr-sysv4 && exit 0 ;;
1074 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1075 echo m68k-unknown-lynxos${UNAME_RELEASE}
1077 mc68030:UNIX_System_V:4.*:*)
1078 echo m68k-atari-sysv4
1080 TSUNAMI:LynxOS:2.*:*)
1081 echo sparc-unknown-lynxos${UNAME_RELEASE}
1083 rs6000:LynxOS:2.*:*)
1084 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1086 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1087 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1089 SM[BE]S:UNIX_SV:*:*)
1090 echo mips-dde-sysv${UNAME_RELEASE}
1092 RM*:ReliantUNIX-*:*:*)
1099 if uname -p 2>/dev/null >/dev/null ; then
1100 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1101 echo ${UNAME_MACHINE}-sni-sysv4
1106 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1107 # says <Richard.M.Bartel@ccMail.Census.GOV>
1108 echo i586-unisys-sysv4
1110 *:UNIX_System_V:4*:FTX*)
1111 # From Gerald Hewes <hewes@openmarket.com>.
1112 # How about differentiating between stratus architectures? -djm
1113 echo hppa1.1-stratus-sysv4
1116 # From seanf@swdc.stratus.com.
1117 echo i860-stratus-sysv4
1120 # From Paul.Green@stratus.com.
1121 echo hppa1.1-stratus-vos
1124 echo m68k-apple-aux${UNAME_RELEASE}
1127 echo mips-sony-newsos6
1129 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1130 if [ -d /usr/nec ]; then
1131 echo mips-nec-sysv${UNAME_RELEASE}
1133 echo mips-unknown-sysv${UNAME_RELEASE}
1136 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1137 echo powerpc-be-beos
1139 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1140 echo powerpc-apple-beos
1142 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1146 echo sx4-nec-superux${UNAME_RELEASE}
1149 echo sx5-nec-superux${UNAME_RELEASE}
1152 echo sx6-nec-superux${UNAME_RELEASE}
1154 Power*:Rhapsody:*:*)
1155 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1158 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1161 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1163 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1164 UNAME_PROCESSOR=`uname -p`
1165 if test "$UNAME_PROCESSOR" = "x86"; then
1166 UNAME_PROCESSOR=i386
1169 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1174 NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
1175 echo nsr-tandem-nsk${UNAME_RELEASE}
1178 echo mips-compaq-nonstopux
1181 echo bs2000-siemens-sysv
1183 DS/*:UNIX_System_V:*:*)
1184 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1187 # "uname -m" is not consistent, so use $cputype instead. 386
1188 # is converted to i386 for consistency with other x86
1189 # operating systems.
1190 if test "$cputype" = "386"; then
1193 UNAME_MACHINE="$cputype"
1195 echo ${UNAME_MACHINE}-unknown-plan9
1198 echo pdp10-unknown-tops10
1201 echo pdp10-unknown-tenex
1203 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1204 echo pdp10-dec-tops20
1206 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1207 echo pdp10-xkl-tops20
1210 echo pdp10-unknown-tops20
1213 echo pdp10-unknown-its
1217 #echo '(No uname command or uname output not recognized.)' 1>&2
1218 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1220 eval $set_cc_for_build
1223 # include <sys/types.h>
1224 # include <sys/utsname.h>
1229 #if defined (MIPSEB)
1230 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1232 printf ("mips-sony-bsd\n"); exit (0);
1234 #include <sys/param.h>
1235 printf ("m68k-sony-newsos%s\n",
1245 #if defined (__arm) && defined (__acorn) && defined (__unix)
1246 printf ("arm-acorn-riscix"); exit (0);
1249 #if defined (hp300) && !defined (hpux)
1250 printf ("m68k-hp-bsd\n"); exit (0);
1254 #if !defined (__ARCHITECTURE__)
1255 #define __ARCHITECTURE__ "m68k"
1258 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1260 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1262 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1266 #if defined (MULTIMAX) || defined (n16)
1268 printf ("ns32k-encore-sysv\n"); exit (0);
1271 printf ("ns32k-encore-mach\n"); exit (0);
1273 printf ("ns32k-encore-bsd\n"); exit (0);
1278 #if defined (__386BSD__)
1279 printf ("i386-pc-bsd\n"); exit (0);
1282 #if defined (sequent)
1284 printf ("i386-sequent-dynix\n"); exit (0);
1286 #if defined (ns32000)
1287 printf ("ns32k-sequent-dynix\n"); exit (0);
1291 #if defined (_SEQUENT_)
1296 if (strncmp(un.version, "V2", 2) == 0) {
1297 printf ("i386-sequent-ptx2\n"); exit (0);
1299 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1300 printf ("i386-sequent-ptx1\n"); exit (0);
1302 printf ("i386-sequent-ptx\n"); exit (0);
1307 # if !defined (ultrix)
1308 # include <sys/param.h>
1311 printf ("vax-dec-bsd4.3\n"); exit (0);
1314 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1316 printf ("vax-dec-bsd\n"); exit (0);
1320 printf ("vax-dec-bsd\n"); exit (0);
1323 printf ("vax-dec-ultrix\n"); exit (0);
1327 #if defined (alliant) && defined (i860)
1328 printf ("i860-alliant-bsd\n"); exit (0);
1335 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1336 rm -f $dummy.c $dummy && rmdir $tmpdir
1338 # Apollos put the system type in the environment.
1340 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1342 # Convex versions that predate uname can use getsysinfo(1)
1344 if [ -x /usr/convex/getsysinfo ]
1346 case `getsysinfo -f cpu_type` in
1351 if getsysinfo -f scalar_acc
1352 then echo c32-convex-bsd
1353 else echo c2-convex-bsd
1369 $0: unable to guess system type
1371 This script, last modified $timestamp, has failed to recognize
1372 the operating system you are using. It is advised that you
1373 download the most up to date version of the config scripts from
1375 ftp://ftp.gnu.org/pub/gnu/config/
1377 If the version you run ($0) is already up to date, please
1378 send the following data and any information you think might be
1379 pertinent to <config-patches@gnu.org> in order to provide the needed
1380 information to handle your system.
1382 config.guess timestamp = $timestamp
1384 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1385 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1386 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1387 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1389 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1390 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1392 hostinfo = `(hostinfo) 2>/dev/null`
1393 /bin/universe = `(/bin/universe) 2>/dev/null`
1394 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1395 /bin/arch = `(/bin/arch) 2>/dev/null`
1396 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1397 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1399 UNAME_MACHINE = ${UNAME_MACHINE}
1400 UNAME_RELEASE = ${UNAME_RELEASE}
1401 UNAME_SYSTEM = ${UNAME_SYSTEM}
1402 UNAME_VERSION = ${UNAME_VERSION}
1408 # eval: (add-hook 'write-file-hooks 'time-stamp)
1409 # time-stamp-start: "timestamp='"
1410 # time-stamp-format: "%:y-%02m-%02d"
1411 # time-stamp-end: "'"