2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 # 2000, 2001, 2002, 2003 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 # Portable tmp directory creation inspired by the Autoconf team.
104 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
105 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
107 { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
108 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
109 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
111 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
112 case $CC_FOR_BUILD,$HOST_CC,$CC in
113 ,,) echo "int x;" > $dummy.c ;
114 for c in cc gcc c89 c99 ; do
115 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
116 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 ;;
127 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
128 # (ghazi@noc.rutgers.edu 1994-08-24)
129 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
130 PATH=$PATH:/.attbin ; export PATH
133 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
134 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
135 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
136 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
138 # Note: order is significant - the case branches are not exclusive.
140 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
142 # NetBSD (nbsd) targets should (where applicable) match one or
143 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
144 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
145 # switched to ELF, *-*-netbsd* would select the old
146 # object file format. This provides both forward
147 # compatibility and a consistent mechanism for selecting the
148 # object file format.
150 # Note: NetBSD doesn't particularly care about the vendor
151 # portion of the name. We always set it to "unknown".
152 sysctl="sysctl -n hw.machine_arch"
153 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
154 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
155 case "${UNAME_MACHINE_ARCH}" in
156 armeb) machine=armeb-unknown ;;
157 arm*) machine=arm-unknown ;;
158 sh3el) machine=shl-unknown ;;
159 sh3eb) machine=sh-unknown ;;
160 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
162 # The Operating System including object format, if it has switched
163 # to ELF recently, or will in the future.
164 case "${UNAME_MACHINE_ARCH}" in
165 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
166 eval $set_cc_for_build
167 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
168 | grep __ELF__ >/dev/null
170 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
171 # Return netbsd for either. FIX?
182 # Debian GNU/NetBSD machines have a different userland, and
183 # thus, need a distinct triplet. However, they do not need
184 # kernel version information, so it can be replaced with a
185 # suitable tag, in the style of linux-gnu.
186 case "${UNAME_VERSION}" in
191 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
194 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
195 # contains redundant information, the shorter form:
196 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
197 echo "${machine}-${os}${release}"
200 echo m68k-unknown-openbsd${UNAME_RELEASE}
203 echo mipsel-unknown-openbsd${UNAME_RELEASE}
206 echo m68k-unknown-openbsd${UNAME_RELEASE}
209 echo m68k-unknown-openbsd${UNAME_RELEASE}
212 echo powerpc-unknown-openbsd${UNAME_RELEASE}
215 echo m68k-unknown-openbsd${UNAME_RELEASE}
218 echo m88k-unknown-openbsd${UNAME_RELEASE}
221 echo powerpc-unknown-openbsd${UNAME_RELEASE}
224 echo mipsel-unknown-openbsd${UNAME_RELEASE}
227 echo mipseb-unknown-openbsd${UNAME_RELEASE}
230 echo m68k-unknown-openbsd${UNAME_RELEASE}
233 echo mipsel-unknown-openbsd${UNAME_RELEASE}
236 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
239 echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE}
242 if test $UNAME_RELEASE = "V4.0"; then
243 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
245 # A Vn.n version is a released version.
246 # A Tn.n version is a released field test version.
247 # A Xn.n version is an unreleased experimental baselevel.
248 # 1.2 uses "1.2" for uname -r.
249 eval $set_cc_for_build
253 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
260 .frame \$30,16,\$26,0
263 .long 0x47e03d80 # implver \$0
265 .long 0x47e20c21 # amask \$2,\$1
275 $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
276 if test "$?" = 0 ; then
279 UNAME_MACHINE="alpha"
282 UNAME_MACHINE="alphaev5"
285 UNAME_MACHINE="alphaev56"
288 UNAME_MACHINE="alphapca56"
291 UNAME_MACHINE="alphaev6"
294 UNAME_MACHINE="alphaev67"
297 UNAME_MACHINE="alphaev68"
300 UNAME_MACHINE="alphaev7"
304 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
306 Alpha\ *:Windows_NT*:*)
307 # How do we know it's Interix rather than the generic POSIX subsystem?
308 # Should we change UNAME_MACHINE based on the output of uname instead
309 # of the specific Alpha model?
310 echo alpha-pc-interix
312 21064:Windows_NT:50:3)
313 echo alpha-dec-winnt3.5
315 Amiga*:UNIX_System_V:4.0:*)
316 echo m68k-unknown-sysv4
318 *:[Aa]miga[Oo][Ss]:*:*)
319 echo ${UNAME_MACHINE}-unknown-amigaos
321 *:[Mm]orph[Oo][Ss]:*:*)
322 echo ${UNAME_MACHINE}-unknown-morphos
325 echo i370-ibm-openedition
327 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
328 echo arm-acorn-riscix${UNAME_RELEASE}
330 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
331 echo hppa1.1-hitachi-hiuxmpp
333 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
334 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
335 if test "`(/bin/universe) 2>/dev/null`" = att ; then
336 echo pyramid-pyramid-sysv3
338 echo pyramid-pyramid-bsd
342 echo pyramid-pyramid-svr4
344 DRS?6000:UNIX_SV:4.2*:7*)
345 case `/usr/bin/uname -p` in
346 sparc) echo sparc-icl-nx7 && exit 0 ;;
349 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
351 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
352 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
355 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
358 # According to config.sub, this is the proper way to canonicalize
359 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
360 # it's likely to be more like Solaris than SunOS4.
361 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
364 case "`/usr/bin/arch -k`" in
366 UNAME_RELEASE=`uname -v`
369 # Japanese Language versions have a version number like `4.1.3-JL'.
370 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
373 echo m68k-sun-sunos${UNAME_RELEASE}
376 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
377 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
378 case "`/bin/arch`" in
380 echo m68k-sun-sunos${UNAME_RELEASE}
383 echo sparc-sun-sunos${UNAME_RELEASE}
388 echo sparc-auspex-sunos${UNAME_RELEASE}
390 # The situation for MiNT is a little confusing. The machine name
391 # can be virtually everything (everything which is not
392 # "atarist" or "atariste" at least should have a processor
393 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
394 # to the lowercase version "mint" (or "freemint"). Finally
395 # the system name "TOS" denotes a system which is actually not
396 # MiNT. But MiNT is downward compatible to TOS, so this should
398 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
399 echo m68k-atari-mint${UNAME_RELEASE}
401 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
402 echo m68k-atari-mint${UNAME_RELEASE}
404 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
405 echo m68k-atari-mint${UNAME_RELEASE}
407 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
408 echo m68k-milan-mint${UNAME_RELEASE}
410 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
411 echo m68k-hades-mint${UNAME_RELEASE}
413 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
414 echo m68k-unknown-mint${UNAME_RELEASE}
417 echo powerpc-apple-machten${UNAME_RELEASE}
420 echo mips-dec-mach_bsd4.3
423 echo mips-dec-ultrix${UNAME_RELEASE}
426 echo vax-dec-ultrix${UNAME_RELEASE}
428 2020:CLIX:*:* | 2430:CLIX:*:*)
429 echo clipper-intergraph-clix${UNAME_RELEASE}
431 mips:*:*:UMIPS | mips:*:*:RISCos)
432 eval $set_cc_for_build
433 sed 's/^ //' << EOF >$dummy.c
435 #include <stdio.h> /* for printf() prototype */
436 int main (int argc, char *argv[]) {
438 int main (argc, argv) int argc; char *argv[]; {
440 #if defined (host_mips) && defined (MIPSEB)
441 #if defined (SYSTYPE_SYSV)
442 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
444 #if defined (SYSTYPE_SVR4)
445 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
447 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
448 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
454 $CC_FOR_BUILD -o $dummy $dummy.c \
455 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
457 echo mips-mips-riscos${UNAME_RELEASE}
459 Motorola:PowerMAX_OS:*:*)
460 echo powerpc-motorola-powermax
462 Motorola:*:4.3:PL8-*)
463 echo powerpc-harris-powermax
465 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
466 echo powerpc-harris-powermax
468 Night_Hawk:Power_UNIX:*:*)
469 echo powerpc-harris-powerunix
472 echo m88k-harris-cxux7
475 echo m88k-motorola-sysv4
478 echo m88k-motorola-sysv3
481 # DG/UX returns AViiON for all architectures
482 UNAME_PROCESSOR=`/usr/bin/uname -p`
483 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
485 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
486 [ ${TARGET_BINARY_INTERFACE}x = x ]
488 echo m88k-dg-dgux${UNAME_RELEASE}
490 echo m88k-dg-dguxbcs${UNAME_RELEASE}
493 echo i586-dg-dgux${UNAME_RELEASE}
496 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
497 echo m88k-dolphin-sysv3
500 # Delta 88k system running SVR3
501 echo m88k-motorola-sysv3
503 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
504 echo m88k-tektronix-sysv3
506 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
507 echo m68k-tektronix-bsd
510 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
512 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
513 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
514 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
519 if [ -x /usr/bin/oslevel ] ; then
520 IBM_REV=`/usr/bin/oslevel`
522 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
524 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
527 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
528 eval $set_cc_for_build
529 sed 's/^ //' << EOF >$dummy.c
530 #include <sys/systemcfg.h>
536 puts("powerpc-ibm-aix3.2.5");
540 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
541 echo rs6000-ibm-aix3.2.5
542 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
543 echo rs6000-ibm-aix3.2.4
545 echo rs6000-ibm-aix3.2
549 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
550 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
555 if [ -x /usr/bin/oslevel ] ; then
556 IBM_REV=`/usr/bin/oslevel`
558 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
560 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
565 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
568 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
569 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
570 exit 0 ;; # report: romp-ibm BSD 4.3
572 echo rs6000-bull-bosx
577 9000/[34]??:4.3bsd:1.*:*)
580 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
583 9000/[34678]??:HP-UX:*:*)
584 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
585 case "${UNAME_MACHINE}" in
586 9000/31? ) HP_ARCH=m68000 ;;
587 9000/[34]?? ) HP_ARCH=m68k ;;
588 9000/[678][0-9][0-9])
589 if [ -x /usr/bin/getconf ]; then
590 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
591 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
592 case "${sc_cpu_version}" in
593 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
594 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
595 532) # CPU_PA_RISC2_0
596 case "${sc_kernel_bits}" in
597 32) HP_ARCH="hppa2.0n" ;;
598 64) HP_ARCH="hppa2.0w" ;;
599 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
603 if [ "${HP_ARCH}" = "" ]; then
604 eval $set_cc_for_build
605 sed 's/^ //' << EOF >$dummy.c
613 #if defined(_SC_KERNEL_BITS)
614 long bits = sysconf(_SC_KERNEL_BITS);
616 long cpu = sysconf (_SC_CPU_VERSION);
620 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
621 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
623 #if defined(_SC_KERNEL_BITS)
626 case 64: puts ("hppa2.0w"); break;
627 case 32: puts ("hppa2.0n"); break;
628 default: puts ("hppa2.0"); break;
630 #else /* !defined(_SC_KERNEL_BITS) */
631 puts ("hppa2.0"); break;
633 default: puts ("hppa1.0"); break;
638 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
639 test -z "$HP_ARCH" && HP_ARCH=hppa
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 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
656 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
657 echo ia64-hp-hpux${HPUX_REV}
660 eval $set_cc_for_build
661 sed 's/^ //' << EOF >$dummy.c
666 long cpu = sysconf (_SC_CPU_VERSION);
667 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
668 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
670 if (CPU_IS_PA_RISC (cpu))
674 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
675 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
676 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
677 default: puts ("hppa-hitachi-hiuxwe2"); break;
680 else if (CPU_IS_HP_MC68K (cpu))
681 puts ("m68k-hitachi-hiuxwe2");
682 else puts ("unknown-hitachi-hiuxwe2");
686 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
687 echo unknown-hitachi-hiuxwe2
689 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
695 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
696 echo hppa1.0-hp-mpeix
698 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
705 if [ -x /usr/sbin/sysversion ] ; then
706 echo ${UNAME_MACHINE}-unknown-osf1mk
708 echo ${UNAME_MACHINE}-unknown-osf1
712 echo hppa1.1-hp-lites
714 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
717 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
718 if getsysinfo -f scalar_acc
719 then echo c32-convex-bsd
720 else echo c2-convex-bsd
723 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
726 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
729 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
733 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
736 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
737 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
738 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
742 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
745 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
748 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
751 echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
753 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
754 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
755 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
756 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
757 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
759 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
760 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
763 echo sparc-unknown-bsdi${UNAME_RELEASE}
766 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
769 # Determine whether the default compiler uses glibc.
770 eval $set_cc_for_build
771 sed 's/^ //' << EOF >$dummy.c
772 #include <features.h>
779 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
780 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
783 echo ${UNAME_MACHINE}-pc-cygwin
786 echo ${UNAME_MACHINE}-pc-mingw32
789 echo ${UNAME_MACHINE}-pc-pw32
792 echo i586-pc-interix3
794 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
795 echo i${UNAME_MACHINE}-pc-mks
797 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
798 # How do we know it's Interix rather than the generic POSIX subsystem?
799 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
800 # UNAME_MACHINE based on the output of uname instead of i386?
804 echo ${UNAME_MACHINE}-pc-uwin
807 echo powerpcle-unknown-cygwin
810 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
813 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
816 echo ${UNAME_MACHINE}-pc-minix
819 echo ${UNAME_MACHINE}-unknown-linux-gnu
822 echo ${UNAME_MACHINE}-unknown-linux-gnu
825 echo ${UNAME_MACHINE}-unknown-linux-gnu
828 eval $set_cc_for_build
829 sed 's/^ //' << EOF >$dummy.c
833 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
836 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
843 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
844 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
847 eval $set_cc_for_build
848 sed 's/^ //' << EOF >$dummy.c
852 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
855 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
862 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
863 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
866 echo powerpc-unknown-linux-gnu
869 echo powerpc64-unknown-linux-gnu
872 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
873 EV5) UNAME_MACHINE=alphaev5 ;;
874 EV56) UNAME_MACHINE=alphaev56 ;;
875 PCA56) UNAME_MACHINE=alphapca56 ;;
876 PCA57) UNAME_MACHINE=alphapca56 ;;
877 EV6) UNAME_MACHINE=alphaev6 ;;
878 EV67) UNAME_MACHINE=alphaev67 ;;
879 EV68*) UNAME_MACHINE=alphaev68 ;;
881 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
882 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
883 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
885 parisc:Linux:*:* | hppa:Linux:*:*)
887 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
888 PA7*) echo hppa1.1-unknown-linux-gnu ;;
889 PA8*) echo hppa2.0-unknown-linux-gnu ;;
890 *) echo hppa-unknown-linux-gnu ;;
893 parisc64:Linux:*:* | hppa64:Linux:*:*)
894 echo hppa64-unknown-linux-gnu
896 s390:Linux:*:* | s390x:Linux:*:*)
897 echo ${UNAME_MACHINE}-ibm-linux
900 echo ${UNAME_MACHINE}-unknown-linux-gnu
902 sparc:Linux:*:* | sparc64:Linux:*:*)
903 echo ${UNAME_MACHINE}-unknown-linux-gnu
906 echo x86_64-unknown-linux-gnu
909 # The BFD linker knows what the default object file format is, so
910 # first see if it will tell us. cd to the root directory to prevent
911 # problems with other programs or directories called `ld' in the path.
912 # Set LC_ALL=C to ensure ld outputs messages in English.
913 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
914 | sed -ne '/supported targets:/!d
916 s/.*supported targets: *//
919 case "$ld_supported_targets" in
921 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
924 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
927 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
930 # Either a pre-BFD a.out linker (linux-gnuoldld) or
931 # one that does not give us useful --help.
932 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
935 # Determine whether the default compiler is a.out or elf
936 eval $set_cc_for_build
937 sed 's/^ //' << EOF >$dummy.c
938 #include <features.h>
950 #ifdef __INTEL_COMPILER
957 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
958 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
959 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
962 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
963 # earlier versions are messed up and put the nodename in both
964 # sysname and nodename.
965 echo i386-sequent-sysv4
967 i*86:UNIX_SV:4.2MP:2.*)
968 # Unixware is an offshoot of SVR4, but it has its own version
969 # number series starting with 2...
970 # I am not positive that other SVR4 systems won't match this,
971 # I just have to hope. -- rms.
972 # Use sysv4.2uw... so that sysv4* matches it.
973 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
976 # If we were able to find `uname', then EMX Unix compatibility
977 # is probably installed.
978 echo ${UNAME_MACHINE}-pc-os2-emx
981 echo ${UNAME_MACHINE}-unknown-stop
984 echo ${UNAME_MACHINE}-unknown-atheos
986 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
987 echo i386-unknown-lynxos${UNAME_RELEASE}
990 echo ${UNAME_MACHINE}-pc-msdosdjgpp
992 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
993 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
994 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
995 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
997 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1001 case `/bin/uname -X | grep "^Machine"` in
1002 *486*) UNAME_MACHINE=i486 ;;
1003 *Pentium) UNAME_MACHINE=i586 ;;
1004 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1006 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1009 if test -f /usr/options/cb.name; then
1010 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1011 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1012 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1013 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1014 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1015 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1016 && UNAME_MACHINE=i586
1017 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1018 && UNAME_MACHINE=i686
1019 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1020 && UNAME_MACHINE=i686
1021 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1023 echo ${UNAME_MACHINE}-pc-sysv32
1027 # Left here for compatibility:
1028 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1029 # the processor, so we play safe by assuming i386.
1030 echo i386-pc-msdosdjgpp
1036 echo i860-intel-osf1
1038 i860:*:4.*:*) # i860-SVR4
1039 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1040 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1041 else # Add other i860-SVR4 vendors below as they are discovered.
1042 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1047 echo m68010-convergent-sysv
1049 mc68k:UNIX:SYSTEM5:3.51m)
1050 echo m68k-convergent-sysv
1056 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1057 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)
1059 test -r /etc/.relid \
1060 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1061 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1062 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1063 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1064 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1065 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1066 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1067 && echo i486-ncr-sysv4 && exit 0 ;;
1068 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1069 echo m68k-unknown-lynxos${UNAME_RELEASE}
1071 mc68030:UNIX_System_V:4.*:*)
1072 echo m68k-atari-sysv4
1074 TSUNAMI:LynxOS:2.*:*)
1075 echo sparc-unknown-lynxos${UNAME_RELEASE}
1077 rs6000:LynxOS:2.*:*)
1078 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1080 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1081 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1083 SM[BE]S:UNIX_SV:*:*)
1084 echo mips-dde-sysv${UNAME_RELEASE}
1086 RM*:ReliantUNIX-*:*:*)
1093 if uname -p 2>/dev/null >/dev/null ; then
1094 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1095 echo ${UNAME_MACHINE}-sni-sysv4
1100 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1101 # says <Richard.M.Bartel@ccMail.Census.GOV>
1102 echo i586-unisys-sysv4
1104 *:UNIX_System_V:4*:FTX*)
1105 # From Gerald Hewes <hewes@openmarket.com>.
1106 # How about differentiating between stratus architectures? -djm
1107 echo hppa1.1-stratus-sysv4
1110 # From seanf@swdc.stratus.com.
1111 echo i860-stratus-sysv4
1114 # From Paul.Green@stratus.com.
1115 echo hppa1.1-stratus-vos
1118 echo m68k-apple-aux${UNAME_RELEASE}
1121 echo mips-sony-newsos6
1123 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1124 if [ -d /usr/nec ]; then
1125 echo mips-nec-sysv${UNAME_RELEASE}
1127 echo mips-unknown-sysv${UNAME_RELEASE}
1130 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1131 echo powerpc-be-beos
1133 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1134 echo powerpc-apple-beos
1136 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1140 echo sx4-nec-superux${UNAME_RELEASE}
1143 echo sx5-nec-superux${UNAME_RELEASE}
1146 echo sx6-nec-superux${UNAME_RELEASE}
1148 Power*:Rhapsody:*:*)
1149 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1152 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1156 *86) UNAME_PROCESSOR=i686 ;;
1157 powerpc) UNAME_PROCESSOR=powerpc ;;
1159 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1161 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1162 UNAME_PROCESSOR=`uname -p`
1163 if test "$UNAME_PROCESSOR" = "x86"; then
1164 UNAME_PROCESSOR=i386
1167 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1172 NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
1173 echo nsr-tandem-nsk${UNAME_RELEASE}
1176 echo mips-compaq-nonstopux
1179 echo bs2000-siemens-sysv
1181 DS/*:UNIX_System_V:*:*)
1182 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1185 # "uname -m" is not consistent, so use $cputype instead. 386
1186 # is converted to i386 for consistency with other x86
1187 # operating systems.
1188 if test "$cputype" = "386"; then
1191 UNAME_MACHINE="$cputype"
1193 echo ${UNAME_MACHINE}-unknown-plan9
1196 echo pdp10-unknown-tops10
1199 echo pdp10-unknown-tenex
1201 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1202 echo pdp10-dec-tops20
1204 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1205 echo pdp10-xkl-tops20
1208 echo pdp10-unknown-tops20
1211 echo pdp10-unknown-its
1215 #echo '(No uname command or uname output not recognized.)' 1>&2
1216 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1218 eval $set_cc_for_build
1221 # include <sys/types.h>
1222 # include <sys/utsname.h>
1227 #if defined (MIPSEB)
1228 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1230 printf ("mips-sony-bsd\n"); exit (0);
1232 #include <sys/param.h>
1233 printf ("m68k-sony-newsos%s\n",
1243 #if defined (__arm) && defined (__acorn) && defined (__unix)
1244 printf ("arm-acorn-riscix"); exit (0);
1247 #if defined (hp300) && !defined (hpux)
1248 printf ("m68k-hp-bsd\n"); exit (0);
1252 #if !defined (__ARCHITECTURE__)
1253 #define __ARCHITECTURE__ "m68k"
1256 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1258 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1260 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1264 #if defined (MULTIMAX) || defined (n16)
1266 printf ("ns32k-encore-sysv\n"); exit (0);
1269 printf ("ns32k-encore-mach\n"); exit (0);
1271 printf ("ns32k-encore-bsd\n"); exit (0);
1276 #if defined (__386BSD__)
1277 printf ("i386-pc-bsd\n"); exit (0);
1280 #if defined (sequent)
1282 printf ("i386-sequent-dynix\n"); exit (0);
1284 #if defined (ns32000)
1285 printf ("ns32k-sequent-dynix\n"); exit (0);
1289 #if defined (_SEQUENT_)
1294 if (strncmp(un.version, "V2", 2) == 0) {
1295 printf ("i386-sequent-ptx2\n"); exit (0);
1297 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1298 printf ("i386-sequent-ptx1\n"); exit (0);
1300 printf ("i386-sequent-ptx\n"); exit (0);
1305 # if !defined (ultrix)
1306 # include <sys/param.h>
1309 printf ("vax-dec-bsd4.3\n"); exit (0);
1312 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1314 printf ("vax-dec-bsd\n"); exit (0);
1318 printf ("vax-dec-bsd\n"); exit (0);
1321 printf ("vax-dec-ultrix\n"); exit (0);
1325 #if defined (alliant) && defined (i860)
1326 printf ("i860-alliant-bsd\n"); exit (0);
1333 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
1335 # Apollos put the system type in the environment.
1337 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1339 # Convex versions that predate uname can use getsysinfo(1)
1341 if [ -x /usr/convex/getsysinfo ]
1343 case `getsysinfo -f cpu_type` in
1348 if getsysinfo -f scalar_acc
1349 then echo c32-convex-bsd
1350 else echo c2-convex-bsd
1366 $0: unable to guess system type
1368 This script, last modified $timestamp, has failed to recognize
1369 the operating system you are using. It is advised that you
1370 download the most up to date version of the config scripts from
1372 ftp://ftp.gnu.org/pub/gnu/config/
1374 If the version you run ($0) is already up to date, please
1375 send the following data and any information you think might be
1376 pertinent to <config-patches@gnu.org> in order to provide the needed
1377 information to handle your system.
1379 config.guess timestamp = $timestamp
1381 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1382 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1383 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1384 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1386 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1387 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1389 hostinfo = `(hostinfo) 2>/dev/null`
1390 /bin/universe = `(/bin/universe) 2>/dev/null`
1391 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1392 /bin/arch = `(/bin/arch) 2>/dev/null`
1393 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1394 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1396 UNAME_MACHINE = ${UNAME_MACHINE}
1397 UNAME_RELEASE = ${UNAME_RELEASE}
1398 UNAME_SYSTEM = ${UNAME_SYSTEM}
1399 UNAME_VERSION = ${UNAME_VERSION}
1405 # eval: (add-hook 'write-file-hooks 'time-stamp)
1406 # time-stamp-start: "timestamp='"
1407 # time-stamp-format: "%:y-%02m-%02d"
1408 # time-stamp-end: "'"