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.
5 # Portions Copyright 1998-2002 OpenLDAP Foundation.
7 timestamp='2002-10-21-OpenLDAP'
9 # This file is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # This program is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 # As a special exception to the GNU General Public License, if you
24 # distribute this file as part of a program that contains a
25 # configuration script generated by Autoconf, you may include it under
26 # the same distribution terms that you use for the rest of that program.
28 # This file is distributed with OpenLDAP Software, which contains a
29 # configuration script generated by Autoconf, and is distributable
30 # under the same distributions terms as OpenLDAP inself.
31 # See the OpenLDAP COPYRIGHT and LICENSE file for details.
34 # Originally written by Per Bothner <per@bothner.com>.
35 # Please send patches to <config-patches@gnu.org>. Submit a context
36 # diff and a properly formatted ChangeLog entry.
38 # This script attempts to guess a canonical system name similar to
39 # config.sub. If it succeeds, it prints the system name on stdout, and
40 # exits with 0. Otherwise, it exits with 1.
42 # The plan is that this can be called by configure scripts if you
43 # don't specify an explicit build system type.
45 me=`echo "$0" | sed -e 's,.*/,,'`
50 Output the configuration name of the system \`$me' is run on.
53 -h, --help print this help, then exit
54 -t, --time-stamp print date of last modification, then exit
55 -v, --version print version number, then exit
57 Report bugs and patches to <config-patches@gnu.org>."
60 GNU config.guess ($timestamp)
62 Originally written by Per Bothner.
63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
64 Free Software Foundation, Inc.
66 This is free software; see the source for copying conditions. There is NO
67 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
70 Try \`$me --help' for more information."
73 while test $# -gt 0 ; do
75 --time-stamp | --time* | -t )
76 echo "$timestamp" ; exit 0 ;;
78 echo "$version" ; exit 0 ;;
80 echo "$usage"; exit 0 ;;
81 -- ) # Stop option processing
83 - ) # Use stdin as input.
86 echo "$me: invalid option $1$help" >&2
94 echo "$me: too many arguments$help" >&2
100 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
101 # compiler to aid in system detection is discouraged as it requires
102 # temporary files to be created and, as you can see below, it is a
103 # headache to deal with in a portable fashion.
105 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
106 # use `HOST_CC' if defined, but it is deprecated.
108 # This shell variable is my proudest work .. or something. --bje
110 set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
111 (old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
112 || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
113 dummy=$tmpdir/dummy ;
114 files="$dummy.c $dummy.o $dummy.rel $dummy" ;
115 trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
116 case $CC_FOR_BUILD,$HOST_CC,$CC in
117 ,,) echo "int x;" > $dummy.c ;
118 for c in cc gcc c89 c99 ; do
119 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
120 CC_FOR_BUILD="$c"; break ;
124 if test x"$CC_FOR_BUILD" = x ; then
125 CC_FOR_BUILD=no_compiler_found ;
128 ,,*) CC_FOR_BUILD=$CC ;;
129 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
133 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
134 # (ghazi@noc.rutgers.edu 1994-08-24)
135 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
136 PATH=$PATH:/.attbin ; export PATH
139 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
140 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
141 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
142 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
144 # Note: order is significant - the case branches are not exclusive.
146 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
148 # NetBSD (nbsd) targets should (where applicable) match one or
149 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
150 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
151 # switched to ELF, *-*-netbsd* would select the old
152 # object file format. This provides both forward
153 # compatibility and a consistent mechanism for selecting the
154 # object file format.
156 # Note: NetBSD doesn't particularly care about the vendor
157 # portion of the name. We always set it to "unknown".
158 sysctl="sysctl -n hw.machine_arch"
159 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
160 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
161 case "${UNAME_MACHINE_ARCH}" in
162 armeb) machine=armeb-unknown ;;
163 arm*) machine=arm-unknown ;;
164 sh3el) machine=shl-unknown ;;
165 sh3eb) machine=sh-unknown ;;
166 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
168 # The Operating System including object format, if it has switched
169 # to ELF recently, or will in the future.
170 case "${UNAME_MACHINE_ARCH}" in
171 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
172 eval $set_cc_for_build
173 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
174 | grep __ELF__ >/dev/null
176 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
177 # Return netbsd for either. FIX?
188 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
189 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
190 # contains redundant information, the shorter form:
191 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
192 echo "${machine}-${os}${release}"
195 echo m68k-unknown-openbsd${UNAME_RELEASE}
198 echo mipsel-unknown-openbsd${UNAME_RELEASE}
201 echo m68k-unknown-openbsd${UNAME_RELEASE}
204 echo m68k-unknown-openbsd${UNAME_RELEASE}
207 echo powerpc-unknown-openbsd${UNAME_RELEASE}
210 echo m68k-unknown-openbsd${UNAME_RELEASE}
213 echo m88k-unknown-openbsd${UNAME_RELEASE}
216 echo powerpc-unknown-openbsd${UNAME_RELEASE}
219 echo mipsel-unknown-openbsd${UNAME_RELEASE}
222 echo mipseb-unknown-openbsd${UNAME_RELEASE}
225 echo m68k-unknown-openbsd${UNAME_RELEASE}
228 echo mipsel-unknown-openbsd${UNAME_RELEASE}
231 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
234 if test $UNAME_RELEASE = "V4.0"; then
235 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
237 # A Vn.n version is a released version.
238 # A Tn.n version is a released field test version.
239 # A Xn.n version is an unreleased experimental baselevel.
240 # 1.2 uses "1.2" for uname -r.
241 eval $set_cc_for_build
245 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
252 .frame \$30,16,\$26,0
255 .long 0x47e03d80 # implver \$0
257 .long 0x47e20c21 # amask \$2,\$1
267 $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
268 if test "$?" = 0 ; then
271 UNAME_MACHINE="alpha"
274 UNAME_MACHINE="alphaev5"
277 UNAME_MACHINE="alphaev56"
280 UNAME_MACHINE="alphapca56"
283 UNAME_MACHINE="alphaev6"
286 UNAME_MACHINE="alphaev67"
289 UNAME_MACHINE="alphaev68"
292 UNAME_MACHINE="alphaev7"
296 rm -f $dummy.s $dummy && rmdir $tmpdir
297 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
299 Alpha\ *:Windows_NT*:*)
300 # How do we know it's Interix rather than the generic POSIX subsystem?
301 # Should we change UNAME_MACHINE based on the output of uname instead
302 # of the specific Alpha model?
303 echo alpha-pc-interix
305 21064:Windows_NT:50:3)
306 echo alpha-dec-winnt3.5
308 Amiga*:UNIX_System_V:4.0:*)
309 echo m68k-unknown-sysv4
311 *:[Aa]miga[Oo][Ss]:*:*)
312 echo ${UNAME_MACHINE}-unknown-amigaos
314 *:[Mm]orph[Oo][Ss]:*:*)
315 echo ${UNAME_MACHINE}-unknown-morphos
318 echo i370-ibm-openedition
320 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
321 echo arm-acorn-riscix${UNAME_RELEASE}
323 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
324 echo hppa1.1-hitachi-hiuxmpp
326 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
327 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
328 if test "`(/bin/universe) 2>/dev/null`" = att ; then
329 echo pyramid-pyramid-sysv3
331 echo pyramid-pyramid-bsd
335 echo pyramid-pyramid-svr4
337 DRS?6000:UNIX_SV:4.2*:7*)
338 case `/usr/bin/uname -p` in
339 sparc) echo sparc-icl-nx7 && exit 0 ;;
342 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
344 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
345 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
348 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
351 # According to config.sub, this is the proper way to canonicalize
352 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
353 # it's likely to be more like Solaris than SunOS4.
354 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
357 case "`/usr/bin/arch -k`" in
359 UNAME_RELEASE=`uname -v`
362 # Japanese Language versions have a version number like `4.1.3-JL'.
363 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
366 echo m68k-sun-sunos${UNAME_RELEASE}
369 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
370 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
371 case "`/bin/arch`" in
373 echo m68k-sun-sunos${UNAME_RELEASE}
376 echo sparc-sun-sunos${UNAME_RELEASE}
381 echo sparc-auspex-sunos${UNAME_RELEASE}
383 # The situation for MiNT is a little confusing. The machine name
384 # can be virtually everything (everything which is not
385 # "atarist" or "atariste" at least should have a processor
386 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
387 # to the lowercase version "mint" (or "freemint"). Finally
388 # the system name "TOS" denotes a system which is actually not
389 # MiNT. But MiNT is downward compatible to TOS, so this should
391 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
392 echo m68k-atari-mint${UNAME_RELEASE}
394 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
395 echo m68k-atari-mint${UNAME_RELEASE}
397 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
398 echo m68k-atari-mint${UNAME_RELEASE}
400 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
401 echo m68k-milan-mint${UNAME_RELEASE}
403 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
404 echo m68k-hades-mint${UNAME_RELEASE}
406 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
407 echo m68k-unknown-mint${UNAME_RELEASE}
410 echo powerpc-apple-machten${UNAME_RELEASE}
413 echo mips-dec-mach_bsd4.3
416 echo mips-dec-ultrix${UNAME_RELEASE}
419 echo vax-dec-ultrix${UNAME_RELEASE}
421 2020:CLIX:*:* | 2430:CLIX:*:*)
422 echo clipper-intergraph-clix${UNAME_RELEASE}
424 mips:*:*:UMIPS | mips:*:*:RISCos)
425 eval $set_cc_for_build
426 sed 's/^ //' << EOF >$dummy.c
428 #include <stdio.h> /* for printf() prototype */
429 int main (int argc, char *argv[]) {
431 int main (argc, argv) int argc; char *argv[]; {
433 #if defined (host_mips) && defined (MIPSEB)
434 #if defined (SYSTYPE_SYSV)
435 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
437 #if defined (SYSTYPE_SVR4)
438 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
440 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
441 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
447 $CC_FOR_BUILD -o $dummy $dummy.c \
448 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
449 && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
450 rm -f $dummy.c $dummy && rmdir $tmpdir
451 echo mips-mips-riscos${UNAME_RELEASE}
453 Motorola:PowerMAX_OS:*:*)
454 echo powerpc-motorola-powermax
456 Motorola:*:4.3:PL8-*)
457 echo powerpc-harris-powermax
459 Night_Hawk:*:*:PowerMAX_OS)
460 echo powerpc-harris-powermax
462 Night_Hawk:Power_UNIX:*:*)
463 echo powerpc-harris-powerunix
466 echo m88k-harris-cxux7
469 echo m88k-motorola-sysv4
472 echo m88k-motorola-sysv3
475 # DG/UX returns AViiON for all architectures
476 UNAME_PROCESSOR=`/usr/bin/uname -p`
477 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
479 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
480 [ ${TARGET_BINARY_INTERFACE}x = x ]
482 echo m88k-dg-dgux${UNAME_RELEASE}
484 echo m88k-dg-dguxbcs${UNAME_RELEASE}
487 echo i586-dg-dgux${UNAME_RELEASE}
490 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
491 echo m88k-dolphin-sysv3
494 # Delta 88k system running SVR3
495 echo m88k-motorola-sysv3
497 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
498 echo m88k-tektronix-sysv3
500 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
501 echo m68k-tektronix-bsd
504 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
506 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
507 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
508 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
513 if [ -x /usr/bin/oslevel ] ; then
514 IBM_REV=`/usr/bin/oslevel`
516 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
518 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
521 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
522 eval $set_cc_for_build
523 sed 's/^ //' << EOF >$dummy.c
524 #include <sys/systemcfg.h>
530 puts("powerpc-ibm-aix3.2.5");
534 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
535 rm -f $dummy.c $dummy && rmdir $tmpdir
536 echo rs6000-ibm-aix3.2.5
537 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
538 echo rs6000-ibm-aix3.2.4
540 echo rs6000-ibm-aix3.2
544 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
545 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
550 if [ -x /usr/bin/oslevel ] ; then
551 IBM_REV=`/usr/bin/oslevel`
553 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
555 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
560 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
563 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
564 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
565 exit 0 ;; # report: romp-ibm BSD 4.3
567 echo rs6000-bull-bosx
572 9000/[34]??:4.3bsd:1.*:*)
575 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
578 9000/[34678]??:HP-UX:*:*)
579 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
580 case "${UNAME_MACHINE}" in
581 9000/31? ) HP_ARCH=m68000 ;;
582 9000/[34]?? ) HP_ARCH=m68k ;;
583 9000/[678][0-9][0-9])
584 if [ -x /usr/bin/getconf ]; then
585 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
586 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
587 case "${sc_cpu_version}" in
588 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
589 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
590 532) # CPU_PA_RISC2_0
591 case "${sc_kernel_bits}" in
592 32) HP_ARCH="hppa2.0n" ;;
593 64) HP_ARCH="hppa2.0w" ;;
594 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
598 if [ "${HP_ARCH}" = "" ]; then
599 eval $set_cc_for_build
600 sed 's/^ //' << EOF >$dummy.c
608 #if defined(_SC_KERNEL_BITS)
609 long bits = sysconf(_SC_KERNEL_BITS);
611 long cpu = sysconf (_SC_CPU_VERSION);
615 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
616 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
618 #if defined(_SC_KERNEL_BITS)
621 case 64: puts ("hppa2.0w"); break;
622 case 32: puts ("hppa2.0n"); break;
623 default: puts ("hppa2.0"); break;
625 #else /* !defined(_SC_KERNEL_BITS) */
626 puts ("hppa2.0"); break;
628 default: puts ("hppa1.0"); break;
633 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
634 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
635 rm -f $dummy.c $dummy && rmdir $tmpdir
638 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
641 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
642 echo ia64-hp-hpux${HPUX_REV}
645 eval $set_cc_for_build
646 sed 's/^ //' << EOF >$dummy.c
651 long cpu = sysconf (_SC_CPU_VERSION);
652 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
653 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
655 if (CPU_IS_PA_RISC (cpu))
659 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
660 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
661 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
662 default: puts ("hppa-hitachi-hiuxwe2"); break;
665 else if (CPU_IS_HP_MC68K (cpu))
666 puts ("m68k-hitachi-hiuxwe2");
667 else puts ("unknown-hitachi-hiuxwe2");
671 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
672 rm -f $dummy.c $dummy && rmdir $tmpdir
673 echo unknown-hitachi-hiuxwe2
675 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
681 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
682 echo hppa1.0-hp-mpeix
684 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
691 if [ -x /usr/sbin/sysversion ] ; then
692 echo ${UNAME_MACHINE}-unknown-osf1mk
694 echo ${UNAME_MACHINE}-unknown-osf1
698 echo hppa1.1-hp-lites
700 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
703 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
704 if getsysinfo -f scalar_acc
705 then echo c32-convex-bsd
706 else echo c2-convex-bsd
709 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
712 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
715 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
719 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
722 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
723 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
724 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
728 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
731 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
734 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
737 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
739 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
740 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
741 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
742 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
743 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
745 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
746 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
749 echo sparc-unknown-bsdi${UNAME_RELEASE}
752 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
755 # Determine whether the default compiler uses glibc.
756 eval $set_cc_for_build
757 sed 's/^ //' << EOF >$dummy.c
758 #include <features.h>
765 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
766 rm -f $dummy.c && rmdir $tmpdir
767 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
770 echo ${UNAME_MACHINE}-pc-cygwin
773 echo ${UNAME_MACHINE}-pc-mingw32
776 echo ${UNAME_MACHINE}-pc-pw32
779 echo i386-pc-interix3
781 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
782 # How do we know it's Interix rather than the generic POSIX subsystem?
783 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
784 # UNAME_MACHINE based on the output of uname instead of i386?
788 echo ${UNAME_MACHINE}-pc-uwin
791 echo powerpcle-unknown-cygwin
794 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
797 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
800 echo ${UNAME_MACHINE}-pc-minix
803 echo ${UNAME_MACHINE}-unknown-linux-gnu
806 echo ${UNAME_MACHINE}-unknown-linux-gnu
809 echo ${UNAME_MACHINE}-unknown-linux-gnu
812 eval $set_cc_for_build
813 sed 's/^ //' << EOF >$dummy.c
817 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
820 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
827 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
828 rm -f $dummy.c && rmdir $tmpdir
829 test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
832 echo powerpc-unknown-linux-gnu
835 echo powerpc64-unknown-linux-gnu
838 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
839 EV5) UNAME_MACHINE=alphaev5 ;;
840 EV56) UNAME_MACHINE=alphaev56 ;;
841 PCA56) UNAME_MACHINE=alphapca56 ;;
842 PCA57) UNAME_MACHINE=alphapca56 ;;
843 EV6) UNAME_MACHINE=alphaev6 ;;
844 EV67) UNAME_MACHINE=alphaev67 ;;
845 EV68*) UNAME_MACHINE=alphaev68 ;;
847 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
848 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
849 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
851 parisc:Linux:*:* | hppa:Linux:*:*)
853 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
854 PA7*) echo hppa1.1-unknown-linux-gnu ;;
855 PA8*) echo hppa2.0-unknown-linux-gnu ;;
856 *) echo hppa-unknown-linux-gnu ;;
859 parisc64:Linux:*:* | hppa64:Linux:*:*)
860 echo hppa64-unknown-linux-gnu
862 s390:Linux:*:* | s390x:Linux:*:*)
863 echo ${UNAME_MACHINE}-ibm-linux
866 echo ${UNAME_MACHINE}-unknown-linux-gnu
868 sparc:Linux:*:* | sparc64:Linux:*:*)
869 echo ${UNAME_MACHINE}-unknown-linux-gnu
872 echo x86_64-unknown-linux-gnu
875 # The BFD linker knows what the default object file format is, so
876 # first see if it will tell us. cd to the root directory to prevent
877 # problems with other programs or directories called `ld' in the path.
878 # Set LC_ALL=C to ensure ld outputs messages in English.
879 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
880 | sed -ne '/supported targets:/!d
882 s/.*supported targets: *//
885 case "$ld_supported_targets" in
887 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
890 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
893 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
896 # Either a pre-BFD a.out linker (linux-gnuoldld) or
897 # one that does not give us useful --help.
898 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
901 # Determine whether the default compiler is a.out or elf
902 eval $set_cc_for_build
903 sed 's/^ //' << EOF >$dummy.c
904 #include <features.h>
916 #ifdef __INTEL_COMPILER
923 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
924 rm -f $dummy.c && rmdir $tmpdir
925 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
926 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
929 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
930 # earlier versions are messed up and put the nodename in both
931 # sysname and nodename.
932 echo i386-sequent-sysv4
934 i*86:UNIX_SV:4.2MP:2.*)
935 # Unixware is an offshoot of SVR4, but it has its own version
936 # number series starting with 2...
937 # I am not positive that other SVR4 systems won't match this,
938 # I just have to hope. -- rms.
939 # Use sysv4.2uw... so that sysv4* matches it.
940 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
942 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
943 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
944 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
945 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
947 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
951 case `/bin/uname -X | grep "^Machine"` in
952 *486*) UNAME_MACHINE=i486 ;;
953 *Pentium) UNAME_MACHINE=i586 ;;
954 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
956 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
959 if test -f /usr/options/cb.name; then
960 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
961 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
962 elif /bin/uname -X 2>/dev/null >/dev/null ; then
963 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
964 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
965 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
966 && UNAME_MACHINE=i586
967 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
968 && UNAME_MACHINE=i686
969 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
970 && UNAME_MACHINE=i686
971 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
973 echo ${UNAME_MACHINE}-pc-sysv32
977 echo ${UNAME_MACHINE}-pc-msdosdjgpp
980 # Left here for compatibility:
981 # uname -m prints for DJGPP always 'pc', but it prints nothing about
982 # the processor, so we play safe by assuming i386.
983 echo i386-pc-msdosdjgpp
991 i860:*:4.*:*) # i860-SVR4
992 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
993 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
994 else # Add other i860-SVR4 vendors below as they are discovered.
995 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1000 echo m68010-convergent-sysv
1002 mc68k:UNIX:SYSTEM5:3.51m)
1003 echo m68k-convergent-sysv
1006 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1007 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)
1009 test -r /etc/.relid \
1010 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1011 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1012 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1013 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1014 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1015 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1016 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1017 && echo i486-ncr-sysv4 && exit 0 ;;
1018 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1019 echo m68k-unknown-lynxos${UNAME_RELEASE}
1021 mc68030:UNIX_System_V:4.*:*)
1022 echo m68k-atari-sysv4
1024 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1025 echo i386-unknown-lynxos${UNAME_RELEASE}
1027 TSUNAMI:LynxOS:2.*:*)
1028 echo sparc-unknown-lynxos${UNAME_RELEASE}
1030 rs6000:LynxOS:2.*:*)
1031 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1033 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1034 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1036 SM[BE]S:UNIX_SV:*:*)
1037 echo mips-dde-sysv${UNAME_RELEASE}
1039 RM*:ReliantUNIX-*:*:*)
1046 if uname -p 2>/dev/null >/dev/null ; then
1047 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1048 echo ${UNAME_MACHINE}-sni-sysv4
1053 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1054 # says <Richard.M.Bartel@ccMail.Census.GOV>
1055 echo i586-unisys-sysv4
1057 *:UNIX_System_V:4*:FTX*)
1058 # From Gerald Hewes <hewes@openmarket.com>.
1059 # How about differentiating between stratus architectures? -djm
1060 echo hppa1.1-stratus-sysv4
1063 # From seanf@swdc.stratus.com.
1064 echo i860-stratus-sysv4
1067 # From Paul.Green@stratus.com.
1068 echo hppa1.1-stratus-vos
1071 echo m68k-apple-aux${UNAME_RELEASE}
1074 echo mips-sony-newsos6
1076 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1077 if [ -d /usr/nec ]; then
1078 echo mips-nec-sysv${UNAME_RELEASE}
1080 echo mips-unknown-sysv${UNAME_RELEASE}
1083 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1084 echo powerpc-be-beos
1086 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1087 echo powerpc-apple-beos
1089 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1093 echo sx4-nec-superux${UNAME_RELEASE}
1096 echo sx5-nec-superux${UNAME_RELEASE}
1099 echo sx6-nec-superux${UNAME_RELEASE}
1101 Power*:Rhapsody:*:*)
1102 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1105 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1108 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1110 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1111 UNAME_PROCESSOR=`uname -p`
1112 if test "$UNAME_PROCESSOR" = "x86"; then
1113 UNAME_PROCESSOR=i386
1116 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1121 NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
1122 echo nsr-tandem-nsk${UNAME_RELEASE}
1125 echo mips-compaq-nonstopux
1128 echo bs2000-siemens-sysv
1130 DS/*:UNIX_System_V:*:*)
1131 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1134 # "uname -m" is not consistent, so use $cputype instead. 386
1135 # is converted to i386 for consistency with other x86
1136 # operating systems.
1137 if test "$cputype" = "386"; then
1140 UNAME_MACHINE="$cputype"
1142 echo ${UNAME_MACHINE}-unknown-plan9
1145 # If we were able to find `uname', then EMX Unix compatibility
1146 # is probably installed.
1147 echo ${UNAME_MACHINE}-pc-os2-emx
1150 echo pdp10-unknown-tops10
1153 echo pdp10-unknown-tenex
1155 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1156 echo pdp10-dec-tops20
1158 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1159 echo pdp10-xkl-tops20
1162 echo pdp10-unknown-tops20
1165 echo pdp10-unknown-its
1167 i*86:XTS-300:*:STOP)
1168 echo ${UNAME_MACHINE}-unknown-stop
1171 echo ${UNAME_MACHINE}-unknown-atheos
1175 #echo '(No uname command or uname output not recognized.)' 1>&2
1176 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1178 eval $set_cc_for_build
1181 # include <sys/types.h>
1182 # include <sys/utsname.h>
1187 #if defined (MIPSEB)
1188 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1190 printf ("mips-sony-bsd\n"); exit (0);
1192 #include <sys/param.h>
1193 printf ("m68k-sony-newsos%s\n",
1203 #if defined (__arm) && defined (__acorn) && defined (__unix)
1204 printf ("arm-acorn-riscix"); exit (0);
1207 #if defined (hp300) && !defined (hpux)
1208 printf ("m68k-hp-bsd\n"); exit (0);
1212 #if !defined (__ARCHITECTURE__)
1213 #define __ARCHITECTURE__ "m68k"
1216 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1218 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1220 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1224 #if defined (MULTIMAX) || defined (n16)
1226 printf ("ns32k-encore-sysv\n"); exit (0);
1229 printf ("ns32k-encore-mach\n"); exit (0);
1231 printf ("ns32k-encore-bsd\n"); exit (0);
1236 #if defined (__386BSD__)
1237 printf ("i386-pc-bsd\n"); exit (0);
1240 #if defined (sequent)
1242 printf ("i386-sequent-dynix\n"); exit (0);
1244 #if defined (ns32000)
1245 printf ("ns32k-sequent-dynix\n"); exit (0);
1249 #if defined (_SEQUENT_)
1254 if (strncmp(un.version, "V2", 2) == 0) {
1255 printf ("i386-sequent-ptx2\n"); exit (0);
1257 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1258 printf ("i386-sequent-ptx1\n"); exit (0);
1260 printf ("i386-sequent-ptx\n"); exit (0);
1265 # if !defined (ultrix)
1266 # include <sys/param.h>
1269 printf ("vax-dec-bsd4.3\n"); exit (0);
1272 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1274 printf ("vax-dec-bsd\n"); exit (0);
1278 printf ("vax-dec-bsd\n"); exit (0);
1281 printf ("vax-dec-ultrix\n"); exit (0);
1285 #if defined (alliant) && defined (i860)
1286 printf ("i860-alliant-bsd\n"); exit (0);
1293 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1294 rm -f $dummy.c $dummy && rmdir $tmpdir
1296 # Apollos put the system type in the environment.
1298 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1300 # Convex versions that predate uname can use getsysinfo(1)
1302 if [ -x /usr/convex/getsysinfo ]
1304 case `getsysinfo -f cpu_type` in
1309 if getsysinfo -f scalar_acc
1310 then echo c32-convex-bsd
1311 else echo c2-convex-bsd
1327 $0: unable to guess system type
1329 This script, last modified $timestamp, has failed to recognize
1330 the operating system you are using. It is advised that you
1331 download the most up to date version of the config scripts from
1333 ftp://ftp.gnu.org/pub/gnu/config/
1335 If the version you run ($0) is already up to date, please
1336 send the following data and any information you think might be
1337 pertinent to <config-patches@gnu.org> in order to provide the needed
1338 information to handle your system.
1340 config.guess timestamp = $timestamp
1342 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1343 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1344 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1345 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1347 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1348 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1350 hostinfo = `(hostinfo) 2>/dev/null`
1351 /bin/universe = `(/bin/universe) 2>/dev/null`
1352 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1353 /bin/arch = `(/bin/arch) 2>/dev/null`
1354 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1355 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1357 UNAME_MACHINE = ${UNAME_MACHINE}
1358 UNAME_RELEASE = ${UNAME_RELEASE}
1359 UNAME_SYSTEM = ${UNAME_SYSTEM}
1360 UNAME_VERSION = ${UNAME_VERSION}
1366 # eval: (add-hook 'write-file-hooks 'time-stamp)
1367 # time-stamp-start: "timestamp='"
1368 # time-stamp-format: "%:y-%02m-%02d"
1369 # time-stamp-end: "'"