2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
4 # Free Software Foundation, Inc.
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Written by Per Bothner <bothner@cygnus.com>.
28 # Please send patches to <config-patches@gnu.org>.
30 # This script attempts to guess a canonical system name similar to
31 # config.sub. If it succeeds, it prints the system name on stdout, and
32 # exits with 0. Otherwise, it exits with 1.
34 # The plan is that this can be called by configure scripts if you
35 # don't specify an explicit build system type.
37 # Only a few systems have been added to this list; please add others
38 # (but try to keep the structure clean).
41 me=`echo "$0" | sed -e 's,.*/,,'`
46 Output the configuration name of the system \`$me' is run on.
49 -h, --help print this help, then exit
50 -t, --time-stamp print date of last modification, then exit
51 -v, --version print version number, then exit
53 Report bugs and patches to <config-patches@gnu.org>."
56 GNU config.guess ($timestamp)
58 Originally written by Per Bothner.
59 Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000
60 Free Software Foundation, Inc.
62 This is free software; see the source for copying conditions. There is NO
63 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
66 Try \`$me --help' for more information."
69 while test $# -gt 0 ; do
71 --time-stamp | --time* | -t )
72 echo "$timestamp" ; exit 0 ;;
74 echo "$version" ; exit 0 ;;
76 echo "$usage"; exit 0 ;;
77 -- ) # Stop option processing
79 - ) # Use stdin as input.
82 echo "$me: invalid option $1$help" >&2
90 echo "$me: too many arguments$help" >&2
96 trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
98 # CC_FOR_BUILD -- compiler used by this script.
99 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
100 # use `HOST_CC' if defined, but it is deprecated.
102 case $CC_FOR_BUILD,$HOST_CC,$CC in
103 ,,) echo "int dummy(){}" > $dummy.c
104 for c in cc gcc c89 ; do
105 ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1
106 if test $? = 0 ; then
107 CC_FOR_BUILD="$c"; break
110 rm -f $dummy.c $dummy.o $dummy.rel
111 if test x"$CC_FOR_BUILD" = x ; then
112 CC_FOR_BUILD=no_compiler_found
115 ,,*) CC_FOR_BUILD=$CC ;;
116 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
119 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
120 # (ghazi@noc.rutgers.edu 8/24/94.)
121 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
122 PATH=$PATH:/.attbin ; export PATH
125 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
126 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
127 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
128 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
130 # Note: order is significant - the case branches are not exclusive.
132 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
134 # Netbsd (nbsd) targets should (where applicable) match one or
135 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
136 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
137 # switched to ELF, *-*-netbsd* would select the old
138 # object file format. This provides both forward
139 # compatibility and a consistent mechanism for selecting the
140 # object file format.
141 # Determine the machine/vendor (is the vendor relevant).
142 case "${UNAME_MACHINE}" in
143 amiga) machine=m68k-unknown ;;
144 arm32) machine=arm-unknown ;;
145 atari*) machine=m68k-atari ;;
146 sun3*) machine=m68k-sun ;;
147 mac68k) machine=m68k-apple ;;
148 macppc) machine=powerpc-apple ;;
149 hp3[0-9][05]) machine=m68k-hp ;;
150 ibmrt|romp-ibm) machine=romp-ibm ;;
151 *) machine=${UNAME_MACHINE}-unknown ;;
153 # The Operating System including object format, if it has switched
154 # to ELF recently, or will in the future.
155 case "${UNAME_MACHINE}" in
156 i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
157 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
158 | grep __ELF__ >/dev/null
160 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
161 # Return netbsd for either. FIX?
172 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
173 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
174 # contains redundant information, the shorter form:
175 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
176 echo "${machine}-${os}${release}"
179 if test $UNAME_RELEASE = "V4.0"; then
180 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
182 # A Vn.n version is a released version.
183 # A Tn.n version is a released field test version.
184 # A Xn.n version is an unreleased experimental baselevel.
185 # 1.2 uses "1.2" for uname -r.
189 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
196 .frame \$30,16,\$26,0
199 .long 0x47e03d80 # implver \$0
201 .long 0x47e20c21 # amask \$2,\$1
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 $CC_FOR_BUILD $dummy.c -o $dummy \
414 && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
415 && rm $dummy.c $dummy && exit 0
416 rm -f $dummy.c $dummy
417 echo mips-mips-riscos${UNAME_RELEASE}
419 Night_Hawk:Power_UNIX:*:*)
420 echo powerpc-harris-powerunix
423 echo m88k-harris-cxux7
426 echo m88k-motorola-sysv4
429 echo m88k-motorola-sysv3
432 # DG/UX returns AViiON for all architectures
433 UNAME_PROCESSOR=`/usr/bin/uname -p`
434 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
436 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
437 [ ${TARGET_BINARY_INTERFACE}x = x ]
439 echo m88k-dg-dgux${UNAME_RELEASE}
441 echo m88k-dg-dguxbcs${UNAME_RELEASE}
444 echo i586-dg-dgux${UNAME_RELEASE}
447 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
448 echo m88k-dolphin-sysv3
451 # Delta 88k system running SVR3
452 echo m88k-motorola-sysv3
454 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
455 echo m88k-tektronix-sysv3
457 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
458 echo m68k-tektronix-bsd
461 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
463 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
464 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
465 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
470 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
471 sed 's/^ //' << EOF >$dummy.c
472 #include <sys/systemcfg.h>
478 puts("powerpc-ibm-aix3.2.5");
482 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
483 rm -f $dummy.c $dummy
484 echo rs6000-ibm-aix3.2.5
485 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
486 echo rs6000-ibm-aix3.2.4
488 echo rs6000-ibm-aix3.2
492 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
493 if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
498 if [ -x /usr/bin/oslevel ] ; then
499 IBM_REV=`/usr/bin/oslevel`
501 IBM_REV=4.${UNAME_RELEASE}
503 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
506 case "`lsattr -El proc0 -a type -F value`" in
507 PowerPC*) IBM_ARCH=powerpc
509 Itanium) IBM_ARCH=ia64
511 POWER*) IBM_ARCH=power
516 echo ${IBM_ARCH}-${IBM_MANUF}-aix${UNAME_VERSION}.${UNAME_RELEASE}
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 (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
596 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
597 rm -f $dummy.c $dummy
600 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
603 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
604 echo ia64-hp-hpux${HPUX_REV}
607 sed 's/^ //' << EOF >$dummy.c
612 long cpu = sysconf (_SC_CPU_VERSION);
613 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
614 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
616 if (CPU_IS_PA_RISC (cpu))
620 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
621 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
622 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
623 default: puts ("hppa-hitachi-hiuxwe2"); break;
626 else if (CPU_IS_HP_MC68K (cpu))
627 puts ("m68k-hitachi-hiuxwe2");
628 else puts ("unknown-hitachi-hiuxwe2");
632 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
633 rm -f $dummy.c $dummy
634 echo unknown-hitachi-hiuxwe2
636 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
643 echo hppa1.0-hp-mpeix
645 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
652 if [ -x /usr/sbin/sysversion ] ; then
653 echo ${UNAME_MACHINE}-unknown-osf1mk
655 echo ${UNAME_MACHINE}-unknown-osf1
659 echo hppa1.1-hp-lites
662 echo hppa-unknown-openbsd
664 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
667 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
668 if getsysinfo -f scalar_acc
669 then echo c32-convex-bsd
670 else echo c2-convex-bsd
673 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
676 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
679 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
686 echo ymp-cray-unicos${UNAME_RELEASE}
689 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
690 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
691 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
694 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
697 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
700 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
703 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
706 echo cray2-cray-unicos
708 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
709 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
710 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
711 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
712 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
715 echo m68k-unknown-openbsd${UNAME_RELEASE}
717 i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
718 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
721 echo sparc-unknown-bsdi${UNAME_RELEASE}
724 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
727 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
730 echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
733 echo ${UNAME_MACHINE}-pc-cygwin
736 echo ${UNAME_MACHINE}-pc-mingw32
739 echo ${UNAME_MACHINE}-pc-pw32
741 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
742 # How do we know it's Interix rather than the generic POSIX subsystem?
743 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
744 # UNAME_MACHINE based on the output of uname instead of i386?
748 echo ${UNAME_MACHINE}-pc-uwin
751 echo powerpcle-unknown-cygwin
754 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
757 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
760 echo ${UNAME_MACHINE}-pc-minix
764 # The BFD linker knows what the default object file format is, so
765 # first see if it will tell us. cd to the root directory to prevent
766 # problems with other programs or directories called `ld' in the path.
767 ld_supported_emulations=`cd /; ld --help 2>&1 \
768 | sed -ne '/supported emulations:/!d
770 s/.*supported emulations: *//
773 case "$ld_supported_emulations" in
775 echo "${UNAME_MACHINE}-unknown-linux"
779 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
783 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
786 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
790 echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
794 echo "${UNAME_MACHINE}-unknown-linux-gnu"
798 echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
802 echo "${UNAME_MACHINE}-unknown-linux-gnuoldld"
806 echo "${UNAME_MACHINE}-unknown-linux-gnu"
810 echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
813 elf32ppc | elf32ppclinux)
814 # Determine Lib Version
816 #include <features.h>
817 #if defined(__GLIBC__)
818 extern char __libc_version[];
819 extern char __libc_release[];
825 #if defined(__GLIBC__)
826 printf("%s %s\n", __libc_version, __libc_release);
834 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
835 if test "$?" = 0 ; then
836 ./$dummy | grep 1\.99 > /dev/null
837 if test "$?" = 0 ; then
841 rm -f $dummy.c $dummy
842 echo powerpc-unknown-linux-gnu${LIBC}
846 echo "${UNAME_MACHINE}-unknown-linux-gnu"
851 if test "${UNAME_MACHINE}" = "alpha" ; then
855 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
862 .frame \$30,16,\$26,0
865 .long 0x47e03d80 # implver \$0
867 .long 0x47e20c21 # amask \$2,\$1
878 $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
879 if test "$?" = 0 ; then
882 UNAME_MACHINE="alpha"
885 UNAME_MACHINE="alphaev5"
888 UNAME_MACHINE="alphaev56"
891 UNAME_MACHINE="alphapca56"
894 UNAME_MACHINE="alphaev6"
897 UNAME_MACHINE="alphaev67"
901 objdump --private-headers $dummy | \
902 grep ld.so.1 > /dev/null
903 if test "$?" = 0 ; then
907 rm -f $dummy.s $dummy
908 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
909 elif test "${UNAME_MACHINE}" = "mips" ; then
912 #include <stdio.h> /* for printf() prototype */
913 int main (int argc, char *argv[]) {
915 int main (argc, argv) int argc; char *argv[]; {
918 printf ("%s-unknown-linux-gnu\n", argv[1]);
921 printf ("%sel-unknown-linux-gnu\n", argv[1]);
926 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
927 rm -f $dummy.c $dummy
928 elif test "${UNAME_MACHINE}" = "s390"; then
929 echo s390-ibm-linux && exit 0
930 elif test "${UNAME_MACHINE}" = "x86_64"; then
931 echo x86_64-unknown-linux-gnu && exit 0
932 elif test "${UNAME_MACHINE}" = "parisc64" -o "${UNAME_MACHINE}" = "hppa64"; then
933 echo hppa64-unknown-linux-gnu && exit 0
934 elif test "${UNAME_MACHINE}" = "parisc" -o "${UNAME_MACHINE}" = "hppa"; then
936 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
938 echo hppa1.1-unknown-linux-gnu
941 echo hppa2.0-unknown-linux-gnu
944 echo hppa-unknown-linux-gnu
949 # Either a pre-BFD a.out linker (linux-gnuoldld)
950 # or one that does not give us useful --help.
951 # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
952 # If ld does not provide *any* "supported emulations:"
953 # that means it is gnuoldld.
954 test -z "$ld_supported_emulations" \
955 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
957 case "${UNAME_MACHINE}" in
965 # Determine whether the default compiler is a.out or elf
967 #include <features.h>
969 #include <stdio.h> /* for printf() prototype */
970 int main (int argc, char *argv[]) {
972 int main (argc, argv) int argc; char *argv[]; {
977 printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
979 printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
982 printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
985 printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
990 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
991 rm -f $dummy.c $dummy
992 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
994 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
995 # are messed up and put the nodename in both sysname and nodename.
997 echo i386-sequent-sysv4
999 i?86:UNIX_SV:4.2MP:2.*)
1000 # Unixware is an offshoot of SVR4, but it has its own version
1001 # number series starting with 2...
1002 # I am not positive that other SVR4 systems won't match this,
1003 # I just have to hope. -- rms.
1004 # Use sysv4.2uw... so that sysv4* matches it.
1005 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1007 i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
1008 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1009 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1010 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1012 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1016 # Fixed at (any) Pentium or better
1018 if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
1019 echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
1021 echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
1025 if test -f /usr/options/cb.name; then
1026 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1027 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1028 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1029 UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
1030 (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
1031 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
1032 && UNAME_MACHINE=i586
1033 (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
1034 && UNAME_MACHINE=i686
1035 (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
1036 && UNAME_MACHINE=i686
1037 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1039 echo ${UNAME_MACHINE}-pc-sysv32
1043 echo ${UNAME_MACHINE}-pc-msdosdjgpp
1046 # Left here for compatibility:
1047 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1048 # the processor, so we play safe by assuming i386.
1049 echo i386-pc-msdosdjgpp
1055 echo i860-intel-osf1
1057 i860:*:4.*:*) # i860-SVR4
1058 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1059 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1060 else # Add other i860-SVR4 vendors below as they are discovered.
1061 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1066 echo m68010-convergent-sysv
1069 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1070 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
1072 test -r /etc/.relid \
1073 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1074 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1075 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1076 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1077 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1078 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1079 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1080 && echo i486-ncr-sysv4 && exit 0 ;;
1082 echo m68k-unknown-lynxos${UNAME_RELEASE}
1084 mc68030:UNIX_System_V:4.*:*)
1085 echo m68k-atari-sysv4
1087 i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
1088 echo i386-unknown-lynxos${UNAME_RELEASE}
1090 TSUNAMI:LynxOS:2.*:*)
1091 echo sparc-unknown-lynxos${UNAME_RELEASE}
1093 rs6000:LynxOS:2.*:*)
1094 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1096 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:*)
1097 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1099 SM[BE]S:UNIX_SV:*:*)
1100 echo mips-dde-sysv${UNAME_RELEASE}
1102 RM*:ReliantUNIX-*:*:*)
1109 if uname -p 2>/dev/null >/dev/null ; then
1110 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1111 echo ${UNAME_MACHINE}-sni-sysv4
1116 PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1117 # says <Richard.M.Bartel@ccMail.Census.GOV>
1118 echo i586-unisys-sysv4
1120 *:UNIX_System_V:4*:FTX*)
1121 # From Gerald Hewes <hewes@openmarket.com>.
1122 # How about differentiating between stratus architectures? -djm
1123 echo hppa1.1-stratus-sysv4
1126 # From seanf@swdc.stratus.com.
1127 echo i860-stratus-sysv4
1130 echo m68k-apple-aux${UNAME_RELEASE}
1133 echo mips-sony-newsos6
1135 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1136 if [ -d /usr/nec ]; then
1137 echo mips-nec-sysv${UNAME_RELEASE}
1139 echo mips-unknown-sysv${UNAME_RELEASE}
1142 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1143 echo powerpc-be-beos
1145 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1146 echo powerpc-apple-beos
1148 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1152 echo sx4-nec-superux${UNAME_RELEASE}
1155 echo sx5-nec-superux${UNAME_RELEASE}
1157 Power*:Rhapsody:*:*)
1158 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1161 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1164 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1166 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1167 if test "${UNAME_MACHINE}" = "x86pc"; then
1170 echo `uname -p`-${UNAME_MACHINE}-nto-qnx
1175 NSR-[KW]:NONSTOP_KERNEL:*:*)
1176 echo nsr-tandem-nsk${UNAME_RELEASE}
1179 echo mips-compaq-nonstopux
1182 echo bs2000-siemens-sysv
1184 DS/*:UNIX_System_V:*:*)
1185 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1188 # "uname -m" is not consistent, so use $cputype instead. 386
1189 # is converted to i386 for consistency with other x86
1190 # operating systems.
1191 if test "$cputype" = "386"; then
1194 UNAME_MACHINE="$cputype"
1196 echo ${UNAME_MACHINE}-unknown-plan9
1199 # If we were able to find `uname', then EMX Unix compatibility
1200 # is probably installed.
1201 echo ${UNAME_MACHINE}-pc-os2-emx
1204 echo pdp10-unknown-tops10
1207 echo pdp10-unknown-tenex
1209 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1210 echo pdp10-dec-tops20
1212 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1213 echo pdp10-xkl-tops20
1216 echo pdp10-unknown-tops20
1219 echo pdp10-unknown-its
1223 #echo '(No uname command or uname output not recognized.)' 1>&2
1224 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1228 # include <sys/types.h>
1229 # include <sys/utsname.h>
1234 #if defined (MIPSEB)
1235 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1237 printf ("mips-sony-bsd\n"); exit (0);
1239 #include <sys/param.h>
1240 printf ("m68k-sony-newsos%s\n",
1250 #if defined (__arm) && defined (__acorn) && defined (__unix)
1251 printf ("arm-acorn-riscix"); exit (0);
1254 #if defined (hp300) && !defined (hpux)
1255 printf ("m68k-hp-bsd\n"); exit (0);
1259 #if !defined (__ARCHITECTURE__)
1260 #define __ARCHITECTURE__ "m68k"
1263 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1265 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1267 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1271 #if defined (MULTIMAX) || defined (n16)
1273 printf ("ns32k-encore-sysv\n"); exit (0);
1276 printf ("ns32k-encore-mach\n"); exit (0);
1278 printf ("ns32k-encore-bsd\n"); exit (0);
1283 #if defined (__386BSD__)
1284 printf ("i386-pc-bsd\n"); exit (0);
1287 #if defined (sequent)
1289 printf ("i386-sequent-dynix\n"); exit (0);
1291 #if defined (ns32000)
1292 printf ("ns32k-sequent-dynix\n"); exit (0);
1296 #if defined (_SEQUENT_)
1301 if (strncmp(un.version, "V2", 2) == 0) {
1302 printf ("i386-sequent-ptx2\n"); exit (0);
1304 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1305 printf ("i386-sequent-ptx1\n"); exit (0);
1307 printf ("i386-sequent-ptx\n"); exit (0);
1312 # if !defined (ultrix)
1313 # include <sys/param.h>
1316 printf ("vax-dec-bsd4.3\n"); exit (0);
1319 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1321 printf ("vax-dec-bsd\n"); exit (0);
1325 printf ("vax-dec-bsd\n"); exit (0);
1328 printf ("vax-dec-ultrix\n"); exit (0);
1332 #if defined (alliant) && defined (i860)
1333 printf ("i860-alliant-bsd\n"); exit (0);
1340 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
1341 rm -f $dummy.c $dummy
1343 # Apollos put the system type in the environment.
1345 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1347 # Convex versions that predate uname can use getsysinfo(1)
1349 if [ -x /usr/convex/getsysinfo ]
1351 case `getsysinfo -f cpu_type` in
1356 if getsysinfo -f scalar_acc
1357 then echo c32-convex-bsd
1358 else echo c2-convex-bsd
1374 $0: unable to guess system type
1376 This script, last modified $timestamp, has failed to recognize
1377 the operating system you are using. It is advised that you
1378 download the most up to date version of the config scripts from
1380 ftp://ftp.gnu.org/pub/gnu/config/
1382 If the version you run ($0) is already up to date, please
1383 send the following data and any information you think might be
1384 pertinent to <config-patches@gnu.org> in order to provide the needed
1385 information to handle your system.
1387 config.guess timestamp = $timestamp
1389 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1390 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1391 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1392 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1394 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1395 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1397 hostinfo = `(hostinfo) 2>/dev/null`
1398 /bin/universe = `(/bin/universe) 2>/dev/null`
1399 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1400 /bin/arch = `(/bin/arch) 2>/dev/null`
1401 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1402 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1404 UNAME_MACHINE = ${UNAME_MACHINE}
1405 UNAME_RELEASE = ${UNAME_RELEASE}
1406 UNAME_SYSTEM = ${UNAME_SYSTEM}
1407 UNAME_VERSION = ${UNAME_VERSION}
1413 # eval: (add-hook 'write-file-hooks 'time-stamp)
1414 # time-stamp-start: "timestamp='"
1415 # time-stamp-format: "%:y-%02m-%02d"
1416 # time-stamp-end: "'"