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 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
202 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
205 if test $UNAME_RELEASE = "V4.0"; then
206 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
208 # A Vn.n version is a released version.
209 # A Tn.n version is a released field test version.
210 # A Xn.n version is an unreleased experimental baselevel.
211 # 1.2 uses "1.2" for uname -r.
212 eval $set_cc_for_build
216 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
223 .frame \$30,16,\$26,0
226 .long 0x47e03d80 # implver \$0
228 .long 0x47e20c21 # amask \$2,\$1
238 $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
239 if test "$?" = 0 ; then
242 UNAME_MACHINE="alpha"
245 UNAME_MACHINE="alphaev5"
248 UNAME_MACHINE="alphaev56"
251 UNAME_MACHINE="alphapca56"
254 UNAME_MACHINE="alphaev6"
257 UNAME_MACHINE="alphaev67"
260 UNAME_MACHINE="alphaev68"
263 UNAME_MACHINE="alphaev7"
267 rm -f $dummy.s $dummy && rmdir $tmpdir
268 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
270 Alpha\ *:Windows_NT*:*)
271 # How do we know it's Interix rather than the generic POSIX subsystem?
272 # Should we change UNAME_MACHINE based on the output of uname instead
273 # of the specific Alpha model?
274 echo alpha-pc-interix
276 21064:Windows_NT:50:3)
277 echo alpha-dec-winnt3.5
279 Amiga*:UNIX_System_V:4.0:*)
280 echo m68k-unknown-sysv4
282 *:[Aa]miga[Oo][Ss]:*:*)
283 echo ${UNAME_MACHINE}-unknown-amigaos
285 *:[Mm]orph[Oo][Ss]:*:*)
286 echo ${UNAME_MACHINE}-unknown-morphos
289 echo i370-ibm-openedition
291 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
292 echo arm-acorn-riscix${UNAME_RELEASE}
294 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
295 echo hppa1.1-hitachi-hiuxmpp
297 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
298 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
299 if test "`(/bin/universe) 2>/dev/null`" = att ; then
300 echo pyramid-pyramid-sysv3
302 echo pyramid-pyramid-bsd
306 echo pyramid-pyramid-svr4
308 DRS?6000:UNIX_SV:4.2*:7*)
309 case `/usr/bin/uname -p` in
310 sparc) echo sparc-icl-nx7 && exit 0 ;;
313 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
315 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
316 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
319 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
322 # According to config.sub, this is the proper way to canonicalize
323 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
324 # it's likely to be more like Solaris than SunOS4.
325 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
328 case "`/usr/bin/arch -k`" in
330 UNAME_RELEASE=`uname -v`
333 # Japanese Language versions have a version number like `4.1.3-JL'.
334 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
337 echo m68k-sun-sunos${UNAME_RELEASE}
340 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
341 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
342 case "`/bin/arch`" in
344 echo m68k-sun-sunos${UNAME_RELEASE}
347 echo sparc-sun-sunos${UNAME_RELEASE}
352 echo sparc-auspex-sunos${UNAME_RELEASE}
354 # The situation for MiNT is a little confusing. The machine name
355 # can be virtually everything (everything which is not
356 # "atarist" or "atariste" at least should have a processor
357 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
358 # to the lowercase version "mint" (or "freemint"). Finally
359 # the system name "TOS" denotes a system which is actually not
360 # MiNT. But MiNT is downward compatible to TOS, so this should
362 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
363 echo m68k-atari-mint${UNAME_RELEASE}
365 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
366 echo m68k-atari-mint${UNAME_RELEASE}
368 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
369 echo m68k-atari-mint${UNAME_RELEASE}
371 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
372 echo m68k-milan-mint${UNAME_RELEASE}
374 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
375 echo m68k-hades-mint${UNAME_RELEASE}
377 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
378 echo m68k-unknown-mint${UNAME_RELEASE}
381 echo powerpc-apple-machten${UNAME_RELEASE}
384 echo mips-dec-mach_bsd4.3
387 echo mips-dec-ultrix${UNAME_RELEASE}
390 echo vax-dec-ultrix${UNAME_RELEASE}
392 2020:CLIX:*:* | 2430:CLIX:*:*)
393 echo clipper-intergraph-clix${UNAME_RELEASE}
395 mips:*:*:UMIPS | mips:*:*:RISCos)
396 eval $set_cc_for_build
397 sed 's/^ //' << EOF >$dummy.c
399 #include <stdio.h> /* for printf() prototype */
400 int main (int argc, char *argv[]) {
402 int main (argc, argv) int argc; char *argv[]; {
404 #if defined (host_mips) && defined (MIPSEB)
405 #if defined (SYSTYPE_SYSV)
406 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
408 #if defined (SYSTYPE_SVR4)
409 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
411 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
412 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
418 $CC_FOR_BUILD -o $dummy $dummy.c \
419 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
420 && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
421 rm -f $dummy.c $dummy && rmdir $tmpdir
422 echo mips-mips-riscos${UNAME_RELEASE}
424 Motorola:PowerMAX_OS:*:*)
425 echo powerpc-motorola-powermax
427 Motorola:*:4.3:PL8-*)
428 echo powerpc-harris-powermax
430 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
431 echo powerpc-harris-powermax
433 Night_Hawk:Power_UNIX:*:*)
434 echo powerpc-harris-powerunix
437 echo m88k-harris-cxux7
440 echo m88k-motorola-sysv4
443 echo m88k-motorola-sysv3
446 # DG/UX returns AViiON for all architectures
447 UNAME_PROCESSOR=`/usr/bin/uname -p`
448 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
450 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
451 [ ${TARGET_BINARY_INTERFACE}x = x ]
453 echo m88k-dg-dgux${UNAME_RELEASE}
455 echo m88k-dg-dguxbcs${UNAME_RELEASE}
458 echo i586-dg-dgux${UNAME_RELEASE}
461 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
462 echo m88k-dolphin-sysv3
465 # Delta 88k system running SVR3
466 echo m88k-motorola-sysv3
468 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
469 echo m88k-tektronix-sysv3
471 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
472 echo m68k-tektronix-bsd
475 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
477 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
478 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
479 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
484 if [ -x /usr/bin/oslevel ] ; then
485 IBM_REV=`/usr/bin/oslevel`
487 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
489 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
492 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
493 eval $set_cc_for_build
494 sed 's/^ //' << EOF >$dummy.c
495 #include <sys/systemcfg.h>
501 puts("powerpc-ibm-aix3.2.5");
505 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
506 rm -f $dummy.c $dummy && rmdir $tmpdir
507 echo rs6000-ibm-aix3.2.5
508 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
509 echo rs6000-ibm-aix3.2.4
511 echo rs6000-ibm-aix3.2
515 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
516 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
521 if [ -x /usr/bin/oslevel ] ; then
522 IBM_REV=`/usr/bin/oslevel`
524 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
526 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
531 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
534 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
535 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
536 exit 0 ;; # report: romp-ibm BSD 4.3
538 echo rs6000-bull-bosx
543 9000/[34]??:4.3bsd:1.*:*)
546 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
549 9000/[34678]??:HP-UX:*:*)
550 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
551 case "${UNAME_MACHINE}" in
552 9000/31? ) HP_ARCH=m68000 ;;
553 9000/[34]?? ) HP_ARCH=m68k ;;
554 9000/[678][0-9][0-9])
555 if [ -x /usr/bin/getconf ]; then
556 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
557 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
558 case "${sc_cpu_version}" in
559 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
560 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
561 532) # CPU_PA_RISC2_0
562 case "${sc_kernel_bits}" in
563 32) HP_ARCH="hppa2.0n" ;;
564 64) HP_ARCH="hppa2.0w" ;;
565 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
569 if [ "${HP_ARCH}" = "" ]; then
570 eval $set_cc_for_build
571 sed 's/^ //' << EOF >$dummy.c
579 #if defined(_SC_KERNEL_BITS)
580 long bits = sysconf(_SC_KERNEL_BITS);
582 long cpu = sysconf (_SC_CPU_VERSION);
586 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
587 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
589 #if defined(_SC_KERNEL_BITS)
592 case 64: puts ("hppa2.0w"); break;
593 case 32: puts ("hppa2.0n"); break;
594 default: puts ("hppa2.0"); break;
596 #else /* !defined(_SC_KERNEL_BITS) */
597 puts ("hppa2.0"); break;
599 default: puts ("hppa1.0"); break;
604 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
605 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
606 rm -f $dummy.c $dummy && rmdir $tmpdir
609 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
612 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
613 echo ia64-hp-hpux${HPUX_REV}
616 eval $set_cc_for_build
617 sed 's/^ //' << EOF >$dummy.c
622 long cpu = sysconf (_SC_CPU_VERSION);
623 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
624 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
626 if (CPU_IS_PA_RISC (cpu))
630 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
631 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
632 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
633 default: puts ("hppa-hitachi-hiuxwe2"); break;
636 else if (CPU_IS_HP_MC68K (cpu))
637 puts ("m68k-hitachi-hiuxwe2");
638 else puts ("unknown-hitachi-hiuxwe2");
642 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
643 rm -f $dummy.c $dummy && rmdir $tmpdir
644 echo unknown-hitachi-hiuxwe2
646 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
652 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
653 echo hppa1.0-hp-mpeix
655 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
662 if [ -x /usr/sbin/sysversion ] ; then
663 echo ${UNAME_MACHINE}-unknown-osf1mk
665 echo ${UNAME_MACHINE}-unknown-osf1
669 echo hppa1.1-hp-lites
671 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
674 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
675 if getsysinfo -f scalar_acc
676 then echo c32-convex-bsd
677 else echo c2-convex-bsd
680 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
683 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
686 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
690 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
693 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
694 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
695 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
699 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
702 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
705 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
708 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
710 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
711 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
712 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
713 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
714 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
716 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
717 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
720 echo sparc-unknown-bsdi${UNAME_RELEASE}
723 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
726 # Determine whether the default compiler uses glibc.
727 eval $set_cc_for_build
728 sed 's/^ //' << EOF >$dummy.c
729 #include <features.h>
736 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
737 rm -f $dummy.c && rmdir $tmpdir
738 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
741 echo ${UNAME_MACHINE}-pc-cygwin
744 echo ${UNAME_MACHINE}-pc-mingw32
747 echo ${UNAME_MACHINE}-pc-pw32
750 echo i586-pc-interix3
752 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
753 echo i${UNAME_MACHINE}-pc-mks
755 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
756 # How do we know it's Interix rather than the generic POSIX subsystem?
757 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
758 # UNAME_MACHINE based on the output of uname instead of i386?
762 echo ${UNAME_MACHINE}-pc-uwin
765 echo powerpcle-unknown-cygwin
768 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
771 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
774 echo ${UNAME_MACHINE}-pc-minix
777 echo ${UNAME_MACHINE}-unknown-linux-gnu
780 echo ${UNAME_MACHINE}-unknown-linux-gnu
783 echo ${UNAME_MACHINE}-unknown-linux-gnu
786 eval $set_cc_for_build
787 sed 's/^ //' << EOF >$dummy.c
791 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
794 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
801 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
802 rm -f $dummy.c && rmdir $tmpdir
803 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
806 eval $set_cc_for_build
807 sed 's/^ //' << EOF >$dummy.c
811 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
814 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
821 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
822 rm -f $dummy.c && rmdir $tmpdir
823 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
826 echo powerpc-unknown-linux-gnu
829 echo powerpc64-unknown-linux-gnu
832 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
833 EV5) UNAME_MACHINE=alphaev5 ;;
834 EV56) UNAME_MACHINE=alphaev56 ;;
835 PCA56) UNAME_MACHINE=alphapca56 ;;
836 PCA57) UNAME_MACHINE=alphapca56 ;;
837 EV6) UNAME_MACHINE=alphaev6 ;;
838 EV67) UNAME_MACHINE=alphaev67 ;;
839 EV68*) UNAME_MACHINE=alphaev68 ;;
841 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
842 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
843 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
845 parisc:Linux:*:* | hppa:Linux:*:*)
847 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
848 PA7*) echo hppa1.1-unknown-linux-gnu ;;
849 PA8*) echo hppa2.0-unknown-linux-gnu ;;
850 *) echo hppa-unknown-linux-gnu ;;
853 parisc64:Linux:*:* | hppa64:Linux:*:*)
854 echo hppa64-unknown-linux-gnu
856 s390:Linux:*:* | s390x:Linux:*:*)
857 echo ${UNAME_MACHINE}-ibm-linux
860 echo ${UNAME_MACHINE}-unknown-linux-gnu
862 sparc:Linux:*:* | sparc64:Linux:*:*)
863 echo ${UNAME_MACHINE}-unknown-linux-gnu
866 echo x86_64-unknown-linux-gnu
869 # The BFD linker knows what the default object file format is, so
870 # first see if it will tell us. cd to the root directory to prevent
871 # problems with other programs or directories called `ld' in the path.
872 # Set LC_ALL=C to ensure ld outputs messages in English.
873 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
874 | sed -ne '/supported targets:/!d
876 s/.*supported targets: *//
879 case "$ld_supported_targets" in
881 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
884 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
887 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
890 # Either a pre-BFD a.out linker (linux-gnuoldld) or
891 # one that does not give us useful --help.
892 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
895 # Determine whether the default compiler is a.out or elf
896 eval $set_cc_for_build
897 sed 's/^ //' << EOF >$dummy.c
898 #include <features.h>
910 #ifdef __INTEL_COMPILER
917 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
918 rm -f $dummy.c && rmdir $tmpdir
919 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
920 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
923 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
924 # earlier versions are messed up and put the nodename in both
925 # sysname and nodename.
926 echo i386-sequent-sysv4
928 i*86:UNIX_SV:4.2MP:2.*)
929 # Unixware is an offshoot of SVR4, but it has its own version
930 # number series starting with 2...
931 # I am not positive that other SVR4 systems won't match this,
932 # I just have to hope. -- rms.
933 # Use sysv4.2uw... so that sysv4* matches it.
934 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
937 # If we were able to find `uname', then EMX Unix compatibility
938 # is probably installed.
939 echo ${UNAME_MACHINE}-pc-os2-emx
942 echo ${UNAME_MACHINE}-unknown-stop
945 echo ${UNAME_MACHINE}-unknown-atheos
947 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
948 echo i386-unknown-lynxos${UNAME_RELEASE}
951 echo ${UNAME_MACHINE}-pc-msdosdjgpp
953 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
954 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
955 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
956 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
958 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
962 case `/bin/uname -X | grep "^Machine"` in
963 *486*) UNAME_MACHINE=i486 ;;
964 *Pentium) UNAME_MACHINE=i586 ;;
965 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
967 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
970 if test -f /usr/options/cb.name; then
971 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
972 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
973 elif /bin/uname -X 2>/dev/null >/dev/null ; then
974 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
975 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
976 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
977 && UNAME_MACHINE=i586
978 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
979 && UNAME_MACHINE=i686
980 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
981 && UNAME_MACHINE=i686
982 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
984 echo ${UNAME_MACHINE}-pc-sysv32
988 # Left here for compatibility:
989 # uname -m prints for DJGPP always 'pc', but it prints nothing about
990 # the processor, so we play safe by assuming i386.
991 echo i386-pc-msdosdjgpp
999 i860:*:4.*:*) # i860-SVR4
1000 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1001 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1002 else # Add other i860-SVR4 vendors below as they are discovered.
1003 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1008 echo m68010-convergent-sysv
1010 mc68k:UNIX:SYSTEM5:3.51m)
1011 echo m68k-convergent-sysv
1017 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1018 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)
1020 test -r /etc/.relid \
1021 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1022 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1023 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1024 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1025 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1026 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1027 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1028 && echo i486-ncr-sysv4 && exit 0 ;;
1029 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1030 echo m68k-unknown-lynxos${UNAME_RELEASE}
1032 mc68030:UNIX_System_V:4.*:*)
1033 echo m68k-atari-sysv4
1035 TSUNAMI:LynxOS:2.*:*)
1036 echo sparc-unknown-lynxos${UNAME_RELEASE}
1038 rs6000:LynxOS:2.*:*)
1039 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1041 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1042 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1044 SM[BE]S:UNIX_SV:*:*)
1045 echo mips-dde-sysv${UNAME_RELEASE}
1047 RM*:ReliantUNIX-*:*:*)
1054 if uname -p 2>/dev/null >/dev/null ; then
1055 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1056 echo ${UNAME_MACHINE}-sni-sysv4
1061 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1062 # says <Richard.M.Bartel@ccMail.Census.GOV>
1063 echo i586-unisys-sysv4
1065 *:UNIX_System_V:4*:FTX*)
1066 # From Gerald Hewes <hewes@openmarket.com>.
1067 # How about differentiating between stratus architectures? -djm
1068 echo hppa1.1-stratus-sysv4
1071 # From seanf@swdc.stratus.com.
1072 echo i860-stratus-sysv4
1075 # From Paul.Green@stratus.com.
1076 echo hppa1.1-stratus-vos
1079 echo m68k-apple-aux${UNAME_RELEASE}
1082 echo mips-sony-newsos6
1084 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1085 if [ -d /usr/nec ]; then
1086 echo mips-nec-sysv${UNAME_RELEASE}
1088 echo mips-unknown-sysv${UNAME_RELEASE}
1091 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1092 echo powerpc-be-beos
1094 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1095 echo powerpc-apple-beos
1097 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1101 echo sx4-nec-superux${UNAME_RELEASE}
1104 echo sx5-nec-superux${UNAME_RELEASE}
1107 echo sx6-nec-superux${UNAME_RELEASE}
1109 Power*:Rhapsody:*:*)
1110 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1113 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1116 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1118 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1119 UNAME_PROCESSOR=`uname -p`
1120 if test "$UNAME_PROCESSOR" = "x86"; then
1121 UNAME_PROCESSOR=i386
1124 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1129 NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
1130 echo nsr-tandem-nsk${UNAME_RELEASE}
1133 echo mips-compaq-nonstopux
1136 echo bs2000-siemens-sysv
1138 DS/*:UNIX_System_V:*:*)
1139 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1142 # "uname -m" is not consistent, so use $cputype instead. 386
1143 # is converted to i386 for consistency with other x86
1144 # operating systems.
1145 if test "$cputype" = "386"; then
1148 UNAME_MACHINE="$cputype"
1150 echo ${UNAME_MACHINE}-unknown-plan9
1153 echo pdp10-unknown-tops10
1156 echo pdp10-unknown-tenex
1158 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1159 echo pdp10-dec-tops20
1161 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1162 echo pdp10-xkl-tops20
1165 echo pdp10-unknown-tops20
1168 echo pdp10-unknown-its
1172 #echo '(No uname command or uname output not recognized.)' 1>&2
1173 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1175 eval $set_cc_for_build
1178 # include <sys/types.h>
1179 # include <sys/utsname.h>
1184 #if defined (MIPSEB)
1185 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1187 printf ("mips-sony-bsd\n"); exit (0);
1189 #include <sys/param.h>
1190 printf ("m68k-sony-newsos%s\n",
1200 #if defined (__arm) && defined (__acorn) && defined (__unix)
1201 printf ("arm-acorn-riscix"); exit (0);
1204 #if defined (hp300) && !defined (hpux)
1205 printf ("m68k-hp-bsd\n"); exit (0);
1209 #if !defined (__ARCHITECTURE__)
1210 #define __ARCHITECTURE__ "m68k"
1213 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1215 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1217 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1221 #if defined (MULTIMAX) || defined (n16)
1223 printf ("ns32k-encore-sysv\n"); exit (0);
1226 printf ("ns32k-encore-mach\n"); exit (0);
1228 printf ("ns32k-encore-bsd\n"); exit (0);
1233 #if defined (__386BSD__)
1234 printf ("i386-pc-bsd\n"); exit (0);
1237 #if defined (sequent)
1239 printf ("i386-sequent-dynix\n"); exit (0);
1241 #if defined (ns32000)
1242 printf ("ns32k-sequent-dynix\n"); exit (0);
1246 #if defined (_SEQUENT_)
1251 if (strncmp(un.version, "V2", 2) == 0) {
1252 printf ("i386-sequent-ptx2\n"); exit (0);
1254 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1255 printf ("i386-sequent-ptx1\n"); exit (0);
1257 printf ("i386-sequent-ptx\n"); exit (0);
1262 # if !defined (ultrix)
1263 # include <sys/param.h>
1266 printf ("vax-dec-bsd4.3\n"); exit (0);
1269 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1271 printf ("vax-dec-bsd\n"); exit (0);
1275 printf ("vax-dec-bsd\n"); exit (0);
1278 printf ("vax-dec-ultrix\n"); exit (0);
1282 #if defined (alliant) && defined (i860)
1283 printf ("i860-alliant-bsd\n"); exit (0);
1290 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1291 rm -f $dummy.c $dummy && rmdir $tmpdir
1293 # Apollos put the system type in the environment.
1295 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1297 # Convex versions that predate uname can use getsysinfo(1)
1299 if [ -x /usr/convex/getsysinfo ]
1301 case `getsysinfo -f cpu_type` in
1306 if getsysinfo -f scalar_acc
1307 then echo c32-convex-bsd
1308 else echo c2-convex-bsd
1324 $0: unable to guess system type
1326 This script, last modified $timestamp, has failed to recognize
1327 the operating system you are using. It is advised that you
1328 download the most up to date version of the config scripts from
1330 ftp://ftp.gnu.org/pub/gnu/config/
1332 If the version you run ($0) is already up to date, please
1333 send the following data and any information you think might be
1334 pertinent to <config-patches@gnu.org> in order to provide the needed
1335 information to handle your system.
1337 config.guess timestamp = $timestamp
1339 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1340 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1341 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1342 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1344 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1345 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1347 hostinfo = `(hostinfo) 2>/dev/null`
1348 /bin/universe = `(/bin/universe) 2>/dev/null`
1349 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1350 /bin/arch = `(/bin/arch) 2>/dev/null`
1351 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1352 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1354 UNAME_MACHINE = ${UNAME_MACHINE}
1355 UNAME_RELEASE = ${UNAME_RELEASE}
1356 UNAME_SYSTEM = ${UNAME_SYSTEM}
1357 UNAME_VERSION = ${UNAME_VERSION}
1363 # eval: (add-hook 'write-file-hooks 'time-stamp)
1364 # time-stamp-start: "timestamp='"
1365 # time-stamp-format: "%:y-%02m-%02d"
1366 # time-stamp-end: "'"