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.
6 # $DragonFly: src/contrib/ntp/Attic/config.guess,v 1.2 2003/11/19 00:51:34 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 # Written by Per Bothner <bothner@cygnus.com>.
30 # Please send patches to <config-patches@gnu.org>.
32 # This script attempts to guess a canonical system name similar to
33 # config.sub. If it succeeds, it prints the system name on stdout, and
34 # exits with 0. Otherwise, it exits with 1.
36 # The plan is that this can be called by configure scripts if you
37 # don't specify an explicit build system type.
39 me=`echo "$0" | sed -e 's,.*/,,'`
44 Output the configuration name of the system \`$me' is run on.
47 -h, --help print this help, then exit
48 -t, --time-stamp print date of last modification, then exit
49 -v, --version print version number, then exit
51 Report bugs and patches to <config-patches@gnu.org>."
54 GNU config.guess ($timestamp)
56 Originally written by Per Bothner.
57 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
58 Free Software Foundation, Inc.
60 This is free software; see the source for copying conditions. There is NO
61 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
64 Try \`$me --help' for more information."
67 while test $# -gt 0 ; do
69 --time-stamp | --time* | -t )
70 echo "$timestamp" ; exit 0 ;;
72 echo "$version" ; exit 0 ;;
74 echo "$usage"; exit 0 ;;
75 -- ) # Stop option processing
77 - ) # Use stdin as input.
80 echo "$me: invalid option $1$help" >&2
88 echo "$me: too many arguments$help" >&2
94 trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
96 # CC_FOR_BUILD -- compiler used by this script.
97 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
98 # use `HOST_CC' if defined, but it is deprecated.
100 set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
101 ,,) echo "int dummy(){}" > $dummy.c ;
102 for c in cc gcc c89 ; do
103 ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
104 if test $? = 0 ; then
105 CC_FOR_BUILD="$c"; break ;
108 rm -f $dummy.c $dummy.o $dummy.rel ;
109 if test x"$CC_FOR_BUILD" = x ; then
110 CC_FOR_BUILD=no_compiler_found ;
113 ,,*) CC_FOR_BUILD=$CC ;;
114 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
117 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
118 # (ghazi@noc.rutgers.edu 1994-08-24)
119 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
120 PATH=$PATH:/.attbin ; export PATH
123 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
124 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
125 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
126 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
128 # Note: order is significant - the case branches are not exclusive.
130 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
132 # Netbsd (nbsd) targets should (where applicable) match one or
133 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
134 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
135 # switched to ELF, *-*-netbsd* would select the old
136 # object file format. This provides both forward
137 # compatibility and a consistent mechanism for selecting the
138 # object file format.
139 # Determine the machine/vendor (is the vendor relevant).
140 case "${UNAME_MACHINE}" in
141 amiga) machine=m68k-unknown ;;
142 arm32) machine=arm-unknown ;;
143 atari*) machine=m68k-atari ;;
144 sun3*) machine=m68k-sun ;;
145 mac68k) machine=m68k-apple ;;
146 macppc) machine=powerpc-apple ;;
147 hp3[0-9][05]) machine=m68k-hp ;;
148 ibmrt|romp-ibm) machine=romp-ibm ;;
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 if test $UNAME_RELEASE = "V4.0"; then
179 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
181 # A Vn.n version is a released version.
182 # A Tn.n version is a released field test version.
183 # A Xn.n version is an unreleased experimental baselevel.
184 # 1.2 uses "1.2" for uname -r.
188 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
195 .frame \$30,16,\$26,0
198 .long 0x47e03d80 # implver \$0
200 .long 0x47e20c21 # amask \$2,\$1
210 eval $set_cc_for_build
211 $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
212 if test "$?" = 0 ; then
215 UNAME_MACHINE="alpha"
218 UNAME_MACHINE="alphaev5"
221 UNAME_MACHINE="alphaev56"
224 UNAME_MACHINE="alphapca56"
227 UNAME_MACHINE="alphaev6"
230 UNAME_MACHINE="alphaev67"
234 rm -f $dummy.s $dummy
235 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
237 Alpha\ *:Windows_NT*:*)
238 # How do we know it's Interix rather than the generic POSIX subsystem?
239 # Should we change UNAME_MACHINE based on the output of uname instead
240 # of the specific Alpha model?
241 echo alpha-pc-interix
243 21064:Windows_NT:50:3)
244 echo alpha-dec-winnt3.5
246 Amiga*:UNIX_System_V:4.0:*)
247 echo m68k-unknown-sysv4
250 echo m68k-unknown-openbsd${UNAME_RELEASE}
252 *:[Aa]miga[Oo][Ss]:*:*)
253 echo ${UNAME_MACHINE}-unknown-amigaos
256 echo mips64el-unknown-openbsd${UNAME_RELEASE}
259 echo mipsel-unknown-openbsd${UNAME_RELEASE}
262 echo mips-unknown-openbsd${UNAME_RELEASE}
265 echo mipsel-unknown-openbsd${UNAME_RELEASE}
268 echo mips-unknown-openbsd${UNAME_RELEASE}
271 echo mipsel-unknown-openbsd${UNAME_RELEASE}
274 echo i370-ibm-openedition
276 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
277 echo arm-acorn-riscix${UNAME_RELEASE}
279 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
280 echo hppa1.1-hitachi-hiuxmpp
282 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
283 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
284 if test "`(/bin/universe) 2>/dev/null`" = att ; then
285 echo pyramid-pyramid-sysv3
287 echo pyramid-pyramid-bsd
291 echo pyramid-pyramid-svr4
294 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
296 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
297 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
300 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
303 # According to config.sub, this is the proper way to canonicalize
304 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
305 # it's likely to be more like Solaris than SunOS4.
306 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
309 case "`/usr/bin/arch -k`" in
311 UNAME_RELEASE=`uname -v`
314 # Japanese Language versions have a version number like `4.1.3-JL'.
315 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
318 echo m68k-sun-sunos${UNAME_RELEASE}
321 UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
322 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
323 case "`/bin/arch`" in
325 echo m68k-sun-sunos${UNAME_RELEASE}
328 echo sparc-sun-sunos${UNAME_RELEASE}
333 echo sparc-auspex-sunos${UNAME_RELEASE}
336 echo m68k-unknown-openbsd${UNAME_RELEASE}
338 # The situation for MiNT is a little confusing. The machine name
339 # can be virtually everything (everything which is not
340 # "atarist" or "atariste" at least should have a processor
341 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
342 # to the lowercase version "mint" (or "freemint"). Finally
343 # the system name "TOS" denotes a system which is actually not
344 # MiNT. But MiNT is downward compatible to TOS, so this should
346 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
347 echo m68k-atari-mint${UNAME_RELEASE}
349 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
350 echo m68k-atari-mint${UNAME_RELEASE}
352 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
353 echo m68k-atari-mint${UNAME_RELEASE}
355 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
356 echo m68k-milan-mint${UNAME_RELEASE}
358 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
359 echo m68k-hades-mint${UNAME_RELEASE}
361 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
362 echo m68k-unknown-mint${UNAME_RELEASE}
365 echo m68k-unknown-openbsd${UNAME_RELEASE}
368 echo m68k-unknown-openbsd${UNAME_RELEASE}
371 echo m68k-unknown-openbsd${UNAME_RELEASE}
374 echo m88k-unknown-openbsd${UNAME_RELEASE}
377 echo powerpc-apple-machten${UNAME_RELEASE}
380 echo mips-dec-mach_bsd4.3
383 echo mips-dec-ultrix${UNAME_RELEASE}
386 echo vax-dec-ultrix${UNAME_RELEASE}
388 2020:CLIX:*:* | 2430:CLIX:*:*)
389 echo clipper-intergraph-clix${UNAME_RELEASE}
391 mips:*:*:UMIPS | mips:*:*:RISCos)
392 sed 's/^ //' << EOF >$dummy.c
394 #include <stdio.h> /* for printf() prototype */
395 int main (int argc, char *argv[]) {
397 int main (argc, argv) int argc; char *argv[]; {
399 #if defined (host_mips) && defined (MIPSEB)
400 #if defined (SYSTYPE_SYSV)
401 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
403 #if defined (SYSTYPE_SVR4)
404 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
406 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
407 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
413 eval $set_cc_for_build
414 $CC_FOR_BUILD $dummy.c -o $dummy \
415 && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
416 && rm -f $dummy.c $dummy && exit 0
417 rm -f $dummy.c $dummy
418 echo mips-mips-riscos${UNAME_RELEASE}
420 Motorola:PowerMAX_OS:*:*)
421 echo powerpc-motorola-powermax
423 Night_Hawk:Power_UNIX:*:*)
424 echo powerpc-harris-powerunix
427 echo m88k-harris-cxux7
430 echo m88k-motorola-sysv4
433 echo m88k-motorola-sysv3
436 # DG/UX returns AViiON for all architectures
437 UNAME_PROCESSOR=`/usr/bin/uname -p`
438 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
440 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
441 [ ${TARGET_BINARY_INTERFACE}x = x ]
443 echo m88k-dg-dgux${UNAME_RELEASE}
445 echo m88k-dg-dguxbcs${UNAME_RELEASE}
448 echo i586-dg-dgux${UNAME_RELEASE}
451 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
452 echo m88k-dolphin-sysv3
455 # Delta 88k system running SVR3
456 echo m88k-motorola-sysv3
458 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
459 echo m88k-tektronix-sysv3
461 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
462 echo m68k-tektronix-bsd
465 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
467 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
468 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
469 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
474 if [ -x /usr/bin/oslevel ] ; then
475 IBM_REV=`/usr/bin/oslevel`
477 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
479 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
482 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
483 sed 's/^ //' << EOF >$dummy.c
484 #include <sys/systemcfg.h>
490 puts("powerpc-ibm-aix3.2.5");
494 eval $set_cc_for_build
495 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
496 rm -f $dummy.c $dummy
497 echo rs6000-ibm-aix3.2.5
498 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
499 echo rs6000-ibm-aix3.2.4
501 echo rs6000-ibm-aix3.2
505 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
506 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
511 if [ -x /usr/bin/oslevel ] ; then
512 IBM_REV=`/usr/bin/oslevel`
514 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
516 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
521 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
524 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
525 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
526 exit 0 ;; # report: romp-ibm BSD 4.3
528 echo rs6000-bull-bosx
533 9000/[34]??:4.3bsd:1.*:*)
536 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
539 9000/[34678]??:HP-UX:*:*)
540 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
541 case "${UNAME_MACHINE}" in
542 9000/31? ) HP_ARCH=m68000 ;;
543 9000/[34]?? ) HP_ARCH=m68k ;;
544 9000/[678][0-9][0-9])
545 case "${HPUX_REV}" in
547 if [ -x /usr/bin/getconf ]; then
548 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
549 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
550 case "${sc_cpu_version}" in
551 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
552 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
553 532) # CPU_PA_RISC2_0
554 case "${sc_kernel_bits}" in
555 32) HP_ARCH="hppa2.0n" ;;
556 64) HP_ARCH="hppa2.0w" ;;
561 if [ "${HP_ARCH}" = "" ]; then
562 sed 's/^ //' << EOF >$dummy.c
570 #if defined(_SC_KERNEL_BITS)
571 long bits = sysconf(_SC_KERNEL_BITS);
573 long cpu = sysconf (_SC_CPU_VERSION);
577 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
578 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
580 #if defined(_SC_KERNEL_BITS)
583 case 64: puts ("hppa2.0w"); break;
584 case 32: puts ("hppa2.0n"); break;
585 default: puts ("hppa2.0"); break;
587 #else /* !defined(_SC_KERNEL_BITS) */
588 puts ("hppa2.0"); break;
590 default: puts ("hppa1.0"); break;
595 eval $set_cc_for_build
596 (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
597 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
598 rm -f $dummy.c $dummy
601 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
604 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
605 echo ia64-hp-hpux${HPUX_REV}
608 sed 's/^ //' << EOF >$dummy.c
613 long cpu = sysconf (_SC_CPU_VERSION);
614 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
615 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
617 if (CPU_IS_PA_RISC (cpu))
621 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
622 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
623 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
624 default: puts ("hppa-hitachi-hiuxwe2"); break;
627 else if (CPU_IS_HP_MC68K (cpu))
628 puts ("m68k-hitachi-hiuxwe2");
629 else puts ("unknown-hitachi-hiuxwe2");
633 eval $set_cc_for_build
634 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
635 rm -f $dummy.c $dummy
636 echo unknown-hitachi-hiuxwe2
638 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
645 echo hppa1.0-hp-mpeix
647 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
654 if [ -x /usr/sbin/sysversion ] ; then
655 echo ${UNAME_MACHINE}-unknown-osf1mk
657 echo ${UNAME_MACHINE}-unknown-osf1
661 echo hppa1.1-hp-lites
664 echo hppa-unknown-openbsd
666 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
669 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
670 if getsysinfo -f scalar_acc
671 then echo c32-convex-bsd
672 else echo c2-convex-bsd
675 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
678 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
681 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
688 echo ymp-cray-unicos${UNAME_RELEASE}
691 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
692 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
693 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
696 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
699 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
702 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
705 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
708 echo cray2-cray-unicos
710 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
711 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
712 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
713 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
714 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
717 echo m68k-unknown-openbsd${UNAME_RELEASE}
719 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
720 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
723 echo sparc-unknown-bsdi${UNAME_RELEASE}
726 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
729 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
732 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
735 echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
738 echo ${UNAME_MACHINE}-pc-cygwin
741 echo ${UNAME_MACHINE}-pc-mingw32
744 echo ${UNAME_MACHINE}-pc-pw32
746 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
747 # How do we know it's Interix rather than the generic POSIX subsystem?
748 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
749 # UNAME_MACHINE based on the output of uname instead of i386?
753 echo ${UNAME_MACHINE}-pc-uwin
756 echo powerpcle-unknown-cygwin
759 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
762 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
765 echo ${UNAME_MACHINE}-pc-minix
768 echo ${UNAME_MACHINE}-unknown-linux-gnu
771 echo ${UNAME_MACHINE}-unknown-linux
774 echo ${UNAME_MACHINE}-unknown-linux-gnu
777 case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
778 big) echo mips-unknown-linux-gnu && exit 0 ;;
779 little) echo mipsel-unknown-linux-gnu && exit 0 ;;
783 echo powerpc-unknown-linux-gnu
786 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
787 EV5) UNAME_MACHINE=alphaev5 ;;
788 EV56) UNAME_MACHINE=alphaev56 ;;
789 PCA56) UNAME_MACHINE=alphapca56 ;;
790 PCA57) UNAME_MACHINE=alphapca56 ;;
791 EV6) UNAME_MACHINE=alphaev6 ;;
792 EV67) UNAME_MACHINE=alphaev67 ;;
793 EV68*) UNAME_MACHINE=alphaev67 ;;
795 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
796 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
797 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
799 parisc:Linux:*:* | hppa:Linux:*:*)
801 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
802 PA7*) echo hppa1.1-unknown-linux-gnu ;;
803 PA8*) echo hppa2.0-unknown-linux-gnu ;;
804 *) echo hppa-unknown-linux-gnu ;;
807 parisc64:Linux:*:* | hppa64:Linux:*:*)
808 echo hppa64-unknown-linux-gnu
810 s390:Linux:*:* | s390x:Linux:*:*)
811 echo ${UNAME_MACHINE}-ibm-linux
814 echo ${UNAME_MACHINE}-unknown-linux-gnu
816 sparc:Linux:*:* | sparc64:Linux:*:*)
817 echo ${UNAME_MACHINE}-unknown-linux-gnu
820 echo x86_64-unknown-linux-gnu
823 # The BFD linker knows what the default object file format is, so
824 # first see if it will tell us. cd to the root directory to prevent
825 # problems with other programs or directories called `ld' in the path.
826 ld_supported_targets=`cd /; ld --help 2>&1 \
827 | sed -ne '/supported targets:/!d
829 s/.*supported targets: *//
832 case "$ld_supported_targets" in
834 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
837 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
840 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
843 # Either a pre-BFD a.out linker (linux-gnuoldld) or
844 # one that does not give us useful --help.
845 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
848 # Determine whether the default compiler is a.out or elf
850 #include <features.h>
852 #include <stdio.h> /* for printf() prototype */
853 int main (int argc, char *argv[]) {
855 int main (argc, argv) int argc; char *argv[]; {
860 printf ("%s-pc-linux-gnu\n", argv[1]);
862 printf ("%s-pc-linux-gnulibc1\n", argv[1]);
865 printf ("%s-pc-linux-gnulibc1\n", argv[1]);
868 printf ("%s-pc-linux-gnuaout\n", argv[1]);
873 eval $set_cc_for_build
874 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
875 rm -f $dummy.c $dummy
876 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
879 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
880 # earlier versions are messed up and put the nodename in both
881 # sysname and nodename.
882 echo i386-sequent-sysv4
884 i*86:UNIX_SV:4.2MP:2.*)
885 # Unixware is an offshoot of SVR4, but it has its own version
886 # number series starting with 2...
887 # I am not positive that other SVR4 systems won't match this,
888 # I just have to hope. -- rms.
889 # Use sysv4.2uw... so that sysv4* matches it.
890 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
892 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
893 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
894 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
895 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
897 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
901 case `/bin/uname -X | grep "^Machine"` in
902 *486*) UNAME_MACHINE=i486 ;;
903 *Pentium) UNAME_MACHINE=i586 ;;
904 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
906 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
909 if test -f /usr/options/cb.name; then
910 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
911 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
912 elif /bin/uname -X 2>/dev/null >/dev/null ; then
913 UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
914 (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
915 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
916 && UNAME_MACHINE=i586
917 (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
918 && UNAME_MACHINE=i686
919 (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
920 && UNAME_MACHINE=i686
921 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
923 echo ${UNAME_MACHINE}-pc-sysv32
927 echo ${UNAME_MACHINE}-pc-msdosdjgpp
930 # Left here for compatibility:
931 # uname -m prints for DJGPP always 'pc', but it prints nothing about
932 # the processor, so we play safe by assuming i386.
933 echo i386-pc-msdosdjgpp
941 i860:*:4.*:*) # i860-SVR4
942 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
943 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
944 else # Add other i860-SVR4 vendors below as they are discovered.
945 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
950 echo m68010-convergent-sysv
953 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
954 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
956 test -r /etc/.relid \
957 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
958 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
959 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
960 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
961 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
962 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
963 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
964 && echo i486-ncr-sysv4 && exit 0 ;;
965 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
966 echo m68k-unknown-lynxos${UNAME_RELEASE}
968 mc68030:UNIX_System_V:4.*:*)
969 echo m68k-atari-sysv4
971 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
972 echo i386-unknown-lynxos${UNAME_RELEASE}
974 TSUNAMI:LynxOS:2.*:*)
975 echo sparc-unknown-lynxos${UNAME_RELEASE}
978 echo rs6000-unknown-lynxos${UNAME_RELEASE}
980 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
981 echo powerpc-unknown-lynxos${UNAME_RELEASE}
984 echo mips-dde-sysv${UNAME_RELEASE}
986 RM*:ReliantUNIX-*:*:*)
993 if uname -p 2>/dev/null >/dev/null ; then
994 UNAME_MACHINE=`(uname -p) 2>/dev/null`
995 echo ${UNAME_MACHINE}-sni-sysv4
1000 PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1001 # says <Richard.M.Bartel@ccMail.Census.GOV>
1002 echo i586-unisys-sysv4
1004 *:UNIX_System_V:4*:FTX*)
1005 # From Gerald Hewes <hewes@openmarket.com>.
1006 # How about differentiating between stratus architectures? -djm
1007 echo hppa1.1-stratus-sysv4
1010 # From seanf@swdc.stratus.com.
1011 echo i860-stratus-sysv4
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-[KW]: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
1107 #echo '(No uname command or uname output not recognized.)' 1>&2
1108 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1112 # include <sys/types.h>
1113 # include <sys/utsname.h>
1118 #if defined (MIPSEB)
1119 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1121 printf ("mips-sony-bsd\n"); exit (0);
1123 #include <sys/param.h>
1124 printf ("m68k-sony-newsos%s\n",
1134 #if defined (__arm) && defined (__acorn) && defined (__unix)
1135 printf ("arm-acorn-riscix"); exit (0);
1138 #if defined (hp300) && !defined (hpux)
1139 printf ("m68k-hp-bsd\n"); exit (0);
1143 #if !defined (__ARCHITECTURE__)
1144 #define __ARCHITECTURE__ "m68k"
1147 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1149 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1151 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1155 #if defined (MULTIMAX) || defined (n16)
1157 printf ("ns32k-encore-sysv\n"); exit (0);
1160 printf ("ns32k-encore-mach\n"); exit (0);
1162 printf ("ns32k-encore-bsd\n"); exit (0);
1167 #if defined (__386BSD__)
1168 printf ("i386-pc-bsd\n"); exit (0);
1171 #if defined (sequent)
1173 printf ("i386-sequent-dynix\n"); exit (0);
1175 #if defined (ns32000)
1176 printf ("ns32k-sequent-dynix\n"); exit (0);
1180 #if defined (_SEQUENT_)
1185 if (strncmp(un.version, "V2", 2) == 0) {
1186 printf ("i386-sequent-ptx2\n"); exit (0);
1188 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1189 printf ("i386-sequent-ptx1\n"); exit (0);
1191 printf ("i386-sequent-ptx\n"); exit (0);
1196 # if !defined (ultrix)
1197 # include <sys/param.h>
1200 printf ("vax-dec-bsd4.3\n"); exit (0);
1203 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1205 printf ("vax-dec-bsd\n"); exit (0);
1209 printf ("vax-dec-bsd\n"); exit (0);
1212 printf ("vax-dec-ultrix\n"); exit (0);
1216 #if defined (alliant) && defined (i860)
1217 printf ("i860-alliant-bsd\n"); exit (0);
1224 eval $set_cc_for_build
1225 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
1226 rm -f $dummy.c $dummy
1228 # Apollos put the system type in the environment.
1230 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1232 # Convex versions that predate uname can use getsysinfo(1)
1234 if [ -x /usr/convex/getsysinfo ]
1236 case `getsysinfo -f cpu_type` in
1241 if getsysinfo -f scalar_acc
1242 then echo c32-convex-bsd
1243 else echo c2-convex-bsd
1259 $0: unable to guess system type
1261 This script, last modified $timestamp, has failed to recognize
1262 the operating system you are using. It is advised that you
1263 download the most up to date version of the config scripts from
1265 ftp://ftp.gnu.org/pub/gnu/config/
1267 If the version you run ($0) is already up to date, please
1268 send the following data and any information you think might be
1269 pertinent to <config-patches@gnu.org> in order to provide the needed
1270 information to handle your system.
1272 config.guess timestamp = $timestamp
1274 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1275 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1276 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1277 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1279 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1280 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1282 hostinfo = `(hostinfo) 2>/dev/null`
1283 /bin/universe = `(/bin/universe) 2>/dev/null`
1284 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1285 /bin/arch = `(/bin/arch) 2>/dev/null`
1286 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1287 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1289 UNAME_MACHINE = ${UNAME_MACHINE}
1290 UNAME_RELEASE = ${UNAME_RELEASE}
1291 UNAME_SYSTEM = ${UNAME_SYSTEM}
1292 UNAME_VERSION = ${UNAME_VERSION}
1298 # eval: (add-hook 'write-file-hooks 'time-stamp)
1299 # time-stamp-start: "timestamp='"
1300 # time-stamp-format: "%:y-%02m-%02d"
1301 # time-stamp-end: "'"