2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 # 2000, 2001, 2002 Free Software Foundation, Inc.
6 # $DragonFly: src/contrib/tcsh/Attic/config.guess,v 1.2 2003/11/19 00:51:36 dillon Exp $
10 # This file is free software; you can redistribute it and/or modify it
11 # under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2 of the License, or
13 # (at your option) any later version.
15 # This program is distributed in the hope that it will be useful, but
16 # WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 # General Public License for more details.
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 # As a special exception to the GNU General Public License, if you
25 # distribute this file as part of a program that contains a
26 # configuration script generated by Autoconf, you may include it under
27 # the same distribution terms that you use for the rest of that program.
29 # Originally written by Per Bothner <per@bothner.com>.
30 # Please send patches to <config-patches@gnu.org>. Submit a context
31 # diff and a properly formatted ChangeLog entry.
33 # This script attempts to guess a canonical system name similar to
34 # config.sub. If it succeeds, it prints the system name on stdout, and
35 # exits with 0. Otherwise, it exits with 1.
37 # The plan is that this can be called by configure scripts if you
38 # don't specify an explicit build system type.
40 me=`echo "$0" | sed -e 's,.*/,,'`
45 Output the configuration name of the system \`$me' is run on.
48 -h, --help print this help, then exit
49 -t, --time-stamp print date of last modification, then exit
50 -v, --version print version number, then exit
52 Report bugs and patches to <config-patches@gnu.org>."
55 GNU config.guess ($timestamp)
57 Originally written by Per Bothner.
58 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
59 Free Software Foundation, Inc.
61 This is free software; see the source for copying conditions. There is NO
62 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
65 Try \`$me --help' for more information."
68 while test $# -gt 0 ; do
70 --time-stamp | --time* | -t )
71 echo "$timestamp" ; exit 0 ;;
73 echo "$version" ; exit 0 ;;
75 echo "$usage"; exit 0 ;;
76 -- ) # Stop option processing
78 - ) # Use stdin as input.
81 echo "$me: invalid option $1$help" >&2
89 echo "$me: too many arguments$help" >&2
95 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
96 # compiler to aid in system detection is discouraged as it requires
97 # temporary files to be created and, as you can see below, it is a
98 # headache to deal with in a portable fashion.
100 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
101 # use `HOST_CC' if defined, but it is deprecated.
103 # This shell variable is my proudest work .. or something. --bje
105 set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
106 (old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
107 || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
108 dummy=$tmpdir/dummy ;
109 files="$dummy.c $dummy.o $dummy.rel $dummy" ;
110 trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
111 case $CC_FOR_BUILD,$HOST_CC,$CC in
112 ,,) echo "int x;" > $dummy.c ;
113 for c in cc gcc c89 c99 ; do
114 if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then
115 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 ;;
128 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
129 # (ghazi@noc.rutgers.edu 1994-08-24)
130 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
131 PATH=$PATH:/.attbin ; export PATH
134 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
135 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
136 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
137 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
139 # Note: order is significant - the case branches are not exclusive.
141 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
143 # NetBSD (nbsd) targets should (where applicable) match one or
144 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
145 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
146 # switched to ELF, *-*-netbsd* would select the old
147 # object file format. This provides both forward
148 # compatibility and a consistent mechanism for selecting the
149 # object file format.
151 # Note: NetBSD doesn't particularly care about the vendor
152 # portion of the name. We always set it to "unknown".
153 sysctl="sysctl -n hw.machine_arch"
154 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
155 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
156 case "${UNAME_MACHINE_ARCH}" in
157 armeb) machine=armeb-unknown ;;
158 arm*) machine=arm-unknown ;;
159 sh3el) machine=shl-unknown ;;
160 sh3eb) machine=sh-unknown ;;
161 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
163 # The Operating System including object format, if it has switched
164 # to ELF recently, or will in the future.
165 case "${UNAME_MACHINE_ARCH}" in
166 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
167 eval $set_cc_for_build
168 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
169 | grep __ELF__ >/dev/null
171 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
172 # Return netbsd for either. FIX?
183 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
184 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
185 # contains redundant information, the shorter form:
186 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
187 echo "${machine}-${os}${release}"
190 echo m68k-unknown-openbsd${UNAME_RELEASE}
193 echo mipsel-unknown-openbsd${UNAME_RELEASE}
196 echo m68k-unknown-openbsd${UNAME_RELEASE}
199 echo m68k-unknown-openbsd${UNAME_RELEASE}
202 echo powerpc-unknown-openbsd${UNAME_RELEASE}
205 echo m68k-unknown-openbsd${UNAME_RELEASE}
208 echo m88k-unknown-openbsd${UNAME_RELEASE}
211 echo powerpc-unknown-openbsd${UNAME_RELEASE}
214 echo mipsel-unknown-openbsd${UNAME_RELEASE}
217 echo mipseb-unknown-openbsd${UNAME_RELEASE}
220 echo m68k-unknown-openbsd${UNAME_RELEASE}
223 echo mipsel-unknown-openbsd${UNAME_RELEASE}
226 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
229 if test $UNAME_RELEASE = "V4.0"; then
230 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
232 # A Vn.n version is a released version.
233 # A Tn.n version is a released field test version.
234 # A Xn.n version is an unreleased experimental baselevel.
235 # 1.2 uses "1.2" for uname -r.
239 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
246 .frame \$30,16,\$26,0
249 .long 0x47e03d80 # implver \$0
251 .long 0x47e20c21 # amask \$2,\$1
261 eval $set_cc_for_build
262 $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
263 if test "$?" = 0 ; then
266 UNAME_MACHINE="alpha"
269 UNAME_MACHINE="alphaev5"
272 UNAME_MACHINE="alphaev56"
275 UNAME_MACHINE="alphapca56"
278 UNAME_MACHINE="alphaev6"
281 UNAME_MACHINE="alphaev67"
284 UNAME_MACHINE="alphaev68"
288 rm -f $dummy.s $dummy && rmdir $tmpdir
289 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
291 Alpha\ *:Windows_NT*:*)
292 # How do we know it's Interix rather than the generic POSIX subsystem?
293 # Should we change UNAME_MACHINE based on the output of uname instead
294 # of the specific Alpha model?
295 echo alpha-pc-interix
297 21064:Windows_NT:50:3)
298 echo alpha-dec-winnt3.5
300 Amiga*:UNIX_System_V:4.0:*)
301 echo m68k-unknown-sysv4
303 *:[Aa]miga[Oo][Ss]:*:*)
304 echo ${UNAME_MACHINE}-unknown-amigaos
306 *:[Mm]orph[Oo][Ss]:*:*)
307 echo ${UNAME_MACHINE}-unknown-morphos
310 echo i370-ibm-openedition
312 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
313 echo arm-acorn-riscix${UNAME_RELEASE}
315 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
316 echo hppa1.1-hitachi-hiuxmpp
318 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
319 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
320 if test "`(/bin/universe) 2>/dev/null`" = att ; then
321 echo pyramid-pyramid-sysv3
323 echo pyramid-pyramid-bsd
327 echo pyramid-pyramid-svr4
329 DRS?6000:UNIX_SV:4.2*:7*)
330 case `/usr/bin/uname -p` in
331 sparc) echo sparc-icl-nx7 && exit 0 ;;
334 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
336 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
337 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
340 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
343 # According to config.sub, this is the proper way to canonicalize
344 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
345 # it's likely to be more like Solaris than SunOS4.
346 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
349 case "`/usr/bin/arch -k`" in
351 UNAME_RELEASE=`uname -v`
354 # Japanese Language versions have a version number like `4.1.3-JL'.
355 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
358 echo m68k-sun-sunos${UNAME_RELEASE}
361 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
362 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
363 case "`/bin/arch`" in
365 echo m68k-sun-sunos${UNAME_RELEASE}
368 echo sparc-sun-sunos${UNAME_RELEASE}
373 echo sparc-auspex-sunos${UNAME_RELEASE}
375 # The situation for MiNT is a little confusing. The machine name
376 # can be virtually everything (everything which is not
377 # "atarist" or "atariste" at least should have a processor
378 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
379 # to the lowercase version "mint" (or "freemint"). Finally
380 # the system name "TOS" denotes a system which is actually not
381 # MiNT. But MiNT is downward compatible to TOS, so this should
383 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
384 echo m68k-atari-mint${UNAME_RELEASE}
386 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
387 echo m68k-atari-mint${UNAME_RELEASE}
389 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
390 echo m68k-atari-mint${UNAME_RELEASE}
392 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
393 echo m68k-milan-mint${UNAME_RELEASE}
395 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
396 echo m68k-hades-mint${UNAME_RELEASE}
398 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
399 echo m68k-unknown-mint${UNAME_RELEASE}
402 echo powerpc-apple-machten${UNAME_RELEASE}
405 echo mips-dec-mach_bsd4.3
408 echo mips-dec-ultrix${UNAME_RELEASE}
411 echo vax-dec-ultrix${UNAME_RELEASE}
413 2020:CLIX:*:* | 2430:CLIX:*:*)
414 echo clipper-intergraph-clix${UNAME_RELEASE}
416 mips:*:*:UMIPS | mips:*:*:RISCos)
417 eval $set_cc_for_build
418 sed 's/^ //' << EOF >$dummy.c
420 #include <stdio.h> /* for printf() prototype */
421 int main (int argc, char *argv[]) {
423 int main (argc, argv) int argc; char *argv[]; {
425 #if defined (host_mips) && defined (MIPSEB)
426 #if defined (SYSTYPE_SYSV)
427 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
429 #if defined (SYSTYPE_SVR4)
430 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
432 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
433 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
439 $CC_FOR_BUILD $dummy.c -o $dummy \
440 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
441 && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
442 rm -f $dummy.c $dummy && rmdir $tmpdir
443 echo mips-mips-riscos${UNAME_RELEASE}
445 Motorola:PowerMAX_OS:*:*)
446 echo powerpc-motorola-powermax
448 Night_Hawk:*:*:PowerMAX_OS)
449 echo powerpc-harris-powermax
451 Night_Hawk:Power_UNIX:*:*)
452 echo powerpc-harris-powerunix
455 echo m88k-harris-cxux7
458 echo m88k-motorola-sysv4
461 echo m88k-motorola-sysv3
464 # DG/UX returns AViiON for all architectures
465 UNAME_PROCESSOR=`/usr/bin/uname -p`
466 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
468 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
469 [ ${TARGET_BINARY_INTERFACE}x = x ]
471 echo m88k-dg-dgux${UNAME_RELEASE}
473 echo m88k-dg-dguxbcs${UNAME_RELEASE}
476 echo i586-dg-dgux${UNAME_RELEASE}
479 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
480 echo m88k-dolphin-sysv3
483 # Delta 88k system running SVR3
484 echo m88k-motorola-sysv3
486 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
487 echo m88k-tektronix-sysv3
489 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
490 echo m68k-tektronix-bsd
493 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
495 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
496 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
497 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
502 if [ -x /usr/bin/oslevel ] ; then
503 IBM_REV=`/usr/bin/oslevel`
505 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
507 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
510 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
511 eval $set_cc_for_build
512 sed 's/^ //' << EOF >$dummy.c
513 #include <sys/systemcfg.h>
519 puts("powerpc-ibm-aix3.2.5");
523 $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
524 rm -f $dummy.c $dummy && rmdir $tmpdir
525 echo rs6000-ibm-aix3.2.5
526 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
527 echo rs6000-ibm-aix3.2.4
529 echo rs6000-ibm-aix3.2
533 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
534 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
539 if [ -x /usr/bin/oslevel ] ; then
540 IBM_REV=`/usr/bin/oslevel`
542 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
544 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
549 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
552 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
553 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
554 exit 0 ;; # report: romp-ibm BSD 4.3
556 echo rs6000-bull-bosx
561 9000/[34]??:4.3bsd:1.*:*)
564 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
567 9000/[34678]??:HP-UX:*:*)
568 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
569 case "${UNAME_MACHINE}" in
570 9000/31? ) HP_ARCH=m68000 ;;
571 9000/[34]?? ) HP_ARCH=m68k ;;
572 9000/[678][0-9][0-9])
573 if [ -x /usr/bin/getconf ]; then
574 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
575 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
576 case "${sc_cpu_version}" in
577 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
578 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
579 532) # CPU_PA_RISC2_0
580 case "${sc_kernel_bits}" in
581 32) HP_ARCH="hppa2.0n" ;;
582 64) HP_ARCH="hppa2.0w" ;;
583 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
587 if [ "${HP_ARCH}" = "" ]; then
588 eval $set_cc_for_build
589 sed 's/^ //' << EOF >$dummy.c
597 #if defined(_SC_KERNEL_BITS)
598 long bits = sysconf(_SC_KERNEL_BITS);
600 long cpu = sysconf (_SC_CPU_VERSION);
604 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
605 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
607 #if defined(_SC_KERNEL_BITS)
610 case 64: puts ("hppa2.0w"); break;
611 case 32: puts ("hppa2.0n"); break;
612 default: puts ("hppa2.0"); break;
614 #else /* !defined(_SC_KERNEL_BITS) */
615 puts ("hppa2.0"); break;
617 default: puts ("hppa1.0"); break;
622 (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy`
623 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
624 rm -f $dummy.c $dummy && rmdir $tmpdir
627 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
630 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
631 echo ia64-hp-hpux${HPUX_REV}
634 eval $set_cc_for_build
635 sed 's/^ //' << EOF >$dummy.c
640 long cpu = sysconf (_SC_CPU_VERSION);
641 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
642 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
644 if (CPU_IS_PA_RISC (cpu))
648 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
649 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
650 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
651 default: puts ("hppa-hitachi-hiuxwe2"); break;
654 else if (CPU_IS_HP_MC68K (cpu))
655 puts ("m68k-hitachi-hiuxwe2");
656 else puts ("unknown-hitachi-hiuxwe2");
660 $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
661 rm -f $dummy.c $dummy && rmdir $tmpdir
662 echo unknown-hitachi-hiuxwe2
664 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
670 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
671 echo hppa1.0-hp-mpeix
673 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
680 if [ -x /usr/sbin/sysversion ] ; then
681 echo ${UNAME_MACHINE}-unknown-osf1mk
683 echo ${UNAME_MACHINE}-unknown-osf1
687 echo hppa1.1-hp-lites
689 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
692 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
693 if getsysinfo -f scalar_acc
694 then echo c32-convex-bsd
695 else echo c2-convex-bsd
698 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
701 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
704 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
708 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
711 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
712 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
713 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
717 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
720 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
723 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
726 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
728 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
729 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
730 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
731 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
732 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
734 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
735 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
738 echo sparc-unknown-bsdi${UNAME_RELEASE}
741 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
744 # Determine whether the default compiler uses glibc.
745 eval $set_cc_for_build
746 sed 's/^ //' << EOF >$dummy.c
747 #include <features.h>
754 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
755 rm -f $dummy.c && rmdir $tmpdir
756 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
759 # Determine whether the default compiler uses glibc.
760 eval $set_cc_for_build
761 sed 's/^ //' << EOF >$dummy.c
762 #include <features.h>
769 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
770 rm -f $dummy.c && rmdir $tmpdir
771 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
774 echo ${UNAME_MACHINE}-pc-cygwin
777 echo ${UNAME_MACHINE}-pc-mingw32
780 echo ${UNAME_MACHINE}-pc-pw32
783 echo i386-pc-interix3
785 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
786 # How do we know it's Interix rather than the generic POSIX subsystem?
787 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
788 # UNAME_MACHINE based on the output of uname instead of i386?
792 echo ${UNAME_MACHINE}-pc-uwin
795 echo powerpcle-unknown-cygwin
798 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
801 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
804 echo ${UNAME_MACHINE}-pc-minix
807 echo ${UNAME_MACHINE}-unknown-linux-gnu
810 echo ${UNAME_MACHINE}-unknown-linux-gnu
813 echo ${UNAME_MACHINE}-unknown-linux-gnu
816 eval $set_cc_for_build
817 sed 's/^ //' << EOF >$dummy.c
821 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
824 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
831 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
832 rm -f $dummy.c && rmdir $tmpdir
833 test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
836 echo powerpc-unknown-linux-gnu
839 echo powerpc64-unknown-linux-gnu
842 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
843 EV5) UNAME_MACHINE=alphaev5 ;;
844 EV56) UNAME_MACHINE=alphaev56 ;;
845 PCA56) UNAME_MACHINE=alphapca56 ;;
846 PCA57) UNAME_MACHINE=alphapca56 ;;
847 EV6) UNAME_MACHINE=alphaev6 ;;
848 EV67) UNAME_MACHINE=alphaev67 ;;
849 EV68*) UNAME_MACHINE=alphaev68 ;;
851 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
852 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
853 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
855 parisc:Linux:*:* | hppa:Linux:*:*)
857 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
858 PA7*) echo hppa1.1-unknown-linux-gnu ;;
859 PA8*) echo hppa2.0-unknown-linux-gnu ;;
860 *) echo hppa-unknown-linux-gnu ;;
863 parisc64:Linux:*:* | hppa64:Linux:*:*)
864 echo hppa64-unknown-linux-gnu
866 s390:Linux:*:* | s390x:Linux:*:*)
867 echo ${UNAME_MACHINE}-ibm-linux
870 echo ${UNAME_MACHINE}-unknown-linux-gnu
872 sparc:Linux:*:* | sparc64:Linux:*:*)
873 echo ${UNAME_MACHINE}-unknown-linux-gnu
876 echo x86_64-unknown-linux-gnu
879 # The BFD linker knows what the default object file format is, so
880 # first see if it will tell us. cd to the root directory to prevent
881 # problems with other programs or directories called `ld' in the path.
882 # Set LC_ALL=C to ensure ld outputs messages in English.
883 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
884 | sed -ne '/supported targets:/!d
886 s/.*supported targets: *//
889 case "$ld_supported_targets" in
891 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
894 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
897 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
900 # Either a pre-BFD a.out linker (linux-gnuoldld) or
901 # one that does not give us useful --help.
902 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
905 # Determine whether the default compiler is a.out or elf
906 eval $set_cc_for_build
907 sed 's/^ //' << EOF >$dummy.c
908 #include <features.h>
920 #ifdef __INTEL_COMPILER
927 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
928 rm -f $dummy.c && rmdir $tmpdir
929 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
930 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
933 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
934 # earlier versions are messed up and put the nodename in both
935 # sysname and nodename.
936 echo i386-sequent-sysv4
938 i*86:UNIX_SV:4.2MP:2.*)
939 # Unixware is an offshoot of SVR4, but it has its own version
940 # number series starting with 2...
941 # I am not positive that other SVR4 systems won't match this,
942 # I just have to hope. -- rms.
943 # Use sysv4.2uw... so that sysv4* matches it.
944 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
946 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
947 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
948 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
949 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
951 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
955 case `/bin/uname -X | grep "^Machine"` in
956 *486*) UNAME_MACHINE=i486 ;;
957 *Pentium) UNAME_MACHINE=i586 ;;
958 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
960 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
963 if test -f /usr/options/cb.name; then
964 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
965 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
966 elif /bin/uname -X 2>/dev/null >/dev/null ; then
967 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
968 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
969 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
970 && UNAME_MACHINE=i586
971 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
972 && UNAME_MACHINE=i686
973 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
974 && UNAME_MACHINE=i686
975 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
977 echo ${UNAME_MACHINE}-pc-sysv32
981 echo ${UNAME_MACHINE}-pc-msdosdjgpp
984 # Left here for compatibility:
985 # uname -m prints for DJGPP always 'pc', but it prints nothing about
986 # the processor, so we play safe by assuming i386.
987 echo i386-pc-msdosdjgpp
995 i860:*:4.*:*) # i860-SVR4
996 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
997 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
998 else # Add other i860-SVR4 vendors below as they are discovered.
999 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1004 echo m68010-convergent-sysv
1007 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1008 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)
1010 test -r /etc/.relid \
1011 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1012 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1013 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1014 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1015 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1016 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1017 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1018 && echo i486-ncr-sysv4 && exit 0 ;;
1019 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1020 echo m68k-unknown-lynxos${UNAME_RELEASE}
1022 mc68030:UNIX_System_V:4.*:*)
1023 echo m68k-atari-sysv4
1025 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1026 echo i386-unknown-lynxos${UNAME_RELEASE}
1028 TSUNAMI:LynxOS:2.*:*)
1029 echo sparc-unknown-lynxos${UNAME_RELEASE}
1031 rs6000:LynxOS:2.*:*)
1032 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1034 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1035 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1037 SM[BE]S:UNIX_SV:*:*)
1038 echo mips-dde-sysv${UNAME_RELEASE}
1040 RM*:ReliantUNIX-*:*:*)
1047 if uname -p 2>/dev/null >/dev/null ; then
1048 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1049 echo ${UNAME_MACHINE}-sni-sysv4
1054 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1055 # says <Richard.M.Bartel@ccMail.Census.GOV>
1056 echo i586-unisys-sysv4
1058 *:UNIX_System_V:4*:FTX*)
1059 # From Gerald Hewes <hewes@openmarket.com>.
1060 # How about differentiating between stratus architectures? -djm
1061 echo hppa1.1-stratus-sysv4
1064 # From seanf@swdc.stratus.com.
1065 echo i860-stratus-sysv4
1068 # From Paul.Green@stratus.com.
1069 echo hppa1.1-stratus-vos
1072 echo m68k-apple-aux${UNAME_RELEASE}
1075 echo mips-sony-newsos6
1077 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1078 if [ -d /usr/nec ]; then
1079 echo mips-nec-sysv${UNAME_RELEASE}
1081 echo mips-unknown-sysv${UNAME_RELEASE}
1084 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1085 echo powerpc-be-beos
1087 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1088 echo powerpc-apple-beos
1090 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1094 echo sx4-nec-superux${UNAME_RELEASE}
1097 echo sx5-nec-superux${UNAME_RELEASE}
1099 Power*:Rhapsody:*:*)
1100 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1103 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1106 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1108 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1109 UNAME_PROCESSOR=`uname -p`
1110 if test "$UNAME_PROCESSOR" = "x86"; then
1111 UNAME_PROCESSOR=i386
1114 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1119 NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
1120 echo nsr-tandem-nsk${UNAME_RELEASE}
1123 echo mips-compaq-nonstopux
1126 echo bs2000-siemens-sysv
1128 DS/*:UNIX_System_V:*:*)
1129 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1132 # "uname -m" is not consistent, so use $cputype instead. 386
1133 # is converted to i386 for consistency with other x86
1134 # operating systems.
1135 if test "$cputype" = "386"; then
1138 UNAME_MACHINE="$cputype"
1140 echo ${UNAME_MACHINE}-unknown-plan9
1143 # If we were able to find `uname', then EMX Unix compatibility
1144 # is probably installed.
1145 echo ${UNAME_MACHINE}-pc-os2-emx
1148 echo pdp10-unknown-tops10
1151 echo pdp10-unknown-tenex
1153 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1154 echo pdp10-dec-tops20
1156 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1157 echo pdp10-xkl-tops20
1160 echo pdp10-unknown-tops20
1163 echo pdp10-unknown-its
1165 i*86:XTS-300:*:STOP)
1166 echo ${UNAME_MACHINE}-unknown-stop
1169 echo ${UNAME_MACHINE}-unknown-atheos
1173 #echo '(No uname command or uname output not recognized.)' 1>&2
1174 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1176 eval $set_cc_for_build
1179 # include <sys/types.h>
1180 # include <sys/utsname.h>
1185 #if defined (MIPSEB)
1186 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1188 printf ("mips-sony-bsd\n"); exit (0);
1190 #include <sys/param.h>
1191 printf ("m68k-sony-newsos%s\n",
1201 #if defined (__arm) && defined (__acorn) && defined (__unix)
1202 printf ("arm-acorn-riscix"); exit (0);
1205 #if defined (hp300) && !defined (hpux)
1206 printf ("m68k-hp-bsd\n"); exit (0);
1210 #if !defined (__ARCHITECTURE__)
1211 #define __ARCHITECTURE__ "m68k"
1214 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1216 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1218 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1222 #if defined (MULTIMAX) || defined (n16)
1224 printf ("ns32k-encore-sysv\n"); exit (0);
1227 printf ("ns32k-encore-mach\n"); exit (0);
1229 printf ("ns32k-encore-bsd\n"); exit (0);
1234 #if defined (__386BSD__)
1235 printf ("i386-pc-bsd\n"); exit (0);
1238 #if defined (sequent)
1240 printf ("i386-sequent-dynix\n"); exit (0);
1242 #if defined (ns32000)
1243 printf ("ns32k-sequent-dynix\n"); exit (0);
1247 #if defined (_SEQUENT_)
1252 if (strncmp(un.version, "V2", 2) == 0) {
1253 printf ("i386-sequent-ptx2\n"); exit (0);
1255 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1256 printf ("i386-sequent-ptx1\n"); exit (0);
1258 printf ("i386-sequent-ptx\n"); exit (0);
1263 # if !defined (ultrix)
1264 # include <sys/param.h>
1267 printf ("vax-dec-bsd4.3\n"); exit (0);
1270 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1272 printf ("vax-dec-bsd\n"); exit (0);
1276 printf ("vax-dec-bsd\n"); exit (0);
1279 printf ("vax-dec-ultrix\n"); exit (0);
1283 #if defined (alliant) && defined (i860)
1284 printf ("i860-alliant-bsd\n"); exit (0);
1291 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1292 rm -f $dummy.c $dummy && rmdir $tmpdir
1294 # Apollos put the system type in the environment.
1296 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1298 # Convex versions that predate uname can use getsysinfo(1)
1300 if [ -x /usr/convex/getsysinfo ]
1302 case `getsysinfo -f cpu_type` in
1307 if getsysinfo -f scalar_acc
1308 then echo c32-convex-bsd
1309 else echo c2-convex-bsd
1325 $0: unable to guess system type
1327 This script, last modified $timestamp, has failed to recognize
1328 the operating system you are using. It is advised that you
1329 download the most up to date version of the config scripts from
1331 ftp://ftp.gnu.org/pub/gnu/config/
1333 If the version you run ($0) is already up to date, please
1334 send the following data and any information you think might be
1335 pertinent to <config-patches@gnu.org> in order to provide the needed
1336 information to handle your system.
1338 config.guess timestamp = $timestamp
1340 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1341 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1342 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1343 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1345 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1346 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1348 hostinfo = `(hostinfo) 2>/dev/null`
1349 /bin/universe = `(/bin/universe) 2>/dev/null`
1350 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1351 /bin/arch = `(/bin/arch) 2>/dev/null`
1352 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1353 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1355 UNAME_MACHINE = ${UNAME_MACHINE}
1356 UNAME_RELEASE = ${UNAME_RELEASE}
1357 UNAME_SYSTEM = ${UNAME_SYSTEM}
1358 UNAME_VERSION = ${UNAME_VERSION}
1364 # eval: (add-hook 'write-file-hooks 'time-stamp)
1365 # time-stamp-start: "timestamp='"
1366 # time-stamp-format: "%:y-%02m-%02d"
1367 # time-stamp-end: "'"