2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 # 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Originally written by Per Bothner <per@bothner.com>.
28 # Please send patches to <config-patches@gnu.org>. Submit a context
29 # diff and a properly formatted ChangeLog entry.
31 # This script attempts to guess a canonical system name similar to
32 # config.sub. If it succeeds, it prints the system name on stdout, and
33 # exits with 0. Otherwise, it exits with 1.
35 # The plan is that this can be called by configure scripts if you
36 # don't specify an explicit build system type.
38 me=`echo "$0" | sed -e 's,.*/,,'`
43 Output the configuration name of the system \`$me' is run on.
46 -h, --help print this help, then exit
47 -t, --time-stamp print date of last modification, then exit
48 -v, --version print version number, then exit
50 Report bugs and patches to <config-patches@gnu.org>."
53 GNU config.guess ($timestamp)
55 Originally written by Per Bothner.
56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
57 Free Software Foundation, Inc.
59 This is free software; see the source for copying conditions. There is NO
60 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
63 Try \`$me --help' for more information."
66 while test $# -gt 0 ; do
68 --time-stamp | --time* | -t )
69 echo "$timestamp" ; exit 0 ;;
71 echo "$version" ; exit 0 ;;
73 echo "$usage"; exit 0 ;;
74 -- ) # Stop option processing
76 - ) # Use stdin as input.
79 echo "$me: invalid option $1$help" >&2
87 echo "$me: too many arguments$help" >&2
93 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
94 # compiler to aid in system detection is discouraged as it requires
95 # temporary files to be created and, as you can see below, it is a
96 # headache to deal with in a portable fashion.
98 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
99 # use `HOST_CC' if defined, but it is deprecated.
101 # Portable tmp directory creation inspired by the Autoconf team.
104 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
105 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
107 { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
108 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
109 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
110 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
112 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
113 case $CC_FOR_BUILD,$HOST_CC,$CC in
114 ,,) echo "int x;" > $dummy.c ;
115 for c in cc gcc c89 c99 ; do
116 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
117 CC_FOR_BUILD="$c"; break ;
120 if test x"$CC_FOR_BUILD" = x ; then
121 CC_FOR_BUILD=no_compiler_found ;
124 ,,*) CC_FOR_BUILD=$CC ;;
125 ,*,*) 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 echo m68k-unknown-openbsd${UNAME_RELEASE}
204 echo mipsel-unknown-openbsd${UNAME_RELEASE}
207 echo m68k-unknown-openbsd${UNAME_RELEASE}
210 echo m68k-unknown-openbsd${UNAME_RELEASE}
213 echo powerpc-unknown-openbsd${UNAME_RELEASE}
216 echo m68k-unknown-openbsd${UNAME_RELEASE}
219 echo m88k-unknown-openbsd${UNAME_RELEASE}
222 echo powerpc-unknown-openbsd${UNAME_RELEASE}
225 echo mipsel-unknown-openbsd${UNAME_RELEASE}
228 echo mipseb-unknown-openbsd${UNAME_RELEASE}
231 echo m68k-unknown-openbsd${UNAME_RELEASE}
234 echo mipsel-unknown-openbsd${UNAME_RELEASE}
237 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
240 if test $UNAME_RELEASE = "V4.0"; then
241 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
243 # According to Compaq, /usr/sbin/psrinfo has been available on
244 # OSF/1 and Tru64 systems produced since 1995. I hope that
245 # covers most systems running today. This code pipes the CPU
246 # types through head -n 1, so we only detect the type of CPU 0.
247 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
248 case "$ALPHA_CPU_TYPE" in
250 UNAME_MACHINE="alpha" ;;
252 UNAME_MACHINE="alpha" ;;
253 "LCA4 (21066/21068)")
254 UNAME_MACHINE="alpha" ;;
256 UNAME_MACHINE="alphaev5" ;;
258 UNAME_MACHINE="alphaev56" ;;
260 UNAME_MACHINE="alphapca56" ;;
262 UNAME_MACHINE="alphapca57" ;;
264 UNAME_MACHINE="alphaev6" ;;
266 UNAME_MACHINE="alphaev67" ;;
268 UNAME_MACHINE="alphaev68" ;;
270 UNAME_MACHINE="alphaev68" ;;
272 UNAME_MACHINE="alphaev68" ;;
273 "EV6.9A (21264/EV69A)")
274 UNAME_MACHINE="alphaev69" ;;
276 UNAME_MACHINE="alphaev7" ;;
278 UNAME_MACHINE="alphaev79" ;;
280 # A Vn.n version is a released version.
281 # A Tn.n version is a released field test version.
282 # A Xn.n version is an unreleased experimental baselevel.
283 # 1.2 uses "1.2" for uname -r.
284 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
289 Alpha\ *:Windows_NT*:*)
290 # How do we know it's Interix rather than the generic POSIX subsystem?
291 # Should we change UNAME_MACHINE based on the output of uname instead
292 # of the specific Alpha model?
293 echo alpha-pc-interix
295 21064:Windows_NT:50:3)
296 echo alpha-dec-winnt3.5
298 Amiga*:UNIX_System_V:4.0:*)
299 echo m68k-unknown-sysv4
301 *:[Aa]miga[Oo][Ss]:*:*)
302 echo ${UNAME_MACHINE}-unknown-amigaos
304 *:[Mm]orph[Oo][Ss]:*:*)
305 echo ${UNAME_MACHINE}-unknown-morphos
308 echo i370-ibm-openedition
310 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
311 echo arm-acorn-riscix${UNAME_RELEASE}
313 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
314 echo hppa1.1-hitachi-hiuxmpp
316 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
317 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
318 if test "`(/bin/universe) 2>/dev/null`" = att ; then
319 echo pyramid-pyramid-sysv3
321 echo pyramid-pyramid-bsd
325 echo pyramid-pyramid-svr4
327 DRS?6000:unix:4.0:6*)
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 -o $dummy $dummy.c \
441 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
443 echo mips-mips-riscos${UNAME_RELEASE}
445 Motorola:PowerMAX_OS:*:*)
446 echo powerpc-motorola-powermax
448 Motorola:*:4.3:PL8-*)
449 echo powerpc-harris-powermax
451 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
452 echo powerpc-harris-powermax
454 Night_Hawk:Power_UNIX:*:*)
455 echo powerpc-harris-powerunix
458 echo m88k-harris-cxux7
461 echo m88k-motorola-sysv4
464 echo m88k-motorola-sysv3
467 # DG/UX returns AViiON for all architectures
468 UNAME_PROCESSOR=`/usr/bin/uname -p`
469 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
471 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
472 [ ${TARGET_BINARY_INTERFACE}x = x ]
474 echo m88k-dg-dgux${UNAME_RELEASE}
476 echo m88k-dg-dguxbcs${UNAME_RELEASE}
479 echo i586-dg-dgux${UNAME_RELEASE}
482 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
483 echo m88k-dolphin-sysv3
486 # Delta 88k system running SVR3
487 echo m88k-motorola-sysv3
489 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
490 echo m88k-tektronix-sysv3
492 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
493 echo m68k-tektronix-bsd
496 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
498 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
499 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
500 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
505 if [ -x /usr/bin/oslevel ] ; then
506 IBM_REV=`/usr/bin/oslevel`
508 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
510 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
513 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
514 eval $set_cc_for_build
515 sed 's/^ //' << EOF >$dummy.c
516 #include <sys/systemcfg.h>
522 puts("powerpc-ibm-aix3.2.5");
526 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
527 echo rs6000-ibm-aix3.2.5
528 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
529 echo rs6000-ibm-aix3.2.4
531 echo rs6000-ibm-aix3.2
535 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
536 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
541 if [ -x /usr/bin/oslevel ] ; then
542 IBM_REV=`/usr/bin/oslevel`
544 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
546 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
551 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
554 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
555 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
556 exit 0 ;; # report: romp-ibm BSD 4.3
558 echo rs6000-bull-bosx
563 9000/[34]??:4.3bsd:1.*:*)
566 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
569 9000/[34678]??:HP-UX:*:*)
570 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
571 case "${UNAME_MACHINE}" in
572 9000/31? ) HP_ARCH=m68000 ;;
573 9000/[34]?? ) HP_ARCH=m68k ;;
574 9000/[678][0-9][0-9])
575 if [ -x /usr/bin/getconf ]; then
576 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
577 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
578 case "${sc_cpu_version}" in
579 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
580 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
581 532) # CPU_PA_RISC2_0
582 case "${sc_kernel_bits}" in
583 32) HP_ARCH="hppa2.0n" ;;
584 64) HP_ARCH="hppa2.0w" ;;
585 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
589 if [ "${HP_ARCH}" = "" ]; then
590 eval $set_cc_for_build
591 sed 's/^ //' << EOF >$dummy.c
599 #if defined(_SC_KERNEL_BITS)
600 long bits = sysconf(_SC_KERNEL_BITS);
602 long cpu = sysconf (_SC_CPU_VERSION);
606 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
607 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
609 #if defined(_SC_KERNEL_BITS)
612 case 64: puts ("hppa2.0w"); break;
613 case 32: puts ("hppa2.0n"); break;
614 default: puts ("hppa2.0"); break;
616 #else /* !defined(_SC_KERNEL_BITS) */
617 puts ("hppa2.0"); break;
619 default: puts ("hppa1.0"); break;
624 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
625 test -z "$HP_ARCH" && HP_ARCH=hppa
628 if [ ${HP_ARCH} = "hppa2.0w" ]
630 # avoid double evaluation of $set_cc_for_build
631 test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
632 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
639 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
642 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
643 echo ia64-hp-hpux${HPUX_REV}
646 eval $set_cc_for_build
647 sed 's/^ //' << EOF >$dummy.c
652 long cpu = sysconf (_SC_CPU_VERSION);
653 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
654 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
656 if (CPU_IS_PA_RISC (cpu))
660 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
661 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
662 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
663 default: puts ("hppa-hitachi-hiuxwe2"); break;
666 else if (CPU_IS_HP_MC68K (cpu))
667 puts ("m68k-hitachi-hiuxwe2");
668 else puts ("unknown-hitachi-hiuxwe2");
672 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
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 alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
734 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
737 echo nv1-cray-unicosmp${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}
754 *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
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 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
769 echo ${UNAME_MACHINE}-pc-cygwin
772 echo ${UNAME_MACHINE}-pc-mingw32
775 echo ${UNAME_MACHINE}-pc-pw32
778 echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
780 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
781 echo i${UNAME_MACHINE}-pc-mks
783 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
784 # How do we know it's Interix rather than the generic POSIX subsystem?
785 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
786 # UNAME_MACHINE based on the output of uname instead of i386?
790 echo ${UNAME_MACHINE}-pc-uwin
793 echo powerpcle-unknown-cygwin
796 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
799 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
802 echo ${UNAME_MACHINE}-pc-minix
805 echo ${UNAME_MACHINE}-unknown-linux-gnu
808 echo cris-axis-linux-gnu
811 echo ${UNAME_MACHINE}-unknown-linux-gnu
814 echo ${UNAME_MACHINE}-unknown-linux-gnu
817 eval $set_cc_for_build
818 sed 's/^ //' << EOF >$dummy.c
822 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
825 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
832 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
833 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
836 eval $set_cc_for_build
837 sed 's/^ //' << EOF >$dummy.c
841 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
844 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
851 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
852 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
855 echo powerpc-unknown-linux-gnu
858 echo powerpc64-unknown-linux-gnu
861 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
862 EV5) UNAME_MACHINE=alphaev5 ;;
863 EV56) UNAME_MACHINE=alphaev56 ;;
864 PCA56) UNAME_MACHINE=alphapca56 ;;
865 PCA57) UNAME_MACHINE=alphapca56 ;;
866 EV6) UNAME_MACHINE=alphaev6 ;;
867 EV67) UNAME_MACHINE=alphaev67 ;;
868 EV68*) UNAME_MACHINE=alphaev68 ;;
870 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
871 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
872 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
874 parisc:Linux:*:* | hppa:Linux:*:*)
876 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
877 PA7*) echo hppa1.1-unknown-linux-gnu ;;
878 PA8*) echo hppa2.0-unknown-linux-gnu ;;
879 *) echo hppa-unknown-linux-gnu ;;
882 parisc64:Linux:*:* | hppa64:Linux:*:*)
883 echo hppa64-unknown-linux-gnu
885 s390:Linux:*:* | s390x:Linux:*:*)
886 echo ${UNAME_MACHINE}-ibm-linux
889 echo ${UNAME_MACHINE}-unknown-linux-gnu
892 echo ${UNAME_MACHINE}-unknown-linux-gnu
894 sparc:Linux:*:* | sparc64:Linux:*:*)
895 echo ${UNAME_MACHINE}-unknown-linux-gnu
898 echo x86_64-unknown-linux-gnu
901 # The BFD linker knows what the default object file format is, so
902 # first see if it will tell us. cd to the root directory to prevent
903 # problems with other programs or directories called `ld' in the path.
904 # Set LC_ALL=C to ensure ld outputs messages in English.
905 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
906 | sed -ne '/supported targets:/!d
908 s/.*supported targets: *//
911 case "$ld_supported_targets" in
913 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
916 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
919 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
922 # Either a pre-BFD a.out linker (linux-gnuoldld) or
923 # one that does not give us useful --help.
924 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
927 # Determine whether the default compiler is a.out or elf
928 eval $set_cc_for_build
929 sed 's/^ //' << EOF >$dummy.c
930 #include <features.h>
942 #ifdef __INTEL_COMPILER
949 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
950 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
951 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
954 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
955 # earlier versions are messed up and put the nodename in both
956 # sysname and nodename.
957 echo i386-sequent-sysv4
959 i*86:UNIX_SV:4.2MP:2.*)
960 # Unixware is an offshoot of SVR4, but it has its own version
961 # number series starting with 2...
962 # I am not positive that other SVR4 systems won't match this,
963 # I just have to hope. -- rms.
964 # Use sysv4.2uw... so that sysv4* matches it.
965 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
968 # If we were able to find `uname', then EMX Unix compatibility
969 # is probably installed.
970 echo ${UNAME_MACHINE}-pc-os2-emx
973 echo ${UNAME_MACHINE}-unknown-stop
976 echo ${UNAME_MACHINE}-unknown-atheos
978 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
979 echo i386-unknown-lynxos${UNAME_RELEASE}
982 echo ${UNAME_MACHINE}-pc-msdosdjgpp
984 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
985 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
986 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
987 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
989 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
993 case `/bin/uname -X | grep "^Machine"` in
994 *486*) UNAME_MACHINE=i486 ;;
995 *Pentium) UNAME_MACHINE=i586 ;;
996 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
998 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1001 if test -f /usr/options/cb.name; then
1002 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1003 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1004 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1005 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1006 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1007 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1008 && UNAME_MACHINE=i586
1009 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1010 && UNAME_MACHINE=i686
1011 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1012 && UNAME_MACHINE=i686
1013 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1015 echo ${UNAME_MACHINE}-pc-sysv32
1019 # Left here for compatibility:
1020 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1021 # the processor, so we play safe by assuming i386.
1022 echo i386-pc-msdosdjgpp
1028 echo i860-intel-osf1
1030 i860:*:4.*:*) # i860-SVR4
1031 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1032 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1033 else # Add other i860-SVR4 vendors below as they are discovered.
1034 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1039 echo m68010-convergent-sysv
1041 mc68k:UNIX:SYSTEM5:3.51m)
1042 echo m68k-convergent-sysv
1048 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1049 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 | SHG2:*:4.0:3.0)
1051 test -r /etc/.relid \
1052 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1053 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1054 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1055 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1056 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1057 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1058 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1059 && echo i486-ncr-sysv4 && exit 0 ;;
1060 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1061 echo m68k-unknown-lynxos${UNAME_RELEASE}
1063 mc68030:UNIX_System_V:4.*:*)
1064 echo m68k-atari-sysv4
1066 TSUNAMI:LynxOS:2.*:*)
1067 echo sparc-unknown-lynxos${UNAME_RELEASE}
1069 rs6000:LynxOS:2.*:*)
1070 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1072 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1073 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1075 SM[BE]S:UNIX_SV:*:*)
1076 echo mips-dde-sysv${UNAME_RELEASE}
1078 RM*:ReliantUNIX-*:*:*)
1085 if uname -p 2>/dev/null >/dev/null ; then
1086 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1087 echo ${UNAME_MACHINE}-sni-sysv4
1092 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1093 # says <Richard.M.Bartel@ccMail.Census.GOV>
1094 echo i586-unisys-sysv4
1096 *:UNIX_System_V:4*:FTX*)
1097 # From Gerald Hewes <hewes@openmarket.com>.
1098 # How about differentiating between stratus architectures? -djm
1099 echo hppa1.1-stratus-sysv4
1102 # From seanf@swdc.stratus.com.
1103 echo i860-stratus-sysv4
1106 # From Paul.Green@stratus.com.
1107 echo hppa1.1-stratus-vos
1110 echo m68k-apple-aux${UNAME_RELEASE}
1113 echo mips-sony-newsos6
1115 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1116 if [ -d /usr/nec ]; then
1117 echo mips-nec-sysv${UNAME_RELEASE}
1119 echo mips-unknown-sysv${UNAME_RELEASE}
1122 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1123 echo powerpc-be-beos
1125 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1126 echo powerpc-apple-beos
1128 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1132 echo sx4-nec-superux${UNAME_RELEASE}
1135 echo sx5-nec-superux${UNAME_RELEASE}
1138 echo sx6-nec-superux${UNAME_RELEASE}
1140 Power*:Rhapsody:*:*)
1141 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1144 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1148 *86) UNAME_PROCESSOR=i686 ;;
1149 powerpc) UNAME_PROCESSOR=powerpc ;;
1151 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1153 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1154 UNAME_PROCESSOR=`uname -p`
1155 if test "$UNAME_PROCESSOR" = "x86"; then
1156 UNAME_PROCESSOR=i386
1159 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1164 NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
1165 echo nsr-tandem-nsk${UNAME_RELEASE}
1168 echo mips-compaq-nonstopux
1171 echo bs2000-siemens-sysv
1173 DS/*:UNIX_System_V:*:*)
1174 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1177 # "uname -m" is not consistent, so use $cputype instead. 386
1178 # is converted to i386 for consistency with other x86
1179 # operating systems.
1180 if test "$cputype" = "386"; then
1183 UNAME_MACHINE="$cputype"
1185 echo ${UNAME_MACHINE}-unknown-plan9
1188 echo pdp10-unknown-tops10
1191 echo pdp10-unknown-tenex
1193 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1194 echo pdp10-dec-tops20
1196 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1197 echo pdp10-xkl-tops20
1200 echo pdp10-unknown-tops20
1203 echo pdp10-unknown-its
1206 echo mips-sei-seiux${UNAME_RELEASE}
1210 #echo '(No uname command or uname output not recognized.)' 1>&2
1211 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1213 eval $set_cc_for_build
1216 # include <sys/types.h>
1217 # include <sys/utsname.h>
1222 #if defined (MIPSEB)
1223 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1225 printf ("mips-sony-bsd\n"); exit (0);
1227 #include <sys/param.h>
1228 printf ("m68k-sony-newsos%s\n",
1238 #if defined (__arm) && defined (__acorn) && defined (__unix)
1239 printf ("arm-acorn-riscix"); exit (0);
1242 #if defined (hp300) && !defined (hpux)
1243 printf ("m68k-hp-bsd\n"); exit (0);
1247 #if !defined (__ARCHITECTURE__)
1248 #define __ARCHITECTURE__ "m68k"
1251 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1253 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1255 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1259 #if defined (MULTIMAX) || defined (n16)
1261 printf ("ns32k-encore-sysv\n"); exit (0);
1264 printf ("ns32k-encore-mach\n"); exit (0);
1266 printf ("ns32k-encore-bsd\n"); exit (0);
1271 #if defined (__386BSD__)
1272 printf ("i386-pc-bsd\n"); exit (0);
1275 #if defined (sequent)
1277 printf ("i386-sequent-dynix\n"); exit (0);
1279 #if defined (ns32000)
1280 printf ("ns32k-sequent-dynix\n"); exit (0);
1284 #if defined (_SEQUENT_)
1289 if (strncmp(un.version, "V2", 2) == 0) {
1290 printf ("i386-sequent-ptx2\n"); exit (0);
1292 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1293 printf ("i386-sequent-ptx1\n"); exit (0);
1295 printf ("i386-sequent-ptx\n"); exit (0);
1300 # if !defined (ultrix)
1301 # include <sys/param.h>
1304 printf ("vax-dec-bsd4.3\n"); exit (0);
1307 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1309 printf ("vax-dec-bsd\n"); exit (0);
1313 printf ("vax-dec-bsd\n"); exit (0);
1316 printf ("vax-dec-ultrix\n"); exit (0);
1320 #if defined (alliant) && defined (i860)
1321 printf ("i860-alliant-bsd\n"); exit (0);
1328 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
1330 # Apollos put the system type in the environment.
1332 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1334 # Convex versions that predate uname can use getsysinfo(1)
1336 if [ -x /usr/convex/getsysinfo ]
1338 case `getsysinfo -f cpu_type` in
1343 if getsysinfo -f scalar_acc
1344 then echo c32-convex-bsd
1345 else echo c2-convex-bsd
1361 $0: unable to guess system type
1363 This script, last modified $timestamp, has failed to recognize
1364 the operating system you are using. It is advised that you
1365 download the most up to date version of the config scripts from
1367 ftp://ftp.gnu.org/pub/gnu/config/
1369 If the version you run ($0) is already up to date, please
1370 send the following data and any information you think might be
1371 pertinent to <config-patches@gnu.org> in order to provide the needed
1372 information to handle your system.
1374 config.guess timestamp = $timestamp
1376 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1377 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1378 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1379 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1381 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1382 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1384 hostinfo = `(hostinfo) 2>/dev/null`
1385 /bin/universe = `(/bin/universe) 2>/dev/null`
1386 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1387 /bin/arch = `(/bin/arch) 2>/dev/null`
1388 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1389 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1391 UNAME_MACHINE = ${UNAME_MACHINE}
1392 UNAME_RELEASE = ${UNAME_RELEASE}
1393 UNAME_SYSTEM = ${UNAME_SYSTEM}
1394 UNAME_VERSION = ${UNAME_VERSION}
1400 # eval: (add-hook 'write-file-hooks 'time-stamp)
1401 # time-stamp-start: "timestamp='"
1402 # time-stamp-format: "%:y-%02m-%02d"
1403 # time-stamp-end: "'"