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 $dummy.c -c -o $dummy.o) >/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 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
182 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
183 # contains redundant information, the shorter form:
184 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
185 echo "${machine}-${os}${release}"
188 echo m68k-unknown-openbsd${UNAME_RELEASE}
191 echo mipsel-unknown-openbsd${UNAME_RELEASE}
194 echo m68k-unknown-openbsd${UNAME_RELEASE}
197 echo m68k-unknown-openbsd${UNAME_RELEASE}
200 echo powerpc-unknown-openbsd${UNAME_RELEASE}
203 echo m68k-unknown-openbsd${UNAME_RELEASE}
206 echo m88k-unknown-openbsd${UNAME_RELEASE}
209 echo powerpc-unknown-openbsd${UNAME_RELEASE}
212 echo mipsel-unknown-openbsd${UNAME_RELEASE}
215 echo mipseb-unknown-openbsd${UNAME_RELEASE}
218 echo m68k-unknown-openbsd${UNAME_RELEASE}
221 echo mipsel-unknown-openbsd${UNAME_RELEASE}
224 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
227 if test $UNAME_RELEASE = "V4.0"; then
228 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
230 # A Vn.n version is a released version.
231 # A Tn.n version is a released field test version.
232 # A Xn.n version is an unreleased experimental baselevel.
233 # 1.2 uses "1.2" for uname -r.
234 eval $set_cc_for_build
238 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
245 .frame \$30,16,\$26,0
248 .long 0x47e03d80 # implver \$0
250 .long 0x47e20c21 # amask \$2,\$1
260 $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
261 if test "$?" = 0 ; then
264 UNAME_MACHINE="alpha"
267 UNAME_MACHINE="alphaev5"
270 UNAME_MACHINE="alphaev56"
273 UNAME_MACHINE="alphapca56"
276 UNAME_MACHINE="alphaev6"
279 UNAME_MACHINE="alphaev67"
282 UNAME_MACHINE="alphaev68"
285 UNAME_MACHINE="alphaev7"
289 rm -f $dummy.s $dummy && rmdir $tmpdir
290 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
292 Alpha\ *:Windows_NT*:*)
293 # How do we know it's Interix rather than the generic POSIX subsystem?
294 # Should we change UNAME_MACHINE based on the output of uname instead
295 # of the specific Alpha model?
296 echo alpha-pc-interix
298 21064:Windows_NT:50:3)
299 echo alpha-dec-winnt3.5
301 Amiga*:UNIX_System_V:4.0:*)
302 echo m68k-unknown-sysv4
304 *:[Aa]miga[Oo][Ss]:*:*)
305 echo ${UNAME_MACHINE}-unknown-amigaos
307 *:[Mm]orph[Oo][Ss]:*:*)
308 echo ${UNAME_MACHINE}-unknown-morphos
311 echo i370-ibm-openedition
313 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
314 echo arm-acorn-riscix${UNAME_RELEASE}
316 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
317 echo hppa1.1-hitachi-hiuxmpp
319 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
320 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
321 if test "`(/bin/universe) 2>/dev/null`" = att ; then
322 echo pyramid-pyramid-sysv3
324 echo pyramid-pyramid-bsd
328 echo pyramid-pyramid-svr4
330 DRS?6000:UNIX_SV:4.2*:7*)
331 case `/usr/bin/uname -p` in
332 sparc) echo sparc-icl-nx7 && exit 0 ;;
335 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
337 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
338 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
341 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
344 # According to config.sub, this is the proper way to canonicalize
345 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
346 # it's likely to be more like Solaris than SunOS4.
347 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
350 case "`/usr/bin/arch -k`" in
352 UNAME_RELEASE=`uname -v`
355 # Japanese Language versions have a version number like `4.1.3-JL'.
356 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
359 echo m68k-sun-sunos${UNAME_RELEASE}
362 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
363 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
364 case "`/bin/arch`" in
366 echo m68k-sun-sunos${UNAME_RELEASE}
369 echo sparc-sun-sunos${UNAME_RELEASE}
374 echo sparc-auspex-sunos${UNAME_RELEASE}
376 # The situation for MiNT is a little confusing. The machine name
377 # can be virtually everything (everything which is not
378 # "atarist" or "atariste" at least should have a processor
379 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
380 # to the lowercase version "mint" (or "freemint"). Finally
381 # the system name "TOS" denotes a system which is actually not
382 # MiNT. But MiNT is downward compatible to TOS, so this should
384 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
385 echo m68k-atari-mint${UNAME_RELEASE}
387 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
388 echo m68k-atari-mint${UNAME_RELEASE}
390 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
391 echo m68k-atari-mint${UNAME_RELEASE}
393 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
394 echo m68k-milan-mint${UNAME_RELEASE}
396 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
397 echo m68k-hades-mint${UNAME_RELEASE}
399 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
400 echo m68k-unknown-mint${UNAME_RELEASE}
403 echo powerpc-apple-machten${UNAME_RELEASE}
406 echo mips-dec-mach_bsd4.3
409 echo mips-dec-ultrix${UNAME_RELEASE}
412 echo vax-dec-ultrix${UNAME_RELEASE}
414 2020:CLIX:*:* | 2430:CLIX:*:*)
415 echo clipper-intergraph-clix${UNAME_RELEASE}
417 mips:*:*:UMIPS | mips:*:*:RISCos)
418 eval $set_cc_for_build
419 sed 's/^ //' << EOF >$dummy.c
421 #include <stdio.h> /* for printf() prototype */
422 int main (int argc, char *argv[]) {
424 int main (argc, argv) int argc; char *argv[]; {
426 #if defined (host_mips) && defined (MIPSEB)
427 #if defined (SYSTYPE_SYSV)
428 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
430 #if defined (SYSTYPE_SVR4)
431 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
433 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
434 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
440 $CC_FOR_BUILD $dummy.c -o $dummy \
441 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
442 && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
443 rm -f $dummy.c $dummy && rmdir $tmpdir
444 echo mips-mips-riscos${UNAME_RELEASE}
446 Motorola:PowerMAX_OS:*:*)
447 echo powerpc-motorola-powermax
449 Night_Hawk:*:*:PowerMAX_OS)
450 echo powerpc-harris-powermax
452 Night_Hawk:Power_UNIX:*:*)
453 echo powerpc-harris-powerunix
456 echo m88k-harris-cxux7
459 echo m88k-motorola-sysv4
462 echo m88k-motorola-sysv3
465 # DG/UX returns AViiON for all architectures
466 UNAME_PROCESSOR=`/usr/bin/uname -p`
467 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
469 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
470 [ ${TARGET_BINARY_INTERFACE}x = x ]
472 echo m88k-dg-dgux${UNAME_RELEASE}
474 echo m88k-dg-dguxbcs${UNAME_RELEASE}
477 echo i586-dg-dgux${UNAME_RELEASE}
480 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
481 echo m88k-dolphin-sysv3
484 # Delta 88k system running SVR3
485 echo m88k-motorola-sysv3
487 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
488 echo m88k-tektronix-sysv3
490 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
491 echo m68k-tektronix-bsd
494 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
496 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
497 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
498 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
503 if [ -x /usr/bin/oslevel ] ; then
504 IBM_REV=`/usr/bin/oslevel`
506 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
508 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
511 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
512 eval $set_cc_for_build
513 sed 's/^ //' << EOF >$dummy.c
514 #include <sys/systemcfg.h>
520 puts("powerpc-ibm-aix3.2.5");
524 $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
525 rm -f $dummy.c $dummy && rmdir $tmpdir
526 echo rs6000-ibm-aix3.2.5
527 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
528 echo rs6000-ibm-aix3.2.4
530 echo rs6000-ibm-aix3.2
534 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
535 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
540 if [ -x /usr/bin/oslevel ] ; then
541 IBM_REV=`/usr/bin/oslevel`
543 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
545 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
550 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
553 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
554 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
555 exit 0 ;; # report: romp-ibm BSD 4.3
557 echo rs6000-bull-bosx
562 9000/[34]??:4.3bsd:1.*:*)
565 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
568 9000/[34678]??:HP-UX:*:*)
569 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
570 case "${UNAME_MACHINE}" in
571 9000/31? ) HP_ARCH=m68000 ;;
572 9000/[34]?? ) HP_ARCH=m68k ;;
573 9000/[678][0-9][0-9])
574 if [ -x /usr/bin/getconf ]; then
575 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
576 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
577 case "${sc_cpu_version}" in
578 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
579 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
580 532) # CPU_PA_RISC2_0
581 case "${sc_kernel_bits}" in
582 32) HP_ARCH="hppa2.0n" ;;
583 64) HP_ARCH="hppa2.0w" ;;
584 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
588 if [ "${HP_ARCH}" = "" ]; then
589 eval $set_cc_for_build
590 sed 's/^ //' << EOF >$dummy.c
598 #if defined(_SC_KERNEL_BITS)
599 long bits = sysconf(_SC_KERNEL_BITS);
601 long cpu = sysconf (_SC_CPU_VERSION);
605 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
606 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
608 #if defined(_SC_KERNEL_BITS)
611 case 64: puts ("hppa2.0w"); break;
612 case 32: puts ("hppa2.0n"); break;
613 default: puts ("hppa2.0"); break;
615 #else /* !defined(_SC_KERNEL_BITS) */
616 puts ("hppa2.0"); break;
618 default: puts ("hppa1.0"); break;
623 (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy`
624 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
625 rm -f $dummy.c $dummy && rmdir $tmpdir
628 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
631 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
632 echo ia64-hp-hpux${HPUX_REV}
635 eval $set_cc_for_build
636 sed 's/^ //' << EOF >$dummy.c
641 long cpu = sysconf (_SC_CPU_VERSION);
642 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
643 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
645 if (CPU_IS_PA_RISC (cpu))
649 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
650 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
651 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
652 default: puts ("hppa-hitachi-hiuxwe2"); break;
655 else if (CPU_IS_HP_MC68K (cpu))
656 puts ("m68k-hitachi-hiuxwe2");
657 else puts ("unknown-hitachi-hiuxwe2");
661 $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
662 rm -f $dummy.c $dummy && rmdir $tmpdir
663 echo unknown-hitachi-hiuxwe2
665 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
671 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
672 echo hppa1.0-hp-mpeix
674 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
681 if [ -x /usr/sbin/sysversion ] ; then
682 echo ${UNAME_MACHINE}-unknown-osf1mk
684 echo ${UNAME_MACHINE}-unknown-osf1
688 echo hppa1.1-hp-lites
690 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
693 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
694 if getsysinfo -f scalar_acc
695 then echo c32-convex-bsd
696 else echo c2-convex-bsd
699 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
702 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
705 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
709 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
712 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
713 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
714 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
718 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
721 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
724 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
727 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
729 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
730 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
731 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
732 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
733 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
735 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
736 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
739 echo sparc-unknown-bsdi${UNAME_RELEASE}
742 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
745 # Determine whether the default compiler uses glibc.
746 eval $set_cc_for_build
747 sed 's/^ //' << EOF >$dummy.c
748 #include <features.h>
755 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
756 rm -f $dummy.c && rmdir $tmpdir
757 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
760 echo ${UNAME_MACHINE}-pc-cygwin
763 echo ${UNAME_MACHINE}-pc-mingw32
766 echo ${UNAME_MACHINE}-pc-pw32
769 echo i386-pc-interix3
771 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
772 # How do we know it's Interix rather than the generic POSIX subsystem?
773 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
774 # UNAME_MACHINE based on the output of uname instead of i386?
778 echo ${UNAME_MACHINE}-pc-uwin
781 echo powerpcle-unknown-cygwin
784 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
787 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
790 echo ${UNAME_MACHINE}-pc-minix
793 echo ${UNAME_MACHINE}-unknown-linux-gnu
796 echo ${UNAME_MACHINE}-unknown-linux-gnu
799 echo ${UNAME_MACHINE}-unknown-linux-gnu
802 eval $set_cc_for_build
803 sed 's/^ //' << EOF >$dummy.c
807 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
810 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
817 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
818 rm -f $dummy.c && rmdir $tmpdir
819 test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
822 echo powerpc-unknown-linux-gnu
825 echo powerpc64-unknown-linux-gnu
828 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
829 EV5) UNAME_MACHINE=alphaev5 ;;
830 EV56) UNAME_MACHINE=alphaev56 ;;
831 PCA56) UNAME_MACHINE=alphapca56 ;;
832 PCA57) UNAME_MACHINE=alphapca56 ;;
833 EV6) UNAME_MACHINE=alphaev6 ;;
834 EV67) UNAME_MACHINE=alphaev67 ;;
835 EV68*) UNAME_MACHINE=alphaev68 ;;
837 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
838 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
839 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
841 parisc:Linux:*:* | hppa:Linux:*:*)
843 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
844 PA7*) echo hppa1.1-unknown-linux-gnu ;;
845 PA8*) echo hppa2.0-unknown-linux-gnu ;;
846 *) echo hppa-unknown-linux-gnu ;;
849 parisc64:Linux:*:* | hppa64:Linux:*:*)
850 echo hppa64-unknown-linux-gnu
852 s390:Linux:*:* | s390x:Linux:*:*)
853 echo ${UNAME_MACHINE}-ibm-linux
856 echo ${UNAME_MACHINE}-unknown-linux-gnu
858 sparc:Linux:*:* | sparc64:Linux:*:*)
859 echo ${UNAME_MACHINE}-unknown-linux-gnu
862 echo x86_64-unknown-linux-gnu
865 # The BFD linker knows what the default object file format is, so
866 # first see if it will tell us. cd to the root directory to prevent
867 # problems with other programs or directories called `ld' in the path.
868 # Set LC_ALL=C to ensure ld outputs messages in English.
869 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
870 | sed -ne '/supported targets:/!d
872 s/.*supported targets: *//
875 case "$ld_supported_targets" in
877 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
880 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
883 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
886 # Either a pre-BFD a.out linker (linux-gnuoldld) or
887 # one that does not give us useful --help.
888 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
891 # Determine whether the default compiler is a.out or elf
892 eval $set_cc_for_build
893 sed 's/^ //' << EOF >$dummy.c
894 #include <features.h>
906 #ifdef __INTEL_COMPILER
913 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
914 rm -f $dummy.c && rmdir $tmpdir
915 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
916 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
919 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
920 # earlier versions are messed up and put the nodename in both
921 # sysname and nodename.
922 echo i386-sequent-sysv4
924 i*86:UNIX_SV:4.2MP:2.*)
925 # Unixware is an offshoot of SVR4, but it has its own version
926 # number series starting with 2...
927 # I am not positive that other SVR4 systems won't match this,
928 # I just have to hope. -- rms.
929 # Use sysv4.2uw... so that sysv4* matches it.
930 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
932 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
933 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
934 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
935 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
937 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
941 case `/bin/uname -X | grep "^Machine"` in
942 *486*) UNAME_MACHINE=i486 ;;
943 *Pentium) UNAME_MACHINE=i586 ;;
944 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
946 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
949 if test -f /usr/options/cb.name; then
950 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
951 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
952 elif /bin/uname -X 2>/dev/null >/dev/null ; then
953 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
954 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
955 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
956 && UNAME_MACHINE=i586
957 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
958 && UNAME_MACHINE=i686
959 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
960 && UNAME_MACHINE=i686
961 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
963 echo ${UNAME_MACHINE}-pc-sysv32
967 echo ${UNAME_MACHINE}-pc-msdosdjgpp
970 # Left here for compatibility:
971 # uname -m prints for DJGPP always 'pc', but it prints nothing about
972 # the processor, so we play safe by assuming i386.
973 echo i386-pc-msdosdjgpp
981 i860:*:4.*:*) # i860-SVR4
982 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
983 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
984 else # Add other i860-SVR4 vendors below as they are discovered.
985 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
990 echo m68010-convergent-sysv
993 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
994 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)
996 test -r /etc/.relid \
997 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
998 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
999 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1000 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1001 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1002 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1003 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1004 && echo i486-ncr-sysv4 && exit 0 ;;
1005 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1006 echo m68k-unknown-lynxos${UNAME_RELEASE}
1008 mc68030:UNIX_System_V:4.*:*)
1009 echo m68k-atari-sysv4
1011 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1012 echo i386-unknown-lynxos${UNAME_RELEASE}
1014 TSUNAMI:LynxOS:2.*:*)
1015 echo sparc-unknown-lynxos${UNAME_RELEASE}
1017 rs6000:LynxOS:2.*:*)
1018 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1020 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1021 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1023 SM[BE]S:UNIX_SV:*:*)
1024 echo mips-dde-sysv${UNAME_RELEASE}
1026 RM*:ReliantUNIX-*:*:*)
1033 if uname -p 2>/dev/null >/dev/null ; then
1034 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1035 echo ${UNAME_MACHINE}-sni-sysv4
1040 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1041 # says <Richard.M.Bartel@ccMail.Census.GOV>
1042 echo i586-unisys-sysv4
1044 *:UNIX_System_V:4*:FTX*)
1045 # From Gerald Hewes <hewes@openmarket.com>.
1046 # How about differentiating between stratus architectures? -djm
1047 echo hppa1.1-stratus-sysv4
1050 # From seanf@swdc.stratus.com.
1051 echo i860-stratus-sysv4
1054 # From Paul.Green@stratus.com.
1055 echo hppa1.1-stratus-vos
1058 echo m68k-apple-aux${UNAME_RELEASE}
1061 echo mips-sony-newsos6
1063 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1064 if [ -d /usr/nec ]; then
1065 echo mips-nec-sysv${UNAME_RELEASE}
1067 echo mips-unknown-sysv${UNAME_RELEASE}
1070 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1071 echo powerpc-be-beos
1073 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1074 echo powerpc-apple-beos
1076 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1080 echo sx4-nec-superux${UNAME_RELEASE}
1083 echo sx5-nec-superux${UNAME_RELEASE}
1085 Power*:Rhapsody:*:*)
1086 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1089 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1092 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1094 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1095 UNAME_PROCESSOR=`uname -p`
1096 if test "$UNAME_PROCESSOR" = "x86"; then
1097 UNAME_PROCESSOR=i386
1100 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1105 NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
1106 echo nsr-tandem-nsk${UNAME_RELEASE}
1109 echo mips-compaq-nonstopux
1112 echo bs2000-siemens-sysv
1114 DS/*:UNIX_System_V:*:*)
1115 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1118 # "uname -m" is not consistent, so use $cputype instead. 386
1119 # is converted to i386 for consistency with other x86
1120 # operating systems.
1121 if test "$cputype" = "386"; then
1124 UNAME_MACHINE="$cputype"
1126 echo ${UNAME_MACHINE}-unknown-plan9
1129 # If we were able to find `uname', then EMX Unix compatibility
1130 # is probably installed.
1131 echo ${UNAME_MACHINE}-pc-os2-emx
1134 echo pdp10-unknown-tops10
1137 echo pdp10-unknown-tenex
1139 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1140 echo pdp10-dec-tops20
1142 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1143 echo pdp10-xkl-tops20
1146 echo pdp10-unknown-tops20
1149 echo pdp10-unknown-its
1151 i*86:XTS-300:*:STOP)
1152 echo ${UNAME_MACHINE}-unknown-stop
1155 echo ${UNAME_MACHINE}-unknown-atheos
1159 #echo '(No uname command or uname output not recognized.)' 1>&2
1160 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1162 eval $set_cc_for_build
1165 # include <sys/types.h>
1166 # include <sys/utsname.h>
1171 #if defined (MIPSEB)
1172 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1174 printf ("mips-sony-bsd\n"); exit (0);
1176 #include <sys/param.h>
1177 printf ("m68k-sony-newsos%s\n",
1187 #if defined (__arm) && defined (__acorn) && defined (__unix)
1188 printf ("arm-acorn-riscix"); exit (0);
1191 #if defined (hp300) && !defined (hpux)
1192 printf ("m68k-hp-bsd\n"); exit (0);
1196 #if !defined (__ARCHITECTURE__)
1197 #define __ARCHITECTURE__ "m68k"
1200 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1202 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1204 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1208 #if defined (MULTIMAX) || defined (n16)
1210 printf ("ns32k-encore-sysv\n"); exit (0);
1213 printf ("ns32k-encore-mach\n"); exit (0);
1215 printf ("ns32k-encore-bsd\n"); exit (0);
1220 #if defined (__386BSD__)
1221 printf ("i386-pc-bsd\n"); exit (0);
1224 #if defined (sequent)
1226 printf ("i386-sequent-dynix\n"); exit (0);
1228 #if defined (ns32000)
1229 printf ("ns32k-sequent-dynix\n"); exit (0);
1233 #if defined (_SEQUENT_)
1238 if (strncmp(un.version, "V2", 2) == 0) {
1239 printf ("i386-sequent-ptx2\n"); exit (0);
1241 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1242 printf ("i386-sequent-ptx1\n"); exit (0);
1244 printf ("i386-sequent-ptx\n"); exit (0);
1249 # if !defined (ultrix)
1250 # include <sys/param.h>
1253 printf ("vax-dec-bsd4.3\n"); exit (0);
1256 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1258 printf ("vax-dec-bsd\n"); exit (0);
1262 printf ("vax-dec-bsd\n"); exit (0);
1265 printf ("vax-dec-ultrix\n"); exit (0);
1269 #if defined (alliant) && defined (i860)
1270 printf ("i860-alliant-bsd\n"); exit (0);
1277 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1278 rm -f $dummy.c $dummy && rmdir $tmpdir
1280 # Apollos put the system type in the environment.
1282 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1284 # Convex versions that predate uname can use getsysinfo(1)
1286 if [ -x /usr/convex/getsysinfo ]
1288 case `getsysinfo -f cpu_type` in
1293 if getsysinfo -f scalar_acc
1294 then echo c32-convex-bsd
1295 else echo c2-convex-bsd
1311 $0: unable to guess system type
1313 This script, last modified $timestamp, has failed to recognize
1314 the operating system you are using. It is advised that you
1315 download the most up to date version of the config scripts from
1317 ftp://ftp.gnu.org/pub/gnu/config/
1319 If the version you run ($0) is already up to date, please
1320 send the following data and any information you think might be
1321 pertinent to <config-patches@gnu.org> in order to provide the needed
1322 information to handle your system.
1324 config.guess timestamp = $timestamp
1326 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1327 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1328 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1329 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1331 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1332 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1334 hostinfo = `(hostinfo) 2>/dev/null`
1335 /bin/universe = `(/bin/universe) 2>/dev/null`
1336 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1337 /bin/arch = `(/bin/arch) 2>/dev/null`
1338 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1339 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1341 UNAME_MACHINE = ${UNAME_MACHINE}
1342 UNAME_RELEASE = ${UNAME_RELEASE}
1343 UNAME_SYSTEM = ${UNAME_SYSTEM}
1344 UNAME_VERSION = ${UNAME_VERSION}
1350 # eval: (add-hook 'write-file-hooks 'time-stamp)
1351 # time-stamp-start: "timestamp='"
1352 # time-stamp-format: "%:y-%02m-%02d"
1353 # time-stamp-end: "'"