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 # Originally written by Per Bothner <bothner@cygnus.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 trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
95 # CC_FOR_BUILD -- compiler used by this script.
96 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
97 # use `HOST_CC' if defined, but it is deprecated.
99 set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
100 ,,) echo "int dummy(){}" > $dummy.c ;
101 for c in cc gcc c89 ; do
102 ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
103 if test $? = 0 ; then
104 CC_FOR_BUILD="$c"; break ;
107 rm -f $dummy.c $dummy.o $dummy.rel ;
108 if test x"$CC_FOR_BUILD" = x ; then
109 CC_FOR_BUILD=no_compiler_found ;
112 ,,*) CC_FOR_BUILD=$CC ;;
113 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
116 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
117 # (ghazi@noc.rutgers.edu 1994-08-24)
118 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
119 PATH=$PATH:/.attbin ; export PATH
122 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
123 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
124 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
125 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
127 # Note: order is significant - the case branches are not exclusive.
129 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
131 # NetBSD (nbsd) targets should (where applicable) match one or
132 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
133 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
134 # switched to ELF, *-*-netbsd* would select the old
135 # object file format. This provides both forward
136 # compatibility and a consistent mechanism for selecting the
137 # object file format.
138 # Determine the machine/vendor (is the vendor relevant).
139 case "${UNAME_MACHINE}" in
140 amiga) machine=m68k-unknown ;;
141 arm32) machine=arm-unknown ;;
142 atari*) machine=m68k-atari ;;
143 sun3*) machine=m68k-sun ;;
144 mac68k) machine=m68k-apple ;;
145 macppc) machine=powerpc-apple ;;
146 hp3[0-9][05]) machine=m68k-hp ;;
147 ibmrt|romp-ibm) machine=romp-ibm ;;
148 sparc*) machine=`uname -p`-unknown ;;
149 *) machine=${UNAME_MACHINE}-unknown ;;
151 # The Operating System including object format, if it has switched
152 # to ELF recently, or will in the future.
153 case "${UNAME_MACHINE}" in
154 i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
155 eval $set_cc_for_build
156 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
157 | grep __ELF__ >/dev/null
159 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
160 # Return netbsd for either. FIX?
171 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
172 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
173 # contains redundant information, the shorter form:
174 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
175 echo "${machine}-${os}${release}"
178 echo m68k-unknown-openbsd${UNAME_RELEASE}
181 echo mipsel-unknown-openbsd${UNAME_RELEASE}
184 echo m68k-unknown-openbsd${UNAME_RELEASE}
187 echo m68k-unknown-openbsd${UNAME_RELEASE}
190 echo powerpc-unknown-openbsd${UNAME_RELEASE}
193 echo m68k-unknown-openbsd${UNAME_RELEASE}
196 echo m88k-unknown-openbsd${UNAME_RELEASE}
199 echo powerpc-unknown-openbsd${UNAME_RELEASE}
202 echo mipsel-unknown-openbsd${UNAME_RELEASE}
205 echo mipseb-unknown-openbsd${UNAME_RELEASE}
208 echo m68k-unknown-openbsd${UNAME_RELEASE}
211 echo mipsel-unknown-openbsd${UNAME_RELEASE}
214 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
217 if test $UNAME_RELEASE = "V4.0"; then
218 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
220 # A Vn.n version is a released version.
221 # A Tn.n version is a released field test version.
222 # A Xn.n version is an unreleased experimental baselevel.
223 # 1.2 uses "1.2" for uname -r.
227 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
234 .frame \$30,16,\$26,0
237 .long 0x47e03d80 # implver \$0
239 .long 0x47e20c21 # amask \$2,\$1
249 eval $set_cc_for_build
250 $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
251 if test "$?" = 0 ; then
254 UNAME_MACHINE="alpha"
257 UNAME_MACHINE="alphaev5"
260 UNAME_MACHINE="alphaev56"
263 UNAME_MACHINE="alphapca56"
266 UNAME_MACHINE="alphaev6"
269 UNAME_MACHINE="alphaev67"
272 UNAME_MACHINE="alphaev68"
276 rm -f $dummy.s $dummy
277 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
279 Alpha\ *:Windows_NT*:*)
280 # How do we know it's Interix rather than the generic POSIX subsystem?
281 # Should we change UNAME_MACHINE based on the output of uname instead
282 # of the specific Alpha model?
283 echo alpha-pc-interix
285 21064:Windows_NT:50:3)
286 echo alpha-dec-winnt3.5
288 Amiga*:UNIX_System_V:4.0:*)
289 echo m68k-unknown-sysv4
291 *:[Aa]miga[Oo][Ss]:*:*)
292 echo ${UNAME_MACHINE}-unknown-amigaos
295 echo i370-ibm-openedition
297 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
298 echo arm-acorn-riscix${UNAME_RELEASE}
300 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
301 echo hppa1.1-hitachi-hiuxmpp
303 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
304 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
305 if test "`(/bin/universe) 2>/dev/null`" = att ; then
306 echo pyramid-pyramid-sysv3
308 echo pyramid-pyramid-bsd
312 echo pyramid-pyramid-svr4
315 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
317 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
318 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
321 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
324 # According to config.sub, this is the proper way to canonicalize
325 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
326 # it's likely to be more like Solaris than SunOS4.
327 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
330 case "`/usr/bin/arch -k`" in
332 UNAME_RELEASE=`uname -v`
335 # Japanese Language versions have a version number like `4.1.3-JL'.
336 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
339 echo m68k-sun-sunos${UNAME_RELEASE}
342 UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
343 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
344 case "`/bin/arch`" in
346 echo m68k-sun-sunos${UNAME_RELEASE}
349 echo sparc-sun-sunos${UNAME_RELEASE}
354 echo sparc-auspex-sunos${UNAME_RELEASE}
356 # The situation for MiNT is a little confusing. The machine name
357 # can be virtually everything (everything which is not
358 # "atarist" or "atariste" at least should have a processor
359 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
360 # to the lowercase version "mint" (or "freemint"). Finally
361 # the system name "TOS" denotes a system which is actually not
362 # MiNT. But MiNT is downward compatible to TOS, so this should
364 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
365 echo m68k-atari-mint${UNAME_RELEASE}
367 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
368 echo m68k-atari-mint${UNAME_RELEASE}
370 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
371 echo m68k-atari-mint${UNAME_RELEASE}
373 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
374 echo m68k-milan-mint${UNAME_RELEASE}
376 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
377 echo m68k-hades-mint${UNAME_RELEASE}
379 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
380 echo m68k-unknown-mint${UNAME_RELEASE}
383 echo powerpc-apple-machten${UNAME_RELEASE}
386 echo mips-dec-mach_bsd4.3
389 echo mips-dec-ultrix${UNAME_RELEASE}
392 echo vax-dec-ultrix${UNAME_RELEASE}
394 2020:CLIX:*:* | 2430:CLIX:*:*)
395 echo clipper-intergraph-clix${UNAME_RELEASE}
397 mips:*:*:UMIPS | mips:*:*:RISCos)
398 eval $set_cc_for_build
399 sed 's/^ //' << EOF >$dummy.c
401 #include <stdio.h> /* for printf() prototype */
402 int main (int argc, char *argv[]) {
404 int main (argc, argv) int argc; char *argv[]; {
406 #if defined (host_mips) && defined (MIPSEB)
407 #if defined (SYSTYPE_SYSV)
408 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
410 #if defined (SYSTYPE_SVR4)
411 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
413 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
414 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
420 $CC_FOR_BUILD $dummy.c -o $dummy \
421 && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
422 && rm -f $dummy.c $dummy && exit 0
423 rm -f $dummy.c $dummy
424 echo mips-mips-riscos${UNAME_RELEASE}
426 Motorola:PowerMAX_OS:*:*)
427 echo powerpc-motorola-powermax
429 Night_Hawk:Power_UNIX:*:*)
430 echo powerpc-harris-powerunix
433 echo m88k-harris-cxux7
436 echo m88k-motorola-sysv4
439 echo m88k-motorola-sysv3
442 # DG/UX returns AViiON for all architectures
443 UNAME_PROCESSOR=`/usr/bin/uname -p`
444 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
446 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
447 [ ${TARGET_BINARY_INTERFACE}x = x ]
449 echo m88k-dg-dgux${UNAME_RELEASE}
451 echo m88k-dg-dguxbcs${UNAME_RELEASE}
454 echo i586-dg-dgux${UNAME_RELEASE}
457 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
458 echo m88k-dolphin-sysv3
461 # Delta 88k system running SVR3
462 echo m88k-motorola-sysv3
464 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
465 echo m88k-tektronix-sysv3
467 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
468 echo m68k-tektronix-bsd
471 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
473 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
474 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
475 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
480 if [ -x /usr/bin/oslevel ] ; then
481 IBM_REV=`/usr/bin/oslevel`
483 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
485 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
488 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
489 eval $set_cc_for_build
490 sed 's/^ //' << EOF >$dummy.c
491 #include <sys/systemcfg.h>
497 puts("powerpc-ibm-aix3.2.5");
501 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
502 rm -f $dummy.c $dummy
503 echo rs6000-ibm-aix3.2.5
504 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
505 echo rs6000-ibm-aix3.2.4
507 echo rs6000-ibm-aix3.2
511 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
512 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
517 if [ -x /usr/bin/oslevel ] ; then
518 IBM_REV=`/usr/bin/oslevel`
520 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
522 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
527 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
530 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
531 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
532 exit 0 ;; # report: romp-ibm BSD 4.3
534 echo rs6000-bull-bosx
539 9000/[34]??:4.3bsd:1.*:*)
542 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
545 9000/[34678]??:HP-UX:*:*)
546 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
547 case "${UNAME_MACHINE}" in
548 9000/31? ) HP_ARCH=m68000 ;;
549 9000/[34]?? ) HP_ARCH=m68k ;;
550 9000/[678][0-9][0-9])
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" ;;
561 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
565 if [ "${HP_ARCH}" = "" ]; then
566 eval $set_cc_for_build
567 sed 's/^ //' << EOF >$dummy.c
575 #if defined(_SC_KERNEL_BITS)
576 long bits = sysconf(_SC_KERNEL_BITS);
578 long cpu = sysconf (_SC_CPU_VERSION);
582 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
583 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
585 #if defined(_SC_KERNEL_BITS)
588 case 64: puts ("hppa2.0w"); break;
589 case 32: puts ("hppa2.0n"); break;
590 default: puts ("hppa2.0"); break;
592 #else /* !defined(_SC_KERNEL_BITS) */
593 puts ("hppa2.0"); break;
595 default: puts ("hppa1.0"); break;
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 eval $set_cc_for_build
613 sed 's/^ //' << EOF >$dummy.c
618 long cpu = sysconf (_SC_CPU_VERSION);
619 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
620 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
622 if (CPU_IS_PA_RISC (cpu))
626 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
627 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
628 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
629 default: puts ("hppa-hitachi-hiuxwe2"); break;
632 else if (CPU_IS_HP_MC68K (cpu))
633 puts ("m68k-hitachi-hiuxwe2");
634 else puts ("unknown-hitachi-hiuxwe2");
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
667 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
670 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
671 if getsysinfo -f scalar_acc
672 then echo c32-convex-bsd
673 else echo c2-convex-bsd
676 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
679 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
682 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
689 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
692 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
693 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
694 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
698 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
701 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
704 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
707 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
710 echo cray2-cray-unicos
712 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
713 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
714 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
715 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
716 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
718 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
719 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
722 echo sparc-unknown-bsdi${UNAME_RELEASE}
725 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
728 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
731 echo ${UNAME_MACHINE}-pc-cygwin
734 echo ${UNAME_MACHINE}-pc-mingw32
737 echo ${UNAME_MACHINE}-pc-pw32
739 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
740 # How do we know it's Interix rather than the generic POSIX subsystem?
741 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
742 # UNAME_MACHINE based on the output of uname instead of i386?
746 echo ${UNAME_MACHINE}-pc-uwin
749 echo powerpcle-unknown-cygwin
752 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
755 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
758 echo ${UNAME_MACHINE}-pc-minix
761 echo ${UNAME_MACHINE}-unknown-linux-gnu
764 echo ${UNAME_MACHINE}-unknown-linux
767 echo ${UNAME_MACHINE}-unknown-linux-gnu
770 case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
771 big) echo mips-unknown-linux-gnu && exit 0 ;;
772 little) echo mipsel-unknown-linux-gnu && exit 0 ;;
776 echo powerpc-unknown-linux-gnu
779 echo powerpc64-unknown-linux-gnu
782 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
783 EV5) UNAME_MACHINE=alphaev5 ;;
784 EV56) UNAME_MACHINE=alphaev56 ;;
785 PCA56) UNAME_MACHINE=alphapca56 ;;
786 PCA57) UNAME_MACHINE=alphapca56 ;;
787 EV6) UNAME_MACHINE=alphaev6 ;;
788 EV67) UNAME_MACHINE=alphaev67 ;;
789 EV68*) UNAME_MACHINE=alphaev68 ;;
791 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
792 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
793 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
795 parisc:Linux:*:* | hppa:Linux:*:*)
797 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
798 PA7*) echo hppa1.1-unknown-linux-gnu ;;
799 PA8*) echo hppa2.0-unknown-linux-gnu ;;
800 *) echo hppa-unknown-linux-gnu ;;
803 parisc64:Linux:*:* | hppa64:Linux:*:*)
804 echo hppa64-unknown-linux-gnu
806 s390:Linux:*:* | s390x:Linux:*:*)
807 echo ${UNAME_MACHINE}-ibm-linux
810 echo ${UNAME_MACHINE}-unknown-linux-gnu
812 sparc:Linux:*:* | sparc64:Linux:*:*)
813 echo ${UNAME_MACHINE}-unknown-linux-gnu
816 echo x86_64-unknown-linux-gnu
819 # The BFD linker knows what the default object file format is, so
820 # first see if it will tell us. cd to the root directory to prevent
821 # problems with other programs or directories called `ld' in the path.
822 ld_supported_targets=`cd /; ld --help 2>&1 \
823 | sed -ne '/supported targets:/!d
825 s/.*supported targets: *//
828 case "$ld_supported_targets" in
830 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
833 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
836 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
839 # Either a pre-BFD a.out linker (linux-gnuoldld) or
840 # one that does not give us useful --help.
841 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
844 # Determine whether the default compiler is a.out or elf
845 eval $set_cc_for_build
847 #include <features.h>
849 #include <stdio.h> /* for printf() prototype */
850 int main (int argc, char *argv[]) {
852 int main (argc, argv) int argc; char *argv[]; {
857 printf ("%s-pc-linux-gnu\n", argv[1]);
859 printf ("%s-pc-linux-gnulibc1\n", argv[1]);
862 printf ("%s-pc-linux-gnulibc1\n", argv[1]);
865 printf ("%s-pc-linux-gnuaout\n", argv[1]);
870 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
871 rm -f $dummy.c $dummy
872 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
875 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
876 # earlier versions are messed up and put the nodename in both
877 # sysname and nodename.
878 echo i386-sequent-sysv4
880 i*86:UNIX_SV:4.2MP:2.*)
881 # Unixware is an offshoot of SVR4, but it has its own version
882 # number series starting with 2...
883 # I am not positive that other SVR4 systems won't match this,
884 # I just have to hope. -- rms.
885 # Use sysv4.2uw... so that sysv4* matches it.
886 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
888 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
889 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
890 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
891 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
893 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
897 case `/bin/uname -X | grep "^Machine"` in
898 *486*) UNAME_MACHINE=i486 ;;
899 *Pentium) UNAME_MACHINE=i586 ;;
900 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
902 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
905 if test -f /usr/options/cb.name; then
906 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
907 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
908 elif /bin/uname -X 2>/dev/null >/dev/null ; then
909 UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
910 (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
911 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
912 && UNAME_MACHINE=i586
913 (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
914 && UNAME_MACHINE=i686
915 (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
916 && UNAME_MACHINE=i686
917 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
919 echo ${UNAME_MACHINE}-pc-sysv32
923 echo ${UNAME_MACHINE}-pc-msdosdjgpp
926 # Left here for compatibility:
927 # uname -m prints for DJGPP always 'pc', but it prints nothing about
928 # the processor, so we play safe by assuming i386.
929 echo i386-pc-msdosdjgpp
937 i860:*:4.*:*) # i860-SVR4
938 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
939 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
940 else # Add other i860-SVR4 vendors below as they are discovered.
941 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
946 echo m68010-convergent-sysv
949 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
950 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 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
952 test -r /etc/.relid \
953 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
954 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
955 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
956 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
957 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
958 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
959 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
960 && echo i486-ncr-sysv4 && exit 0 ;;
961 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
962 echo m68k-unknown-lynxos${UNAME_RELEASE}
964 mc68030:UNIX_System_V:4.*:*)
965 echo m68k-atari-sysv4
967 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
968 echo i386-unknown-lynxos${UNAME_RELEASE}
970 TSUNAMI:LynxOS:2.*:*)
971 echo sparc-unknown-lynxos${UNAME_RELEASE}
974 echo rs6000-unknown-lynxos${UNAME_RELEASE}
976 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
977 echo powerpc-unknown-lynxos${UNAME_RELEASE}
980 echo mips-dde-sysv${UNAME_RELEASE}
982 RM*:ReliantUNIX-*:*:*)
989 if uname -p 2>/dev/null >/dev/null ; then
990 UNAME_MACHINE=`(uname -p) 2>/dev/null`
991 echo ${UNAME_MACHINE}-sni-sysv4
996 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
997 # says <Richard.M.Bartel@ccMail.Census.GOV>
998 echo i586-unisys-sysv4
1000 *:UNIX_System_V:4*:FTX*)
1001 # From Gerald Hewes <hewes@openmarket.com>.
1002 # How about differentiating between stratus architectures? -djm
1003 echo hppa1.1-stratus-sysv4
1006 # From seanf@swdc.stratus.com.
1007 echo i860-stratus-sysv4
1010 # From Paul.Green@stratus.com.
1011 echo hppa1.1-stratus-vos
1014 echo m68k-apple-aux${UNAME_RELEASE}
1017 echo mips-sony-newsos6
1019 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1020 if [ -d /usr/nec ]; then
1021 echo mips-nec-sysv${UNAME_RELEASE}
1023 echo mips-unknown-sysv${UNAME_RELEASE}
1026 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1027 echo powerpc-be-beos
1029 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1030 echo powerpc-apple-beos
1032 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1036 echo sx4-nec-superux${UNAME_RELEASE}
1039 echo sx5-nec-superux${UNAME_RELEASE}
1041 Power*:Rhapsody:*:*)
1042 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1045 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1048 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1050 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1051 if test "${UNAME_MACHINE}" = "x86pc"; then
1054 echo `uname -p`-${UNAME_MACHINE}-nto-qnx
1059 NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
1060 echo nsr-tandem-nsk${UNAME_RELEASE}
1063 echo mips-compaq-nonstopux
1066 echo bs2000-siemens-sysv
1068 DS/*:UNIX_System_V:*:*)
1069 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1072 # "uname -m" is not consistent, so use $cputype instead. 386
1073 # is converted to i386 for consistency with other x86
1074 # operating systems.
1075 if test "$cputype" = "386"; then
1078 UNAME_MACHINE="$cputype"
1080 echo ${UNAME_MACHINE}-unknown-plan9
1083 # If we were able to find `uname', then EMX Unix compatibility
1084 # is probably installed.
1085 echo ${UNAME_MACHINE}-pc-os2-emx
1088 echo pdp10-unknown-tops10
1091 echo pdp10-unknown-tenex
1093 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1094 echo pdp10-dec-tops20
1096 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1097 echo pdp10-xkl-tops20
1100 echo pdp10-unknown-tops20
1103 echo pdp10-unknown-its
1105 i*86:XTS-300:*:STOP)
1106 echo ${UNAME_MACHINE}-unknown-stop
1109 echo ${UNAME_MACHINE}-unknown-atheos
1113 #echo '(No uname command or uname output not recognized.)' 1>&2
1114 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1116 eval $set_cc_for_build
1119 # include <sys/types.h>
1120 # include <sys/utsname.h>
1125 #if defined (MIPSEB)
1126 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1128 printf ("mips-sony-bsd\n"); exit (0);
1130 #include <sys/param.h>
1131 printf ("m68k-sony-newsos%s\n",
1141 #if defined (__arm) && defined (__acorn) && defined (__unix)
1142 printf ("arm-acorn-riscix"); exit (0);
1145 #if defined (hp300) && !defined (hpux)
1146 printf ("m68k-hp-bsd\n"); exit (0);
1150 #if !defined (__ARCHITECTURE__)
1151 #define __ARCHITECTURE__ "m68k"
1154 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1156 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1158 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1162 #if defined (MULTIMAX) || defined (n16)
1164 printf ("ns32k-encore-sysv\n"); exit (0);
1167 printf ("ns32k-encore-mach\n"); exit (0);
1169 printf ("ns32k-encore-bsd\n"); exit (0);
1174 #if defined (__386BSD__)
1175 printf ("i386-pc-bsd\n"); exit (0);
1178 #if defined (sequent)
1180 printf ("i386-sequent-dynix\n"); exit (0);
1182 #if defined (ns32000)
1183 printf ("ns32k-sequent-dynix\n"); exit (0);
1187 #if defined (_SEQUENT_)
1192 if (strncmp(un.version, "V2", 2) == 0) {
1193 printf ("i386-sequent-ptx2\n"); exit (0);
1195 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1196 printf ("i386-sequent-ptx1\n"); exit (0);
1198 printf ("i386-sequent-ptx\n"); exit (0);
1203 # if !defined (ultrix)
1204 # include <sys/param.h>
1207 printf ("vax-dec-bsd4.3\n"); exit (0);
1210 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1212 printf ("vax-dec-bsd\n"); exit (0);
1216 printf ("vax-dec-bsd\n"); exit (0);
1219 printf ("vax-dec-ultrix\n"); exit (0);
1223 #if defined (alliant) && defined (i860)
1224 printf ("i860-alliant-bsd\n"); exit (0);
1231 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
1232 rm -f $dummy.c $dummy
1234 # Apollos put the system type in the environment.
1236 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1238 # Convex versions that predate uname can use getsysinfo(1)
1240 if [ -x /usr/convex/getsysinfo ]
1242 case `getsysinfo -f cpu_type` in
1247 if getsysinfo -f scalar_acc
1248 then echo c32-convex-bsd
1249 else echo c2-convex-bsd
1265 $0: unable to guess system type
1267 This script, last modified $timestamp, has failed to recognize
1268 the operating system you are using. It is advised that you
1269 download the most up to date version of the config scripts from
1271 ftp://ftp.gnu.org/pub/gnu/config/
1273 If the version you run ($0) is already up to date, please
1274 send the following data and any information you think might be
1275 pertinent to <config-patches@gnu.org> in order to provide the needed
1276 information to handle your system.
1278 config.guess timestamp = $timestamp
1280 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1281 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1282 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1283 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1285 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1286 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1288 hostinfo = `(hostinfo) 2>/dev/null`
1289 /bin/universe = `(/bin/universe) 2>/dev/null`
1290 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1291 /bin/arch = `(/bin/arch) 2>/dev/null`
1292 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1293 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1295 UNAME_MACHINE = ${UNAME_MACHINE}
1296 UNAME_RELEASE = ${UNAME_RELEASE}
1297 UNAME_SYSTEM = ${UNAME_SYSTEM}
1298 UNAME_VERSION = ${UNAME_VERSION}
1304 # eval: (add-hook 'write-file-hooks 'time-stamp)
1305 # time-stamp-start: "timestamp='"
1306 # time-stamp-format: "%:y-%02m-%02d"
1307 # time-stamp-end: "'"