2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 # 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Originally written by Per Bothner <per@bothner.com>.
28 # Please send patches to <config-patches@gnu.org>. Submit a context
29 # diff and a properly formatted ChangeLog entry.
31 # This script attempts to guess a canonical system name similar to
32 # config.sub. If it succeeds, it prints the system name on stdout, and
33 # exits with 0. Otherwise, it exits with 1.
35 # The plan is that this can be called by configure scripts if you
36 # don't specify an explicit build system type.
38 me=`echo "$0" | sed -e 's,.*/,,'`
43 Output the configuration name of the system \`$me' is run on.
46 -h, --help print this help, then exit
47 -t, --time-stamp print date of last modification, then exit
48 -v, --version print version number, then exit
50 Report bugs and patches to <config-patches@gnu.org>."
53 GNU config.guess ($timestamp)
55 Originally written by Per Bothner.
56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
57 Free Software Foundation, Inc.
59 This is free software; see the source for copying conditions. There is NO
60 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
63 Try \`$me --help' for more information."
66 while test $# -gt 0 ; do
68 --time-stamp | --time* | -t )
69 echo "$timestamp" ; exit 0 ;;
71 echo "$version" ; exit 0 ;;
73 echo "$usage"; exit 0 ;;
74 -- ) # Stop option processing
76 - ) # Use stdin as input.
79 echo "$me: invalid option $1$help" >&2
87 echo "$me: too many arguments$help" >&2
93 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
94 # compiler to aid in system detection is discouraged as it requires
95 # temporary files to be created and, as you can see below, it is a
96 # headache to deal with in a portable fashion.
98 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
99 # use `HOST_CC' if defined, but it is deprecated.
101 # Portable tmp directory creation inspired by the Autoconf team.
104 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
105 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
107 { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
108 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
109 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
111 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
112 case $CC_FOR_BUILD,$HOST_CC,$CC in
113 ,,) echo "int x;" > $dummy.c ;
114 for c in cc gcc c89 c99 ; do
115 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
116 CC_FOR_BUILD="$c"; break ;
119 if test x"$CC_FOR_BUILD" = x ; then
120 CC_FOR_BUILD=no_compiler_found ;
123 ,,*) CC_FOR_BUILD=$CC ;;
124 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
127 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
128 # (ghazi@noc.rutgers.edu 1994-08-24)
129 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
130 PATH=$PATH:/.attbin ; export PATH
133 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
134 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
135 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
136 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
138 # Note: order is significant - the case branches are not exclusive.
140 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
142 # NetBSD (nbsd) targets should (where applicable) match one or
143 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
144 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
145 # switched to ELF, *-*-netbsd* would select the old
146 # object file format. This provides both forward
147 # compatibility and a consistent mechanism for selecting the
148 # object file format.
150 # Note: NetBSD doesn't particularly care about the vendor
151 # portion of the name. We always set it to "unknown".
152 sysctl="sysctl -n hw.machine_arch"
153 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
154 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
155 case "${UNAME_MACHINE_ARCH}" in
156 armeb) machine=armeb-unknown ;;
157 arm*) machine=arm-unknown ;;
158 sh3el) machine=shl-unknown ;;
159 sh3eb) machine=sh-unknown ;;
160 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
162 # The Operating System including object format, if it has switched
163 # to ELF recently, or will in the future.
164 case "${UNAME_MACHINE_ARCH}" in
165 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
166 eval $set_cc_for_build
167 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
168 | grep __ELF__ >/dev/null
170 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
171 # Return netbsd for either. FIX?
182 # Debian GNU/NetBSD machines have a different userland, and
183 # thus, need a distinct triplet. However, they do not need
184 # kernel version information, so it can be replaced with a
185 # suitable tag, in the style of linux-gnu.
186 case "${UNAME_VERSION}" in
191 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
194 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
195 # contains redundant information, the shorter form:
196 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
197 echo "${machine}-${os}${release}"
200 echo m68k-unknown-openbsd${UNAME_RELEASE}
203 echo mipsel-unknown-openbsd${UNAME_RELEASE}
206 echo m68k-unknown-openbsd${UNAME_RELEASE}
209 echo m68k-unknown-openbsd${UNAME_RELEASE}
212 echo powerpc-unknown-openbsd${UNAME_RELEASE}
215 echo m68k-unknown-openbsd${UNAME_RELEASE}
218 echo m88k-unknown-openbsd${UNAME_RELEASE}
221 echo powerpc-unknown-openbsd${UNAME_RELEASE}
224 echo mipsel-unknown-openbsd${UNAME_RELEASE}
227 echo mipseb-unknown-openbsd${UNAME_RELEASE}
230 echo m68k-unknown-openbsd${UNAME_RELEASE}
233 echo mipsel-unknown-openbsd${UNAME_RELEASE}
236 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
239 if test $UNAME_RELEASE = "V4.0"; then
240 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
242 # According to Compaq, /usr/sbin/psrinfo has been available on
243 # OSF/1 and Tru64 systems produced since 1995. I hope that
244 # covers most systems running today. This code pipes the CPU
245 # types through head -n 1, so we only detect the type of CPU 0.
246 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
247 case "$ALPHA_CPU_TYPE" in
249 UNAME_MACHINE="alpha" ;;
251 UNAME_MACHINE="alpha" ;;
252 "LCA4 (21066/21068)")
253 UNAME_MACHINE="alpha" ;;
255 UNAME_MACHINE="alphaev5" ;;
257 UNAME_MACHINE="alphaev56" ;;
259 UNAME_MACHINE="alphapca56" ;;
261 UNAME_MACHINE="alphapca57" ;;
263 UNAME_MACHINE="alphaev6" ;;
265 UNAME_MACHINE="alphaev67" ;;
267 UNAME_MACHINE="alphaev68" ;;
269 UNAME_MACHINE="alphaev68" ;;
271 UNAME_MACHINE="alphaev68" ;;
272 "EV6.9A (21264/EV69A)")
273 UNAME_MACHINE="alphaev69" ;;
275 UNAME_MACHINE="alphaev7" ;;
277 UNAME_MACHINE="alphaev79" ;;
279 # A Vn.n version is a released version.
280 # A Tn.n version is a released field test version.
281 # A Xn.n version is an unreleased experimental baselevel.
282 # 1.2 uses "1.2" for uname -r.
283 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
285 Alpha\ *:Windows_NT*:*)
286 # How do we know it's Interix rather than the generic POSIX subsystem?
287 # Should we change UNAME_MACHINE based on the output of uname instead
288 # of the specific Alpha model?
289 echo alpha-pc-interix
291 21064:Windows_NT:50:3)
292 echo alpha-dec-winnt3.5
294 Amiga*:UNIX_System_V:4.0:*)
295 echo m68k-unknown-sysv4
297 *:[Aa]miga[Oo][Ss]:*:*)
298 echo ${UNAME_MACHINE}-unknown-amigaos
300 *:[Mm]orph[Oo][Ss]:*:*)
301 echo ${UNAME_MACHINE}-unknown-morphos
304 echo i370-ibm-openedition
306 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
307 echo arm-acorn-riscix${UNAME_RELEASE}
309 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
310 echo hppa1.1-hitachi-hiuxmpp
312 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
313 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
314 if test "`(/bin/universe) 2>/dev/null`" = att ; then
315 echo pyramid-pyramid-sysv3
317 echo pyramid-pyramid-bsd
321 echo pyramid-pyramid-svr4
323 DRS?6000:unix:4.0:6*)
326 DRS?6000:UNIX_SV:4.2*:7*)
327 case `/usr/bin/uname -p` in
328 sparc) echo sparc-icl-nx7 && exit 0 ;;
331 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
333 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
334 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
337 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
340 # According to config.sub, this is the proper way to canonicalize
341 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
342 # it's likely to be more like Solaris than SunOS4.
343 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
346 case "`/usr/bin/arch -k`" in
348 UNAME_RELEASE=`uname -v`
351 # Japanese Language versions have a version number like `4.1.3-JL'.
352 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
355 echo m68k-sun-sunos${UNAME_RELEASE}
358 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
359 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
360 case "`/bin/arch`" in
362 echo m68k-sun-sunos${UNAME_RELEASE}
365 echo sparc-sun-sunos${UNAME_RELEASE}
370 echo sparc-auspex-sunos${UNAME_RELEASE}
372 # The situation for MiNT is a little confusing. The machine name
373 # can be virtually everything (everything which is not
374 # "atarist" or "atariste" at least should have a processor
375 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
376 # to the lowercase version "mint" (or "freemint"). Finally
377 # the system name "TOS" denotes a system which is actually not
378 # MiNT. But MiNT is downward compatible to TOS, so this should
380 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
381 echo m68k-atari-mint${UNAME_RELEASE}
383 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
384 echo m68k-atari-mint${UNAME_RELEASE}
386 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
387 echo m68k-atari-mint${UNAME_RELEASE}
389 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
390 echo m68k-milan-mint${UNAME_RELEASE}
392 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
393 echo m68k-hades-mint${UNAME_RELEASE}
395 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
396 echo m68k-unknown-mint${UNAME_RELEASE}
399 echo powerpc-apple-machten${UNAME_RELEASE}
402 echo mips-dec-mach_bsd4.3
405 echo mips-dec-ultrix${UNAME_RELEASE}
408 echo vax-dec-ultrix${UNAME_RELEASE}
410 2020:CLIX:*:* | 2430:CLIX:*:*)
411 echo clipper-intergraph-clix${UNAME_RELEASE}
413 mips:*:*:UMIPS | mips:*:*:RISCos)
414 eval $set_cc_for_build
415 sed 's/^ //' << EOF >$dummy.c
417 #include <stdio.h> /* for printf() prototype */
418 int main (int argc, char *argv[]) {
420 int main (argc, argv) int argc; char *argv[]; {
422 #if defined (host_mips) && defined (MIPSEB)
423 #if defined (SYSTYPE_SYSV)
424 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
426 #if defined (SYSTYPE_SVR4)
427 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
429 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
430 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
436 $CC_FOR_BUILD -o $dummy $dummy.c \
437 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
439 echo mips-mips-riscos${UNAME_RELEASE}
441 Motorola:PowerMAX_OS:*:*)
442 echo powerpc-motorola-powermax
444 Motorola:*:4.3:PL8-*)
445 echo powerpc-harris-powermax
447 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
448 echo powerpc-harris-powermax
450 Night_Hawk:Power_UNIX:*:*)
451 echo powerpc-harris-powerunix
454 echo m88k-harris-cxux7
457 echo m88k-motorola-sysv4
460 echo m88k-motorola-sysv3
463 # DG/UX returns AViiON for all architectures
464 UNAME_PROCESSOR=`/usr/bin/uname -p`
465 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
467 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
468 [ ${TARGET_BINARY_INTERFACE}x = x ]
470 echo m88k-dg-dgux${UNAME_RELEASE}
472 echo m88k-dg-dguxbcs${UNAME_RELEASE}
475 echo i586-dg-dgux${UNAME_RELEASE}
478 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
479 echo m88k-dolphin-sysv3
482 # Delta 88k system running SVR3
483 echo m88k-motorola-sysv3
485 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
486 echo m88k-tektronix-sysv3
488 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
489 echo m68k-tektronix-bsd
492 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
494 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
495 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
496 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
501 if [ -x /usr/bin/oslevel ] ; then
502 IBM_REV=`/usr/bin/oslevel`
504 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
506 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
509 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
510 eval $set_cc_for_build
511 sed 's/^ //' << EOF >$dummy.c
512 #include <sys/systemcfg.h>
518 puts("powerpc-ibm-aix3.2.5");
522 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
523 echo rs6000-ibm-aix3.2.5
524 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
525 echo rs6000-ibm-aix3.2.4
527 echo rs6000-ibm-aix3.2
531 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
532 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
537 if [ -x /usr/bin/oslevel ] ; then
538 IBM_REV=`/usr/bin/oslevel`
540 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
542 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
547 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
550 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
551 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
552 exit 0 ;; # report: romp-ibm BSD 4.3
554 echo rs6000-bull-bosx
559 9000/[34]??:4.3bsd:1.*:*)
562 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
565 9000/[34678]??:HP-UX:*:*)
566 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
567 case "${UNAME_MACHINE}" in
568 9000/31? ) HP_ARCH=m68000 ;;
569 9000/[34]?? ) HP_ARCH=m68k ;;
570 9000/[678][0-9][0-9])
571 if [ -x /usr/bin/getconf ]; then
572 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
573 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
574 case "${sc_cpu_version}" in
575 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
576 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
577 532) # CPU_PA_RISC2_0
578 case "${sc_kernel_bits}" in
579 32) HP_ARCH="hppa2.0n" ;;
580 64) HP_ARCH="hppa2.0w" ;;
581 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
585 if [ "${HP_ARCH}" = "" ]; then
586 eval $set_cc_for_build
587 sed 's/^ //' << EOF >$dummy.c
595 #if defined(_SC_KERNEL_BITS)
596 long bits = sysconf(_SC_KERNEL_BITS);
598 long cpu = sysconf (_SC_CPU_VERSION);
602 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
603 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
605 #if defined(_SC_KERNEL_BITS)
608 case 64: puts ("hppa2.0w"); break;
609 case 32: puts ("hppa2.0n"); break;
610 default: puts ("hppa2.0"); break;
612 #else /* !defined(_SC_KERNEL_BITS) */
613 puts ("hppa2.0"); break;
615 default: puts ("hppa1.0"); break;
620 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
621 test -z "$HP_ARCH" && HP_ARCH=hppa
624 if [ ${HP_ARCH} = "hppa2.0w" ]
626 # avoid double evaluation of $set_cc_for_build
627 test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
628 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
635 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
638 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
639 echo ia64-hp-hpux${HPUX_REV}
642 eval $set_cc_for_build
643 sed 's/^ //' << EOF >$dummy.c
648 long cpu = sysconf (_SC_CPU_VERSION);
649 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
650 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
652 if (CPU_IS_PA_RISC (cpu))
656 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
657 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
658 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
659 default: puts ("hppa-hitachi-hiuxwe2"); break;
662 else if (CPU_IS_HP_MC68K (cpu))
663 puts ("m68k-hitachi-hiuxwe2");
664 else puts ("unknown-hitachi-hiuxwe2");
668 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
669 echo unknown-hitachi-hiuxwe2
671 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
677 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
678 echo hppa1.0-hp-mpeix
680 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
687 if [ -x /usr/sbin/sysversion ] ; then
688 echo ${UNAME_MACHINE}-unknown-osf1mk
690 echo ${UNAME_MACHINE}-unknown-osf1
694 echo hppa1.1-hp-lites
696 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
699 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
700 if getsysinfo -f scalar_acc
701 then echo c32-convex-bsd
702 else echo c2-convex-bsd
705 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
708 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
711 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
715 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
718 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
719 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
720 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
724 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
727 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
730 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
733 echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
735 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
736 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
737 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
738 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
739 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
741 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
742 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
745 echo sparc-unknown-bsdi${UNAME_RELEASE}
748 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
750 *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
751 # Determine whether the default compiler uses glibc.
752 eval $set_cc_for_build
753 sed 's/^ //' << EOF >$dummy.c
754 #include <features.h>
761 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
762 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
765 echo ${UNAME_MACHINE}-pc-cygwin
768 echo ${UNAME_MACHINE}-pc-mingw32
771 echo ${UNAME_MACHINE}-pc-pw32
774 echo i586-pc-interix3
776 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
777 echo i${UNAME_MACHINE}-pc-mks
779 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
780 # How do we know it's Interix rather than the generic POSIX subsystem?
781 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
782 # UNAME_MACHINE based on the output of uname instead of i386?
786 echo ${UNAME_MACHINE}-pc-uwin
789 echo powerpcle-unknown-cygwin
792 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
795 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
798 echo ${UNAME_MACHINE}-pc-minix
801 echo ${UNAME_MACHINE}-unknown-linux-gnu
804 echo cris-axis-linux-gnu
807 echo ${UNAME_MACHINE}-unknown-linux-gnu
810 echo ${UNAME_MACHINE}-unknown-linux-gnu
813 eval $set_cc_for_build
814 sed 's/^ //' << EOF >$dummy.c
818 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
821 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
828 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
829 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
832 eval $set_cc_for_build
833 sed 's/^ //' << EOF >$dummy.c
837 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
840 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
847 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
848 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
851 echo powerpc-unknown-linux-gnu
854 echo powerpc64-unknown-linux-gnu
857 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
858 EV5) UNAME_MACHINE=alphaev5 ;;
859 EV56) UNAME_MACHINE=alphaev56 ;;
860 PCA56) UNAME_MACHINE=alphapca56 ;;
861 PCA57) UNAME_MACHINE=alphapca56 ;;
862 EV6) UNAME_MACHINE=alphaev6 ;;
863 EV67) UNAME_MACHINE=alphaev67 ;;
864 EV68*) UNAME_MACHINE=alphaev68 ;;
866 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
867 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
868 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
870 parisc:Linux:*:* | hppa:Linux:*:*)
872 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
873 PA7*) echo hppa1.1-unknown-linux-gnu ;;
874 PA8*) echo hppa2.0-unknown-linux-gnu ;;
875 *) echo hppa-unknown-linux-gnu ;;
878 parisc64:Linux:*:* | hppa64:Linux:*:*)
879 echo hppa64-unknown-linux-gnu
881 s390:Linux:*:* | s390x:Linux:*:*)
882 echo ${UNAME_MACHINE}-ibm-linux
885 echo ${UNAME_MACHINE}-unknown-linux-gnu
887 sparc:Linux:*:* | sparc64:Linux:*:*)
888 echo ${UNAME_MACHINE}-unknown-linux-gnu
891 echo x86_64-unknown-linux-gnu
894 # The BFD linker knows what the default object file format is, so
895 # first see if it will tell us. cd to the root directory to prevent
896 # problems with other programs or directories called `ld' in the path.
897 # Set LC_ALL=C to ensure ld outputs messages in English.
898 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
899 | sed -ne '/supported targets:/!d
901 s/.*supported targets: *//
904 case "$ld_supported_targets" in
906 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
909 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
912 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
915 # Either a pre-BFD a.out linker (linux-gnuoldld) or
916 # one that does not give us useful --help.
917 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
920 # Determine whether the default compiler is a.out or elf
921 eval $set_cc_for_build
922 sed 's/^ //' << EOF >$dummy.c
923 #include <features.h>
935 #ifdef __INTEL_COMPILER
942 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
943 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
944 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
947 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
948 # earlier versions are messed up and put the nodename in both
949 # sysname and nodename.
950 echo i386-sequent-sysv4
952 i*86:UNIX_SV:4.2MP:2.*)
953 # Unixware is an offshoot of SVR4, but it has its own version
954 # number series starting with 2...
955 # I am not positive that other SVR4 systems won't match this,
956 # I just have to hope. -- rms.
957 # Use sysv4.2uw... so that sysv4* matches it.
958 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
961 # If we were able to find `uname', then EMX Unix compatibility
962 # is probably installed.
963 echo ${UNAME_MACHINE}-pc-os2-emx
966 echo ${UNAME_MACHINE}-unknown-stop
969 echo ${UNAME_MACHINE}-unknown-atheos
971 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
972 echo i386-unknown-lynxos${UNAME_RELEASE}
975 echo ${UNAME_MACHINE}-pc-msdosdjgpp
977 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
978 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
979 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
980 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
982 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
986 case `/bin/uname -X | grep "^Machine"` in
987 *486*) UNAME_MACHINE=i486 ;;
988 *Pentium) UNAME_MACHINE=i586 ;;
989 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
991 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
994 if test -f /usr/options/cb.name; then
995 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
996 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
997 elif /bin/uname -X 2>/dev/null >/dev/null ; then
998 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
999 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1000 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1001 && UNAME_MACHINE=i586
1002 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1003 && UNAME_MACHINE=i686
1004 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1005 && UNAME_MACHINE=i686
1006 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1008 echo ${UNAME_MACHINE}-pc-sysv32
1012 # Left here for compatibility:
1013 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1014 # the processor, so we play safe by assuming i386.
1015 echo i386-pc-msdosdjgpp
1021 echo i860-intel-osf1
1023 i860:*:4.*:*) # i860-SVR4
1024 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1025 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1026 else # Add other i860-SVR4 vendors below as they are discovered.
1027 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1032 echo m68010-convergent-sysv
1034 mc68k:UNIX:SYSTEM5:3.51m)
1035 echo m68k-convergent-sysv
1041 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1042 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)
1044 test -r /etc/.relid \
1045 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1046 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1047 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1048 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1049 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1050 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1051 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1052 && echo i486-ncr-sysv4 && exit 0 ;;
1053 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1054 echo m68k-unknown-lynxos${UNAME_RELEASE}
1056 mc68030:UNIX_System_V:4.*:*)
1057 echo m68k-atari-sysv4
1059 TSUNAMI:LynxOS:2.*:*)
1060 echo sparc-unknown-lynxos${UNAME_RELEASE}
1062 rs6000:LynxOS:2.*:*)
1063 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1065 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1066 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1068 SM[BE]S:UNIX_SV:*:*)
1069 echo mips-dde-sysv${UNAME_RELEASE}
1071 RM*:ReliantUNIX-*:*:*)
1078 if uname -p 2>/dev/null >/dev/null ; then
1079 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1080 echo ${UNAME_MACHINE}-sni-sysv4
1085 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1086 # says <Richard.M.Bartel@ccMail.Census.GOV>
1087 echo i586-unisys-sysv4
1089 *:UNIX_System_V:4*:FTX*)
1090 # From Gerald Hewes <hewes@openmarket.com>.
1091 # How about differentiating between stratus architectures? -djm
1092 echo hppa1.1-stratus-sysv4
1095 # From seanf@swdc.stratus.com.
1096 echo i860-stratus-sysv4
1099 # From Paul.Green@stratus.com.
1100 echo hppa1.1-stratus-vos
1103 echo m68k-apple-aux${UNAME_RELEASE}
1106 echo mips-sony-newsos6
1108 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1109 if [ -d /usr/nec ]; then
1110 echo mips-nec-sysv${UNAME_RELEASE}
1112 echo mips-unknown-sysv${UNAME_RELEASE}
1115 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1116 echo powerpc-be-beos
1118 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1119 echo powerpc-apple-beos
1121 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1125 echo sx4-nec-superux${UNAME_RELEASE}
1128 echo sx5-nec-superux${UNAME_RELEASE}
1131 echo sx6-nec-superux${UNAME_RELEASE}
1133 Power*:Rhapsody:*:*)
1134 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1137 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1141 *86) UNAME_PROCESSOR=i686 ;;
1142 powerpc) UNAME_PROCESSOR=powerpc ;;
1144 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1146 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1147 UNAME_PROCESSOR=`uname -p`
1148 if test "$UNAME_PROCESSOR" = "x86"; then
1149 UNAME_PROCESSOR=i386
1152 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1157 NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
1158 echo nsr-tandem-nsk${UNAME_RELEASE}
1161 echo mips-compaq-nonstopux
1164 echo bs2000-siemens-sysv
1166 DS/*:UNIX_System_V:*:*)
1167 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1170 # "uname -m" is not consistent, so use $cputype instead. 386
1171 # is converted to i386 for consistency with other x86
1172 # operating systems.
1173 if test "$cputype" = "386"; then
1176 UNAME_MACHINE="$cputype"
1178 echo ${UNAME_MACHINE}-unknown-plan9
1181 echo pdp10-unknown-tops10
1184 echo pdp10-unknown-tenex
1186 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1187 echo pdp10-dec-tops20
1189 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1190 echo pdp10-xkl-tops20
1193 echo pdp10-unknown-tops20
1196 echo pdp10-unknown-its
1200 #echo '(No uname command or uname output not recognized.)' 1>&2
1201 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1203 eval $set_cc_for_build
1206 # include <sys/types.h>
1207 # include <sys/utsname.h>
1212 #if defined (MIPSEB)
1213 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1215 printf ("mips-sony-bsd\n"); exit (0);
1217 #include <sys/param.h>
1218 printf ("m68k-sony-newsos%s\n",
1228 #if defined (__arm) && defined (__acorn) && defined (__unix)
1229 printf ("arm-acorn-riscix"); exit (0);
1232 #if defined (hp300) && !defined (hpux)
1233 printf ("m68k-hp-bsd\n"); exit (0);
1237 #if !defined (__ARCHITECTURE__)
1238 #define __ARCHITECTURE__ "m68k"
1241 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1243 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1245 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1249 #if defined (MULTIMAX) || defined (n16)
1251 printf ("ns32k-encore-sysv\n"); exit (0);
1254 printf ("ns32k-encore-mach\n"); exit (0);
1256 printf ("ns32k-encore-bsd\n"); exit (0);
1261 #if defined (__386BSD__)
1262 printf ("i386-pc-bsd\n"); exit (0);
1265 #if defined (sequent)
1267 printf ("i386-sequent-dynix\n"); exit (0);
1269 #if defined (ns32000)
1270 printf ("ns32k-sequent-dynix\n"); exit (0);
1274 #if defined (_SEQUENT_)
1279 if (strncmp(un.version, "V2", 2) == 0) {
1280 printf ("i386-sequent-ptx2\n"); exit (0);
1282 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1283 printf ("i386-sequent-ptx1\n"); exit (0);
1285 printf ("i386-sequent-ptx\n"); exit (0);
1290 # if !defined (ultrix)
1291 # include <sys/param.h>
1294 printf ("vax-dec-bsd4.3\n"); exit (0);
1297 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1299 printf ("vax-dec-bsd\n"); exit (0);
1303 printf ("vax-dec-bsd\n"); exit (0);
1306 printf ("vax-dec-ultrix\n"); exit (0);
1310 #if defined (alliant) && defined (i860)
1311 printf ("i860-alliant-bsd\n"); exit (0);
1318 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
1320 # Apollos put the system type in the environment.
1322 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1324 # Convex versions that predate uname can use getsysinfo(1)
1326 if [ -x /usr/convex/getsysinfo ]
1328 case `getsysinfo -f cpu_type` in
1333 if getsysinfo -f scalar_acc
1334 then echo c32-convex-bsd
1335 else echo c2-convex-bsd
1351 $0: unable to guess system type
1353 This script, last modified $timestamp, has failed to recognize
1354 the operating system you are using. It is advised that you
1355 download the most up to date version of the config scripts from
1357 ftp://ftp.gnu.org/pub/gnu/config/
1359 If the version you run ($0) is already up to date, please
1360 send the following data and any information you think might be
1361 pertinent to <config-patches@gnu.org> in order to provide the needed
1362 information to handle your system.
1364 config.guess timestamp = $timestamp
1366 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1367 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1368 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1369 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1371 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1372 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1374 hostinfo = `(hostinfo) 2>/dev/null`
1375 /bin/universe = `(/bin/universe) 2>/dev/null`
1376 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1377 /bin/arch = `(/bin/arch) 2>/dev/null`
1378 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1379 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1381 UNAME_MACHINE = ${UNAME_MACHINE}
1382 UNAME_RELEASE = ${UNAME_RELEASE}
1383 UNAME_SYSTEM = ${UNAME_SYSTEM}
1384 UNAME_VERSION = ${UNAME_VERSION}
1390 # eval: (add-hook 'write-file-hooks 'time-stamp)
1391 # time-stamp-start: "timestamp='"
1392 # time-stamp-format: "%:y-%02m-%02d"
1393 # time-stamp-end: "'"