2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
4 # Free Software Foundation, Inc.
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Written by Per Bothner <bothner@cygnus.com>.
28 # Please send patches to <config-patches@gnu.org>.
30 # This script attempts to guess a canonical system name similar to
31 # config.sub. If it succeeds, it prints the system name on stdout, and
32 # exits with 0. Otherwise, it exits with 1.
34 # The plan is that this can be called by configure scripts if you
35 # don't specify an explicit build system type.
37 me=`echo "$0" | sed -e 's,.*/,,'`
42 Output the configuration name of the system \`$me' is run on.
45 -h, --help print this help, then exit
46 -t, --time-stamp print date of last modification, then exit
47 -v, --version print version number, then exit
49 Report bugs and patches to <config-patches@gnu.org>."
52 GNU config.guess ($timestamp)
54 Originally written by Per Bothner.
55 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
56 Free Software Foundation, Inc.
58 This is free software; see the source for copying conditions. There is NO
59 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
62 Try \`$me --help' for more information."
65 while test $# -gt 0 ; do
67 --time-stamp | --time* | -t )
68 echo "$timestamp" ; exit 0 ;;
70 echo "$version" ; exit 0 ;;
72 echo "$usage"; exit 0 ;;
73 -- ) # Stop option processing
75 - ) # Use stdin as input.
78 echo "$me: invalid option $1$help" >&2
86 echo "$me: too many arguments$help" >&2
92 trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
94 # CC_FOR_BUILD -- compiler used by this script.
95 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
96 # use `HOST_CC' if defined, but it is deprecated.
98 set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
99 ,,) echo "int dummy(){}" > $dummy.c ;
100 for c in cc gcc c89 ; do
101 ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
102 if test $? = 0 ; then
103 CC_FOR_BUILD="$c"; break ;
106 rm -f $dummy.c $dummy.o $dummy.rel ;
107 if test x"$CC_FOR_BUILD" = x ; then
108 CC_FOR_BUILD=no_compiler_found ;
111 ,,*) CC_FOR_BUILD=$CC ;;
112 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
115 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
116 # (ghazi@noc.rutgers.edu 1994-08-24)
117 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
118 PATH=$PATH:/.attbin ; export PATH
121 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
122 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
123 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
124 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
126 case "${UNAME_MACHINE}" in
128 test -z "$VENDOR" && VENDOR=pc
131 test -z "$VENDOR" && VENDOR=unknown
134 test -e /etc/SuSE-release && VENDOR=suse
136 # Note: order is significant - the case branches are not exclusive.
138 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
140 # Netbsd (nbsd) targets should (where applicable) match one or
141 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
142 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
143 # switched to ELF, *-*-netbsd* would select the old
144 # object file format. This provides both forward
145 # compatibility and a consistent mechanism for selecting the
146 # object file format.
147 # Determine the machine/vendor (is the vendor relevant).
148 case "${UNAME_MACHINE}" in
149 amiga) machine=m68k-unknown ;;
150 arm32) machine=arm-unknown ;;
151 atari*) machine=m68k-atari ;;
152 sun3*) machine=m68k-sun ;;
153 mac68k) machine=m68k-apple ;;
154 macppc) machine=powerpc-apple ;;
155 hp3[0-9][05]) machine=m68k-hp ;;
156 ibmrt|romp-ibm) machine=romp-ibm ;;
157 *) machine=${UNAME_MACHINE}-unknown ;;
159 # The Operating System including object format, if it has switched
160 # to ELF recently, or will in the future.
161 case "${UNAME_MACHINE}" in
162 i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
163 eval $set_cc_for_build
164 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
165 | grep __ELF__ >/dev/null
167 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
168 # Return netbsd for either. FIX?
179 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
180 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
181 # contains redundant information, the shorter form:
182 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
183 echo "${machine}-${os}${release}"
186 if test $UNAME_RELEASE = "V4.0"; then
187 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
189 # A Vn.n version is a released version.
190 # A Tn.n version is a released field test version.
191 # A Xn.n version is an unreleased experimental baselevel.
192 # 1.2 uses "1.2" for uname -r.
196 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
203 .frame \$30,16,\$26,0
206 .long 0x47e03d80 # implver \$0
208 .long 0x47e20c21 # amask \$2,\$1
218 eval $set_cc_for_build
219 $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
220 if test "$?" = 0 ; then
223 UNAME_MACHINE="alpha"
226 UNAME_MACHINE="alphaev5"
229 UNAME_MACHINE="alphaev56"
232 UNAME_MACHINE="alphapca56"
235 UNAME_MACHINE="alphaev6"
238 UNAME_MACHINE="alphaev67"
242 rm -f $dummy.s $dummy
243 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
245 Alpha\ *:Windows_NT*:*)
246 # How do we know it's Interix rather than the generic POSIX subsystem?
247 # Should we change UNAME_MACHINE based on the output of uname instead
248 # of the specific Alpha model?
249 echo alpha-pc-interix
251 21064:Windows_NT:50:3)
252 echo alpha-dec-winnt3.5
254 Amiga*:UNIX_System_V:4.0:*)
255 echo m68k-unknown-sysv4
258 echo m68k-unknown-openbsd${UNAME_RELEASE}
260 *:[Aa]miga[Oo][Ss]:*:*)
261 echo ${UNAME_MACHINE}-unknown-amigaos
264 echo mips64el-unknown-openbsd${UNAME_RELEASE}
267 echo mipsel-unknown-openbsd${UNAME_RELEASE}
270 echo mips-unknown-openbsd${UNAME_RELEASE}
273 echo mipsel-unknown-openbsd${UNAME_RELEASE}
276 echo mips-unknown-openbsd${UNAME_RELEASE}
279 echo mipsel-unknown-openbsd${UNAME_RELEASE}
282 echo i370-ibm-openedition
284 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
285 echo arm-acorn-riscix${UNAME_RELEASE}
287 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
288 echo hppa1.1-hitachi-hiuxmpp
290 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
291 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
292 if test "`(/bin/universe) 2>/dev/null`" = att ; then
293 echo pyramid-pyramid-sysv3
295 echo pyramid-pyramid-bsd
299 echo pyramid-pyramid-svr4
302 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
304 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
305 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
308 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
311 # According to config.sub, this is the proper way to canonicalize
312 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
313 # it's likely to be more like Solaris than SunOS4.
314 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
317 case "`/usr/bin/arch -k`" in
319 UNAME_RELEASE=`uname -v`
322 # Japanese Language versions have a version number like `4.1.3-JL'.
323 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
326 echo m68k-sun-sunos${UNAME_RELEASE}
329 UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
330 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
331 case "`/bin/arch`" in
333 echo m68k-sun-sunos${UNAME_RELEASE}
336 echo sparc-sun-sunos${UNAME_RELEASE}
341 echo sparc-auspex-sunos${UNAME_RELEASE}
344 echo m68k-unknown-openbsd${UNAME_RELEASE}
346 # The situation for MiNT is a little confusing. The machine name
347 # can be virtually everything (everything which is not
348 # "atarist" or "atariste" at least should have a processor
349 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
350 # to the lowercase version "mint" (or "freemint"). Finally
351 # the system name "TOS" denotes a system which is actually not
352 # MiNT. But MiNT is downward compatible to TOS, so this should
354 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
355 echo m68k-atari-mint${UNAME_RELEASE}
357 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
358 echo m68k-atari-mint${UNAME_RELEASE}
360 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
361 echo m68k-atari-mint${UNAME_RELEASE}
363 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
364 echo m68k-milan-mint${UNAME_RELEASE}
366 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
367 echo m68k-hades-mint${UNAME_RELEASE}
369 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
370 echo m68k-unknown-mint${UNAME_RELEASE}
373 echo m68k-unknown-openbsd${UNAME_RELEASE}
376 echo m68k-unknown-openbsd${UNAME_RELEASE}
379 echo m68k-unknown-openbsd${UNAME_RELEASE}
382 echo m88k-unknown-openbsd${UNAME_RELEASE}
385 echo powerpc-apple-machten${UNAME_RELEASE}
388 echo mips-dec-mach_bsd4.3
391 echo mips-dec-ultrix${UNAME_RELEASE}
394 echo vax-dec-ultrix${UNAME_RELEASE}
396 2020:CLIX:*:* | 2430:CLIX:*:*)
397 echo clipper-intergraph-clix${UNAME_RELEASE}
399 mips:*:*:UMIPS | mips:*:*:RISCos)
400 sed 's/^ //' << EOF >$dummy.c
402 #include <stdio.h> /* for printf() prototype */
403 int main (int argc, char *argv[]) {
405 int main (argc, argv) int argc; char *argv[]; {
407 #if defined (host_mips) && defined (MIPSEB)
408 #if defined (SYSTYPE_SYSV)
409 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
411 #if defined (SYSTYPE_SVR4)
412 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
414 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
415 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
421 eval $set_cc_for_build
422 $CC_FOR_BUILD $dummy.c -o $dummy \
423 && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
424 && rm -f $dummy.c $dummy && exit 0
425 rm -f $dummy.c $dummy
426 echo mips-mips-riscos${UNAME_RELEASE}
428 Motorola:PowerMAX_OS:*:*)
429 echo powerpc-motorola-powermax
431 Night_Hawk:Power_UNIX:*:*)
432 echo powerpc-harris-powerunix
435 echo m88k-harris-cxux7
438 echo m88k-motorola-sysv4
441 echo m88k-motorola-sysv3
444 # DG/UX returns AViiON for all architectures
445 UNAME_PROCESSOR=`/usr/bin/uname -p`
446 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
448 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
449 [ ${TARGET_BINARY_INTERFACE}x = x ]
451 echo m88k-dg-dgux${UNAME_RELEASE}
453 echo m88k-dg-dguxbcs${UNAME_RELEASE}
456 echo i586-dg-dgux${UNAME_RELEASE}
459 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
460 echo m88k-dolphin-sysv3
463 # Delta 88k system running SVR3
464 echo m88k-motorola-sysv3
466 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
467 echo m88k-tektronix-sysv3
469 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
470 echo m68k-tektronix-bsd
473 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
475 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
476 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
477 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
482 if [ -x /usr/bin/oslevel ] ; then
483 IBM_REV=`/usr/bin/oslevel`
485 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
487 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
490 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
491 sed 's/^ //' << EOF >$dummy.c
492 #include <sys/systemcfg.h>
498 puts("powerpc-ibm-aix3.2.5");
502 eval $set_cc_for_build
503 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
504 rm -f $dummy.c $dummy
505 echo rs6000-ibm-aix3.2.5
506 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
507 echo rs6000-ibm-aix3.2.4
509 echo rs6000-ibm-aix3.2
513 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
514 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
519 if [ -x /usr/bin/oslevel ] ; then
520 IBM_REV=`/usr/bin/oslevel`
522 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
524 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
529 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
532 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
533 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
534 exit 0 ;; # report: romp-ibm BSD 4.3
536 echo rs6000-bull-bosx
541 9000/[34]??:4.3bsd:1.*:*)
544 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
547 9000/[34678]??:HP-UX:*:*)
548 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
549 case "${UNAME_MACHINE}" in
550 9000/31? ) HP_ARCH=m68000 ;;
551 9000/[34]?? ) HP_ARCH=m68k ;;
552 9000/[678][0-9][0-9])
553 case "${HPUX_REV}" in
555 if [ -x /usr/bin/getconf ]; then
556 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
557 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
558 case "${sc_cpu_version}" in
559 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
560 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
561 532) # CPU_PA_RISC2_0
562 case "${sc_kernel_bits}" in
563 32) HP_ARCH="hppa2.0n" ;;
564 64) HP_ARCH="hppa2.0w" ;;
569 if [ "${HP_ARCH}" = "" ]; then
570 sed 's/^ //' << EOF >$dummy.c
578 #if defined(_SC_KERNEL_BITS)
579 long bits = sysconf(_SC_KERNEL_BITS);
581 long cpu = sysconf (_SC_CPU_VERSION);
585 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
586 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
588 #if defined(_SC_KERNEL_BITS)
591 case 64: puts ("hppa2.0w"); break;
592 case 32: puts ("hppa2.0n"); break;
593 default: puts ("hppa2.0"); break;
595 #else /* !defined(_SC_KERNEL_BITS) */
596 puts ("hppa2.0"); break;
598 default: puts ("hppa1.0"); break;
603 eval $set_cc_for_build
604 (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
605 if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
606 rm -f $dummy.c $dummy
609 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
612 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
613 echo ia64-hp-hpux${HPUX_REV}
616 sed 's/^ //' << EOF >$dummy.c
621 long cpu = sysconf (_SC_CPU_VERSION);
622 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
623 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
625 if (CPU_IS_PA_RISC (cpu))
629 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
630 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
631 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
632 default: puts ("hppa-hitachi-hiuxwe2"); break;
635 else if (CPU_IS_HP_MC68K (cpu))
636 puts ("m68k-hitachi-hiuxwe2");
637 else puts ("unknown-hitachi-hiuxwe2");
641 eval $set_cc_for_build
642 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
643 rm -f $dummy.c $dummy
644 echo unknown-hitachi-hiuxwe2
646 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
652 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
653 echo hppa1.0-hp-mpeix
655 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
662 if [ -x /usr/sbin/sysversion ] ; then
663 echo ${UNAME_MACHINE}-unknown-osf1mk
665 echo ${UNAME_MACHINE}-unknown-osf1
669 echo hppa1.1-hp-lites
672 echo hppa-unknown-openbsd
674 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
677 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
678 if getsysinfo -f scalar_acc
679 then echo c32-convex-bsd
680 else echo c2-convex-bsd
683 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
686 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
689 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
696 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
699 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
700 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
701 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
705 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
708 echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
711 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
714 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
717 echo cray2-cray-unicos
719 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
720 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
721 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
722 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
723 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
726 echo m68k-unknown-openbsd${UNAME_RELEASE}
728 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
729 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
732 echo sparc-unknown-bsdi${UNAME_RELEASE}
735 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
738 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
741 echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
744 echo ${UNAME_MACHINE}-pc-cygwin
747 echo ${UNAME_MACHINE}-pc-mingw32
750 echo ${UNAME_MACHINE}-pc-pw32
752 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
753 # How do we know it's Interix rather than the generic POSIX subsystem?
754 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
755 # UNAME_MACHINE based on the output of uname instead of i386?
759 echo ${UNAME_MACHINE}-pc-uwin
762 echo powerpcle-unknown-cygwin
765 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
768 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
771 echo ${UNAME_MACHINE}-pc-minix
774 echo ${UNAME_MACHINE}-${VENDOR}-linux
777 echo ${UNAME_MACHINE}-${VENDOR}-linux
780 echo ${UNAME_MACHINE}-${VENDOR}-linux
783 case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
784 big) echo mips-${VENDOR}-linux && exit 0 ;;
785 little) echo mipsel-${VENDOR}-linux && exit 0 ;;
788 ppc:Linux:*:*|ppc64:Linux:*:*)
789 echo powerpc-${VENDOR}-linux
792 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
793 EV5) UNAME_MACHINE=alphaev5 ;;
794 EV56) UNAME_MACHINE=alphaev56 ;;
795 PCA56) UNAME_MACHINE=alphapca56 ;;
796 PCA57) UNAME_MACHINE=alphapca56 ;;
797 EV6) UNAME_MACHINE=alphaev6 ;;
798 EV67) UNAME_MACHINE=alphaev67 ;;
799 EV68*) UNAME_MACHINE=alphaev67 ;;
801 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
802 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
803 echo ${UNAME_MACHINE}-${VENDOR}-linux${LIBC}
805 parisc:Linux:*:* | hppa:Linux:*:*)
807 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
808 PA7*) echo hppa1.1-${VENDOR}-linux ;;
809 PA8*) echo hppa2.0-${VENDOR}-linux ;;
810 *) echo hppa-${VENDOR}-linux ;;
813 parisc64:Linux:*:* | hppa64:Linux:*:*)
814 echo hppa64-${VENDOR}-linux
816 s390:Linux:*:* | s390x:Linux:*:*)
817 echo ${UNAME_MACHINE}-ibm-linux
820 echo ${UNAME_MACHINE}-${VENDOR}-linux
822 sparc:Linux:*:* | sparc64:Linux:*:*)
823 echo ${UNAME_MACHINE}-${VENDOR}-linux
826 echo x86_64-${VENDOR}-linux
829 # The BFD linker knows what the default object file format is, so
830 # first see if it will tell us. cd to the root directory to prevent
831 # problems with other programs or directories called `ld' in the path.
832 ld_supported_targets=`cd /; ld --help 2>&1 \
833 | sed -ne '/supported targets:/!d
835 s/.*supported targets: *//
838 case "$ld_supported_targets" in
840 TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux"
843 echo "${UNAME_MACHINE}-${VENDOR}-linuxaout"
846 echo "${UNAME_MACHINE}-${VENDOR}-linuxcoff"
849 # Either a pre-BFD a.out linker (linuxoldld) or
850 # one that does not give us useful --help.
851 echo "${UNAME_MACHINE}-${VENDOR}-linuxoldld"
854 # Determine whether the default compiler is a.out or elf
856 #include <features.h>
858 #include <stdio.h> /* for printf() prototype */
859 int main (int argc, char *argv[]) {
861 int main (argc, argv) int argc; char *argv[]; {
866 printf ("%s-${VENDOR}-linux\n", argv[1]);
868 printf ("%s-${VENDOR}-linuxlibc1\n", argv[1]);
871 printf ("%s-${VENDOR}-linuxlibc1\n", argv[1]);
874 printf ("%s-${VENDOR}-linuxaout\n", argv[1]);
879 eval $set_cc_for_build
880 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
881 rm -f $dummy.c $dummy
882 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
885 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
886 # earlier versions are messed up and put the nodename in both
887 # sysname and nodename.
888 echo i386-sequent-sysv4
890 i*86:UNIX_SV:4.2MP:2.*)
891 # Unixware is an offshoot of SVR4, but it has its own version
892 # number series starting with 2...
893 # I am not positive that other SVR4 systems won't match this,
894 # I just have to hope. -- rms.
895 # Use sysv4.2uw... so that sysv4* matches it.
896 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
898 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
899 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
900 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
901 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
903 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
907 case `/bin/uname -X | grep "^Machine"` in
908 *486*) UNAME_MACHINE=i486 ;;
909 *Pentium) UNAME_MACHINE=i586 ;;
910 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
912 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
915 if test -f /usr/options/cb.name; then
916 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
917 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
918 elif /bin/uname -X 2>/dev/null >/dev/null ; then
919 UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
920 (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
921 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
922 && UNAME_MACHINE=i586
923 (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
924 && UNAME_MACHINE=i686
925 (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
926 && UNAME_MACHINE=i686
927 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
929 echo ${UNAME_MACHINE}-pc-sysv32
933 echo ${UNAME_MACHINE}-pc-msdosdjgpp
936 # Left here for compatibility:
937 # uname -m prints for DJGPP always 'pc', but it prints nothing about
938 # the processor, so we play safe by assuming i386.
939 echo i386-pc-msdosdjgpp
947 i860:*:4.*:*) # i860-SVR4
948 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
949 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
950 else # Add other i860-SVR4 vendors below as they are discovered.
951 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
956 echo m68010-convergent-sysv
959 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
960 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
962 test -r /etc/.relid \
963 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
964 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
965 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
966 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
967 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
968 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
969 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
970 && echo i486-ncr-sysv4 && exit 0 ;;
971 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
972 echo m68k-unknown-lynxos${UNAME_RELEASE}
974 mc68030:UNIX_System_V:4.*:*)
975 echo m68k-atari-sysv4
977 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
978 echo i386-unknown-lynxos${UNAME_RELEASE}
980 TSUNAMI:LynxOS:2.*:*)
981 echo sparc-unknown-lynxos${UNAME_RELEASE}
984 echo rs6000-unknown-lynxos${UNAME_RELEASE}
986 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
987 echo powerpc-unknown-lynxos${UNAME_RELEASE}
990 echo mips-dde-sysv${UNAME_RELEASE}
992 RM*:ReliantUNIX-*:*:*)
999 if uname -p 2>/dev/null >/dev/null ; then
1000 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1001 echo ${UNAME_MACHINE}-sni-sysv4
1006 PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1007 # says <Richard.M.Bartel@ccMail.Census.GOV>
1008 echo i586-unisys-sysv4
1010 *:UNIX_System_V:4*:FTX*)
1011 # From Gerald Hewes <hewes@openmarket.com>.
1012 # How about differentiating between stratus architectures? -djm
1013 echo hppa1.1-stratus-sysv4
1016 # From seanf@swdc.stratus.com.
1017 echo i860-stratus-sysv4
1020 echo m68k-apple-aux${UNAME_RELEASE}
1023 echo mips-sony-newsos6
1025 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1026 if [ -d /usr/nec ]; then
1027 echo mips-nec-sysv${UNAME_RELEASE}
1029 echo mips-unknown-sysv${UNAME_RELEASE}
1032 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1033 echo powerpc-be-beos
1035 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1036 echo powerpc-apple-beos
1038 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1042 echo sx4-nec-superux${UNAME_RELEASE}
1045 echo sx5-nec-superux${UNAME_RELEASE}
1047 Power*:Rhapsody:*:*)
1048 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1051 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1054 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1056 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1057 if test "${UNAME_MACHINE}" = "x86pc"; then
1060 echo `uname -p`-${UNAME_MACHINE}-nto-qnx
1065 NSR-[KW]:NONSTOP_KERNEL:*:*)
1066 echo nsr-tandem-nsk${UNAME_RELEASE}
1069 echo mips-compaq-nonstopux
1072 echo bs2000-siemens-sysv
1074 DS/*:UNIX_System_V:*:*)
1075 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1078 # "uname -m" is not consistent, so use $cputype instead. 386
1079 # is converted to i386 for consistency with other x86
1080 # operating systems.
1081 if test "$cputype" = "386"; then
1084 UNAME_MACHINE="$cputype"
1086 echo ${UNAME_MACHINE}-unknown-plan9
1089 # If we were able to find `uname', then EMX Unix compatibility
1090 # is probably installed.
1091 echo ${UNAME_MACHINE}-pc-os2-emx
1094 echo pdp10-unknown-tops10
1097 echo pdp10-unknown-tenex
1099 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1100 echo pdp10-dec-tops20
1102 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1103 echo pdp10-xkl-tops20
1106 echo pdp10-unknown-tops20
1109 echo pdp10-unknown-its
1113 #echo '(No uname command or uname output not recognized.)' 1>&2
1114 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1118 # include <sys/types.h>
1119 # include <sys/utsname.h>
1124 #if defined (MIPSEB)
1125 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1127 printf ("mips-sony-bsd\n"); exit (0);
1129 #include <sys/param.h>
1130 printf ("m68k-sony-newsos%s\n",
1140 #if defined (__arm) && defined (__acorn) && defined (__unix)
1141 printf ("arm-acorn-riscix"); exit (0);
1144 #if defined (hp300) && !defined (hpux)
1145 printf ("m68k-hp-bsd\n"); exit (0);
1149 #if !defined (__ARCHITECTURE__)
1150 #define __ARCHITECTURE__ "m68k"
1153 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1155 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1157 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1161 #if defined (MULTIMAX) || defined (n16)
1163 printf ("ns32k-encore-sysv\n"); exit (0);
1166 printf ("ns32k-encore-mach\n"); exit (0);
1168 printf ("ns32k-encore-bsd\n"); exit (0);
1173 #if defined (__386BSD__)
1174 printf ("i386-pc-bsd\n"); exit (0);
1177 #if defined (sequent)
1179 printf ("i386-sequent-dynix\n"); exit (0);
1181 #if defined (ns32000)
1182 printf ("ns32k-sequent-dynix\n"); exit (0);
1186 #if defined (_SEQUENT_)
1191 if (strncmp(un.version, "V2", 2) == 0) {
1192 printf ("i386-sequent-ptx2\n"); exit (0);
1194 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1195 printf ("i386-sequent-ptx1\n"); exit (0);
1197 printf ("i386-sequent-ptx\n"); exit (0);
1202 # if !defined (ultrix)
1203 # include <sys/param.h>
1206 printf ("vax-dec-bsd4.3\n"); exit (0);
1209 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1211 printf ("vax-dec-bsd\n"); exit (0);
1215 printf ("vax-dec-bsd\n"); exit (0);
1218 printf ("vax-dec-ultrix\n"); exit (0);
1222 #if defined (alliant) && defined (i860)
1223 printf ("i860-alliant-bsd\n"); exit (0);
1230 eval $set_cc_for_build
1231 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
1232 rm -f $dummy.c $dummy
1234 # Apollos put the system type in the environment.
1236 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1238 # Convex versions that predate uname can use getsysinfo(1)
1240 if [ -x /usr/convex/getsysinfo ]
1242 case `getsysinfo -f cpu_type` in
1247 if getsysinfo -f scalar_acc
1248 then echo c32-convex-bsd
1249 else echo c2-convex-bsd
1265 $0: unable to guess system type
1267 This script, last modified $timestamp, has failed to recognize
1268 the operating system you are using. It is advised that you
1269 download the most up to date version of the config scripts from
1271 ftp://ftp.gnu.org/pub/gnu/config/
1273 If the version you run ($0) is already up to date, please
1274 send the following data and any information you think might be
1275 pertinent to <config-patches@gnu.org> in order to provide the needed
1276 information to handle your system.
1278 config.guess timestamp = $timestamp
1280 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1281 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1282 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1283 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1285 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1286 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1288 hostinfo = `(hostinfo) 2>/dev/null`
1289 /bin/universe = `(/bin/universe) 2>/dev/null`
1290 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1291 /bin/arch = `(/bin/arch) 2>/dev/null`
1292 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1293 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1295 UNAME_MACHINE = ${UNAME_MACHINE}
1296 UNAME_RELEASE = ${UNAME_RELEASE}
1297 UNAME_SYSTEM = ${UNAME_SYSTEM}
1298 UNAME_VERSION = ${UNAME_VERSION}
1304 # eval: (add-hook 'write-file-hooks 'time-stamp)
1305 # time-stamp-start: "timestamp='"
1306 # time-stamp-format: "%:y-%02m-%02d"
1307 # time-stamp-end: "'"