2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
4 # 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 # Written by Per Bothner <bothner@cygnus.com>.
28 # Please send patches to <config-patches@gnu.org>.
30 # This script attempts to guess a canonical system name similar to
31 # config.sub. If it succeeds, it prints the system name on stdout, and
32 # exits with 0. Otherwise, it exits with 1.
34 # The plan is that this can be called by configure scripts if you
35 # don't specify an explicit build system type.
37 me=`echo "$0" | sed -e 's,.*/,,'`
42 Output the configuration name of the system \`$me' is run on.
45 -h, --help print this help, then exit
46 -t, --time-stamp print date of last modification, then exit
47 -v, --version print version number, then exit
49 Report bugs and patches to <config-patches@gnu.org>."
52 GNU config.guess ($timestamp)
54 Originally written by Per Bothner.
55 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
56 Free Software Foundation, Inc.
58 This is free software; see the source for copying conditions. There is NO
59 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
62 Try \`$me --help' for more information."
65 while test $# -gt 0 ; do
67 --time-stamp | --time* | -t )
68 echo "$timestamp" ; exit 0 ;;
70 echo "$version" ; exit 0 ;;
72 echo "$usage"; exit 0 ;;
73 -- ) # Stop option processing
75 - ) # Use stdin as input.
78 echo "$me: invalid option $1$help" >&2
86 echo "$me: too many arguments$help" >&2
92 trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
94 # CC_FOR_BUILD -- compiler used by this script.
95 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
96 # use `HOST_CC' if defined, but it is deprecated.
98 set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
99 ,,) echo "int dummy(){}" > $dummy.c ;
100 for c in cc gcc c89 ; do
101 ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
102 if test $? = 0 ; then
103 CC_FOR_BUILD="$c"; break ;
106 rm -f $dummy.c $dummy.o $dummy.rel ;
107 if test x"$CC_FOR_BUILD" = x ; then
108 CC_FOR_BUILD=no_compiler_found ;
111 ,,*) CC_FOR_BUILD=$CC ;;
112 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
115 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
116 # (ghazi@noc.rutgers.edu 1994-08-24)
117 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
118 PATH=$PATH:/.attbin ; export PATH
121 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
122 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
123 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
124 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
126 # Note: order is significant - the case branches are not exclusive.
128 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
130 # Netbsd (nbsd) targets should (where applicable) match one or
131 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
132 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
133 # switched to ELF, *-*-netbsd* would select the old
134 # object file format. This provides both forward
135 # compatibility and a consistent mechanism for selecting the
136 # object file format.
137 # Determine the machine/vendor (is the vendor relevant).
138 case "${UNAME_MACHINE}" in
139 amiga) machine=m68k-unknown ;;
140 arm32) machine=arm-unknown ;;
141 atari*) machine=m68k-atari ;;
142 sun3*) machine=m68k-sun ;;
143 mac68k) machine=m68k-apple ;;
144 macppc) machine=powerpc-apple ;;
145 hp3[0-9][05]) machine=m68k-hp ;;
146 ibmrt|romp-ibm) machine=romp-ibm ;;
147 *) machine=${UNAME_MACHINE}-unknown ;;
149 # The Operating System including object format, if it has switched
150 # to ELF recently, or will in the future.
151 case "${UNAME_MACHINE}" in
152 i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
153 eval $set_cc_for_build
154 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
155 | grep __ELF__ >/dev/null
157 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
158 # Return netbsd for either. FIX?
169 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
170 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
171 # contains redundant information, the shorter form:
172 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
173 echo "${machine}-${os}${release}"
176 if test $UNAME_RELEASE = "V4.0"; then
177 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
179 # A Vn.n version is a released version.
180 # A Tn.n version is a released field test version.
181 # A Xn.n version is an unreleased experimental baselevel.
182 # 1.2 uses "1.2" for uname -r.
186 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
193 .frame \$30,16,\$26,0
196 .long 0x47e03d80 # implver \$0
198 .long 0x47e20c21 # amask \$2,\$1
208 eval $set_cc_for_build
209 $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
210 if test "$?" = 0 ; then
213 UNAME_MACHINE="alpha"
216 UNAME_MACHINE="alphaev5"
219 UNAME_MACHINE="alphaev56"
222 UNAME_MACHINE="alphapca56"
225 UNAME_MACHINE="alphaev6"
228 UNAME_MACHINE="alphaev67"
231 UNAME_MACHINE="alphaev68"
235 rm -f $dummy.s $dummy
236 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
238 Alpha\ *:Windows_NT*:*)
239 # How do we know it's Interix rather than the generic POSIX subsystem?
240 # Should we change UNAME_MACHINE based on the output of uname instead
241 # of the specific Alpha model?
242 echo alpha-pc-interix
244 21064:Windows_NT:50:3)
245 echo alpha-dec-winnt3.5
247 Amiga*:UNIX_System_V:4.0:*)
248 echo m68k-unknown-sysv4
251 echo m68k-unknown-openbsd${UNAME_RELEASE}
253 *:[Aa]miga[Oo][Ss]:*:*)
254 echo ${UNAME_MACHINE}-unknown-amigaos
257 echo mips64el-unknown-openbsd${UNAME_RELEASE}
260 echo mipsel-unknown-openbsd${UNAME_RELEASE}
263 echo mips-unknown-openbsd${UNAME_RELEASE}
266 echo mipsel-unknown-openbsd${UNAME_RELEASE}
269 echo mips-unknown-openbsd${UNAME_RELEASE}
272 echo mipsel-unknown-openbsd${UNAME_RELEASE}
275 echo i370-ibm-openedition
277 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
278 echo arm-acorn-riscix${UNAME_RELEASE}
280 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
281 echo hppa1.1-hitachi-hiuxmpp
283 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
284 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
285 if test "`(/bin/universe) 2>/dev/null`" = att ; then
286 echo pyramid-pyramid-sysv3
288 echo pyramid-pyramid-bsd
292 echo pyramid-pyramid-svr4
295 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
297 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
298 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
301 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
304 # According to config.sub, this is the proper way to canonicalize
305 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
306 # it's likely to be more like Solaris than SunOS4.
307 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
310 case "`/usr/bin/arch -k`" in
312 UNAME_RELEASE=`uname -v`
315 # Japanese Language versions have a version number like `4.1.3-JL'.
316 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
319 echo m68k-sun-sunos${UNAME_RELEASE}
322 UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
323 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
324 case "`/bin/arch`" in
326 echo m68k-sun-sunos${UNAME_RELEASE}
329 echo sparc-sun-sunos${UNAME_RELEASE}
334 echo sparc-auspex-sunos${UNAME_RELEASE}
337 echo `uname -p`-unknown-netbsd${UNAME_RELEASE}
340 echo m68k-unknown-openbsd${UNAME_RELEASE}
342 # The situation for MiNT is a little confusing. The machine name
343 # can be virtually everything (everything which is not
344 # "atarist" or "atariste" at least should have a processor
345 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
346 # to the lowercase version "mint" (or "freemint"). Finally
347 # the system name "TOS" denotes a system which is actually not
348 # MiNT. But MiNT is downward compatible to TOS, so this should
350 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
351 echo m68k-atari-mint${UNAME_RELEASE}
353 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
354 echo m68k-atari-mint${UNAME_RELEASE}
356 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
357 echo m68k-atari-mint${UNAME_RELEASE}
359 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
360 echo m68k-milan-mint${UNAME_RELEASE}
362 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
363 echo m68k-hades-mint${UNAME_RELEASE}
365 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
366 echo m68k-unknown-mint${UNAME_RELEASE}
369 echo m68k-unknown-openbsd${UNAME_RELEASE}
372 echo m68k-unknown-openbsd${UNAME_RELEASE}
375 echo m68k-unknown-openbsd${UNAME_RELEASE}
378 echo m88k-unknown-openbsd${UNAME_RELEASE}
381 echo powerpc-apple-machten${UNAME_RELEASE}
384 echo mips-dec-mach_bsd4.3
387 echo mips-dec-ultrix${UNAME_RELEASE}
390 echo vax-dec-ultrix${UNAME_RELEASE}
392 2020:CLIX:*:* | 2430:CLIX:*:*)
393 echo clipper-intergraph-clix${UNAME_RELEASE}
395 mips:*:*:UMIPS | mips:*:*:RISCos)
396 sed 's/^ //' << EOF >$dummy.c
398 #include <stdio.h> /* for printf() prototype */
399 int main (int argc, char *argv[]) {
401 int main (argc, argv) int argc; char *argv[]; {
403 #if defined (host_mips) && defined (MIPSEB)
404 #if defined (SYSTYPE_SYSV)
405 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
407 #if defined (SYSTYPE_SVR4)
408 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
410 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
411 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
417 eval $set_cc_for_build
418 $CC_FOR_BUILD $dummy.c -o $dummy \
419 && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
420 && rm -f $dummy.c $dummy && exit 0
421 rm -f $dummy.c $dummy
422 echo mips-mips-riscos${UNAME_RELEASE}
424 Motorola:PowerMAX_OS:*:*)
425 echo powerpc-motorola-powermax
427 Night_Hawk:Power_UNIX:*:*)
428 echo powerpc-harris-powerunix
431 echo m88k-harris-cxux7
434 echo m88k-motorola-sysv4
437 echo m88k-motorola-sysv3
440 # DG/UX returns AViiON for all architectures
441 UNAME_PROCESSOR=`/usr/bin/uname -p`
442 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
444 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
445 [ ${TARGET_BINARY_INTERFACE}x = x ]
447 echo m88k-dg-dgux${UNAME_RELEASE}
449 echo m88k-dg-dguxbcs${UNAME_RELEASE}
452 echo i586-dg-dgux${UNAME_RELEASE}
455 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
456 echo m88k-dolphin-sysv3
459 # Delta 88k system running SVR3
460 echo m88k-motorola-sysv3
462 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
463 echo m88k-tektronix-sysv3
465 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
466 echo m68k-tektronix-bsd
469 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
471 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
472 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
473 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
478 if [ -x /usr/bin/oslevel ] ; then
479 IBM_REV=`/usr/bin/oslevel`
481 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
483 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
486 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
487 sed 's/^ //' << EOF >$dummy.c
488 #include <sys/systemcfg.h>
494 puts("powerpc-ibm-aix3.2.5");
498 eval $set_cc_for_build
499 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
500 rm -f $dummy.c $dummy
501 echo rs6000-ibm-aix3.2.5
502 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
503 echo rs6000-ibm-aix3.2.4
505 echo rs6000-ibm-aix3.2
509 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
510 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
515 if [ -x /usr/bin/oslevel ] ; then
516 IBM_REV=`/usr/bin/oslevel`
518 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
520 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
525 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
528 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
529 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
530 exit 0 ;; # report: romp-ibm BSD 4.3
532 echo rs6000-bull-bosx
537 9000/[34]??:4.3bsd:1.*:*)
540 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
543 9000/[34678]??:HP-UX:*:*)
544 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
545 case "${UNAME_MACHINE}" in
546 9000/31? ) HP_ARCH=m68000 ;;
547 9000/[34]?? ) HP_ARCH=m68k ;;
548 9000/[678][0-9][0-9])
549 case "${HPUX_REV}" in
551 if [ -x /usr/bin/getconf ]; then
552 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
553 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
554 case "${sc_cpu_version}" in
555 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
556 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
557 532) # CPU_PA_RISC2_0
558 case "${sc_kernel_bits}" in
559 32) HP_ARCH="hppa2.0n" ;;
560 64) HP_ARCH="hppa2.0w" ;;
565 if [ "${HP_ARCH}" = "" ]; then
566 sed 's/^ //' << EOF >$dummy.c
574 #if defined(_SC_KERNEL_BITS)
575 long bits = sysconf(_SC_KERNEL_BITS);
577 long cpu = sysconf (_SC_CPU_VERSION);
581 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
582 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
584 #if defined(_SC_KERNEL_BITS)
587 case 64: puts ("hppa2.0w"); break;
588 case 32: puts ("hppa2.0n"); break;
589 default: puts ("hppa2.0"); break;
591 #else /* !defined(_SC_KERNEL_BITS) */
592 puts ("hppa2.0"); break;
594 default: puts ("hppa1.0"); break;
599 eval $set_cc_for_build
600 (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
601 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
602 rm -f $dummy.c $dummy
605 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
608 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
609 echo ia64-hp-hpux${HPUX_REV}
612 sed 's/^ //' << EOF >$dummy.c
617 long cpu = sysconf (_SC_CPU_VERSION);
618 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
619 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
621 if (CPU_IS_PA_RISC (cpu))
625 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
626 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
627 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
628 default: puts ("hppa-hitachi-hiuxwe2"); break;
631 else if (CPU_IS_HP_MC68K (cpu))
632 puts ("m68k-hitachi-hiuxwe2");
633 else puts ("unknown-hitachi-hiuxwe2");
637 eval $set_cc_for_build
638 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
639 rm -f $dummy.c $dummy
640 echo unknown-hitachi-hiuxwe2
642 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
648 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
649 echo hppa1.0-hp-mpeix
651 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
658 if [ -x /usr/sbin/sysversion ] ; then
659 echo ${UNAME_MACHINE}-unknown-osf1mk
661 echo ${UNAME_MACHINE}-unknown-osf1
665 echo hppa1.1-hp-lites
668 echo hppa-unknown-openbsd
670 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
673 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
674 if getsysinfo -f scalar_acc
675 then echo c32-convex-bsd
676 else echo c2-convex-bsd
679 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
682 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
685 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
692 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
695 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
696 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
697 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
701 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
704 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
707 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
710 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
713 echo cray2-cray-unicos
715 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
716 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
717 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
718 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
719 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
722 echo m68k-unknown-openbsd${UNAME_RELEASE}
724 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
725 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
728 echo sparc-unknown-bsdi${UNAME_RELEASE}
731 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
734 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
737 echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
740 echo ${UNAME_MACHINE}-pc-cygwin
743 echo ${UNAME_MACHINE}-pc-mingw32
746 echo ${UNAME_MACHINE}-pc-pw32
748 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
749 # How do we know it's Interix rather than the generic POSIX subsystem?
750 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
751 # UNAME_MACHINE based on the output of uname instead of i386?
755 echo ${UNAME_MACHINE}-pc-uwin
758 echo powerpcle-unknown-cygwin
761 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
764 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
767 echo ${UNAME_MACHINE}-pc-minix
770 echo ${UNAME_MACHINE}-unknown-linux-gnu
773 echo ${UNAME_MACHINE}-unknown-linux
776 echo ${UNAME_MACHINE}-unknown-linux-gnu
779 case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
780 big) echo mips-unknown-linux-gnu && exit 0 ;;
781 little) echo mipsel-unknown-linux-gnu && exit 0 ;;
785 echo powerpc-unknown-linux-gnu
788 echo powerpc64-unknown-linux-gnu
791 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
792 EV5) UNAME_MACHINE=alphaev5 ;;
793 EV56) UNAME_MACHINE=alphaev56 ;;
794 PCA56) UNAME_MACHINE=alphapca56 ;;
795 PCA57) UNAME_MACHINE=alphapca56 ;;
796 EV6) UNAME_MACHINE=alphaev6 ;;
797 EV67) UNAME_MACHINE=alphaev67 ;;
798 EV68*) UNAME_MACHINE=alphaev68 ;;
800 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
801 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
802 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
804 parisc:Linux:*:* | hppa:Linux:*:*)
806 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
807 PA7*) echo hppa1.1-unknown-linux-gnu ;;
808 PA8*) echo hppa2.0-unknown-linux-gnu ;;
809 *) echo hppa-unknown-linux-gnu ;;
812 parisc64:Linux:*:* | hppa64:Linux:*:*)
813 echo hppa64-unknown-linux-gnu
815 s390:Linux:*:* | s390x:Linux:*:*)
816 echo ${UNAME_MACHINE}-ibm-linux
819 echo ${UNAME_MACHINE}-unknown-linux-gnu
821 sparc:Linux:*:* | sparc64:Linux:*:*)
822 echo ${UNAME_MACHINE}-unknown-linux-gnu
825 echo x86_64-unknown-linux-gnu
828 # The BFD linker knows what the default object file format is, so
829 # first see if it will tell us. cd to the root directory to prevent
830 # problems with other programs or directories called `ld' in the path.
831 ld_supported_targets=`cd /; ld --help 2>&1 \
832 | sed -ne '/supported targets:/!d
834 s/.*supported targets: *//
837 case "$ld_supported_targets" in
839 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
842 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
845 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
848 # Either a pre-BFD a.out linker (linux-gnuoldld) or
849 # one that does not give us useful --help.
850 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
853 # Determine whether the default compiler is a.out or elf
855 #include <features.h>
857 #include <stdio.h> /* for printf() prototype */
858 int main (int argc, char *argv[]) {
860 int main (argc, argv) int argc; char *argv[]; {
865 printf ("%s-pc-linux-gnu\n", argv[1]);
867 printf ("%s-pc-linux-gnulibc1\n", argv[1]);
870 printf ("%s-pc-linux-gnulibc1\n", argv[1]);
873 printf ("%s-pc-linux-gnuaout\n", argv[1]);
878 eval $set_cc_for_build
879 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
880 rm -f $dummy.c $dummy
881 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
884 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
885 # earlier versions are messed up and put the nodename in both
886 # sysname and nodename.
887 echo i386-sequent-sysv4
889 i*86:UNIX_SV:4.2MP:2.*)
890 # Unixware is an offshoot of SVR4, but it has its own version
891 # number series starting with 2...
892 # I am not positive that other SVR4 systems won't match this,
893 # I just have to hope. -- rms.
894 # Use sysv4.2uw... so that sysv4* matches it.
895 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
897 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
898 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
899 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
900 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
902 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
906 case `/bin/uname -X | grep "^Machine"` in
907 *486*) UNAME_MACHINE=i486 ;;
908 *Pentium) UNAME_MACHINE=i586 ;;
909 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
911 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
914 if test -f /usr/options/cb.name; then
915 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
916 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
917 elif /bin/uname -X 2>/dev/null >/dev/null ; then
918 UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
919 (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
920 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
921 && UNAME_MACHINE=i586
922 (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
923 && UNAME_MACHINE=i686
924 (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
925 && UNAME_MACHINE=i686
926 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
928 echo ${UNAME_MACHINE}-pc-sysv32
932 echo ${UNAME_MACHINE}-pc-msdosdjgpp
935 # Left here for compatibility:
936 # uname -m prints for DJGPP always 'pc', but it prints nothing about
937 # the processor, so we play safe by assuming i386.
938 echo i386-pc-msdosdjgpp
946 i860:*:4.*:*) # i860-SVR4
947 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
948 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
949 else # Add other i860-SVR4 vendors below as they are discovered.
950 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
955 echo m68010-convergent-sysv
958 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
959 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
961 test -r /etc/.relid \
962 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
963 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
964 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
965 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
966 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
967 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
968 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
969 && echo i486-ncr-sysv4 && exit 0 ;;
970 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
971 echo m68k-unknown-lynxos${UNAME_RELEASE}
973 mc68030:UNIX_System_V:4.*:*)
974 echo m68k-atari-sysv4
976 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
977 echo i386-unknown-lynxos${UNAME_RELEASE}
979 TSUNAMI:LynxOS:2.*:*)
980 echo sparc-unknown-lynxos${UNAME_RELEASE}
983 echo rs6000-unknown-lynxos${UNAME_RELEASE}
985 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
986 echo powerpc-unknown-lynxos${UNAME_RELEASE}
989 echo mips-dde-sysv${UNAME_RELEASE}
991 RM*:ReliantUNIX-*:*:*)
998 if uname -p 2>/dev/null >/dev/null ; then
999 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1000 echo ${UNAME_MACHINE}-sni-sysv4
1005 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1006 # says <Richard.M.Bartel@ccMail.Census.GOV>
1007 echo i586-unisys-sysv4
1009 *:UNIX_System_V:4*:FTX*)
1010 # From Gerald Hewes <hewes@openmarket.com>.
1011 # How about differentiating between stratus architectures? -djm
1012 echo hppa1.1-stratus-sysv4
1015 # From seanf@swdc.stratus.com.
1016 echo i860-stratus-sysv4
1019 # From Paul.Green@stratus.com.
1020 echo hppa1.1-stratus-vos
1023 echo m68k-apple-aux${UNAME_RELEASE}
1026 echo mips-sony-newsos6
1028 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1029 if [ -d /usr/nec ]; then
1030 echo mips-nec-sysv${UNAME_RELEASE}
1032 echo mips-unknown-sysv${UNAME_RELEASE}
1035 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1036 echo powerpc-be-beos
1038 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1039 echo powerpc-apple-beos
1041 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1045 echo sx4-nec-superux${UNAME_RELEASE}
1048 echo sx5-nec-superux${UNAME_RELEASE}
1050 Power*:Rhapsody:*:*)
1051 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1054 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1057 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1059 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1060 if test "${UNAME_MACHINE}" = "x86pc"; then
1063 echo `uname -p`-${UNAME_MACHINE}-nto-qnx
1068 NSR-[KW]:NONSTOP_KERNEL:*:*)
1069 echo nsr-tandem-nsk${UNAME_RELEASE}
1072 echo mips-compaq-nonstopux
1075 echo bs2000-siemens-sysv
1077 DS/*:UNIX_System_V:*:*)
1078 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1081 # "uname -m" is not consistent, so use $cputype instead. 386
1082 # is converted to i386 for consistency with other x86
1083 # operating systems.
1084 if test "$cputype" = "386"; then
1087 UNAME_MACHINE="$cputype"
1089 echo ${UNAME_MACHINE}-unknown-plan9
1092 # If we were able to find `uname', then EMX Unix compatibility
1093 # is probably installed.
1094 echo ${UNAME_MACHINE}-pc-os2-emx
1097 echo pdp10-unknown-tops10
1100 echo pdp10-unknown-tenex
1102 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1103 echo pdp10-dec-tops20
1105 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1106 echo pdp10-xkl-tops20
1109 echo pdp10-unknown-tops20
1112 echo pdp10-unknown-its
1114 i*86:XTS-300:*:STOP)
1115 echo ${UNAME_MACHINE}-unknown-stop
1119 #echo '(No uname command or uname output not recognized.)' 1>&2
1120 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1124 # include <sys/types.h>
1125 # include <sys/utsname.h>
1130 #if defined (MIPSEB)
1131 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1133 printf ("mips-sony-bsd\n"); exit (0);
1135 #include <sys/param.h>
1136 printf ("m68k-sony-newsos%s\n",
1146 #if defined (__arm) && defined (__acorn) && defined (__unix)
1147 printf ("arm-acorn-riscix"); exit (0);
1150 #if defined (hp300) && !defined (hpux)
1151 printf ("m68k-hp-bsd\n"); exit (0);
1155 #if !defined (__ARCHITECTURE__)
1156 #define __ARCHITECTURE__ "m68k"
1159 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1161 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1163 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1167 #if defined (MULTIMAX) || defined (n16)
1169 printf ("ns32k-encore-sysv\n"); exit (0);
1172 printf ("ns32k-encore-mach\n"); exit (0);
1174 printf ("ns32k-encore-bsd\n"); exit (0);
1179 #if defined (__386BSD__)
1180 printf ("i386-pc-bsd\n"); exit (0);
1183 #if defined (sequent)
1185 printf ("i386-sequent-dynix\n"); exit (0);
1187 #if defined (ns32000)
1188 printf ("ns32k-sequent-dynix\n"); exit (0);
1192 #if defined (_SEQUENT_)
1197 if (strncmp(un.version, "V2", 2) == 0) {
1198 printf ("i386-sequent-ptx2\n"); exit (0);
1200 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1201 printf ("i386-sequent-ptx1\n"); exit (0);
1203 printf ("i386-sequent-ptx\n"); exit (0);
1208 # if !defined (ultrix)
1209 # include <sys/param.h>
1212 printf ("vax-dec-bsd4.3\n"); exit (0);
1215 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1217 printf ("vax-dec-bsd\n"); exit (0);
1221 printf ("vax-dec-bsd\n"); exit (0);
1224 printf ("vax-dec-ultrix\n"); exit (0);
1228 #if defined (alliant) && defined (i860)
1229 printf ("i860-alliant-bsd\n"); exit (0);
1236 eval $set_cc_for_build
1237 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
1238 rm -f $dummy.c $dummy
1240 # Apollos put the system type in the environment.
1242 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1244 # Convex versions that predate uname can use getsysinfo(1)
1246 if [ -x /usr/convex/getsysinfo ]
1248 case `getsysinfo -f cpu_type` in
1253 if getsysinfo -f scalar_acc
1254 then echo c32-convex-bsd
1255 else echo c2-convex-bsd
1271 $0: unable to guess system type
1273 This script, last modified $timestamp, has failed to recognize
1274 the operating system you are using. It is advised that you
1275 download the most up to date version of the config scripts from
1277 ftp://ftp.gnu.org/pub/gnu/config/
1279 If the version you run ($0) is already up to date, please
1280 send the following data and any information you think might be
1281 pertinent to <config-patches@gnu.org> in order to provide the needed
1282 information to handle your system.
1284 config.guess timestamp = $timestamp
1286 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1287 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1288 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1289 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1291 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1292 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1294 hostinfo = `(hostinfo) 2>/dev/null`
1295 /bin/universe = `(/bin/universe) 2>/dev/null`
1296 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1297 /bin/arch = `(/bin/arch) 2>/dev/null`
1298 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1299 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1301 UNAME_MACHINE = ${UNAME_MACHINE}
1302 UNAME_RELEASE = ${UNAME_RELEASE}
1303 UNAME_SYSTEM = ${UNAME_SYSTEM}
1304 UNAME_VERSION = ${UNAME_VERSION}
1310 # eval: (add-hook 'write-file-hooks 'time-stamp)
1311 # time-stamp-start: "timestamp='"
1312 # time-stamp-format: "%:y-%02m-%02d"
1313 # time-stamp-end: "'"