* Makefile.in (all-subdir, check-subdir, installcheck-subdir)
[official-gcc.git] / config.guess
blobca12b79a540350d38d25eef58cc00d644861f911
1 #! /bin/sh
2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 # 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
6 timestamp='2003-01-03'
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Originally written by Per Bothner <per@bothner.com>.
28 # Please send patches to <config-patches@gnu.org>. Submit a context
29 # diff and a properly formatted ChangeLog entry.
31 # This script attempts to guess a canonical system name similar to
32 # config.sub. If it succeeds, it prints the system name on stdout, and
33 # exits with 0. Otherwise, it exits with 1.
35 # The plan is that this can be called by configure scripts if you
36 # don't specify an explicit build system type.
38 me=`echo "$0" | sed -e 's,.*/,,'`
40 usage="\
41 Usage: $0 [OPTION]
43 Output the configuration name of the system \`$me' is run on.
45 Operation modes:
46 -h, --help print this help, then exit
47 -t, --time-stamp print date of last modification, then exit
48 -v, --version print version number, then exit
50 Report bugs and patches to <config-patches@gnu.org>."
52 version="\
53 GNU config.guess ($timestamp)
55 Originally written by Per Bothner.
56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
57 Free Software Foundation, Inc.
59 This is free software; see the source for copying conditions. There is NO
60 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
62 help="
63 Try \`$me --help' for more information."
65 # Parse command line
66 while test $# -gt 0 ; do
67 case $1 in
68 --time-stamp | --time* | -t )
69 echo "$timestamp" ; exit 0 ;;
70 --version | -v )
71 echo "$version" ; exit 0 ;;
72 --help | --h* | -h )
73 echo "$usage"; exit 0 ;;
74 -- ) # Stop option processing
75 shift; break ;;
76 - ) # Use stdin as input.
77 break ;;
78 -* )
79 echo "$me: invalid option $1$help" >&2
80 exit 1 ;;
81 * )
82 break ;;
83 esac
84 done
86 if test $# != 0; then
87 echo "$me: too many arguments$help" >&2
88 exit 1
91 trap 'exit 1' 1 2 15
93 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
94 # compiler to aid in system detection is discouraged as it requires
95 # temporary files to be created and, as you can see below, it is a
96 # headache to deal with in a portable fashion.
98 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
99 # use `HOST_CC' if defined, but it is deprecated.
101 # Portable tmp directory creation inspired by the Autoconf team.
103 set_cc_for_build='
104 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
105 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
106 : ${TMPDIR=/tmp} ;
107 { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
108 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
109 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
110 dummy=$tmp/dummy ;
111 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
112 case $CC_FOR_BUILD,$HOST_CC,$CC in
113 ,,) echo "int x;" > $dummy.c ;
114 for c in cc gcc c89 c99 ; do
115 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
116 CC_FOR_BUILD="$c"; break ;
117 fi ;
118 done ;
119 if test x"$CC_FOR_BUILD" = x ; then
120 CC_FOR_BUILD=no_compiler_found ;
123 ,,*) CC_FOR_BUILD=$CC ;;
124 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
125 esac ;'
127 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
128 # (ghazi@noc.rutgers.edu 1994-08-24)
129 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
130 PATH=$PATH:/.attbin ; export PATH
133 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
134 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
135 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
136 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
138 # Note: order is significant - the case branches are not exclusive.
140 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
141 *:NetBSD:*:*)
142 # NetBSD (nbsd) targets should (where applicable) match one or
143 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
144 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
145 # switched to ELF, *-*-netbsd* would select the old
146 # object file format. This provides both forward
147 # compatibility and a consistent mechanism for selecting the
148 # object file format.
150 # Note: NetBSD doesn't particularly care about the vendor
151 # portion of the name. We always set it to "unknown".
152 sysctl="sysctl -n hw.machine_arch"
153 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
154 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
155 case "${UNAME_MACHINE_ARCH}" in
156 armeb) machine=armeb-unknown ;;
157 arm*) machine=arm-unknown ;;
158 sh3el) machine=shl-unknown ;;
159 sh3eb) machine=sh-unknown ;;
160 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
161 esac
162 # The Operating System including object format, if it has switched
163 # to ELF recently, or will in the future.
164 case "${UNAME_MACHINE_ARCH}" in
165 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
166 eval $set_cc_for_build
167 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
168 | grep __ELF__ >/dev/null
169 then
170 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
171 # Return netbsd for either. FIX?
172 os=netbsd
173 else
174 os=netbsdelf
178 os=netbsd
180 esac
181 # The OS release
182 # Debian GNU/NetBSD machines have a different userland, and
183 # thus, need a distinct triplet. However, they do not need
184 # kernel version information, so it can be replaced with a
185 # suitable tag, in the style of linux-gnu.
186 case "${UNAME_VERSION}" in
187 Debian*)
188 release='-gnu'
191 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
193 esac
194 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
195 # contains redundant information, the shorter form:
196 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
197 echo "${machine}-${os}${release}"
198 exit 0 ;;
199 amiga:OpenBSD:*:*)
200 echo m68k-unknown-openbsd${UNAME_RELEASE}
201 exit 0 ;;
202 arc:OpenBSD:*:*)
203 echo mipsel-unknown-openbsd${UNAME_RELEASE}
204 exit 0 ;;
205 hp300:OpenBSD:*:*)
206 echo m68k-unknown-openbsd${UNAME_RELEASE}
207 exit 0 ;;
208 mac68k:OpenBSD:*:*)
209 echo m68k-unknown-openbsd${UNAME_RELEASE}
210 exit 0 ;;
211 macppc:OpenBSD:*:*)
212 echo powerpc-unknown-openbsd${UNAME_RELEASE}
213 exit 0 ;;
214 mvme68k:OpenBSD:*:*)
215 echo m68k-unknown-openbsd${UNAME_RELEASE}
216 exit 0 ;;
217 mvme88k:OpenBSD:*:*)
218 echo m88k-unknown-openbsd${UNAME_RELEASE}
219 exit 0 ;;
220 mvmeppc:OpenBSD:*:*)
221 echo powerpc-unknown-openbsd${UNAME_RELEASE}
222 exit 0 ;;
223 pmax:OpenBSD:*:*)
224 echo mipsel-unknown-openbsd${UNAME_RELEASE}
225 exit 0 ;;
226 sgi:OpenBSD:*:*)
227 echo mipseb-unknown-openbsd${UNAME_RELEASE}
228 exit 0 ;;
229 sun3:OpenBSD:*:*)
230 echo m68k-unknown-openbsd${UNAME_RELEASE}
231 exit 0 ;;
232 wgrisc:OpenBSD:*:*)
233 echo mipsel-unknown-openbsd${UNAME_RELEASE}
234 exit 0 ;;
235 *:OpenBSD:*:*)
236 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
237 exit 0 ;;
238 *:MicroBSD:*:*)
239 echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE}
240 exit 0 ;;
241 alpha:OSF1:*:*)
242 if test $UNAME_RELEASE = "V4.0"; then
243 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
245 # A Vn.n version is a released version.
246 # A Tn.n version is a released field test version.
247 # A Xn.n version is an unreleased experimental baselevel.
248 # 1.2 uses "1.2" for uname -r.
249 eval $set_cc_for_build
250 cat <<EOF >$dummy.s
251 .data
252 \$Lformat:
253 .byte 37,100,45,37,120,10,0 # "%d-%x\n"
255 .text
256 .globl main
257 .align 4
258 .ent main
259 main:
260 .frame \$30,16,\$26,0
261 ldgp \$29,0(\$27)
262 .prologue 1
263 .long 0x47e03d80 # implver \$0
264 lda \$2,-1
265 .long 0x47e20c21 # amask \$2,\$1
266 lda \$16,\$Lformat
267 mov \$0,\$17
268 not \$1,\$18
269 jsr \$26,printf
270 ldgp \$29,0(\$26)
271 mov 0,\$16
272 jsr \$26,exit
273 .end main
275 $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
276 if test "$?" = 0 ; then
277 case `$dummy` in
278 0-0)
279 UNAME_MACHINE="alpha"
281 1-0)
282 UNAME_MACHINE="alphaev5"
284 1-1)
285 UNAME_MACHINE="alphaev56"
287 1-101)
288 UNAME_MACHINE="alphapca56"
290 2-303)
291 UNAME_MACHINE="alphaev6"
293 2-307)
294 UNAME_MACHINE="alphaev67"
296 2-1307)
297 UNAME_MACHINE="alphaev68"
299 3-1307)
300 UNAME_MACHINE="alphaev7"
302 esac
304 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
305 exit 0 ;;
306 Alpha\ *:Windows_NT*:*)
307 # How do we know it's Interix rather than the generic POSIX subsystem?
308 # Should we change UNAME_MACHINE based on the output of uname instead
309 # of the specific Alpha model?
310 echo alpha-pc-interix
311 exit 0 ;;
312 21064:Windows_NT:50:3)
313 echo alpha-dec-winnt3.5
314 exit 0 ;;
315 Amiga*:UNIX_System_V:4.0:*)
316 echo m68k-unknown-sysv4
317 exit 0;;
318 *:[Aa]miga[Oo][Ss]:*:*)
319 echo ${UNAME_MACHINE}-unknown-amigaos
320 exit 0 ;;
321 *:[Mm]orph[Oo][Ss]:*:*)
322 echo ${UNAME_MACHINE}-unknown-morphos
323 exit 0 ;;
324 *:OS/390:*:*)
325 echo i370-ibm-openedition
326 exit 0 ;;
327 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
328 echo arm-acorn-riscix${UNAME_RELEASE}
329 exit 0;;
330 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
331 echo hppa1.1-hitachi-hiuxmpp
332 exit 0;;
333 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
334 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
335 if test "`(/bin/universe) 2>/dev/null`" = att ; then
336 echo pyramid-pyramid-sysv3
337 else
338 echo pyramid-pyramid-bsd
340 exit 0 ;;
341 NILE*:*:*:dcosx)
342 echo pyramid-pyramid-svr4
343 exit 0 ;;
344 DRS?6000:UNIX_SV:4.2*:7*)
345 case `/usr/bin/uname -p` in
346 sparc) echo sparc-icl-nx7 && exit 0 ;;
347 esac ;;
348 sun4H:SunOS:5.*:*)
349 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
350 exit 0 ;;
351 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
352 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
353 exit 0 ;;
354 i86pc:SunOS:5.*:*)
355 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
356 exit 0 ;;
357 sun4*:SunOS:6*:*)
358 # According to config.sub, this is the proper way to canonicalize
359 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
360 # it's likely to be more like Solaris than SunOS4.
361 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
362 exit 0 ;;
363 sun4*:SunOS:*:*)
364 case "`/usr/bin/arch -k`" in
365 Series*|S4*)
366 UNAME_RELEASE=`uname -v`
368 esac
369 # Japanese Language versions have a version number like `4.1.3-JL'.
370 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
371 exit 0 ;;
372 sun3*:SunOS:*:*)
373 echo m68k-sun-sunos${UNAME_RELEASE}
374 exit 0 ;;
375 sun*:*:4.2BSD:*)
376 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
377 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
378 case "`/bin/arch`" in
379 sun3)
380 echo m68k-sun-sunos${UNAME_RELEASE}
382 sun4)
383 echo sparc-sun-sunos${UNAME_RELEASE}
385 esac
386 exit 0 ;;
387 aushp:SunOS:*:*)
388 echo sparc-auspex-sunos${UNAME_RELEASE}
389 exit 0 ;;
390 # The situation for MiNT is a little confusing. The machine name
391 # can be virtually everything (everything which is not
392 # "atarist" or "atariste" at least should have a processor
393 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
394 # to the lowercase version "mint" (or "freemint"). Finally
395 # the system name "TOS" denotes a system which is actually not
396 # MiNT. But MiNT is downward compatible to TOS, so this should
397 # be no problem.
398 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
399 echo m68k-atari-mint${UNAME_RELEASE}
400 exit 0 ;;
401 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
402 echo m68k-atari-mint${UNAME_RELEASE}
403 exit 0 ;;
404 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
405 echo m68k-atari-mint${UNAME_RELEASE}
406 exit 0 ;;
407 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
408 echo m68k-milan-mint${UNAME_RELEASE}
409 exit 0 ;;
410 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
411 echo m68k-hades-mint${UNAME_RELEASE}
412 exit 0 ;;
413 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
414 echo m68k-unknown-mint${UNAME_RELEASE}
415 exit 0 ;;
416 powerpc:machten:*:*)
417 echo powerpc-apple-machten${UNAME_RELEASE}
418 exit 0 ;;
419 RISC*:Mach:*:*)
420 echo mips-dec-mach_bsd4.3
421 exit 0 ;;
422 RISC*:ULTRIX:*:*)
423 echo mips-dec-ultrix${UNAME_RELEASE}
424 exit 0 ;;
425 VAX*:ULTRIX*:*:*)
426 echo vax-dec-ultrix${UNAME_RELEASE}
427 exit 0 ;;
428 2020:CLIX:*:* | 2430:CLIX:*:*)
429 echo clipper-intergraph-clix${UNAME_RELEASE}
430 exit 0 ;;
431 mips:*:*:UMIPS | mips:*:*:RISCos)
432 eval $set_cc_for_build
433 sed 's/^ //' << EOF >$dummy.c
434 #ifdef __cplusplus
435 #include <stdio.h> /* for printf() prototype */
436 int main (int argc, char *argv[]) {
437 #else
438 int main (argc, argv) int argc; char *argv[]; {
439 #endif
440 #if defined (host_mips) && defined (MIPSEB)
441 #if defined (SYSTYPE_SYSV)
442 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
443 #endif
444 #if defined (SYSTYPE_SVR4)
445 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
446 #endif
447 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
448 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
449 #endif
450 #endif
451 exit (-1);
454 $CC_FOR_BUILD -o $dummy $dummy.c \
455 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
456 && exit 0
457 echo mips-mips-riscos${UNAME_RELEASE}
458 exit 0 ;;
459 Motorola:PowerMAX_OS:*:*)
460 echo powerpc-motorola-powermax
461 exit 0 ;;
462 Motorola:*:4.3:PL8-*)
463 echo powerpc-harris-powermax
464 exit 0 ;;
465 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
466 echo powerpc-harris-powermax
467 exit 0 ;;
468 Night_Hawk:Power_UNIX:*:*)
469 echo powerpc-harris-powerunix
470 exit 0 ;;
471 m88k:CX/UX:7*:*)
472 echo m88k-harris-cxux7
473 exit 0 ;;
474 m88k:*:4*:R4*)
475 echo m88k-motorola-sysv4
476 exit 0 ;;
477 m88k:*:3*:R3*)
478 echo m88k-motorola-sysv3
479 exit 0 ;;
480 AViiON:dgux:*:*)
481 # DG/UX returns AViiON for all architectures
482 UNAME_PROCESSOR=`/usr/bin/uname -p`
483 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
484 then
485 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
486 [ ${TARGET_BINARY_INTERFACE}x = x ]
487 then
488 echo m88k-dg-dgux${UNAME_RELEASE}
489 else
490 echo m88k-dg-dguxbcs${UNAME_RELEASE}
492 else
493 echo i586-dg-dgux${UNAME_RELEASE}
495 exit 0 ;;
496 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
497 echo m88k-dolphin-sysv3
498 exit 0 ;;
499 M88*:*:R3*:*)
500 # Delta 88k system running SVR3
501 echo m88k-motorola-sysv3
502 exit 0 ;;
503 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
504 echo m88k-tektronix-sysv3
505 exit 0 ;;
506 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
507 echo m68k-tektronix-bsd
508 exit 0 ;;
509 *:IRIX*:*:*)
510 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
511 exit 0 ;;
512 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
513 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
514 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
515 i*86:AIX:*:*)
516 echo i386-ibm-aix
517 exit 0 ;;
518 ia64:AIX:*:*)
519 if [ -x /usr/bin/oslevel ] ; then
520 IBM_REV=`/usr/bin/oslevel`
521 else
522 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
524 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
525 exit 0 ;;
526 *:AIX:2:3)
527 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
528 eval $set_cc_for_build
529 sed 's/^ //' << EOF >$dummy.c
530 #include <sys/systemcfg.h>
532 main()
534 if (!__power_pc())
535 exit(1);
536 puts("powerpc-ibm-aix3.2.5");
537 exit(0);
540 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
541 echo rs6000-ibm-aix3.2.5
542 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
543 echo rs6000-ibm-aix3.2.4
544 else
545 echo rs6000-ibm-aix3.2
547 exit 0 ;;
548 *:AIX:*:[45])
549 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
550 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
551 IBM_ARCH=rs6000
552 else
553 IBM_ARCH=powerpc
555 if [ -x /usr/bin/oslevel ] ; then
556 IBM_REV=`/usr/bin/oslevel`
557 else
558 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
560 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
561 exit 0 ;;
562 *:AIX:*:*)
563 echo rs6000-ibm-aix
564 exit 0 ;;
565 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
566 echo romp-ibm-bsd4.4
567 exit 0 ;;
568 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
569 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
570 exit 0 ;; # report: romp-ibm BSD 4.3
571 *:BOSX:*:*)
572 echo rs6000-bull-bosx
573 exit 0 ;;
574 DPX/2?00:B.O.S.:*:*)
575 echo m68k-bull-sysv3
576 exit 0 ;;
577 9000/[34]??:4.3bsd:1.*:*)
578 echo m68k-hp-bsd
579 exit 0 ;;
580 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
581 echo m68k-hp-bsd4.4
582 exit 0 ;;
583 9000/[34678]??:HP-UX:*:*)
584 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
585 case "${UNAME_MACHINE}" in
586 9000/31? ) HP_ARCH=m68000 ;;
587 9000/[34]?? ) HP_ARCH=m68k ;;
588 9000/[678][0-9][0-9])
589 if [ -x /usr/bin/getconf ]; then
590 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
591 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
592 case "${sc_cpu_version}" in
593 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
594 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
595 532) # CPU_PA_RISC2_0
596 case "${sc_kernel_bits}" in
597 32) HP_ARCH="hppa2.0n" ;;
598 64) HP_ARCH="hppa2.0w" ;;
599 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
600 esac ;;
601 esac
603 if [ "${HP_ARCH}" = "" ]; then
604 eval $set_cc_for_build
605 sed 's/^ //' << EOF >$dummy.c
607 #define _HPUX_SOURCE
608 #include <stdlib.h>
609 #include <unistd.h>
611 int main ()
613 #if defined(_SC_KERNEL_BITS)
614 long bits = sysconf(_SC_KERNEL_BITS);
615 #endif
616 long cpu = sysconf (_SC_CPU_VERSION);
618 switch (cpu)
620 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
621 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
622 case CPU_PA_RISC2_0:
623 #if defined(_SC_KERNEL_BITS)
624 switch (bits)
626 case 64: puts ("hppa2.0w"); break;
627 case 32: puts ("hppa2.0n"); break;
628 default: puts ("hppa2.0"); break;
629 } break;
630 #else /* !defined(_SC_KERNEL_BITS) */
631 puts ("hppa2.0"); break;
632 #endif
633 default: puts ("hppa1.0"); break;
635 exit (0);
638 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
639 test -z "$HP_ARCH" && HP_ARCH=hppa
640 fi ;;
641 esac
642 if [ ${HP_ARCH} = "hppa2.0w" ]
643 then
644 # avoid double evaluation of $set_cc_for_build
645 test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
646 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
647 then
648 HP_ARCH="hppa2.0w"
649 else
650 HP_ARCH="hppa64"
653 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
654 exit 0 ;;
655 ia64:HP-UX:*:*)
656 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
657 echo ia64-hp-hpux${HPUX_REV}
658 exit 0 ;;
659 3050*:HI-UX:*:*)
660 eval $set_cc_for_build
661 sed 's/^ //' << EOF >$dummy.c
662 #include <unistd.h>
664 main ()
666 long cpu = sysconf (_SC_CPU_VERSION);
667 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
668 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
669 results, however. */
670 if (CPU_IS_PA_RISC (cpu))
672 switch (cpu)
674 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
675 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
676 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
677 default: puts ("hppa-hitachi-hiuxwe2"); break;
680 else if (CPU_IS_HP_MC68K (cpu))
681 puts ("m68k-hitachi-hiuxwe2");
682 else puts ("unknown-hitachi-hiuxwe2");
683 exit (0);
686 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
687 echo unknown-hitachi-hiuxwe2
688 exit 0 ;;
689 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
690 echo hppa1.1-hp-bsd
691 exit 0 ;;
692 9000/8??:4.3bsd:*:*)
693 echo hppa1.0-hp-bsd
694 exit 0 ;;
695 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
696 echo hppa1.0-hp-mpeix
697 exit 0 ;;
698 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
699 echo hppa1.1-hp-osf
700 exit 0 ;;
701 hp8??:OSF1:*:*)
702 echo hppa1.0-hp-osf
703 exit 0 ;;
704 i*86:OSF1:*:*)
705 if [ -x /usr/sbin/sysversion ] ; then
706 echo ${UNAME_MACHINE}-unknown-osf1mk
707 else
708 echo ${UNAME_MACHINE}-unknown-osf1
710 exit 0 ;;
711 parisc*:Lites*:*:*)
712 echo hppa1.1-hp-lites
713 exit 0 ;;
714 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
715 echo c1-convex-bsd
716 exit 0 ;;
717 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
718 if getsysinfo -f scalar_acc
719 then echo c32-convex-bsd
720 else echo c2-convex-bsd
722 exit 0 ;;
723 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
724 echo c34-convex-bsd
725 exit 0 ;;
726 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
727 echo c38-convex-bsd
728 exit 0 ;;
729 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
730 echo c4-convex-bsd
731 exit 0 ;;
732 CRAY*Y-MP:*:*:*)
733 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
734 exit 0 ;;
735 CRAY*[A-Z]90:*:*:*)
736 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
737 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
738 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
739 -e 's/\.[^.]*$/.X/'
740 exit 0 ;;
741 CRAY*TS:*:*:*)
742 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
743 exit 0 ;;
744 CRAY*T3E:*:*:*)
745 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
746 exit 0 ;;
747 CRAY*SV1:*:*:*)
748 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
749 exit 0 ;;
750 *:UNICOS/mp:*:*)
751 echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
752 exit 0 ;;
753 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
754 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
755 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
756 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
757 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
758 exit 0 ;;
759 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
760 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
761 exit 0 ;;
762 sparc*:BSD/OS:*:*)
763 echo sparc-unknown-bsdi${UNAME_RELEASE}
764 exit 0 ;;
765 *:BSD/OS:*:*)
766 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
767 exit 0 ;;
768 *:FreeBSD:*:*)
769 # Determine whether the default compiler uses glibc.
770 eval $set_cc_for_build
771 sed 's/^ //' << EOF >$dummy.c
772 #include <features.h>
773 #if __GLIBC__ >= 2
774 LIBC=gnu
775 #else
776 LIBC=
777 #endif
779 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
780 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
781 exit 0 ;;
782 i*:CYGWIN*:*)
783 echo ${UNAME_MACHINE}-pc-cygwin
784 exit 0 ;;
785 i*:MINGW*:*)
786 echo ${UNAME_MACHINE}-pc-mingw32
787 exit 0 ;;
788 i*:PW*:*)
789 echo ${UNAME_MACHINE}-pc-pw32
790 exit 0 ;;
791 x86:Interix*:3*)
792 echo i586-pc-interix3
793 exit 0 ;;
794 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
795 echo i${UNAME_MACHINE}-pc-mks
796 exit 0 ;;
797 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
798 # How do we know it's Interix rather than the generic POSIX subsystem?
799 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
800 # UNAME_MACHINE based on the output of uname instead of i386?
801 echo i586-pc-interix
802 exit 0 ;;
803 i*:UWIN*:*)
804 echo ${UNAME_MACHINE}-pc-uwin
805 exit 0 ;;
806 p*:CYGWIN*:*)
807 echo powerpcle-unknown-cygwin
808 exit 0 ;;
809 prep*:SunOS:5.*:*)
810 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
811 exit 0 ;;
812 *:GNU:*:*)
813 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
814 exit 0 ;;
815 i*86:Minix:*:*)
816 echo ${UNAME_MACHINE}-pc-minix
817 exit 0 ;;
818 arm*:Linux:*:*)
819 echo ${UNAME_MACHINE}-unknown-linux-gnu
820 exit 0 ;;
821 ia64:Linux:*:*)
822 echo ${UNAME_MACHINE}-unknown-linux-gnu
823 exit 0 ;;
824 m68*:Linux:*:*)
825 echo ${UNAME_MACHINE}-unknown-linux-gnu
826 exit 0 ;;
827 mips:Linux:*:*)
828 eval $set_cc_for_build
829 sed 's/^ //' << EOF >$dummy.c
830 #undef CPU
831 #undef mips
832 #undef mipsel
833 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
834 CPU=mipsel
835 #else
836 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
837 CPU=mips
838 #else
839 CPU=
840 #endif
841 #endif
843 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
844 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
846 mips64:Linux:*:*)
847 eval $set_cc_for_build
848 sed 's/^ //' << EOF >$dummy.c
849 #undef CPU
850 #undef mips64
851 #undef mips64el
852 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
853 CPU=mips64el
854 #else
855 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
856 CPU=mips64
857 #else
858 CPU=
859 #endif
860 #endif
862 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
863 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
865 ppc:Linux:*:*)
866 echo powerpc-unknown-linux-gnu
867 exit 0 ;;
868 ppc64:Linux:*:*)
869 echo powerpc64-unknown-linux-gnu
870 exit 0 ;;
871 alpha:Linux:*:*)
872 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
873 EV5) UNAME_MACHINE=alphaev5 ;;
874 EV56) UNAME_MACHINE=alphaev56 ;;
875 PCA56) UNAME_MACHINE=alphapca56 ;;
876 PCA57) UNAME_MACHINE=alphapca56 ;;
877 EV6) UNAME_MACHINE=alphaev6 ;;
878 EV67) UNAME_MACHINE=alphaev67 ;;
879 EV68*) UNAME_MACHINE=alphaev68 ;;
880 esac
881 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
882 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
883 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
884 exit 0 ;;
885 parisc:Linux:*:* | hppa:Linux:*:*)
886 # Look for CPU level
887 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
888 PA7*) echo hppa1.1-unknown-linux-gnu ;;
889 PA8*) echo hppa2.0-unknown-linux-gnu ;;
890 *) echo hppa-unknown-linux-gnu ;;
891 esac
892 exit 0 ;;
893 parisc64:Linux:*:* | hppa64:Linux:*:*)
894 echo hppa64-unknown-linux-gnu
895 exit 0 ;;
896 s390:Linux:*:* | s390x:Linux:*:*)
897 echo ${UNAME_MACHINE}-ibm-linux
898 exit 0 ;;
899 sh*:Linux:*:*)
900 echo ${UNAME_MACHINE}-unknown-linux-gnu
901 exit 0 ;;
902 sparc:Linux:*:* | sparc64:Linux:*:*)
903 echo ${UNAME_MACHINE}-unknown-linux-gnu
904 exit 0 ;;
905 x86_64:Linux:*:*)
906 echo x86_64-unknown-linux-gnu
907 exit 0 ;;
908 i*86:Linux:*:*)
909 # The BFD linker knows what the default object file format is, so
910 # first see if it will tell us. cd to the root directory to prevent
911 # problems with other programs or directories called `ld' in the path.
912 # Set LC_ALL=C to ensure ld outputs messages in English.
913 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
914 | sed -ne '/supported targets:/!d
915 s/[ ][ ]*/ /g
916 s/.*supported targets: *//
917 s/ .*//
919 case "$ld_supported_targets" in
920 elf32-i386)
921 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
923 a.out-i386-linux)
924 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
925 exit 0 ;;
926 coff-i386)
927 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
928 exit 0 ;;
930 # Either a pre-BFD a.out linker (linux-gnuoldld) or
931 # one that does not give us useful --help.
932 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
933 exit 0 ;;
934 esac
935 # Determine whether the default compiler is a.out or elf
936 eval $set_cc_for_build
937 sed 's/^ //' << EOF >$dummy.c
938 #include <features.h>
939 #ifdef __ELF__
940 # ifdef __GLIBC__
941 # if __GLIBC__ >= 2
942 LIBC=gnu
943 # else
944 LIBC=gnulibc1
945 # endif
946 # else
947 LIBC=gnulibc1
948 # endif
949 #else
950 #ifdef __INTEL_COMPILER
951 LIBC=gnu
952 #else
953 LIBC=gnuaout
954 #endif
955 #endif
957 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
958 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
959 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
961 i*86:DYNIX/ptx:4*:*)
962 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
963 # earlier versions are messed up and put the nodename in both
964 # sysname and nodename.
965 echo i386-sequent-sysv4
966 exit 0 ;;
967 i*86:UNIX_SV:4.2MP:2.*)
968 # Unixware is an offshoot of SVR4, but it has its own version
969 # number series starting with 2...
970 # I am not positive that other SVR4 systems won't match this,
971 # I just have to hope. -- rms.
972 # Use sysv4.2uw... so that sysv4* matches it.
973 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
974 exit 0 ;;
975 i*86:OS/2:*:*)
976 # If we were able to find `uname', then EMX Unix compatibility
977 # is probably installed.
978 echo ${UNAME_MACHINE}-pc-os2-emx
979 exit 0 ;;
980 i*86:XTS-300:*:STOP)
981 echo ${UNAME_MACHINE}-unknown-stop
982 exit 0 ;;
983 i*86:atheos:*:*)
984 echo ${UNAME_MACHINE}-unknown-atheos
985 exit 0 ;;
986 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
987 echo i386-unknown-lynxos${UNAME_RELEASE}
988 exit 0 ;;
989 i*86:*DOS:*:*)
990 echo ${UNAME_MACHINE}-pc-msdosdjgpp
991 exit 0 ;;
992 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
993 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
994 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
995 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
996 else
997 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
999 exit 0 ;;
1000 i*86:*:5:[78]*)
1001 case `/bin/uname -X | grep "^Machine"` in
1002 *486*) UNAME_MACHINE=i486 ;;
1003 *Pentium) UNAME_MACHINE=i586 ;;
1004 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1005 esac
1006 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1007 exit 0 ;;
1008 i*86:*:3.2:*)
1009 if test -f /usr/options/cb.name; then
1010 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1011 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1012 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1013 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1014 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1015 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1016 && UNAME_MACHINE=i586
1017 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1018 && UNAME_MACHINE=i686
1019 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1020 && UNAME_MACHINE=i686
1021 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1022 else
1023 echo ${UNAME_MACHINE}-pc-sysv32
1025 exit 0 ;;
1026 pc:*:*:*)
1027 # Left here for compatibility:
1028 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1029 # the processor, so we play safe by assuming i386.
1030 echo i386-pc-msdosdjgpp
1031 exit 0 ;;
1032 Intel:Mach:3*:*)
1033 echo i386-pc-mach3
1034 exit 0 ;;
1035 paragon:*:*:*)
1036 echo i860-intel-osf1
1037 exit 0 ;;
1038 i860:*:4.*:*) # i860-SVR4
1039 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1040 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1041 else # Add other i860-SVR4 vendors below as they are discovered.
1042 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1044 exit 0 ;;
1045 mini*:CTIX:SYS*5:*)
1046 # "miniframe"
1047 echo m68010-convergent-sysv
1048 exit 0 ;;
1049 mc68k:UNIX:SYSTEM5:3.51m)
1050 echo m68k-convergent-sysv
1051 exit 0 ;;
1052 M680?0:D-NIX:5.3:*)
1053 echo m68k-diab-dnix
1054 exit 0 ;;
1055 M68*:*:R3V[567]*:*)
1056 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1057 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0)
1058 OS_REL=''
1059 test -r /etc/.relid \
1060 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1061 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1062 && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1063 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1064 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1065 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1066 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1067 && echo i486-ncr-sysv4 && exit 0 ;;
1068 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1069 echo m68k-unknown-lynxos${UNAME_RELEASE}
1070 exit 0 ;;
1071 mc68030:UNIX_System_V:4.*:*)
1072 echo m68k-atari-sysv4
1073 exit 0 ;;
1074 TSUNAMI:LynxOS:2.*:*)
1075 echo sparc-unknown-lynxos${UNAME_RELEASE}
1076 exit 0 ;;
1077 rs6000:LynxOS:2.*:*)
1078 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1079 exit 0 ;;
1080 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1081 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1082 exit 0 ;;
1083 SM[BE]S:UNIX_SV:*:*)
1084 echo mips-dde-sysv${UNAME_RELEASE}
1085 exit 0 ;;
1086 RM*:ReliantUNIX-*:*:*)
1087 echo mips-sni-sysv4
1088 exit 0 ;;
1089 RM*:SINIX-*:*:*)
1090 echo mips-sni-sysv4
1091 exit 0 ;;
1092 *:SINIX-*:*:*)
1093 if uname -p 2>/dev/null >/dev/null ; then
1094 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1095 echo ${UNAME_MACHINE}-sni-sysv4
1096 else
1097 echo ns32k-sni-sysv
1099 exit 0 ;;
1100 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1101 # says <Richard.M.Bartel@ccMail.Census.GOV>
1102 echo i586-unisys-sysv4
1103 exit 0 ;;
1104 *:UNIX_System_V:4*:FTX*)
1105 # From Gerald Hewes <hewes@openmarket.com>.
1106 # How about differentiating between stratus architectures? -djm
1107 echo hppa1.1-stratus-sysv4
1108 exit 0 ;;
1109 *:*:*:FTX*)
1110 # From seanf@swdc.stratus.com.
1111 echo i860-stratus-sysv4
1112 exit 0 ;;
1113 *:VOS:*:*)
1114 # From Paul.Green@stratus.com.
1115 echo hppa1.1-stratus-vos
1116 exit 0 ;;
1117 mc68*:A/UX:*:*)
1118 echo m68k-apple-aux${UNAME_RELEASE}
1119 exit 0 ;;
1120 news*:NEWS-OS:6*:*)
1121 echo mips-sony-newsos6
1122 exit 0 ;;
1123 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1124 if [ -d /usr/nec ]; then
1125 echo mips-nec-sysv${UNAME_RELEASE}
1126 else
1127 echo mips-unknown-sysv${UNAME_RELEASE}
1129 exit 0 ;;
1130 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1131 echo powerpc-be-beos
1132 exit 0 ;;
1133 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1134 echo powerpc-apple-beos
1135 exit 0 ;;
1136 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1137 echo i586-pc-beos
1138 exit 0 ;;
1139 SX-4:SUPER-UX:*:*)
1140 echo sx4-nec-superux${UNAME_RELEASE}
1141 exit 0 ;;
1142 SX-5:SUPER-UX:*:*)
1143 echo sx5-nec-superux${UNAME_RELEASE}
1144 exit 0 ;;
1145 SX-6:SUPER-UX:*:*)
1146 echo sx6-nec-superux${UNAME_RELEASE}
1147 exit 0 ;;
1148 Power*:Rhapsody:*:*)
1149 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1150 exit 0 ;;
1151 *:Rhapsody:*:*)
1152 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1153 exit 0 ;;
1154 *:Darwin:*:*)
1155 echo `uname -p`-apple-darwin${UNAME_RELEASE}
1156 exit 0 ;;
1157 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1158 UNAME_PROCESSOR=`uname -p`
1159 if test "$UNAME_PROCESSOR" = "x86"; then
1160 UNAME_PROCESSOR=i386
1161 UNAME_MACHINE=pc
1163 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1164 exit 0 ;;
1165 *:QNX:*:4*)
1166 echo i386-pc-qnx
1167 exit 0 ;;
1168 NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
1169 echo nsr-tandem-nsk${UNAME_RELEASE}
1170 exit 0 ;;
1171 *:NonStop-UX:*:*)
1172 echo mips-compaq-nonstopux
1173 exit 0 ;;
1174 BS2000:POSIX*:*:*)
1175 echo bs2000-siemens-sysv
1176 exit 0 ;;
1177 DS/*:UNIX_System_V:*:*)
1178 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1179 exit 0 ;;
1180 *:Plan9:*:*)
1181 # "uname -m" is not consistent, so use $cputype instead. 386
1182 # is converted to i386 for consistency with other x86
1183 # operating systems.
1184 if test "$cputype" = "386"; then
1185 UNAME_MACHINE=i386
1186 else
1187 UNAME_MACHINE="$cputype"
1189 echo ${UNAME_MACHINE}-unknown-plan9
1190 exit 0 ;;
1191 *:TOPS-10:*:*)
1192 echo pdp10-unknown-tops10
1193 exit 0 ;;
1194 *:TENEX:*:*)
1195 echo pdp10-unknown-tenex
1196 exit 0 ;;
1197 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1198 echo pdp10-dec-tops20
1199 exit 0 ;;
1200 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1201 echo pdp10-xkl-tops20
1202 exit 0 ;;
1203 *:TOPS-20:*:*)
1204 echo pdp10-unknown-tops20
1205 exit 0 ;;
1206 *:ITS:*:*)
1207 echo pdp10-unknown-its
1208 exit 0 ;;
1209 esac
1211 #echo '(No uname command or uname output not recognized.)' 1>&2
1212 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1214 eval $set_cc_for_build
1215 cat >$dummy.c <<EOF
1216 #ifdef _SEQUENT_
1217 # include <sys/types.h>
1218 # include <sys/utsname.h>
1219 #endif
1220 main ()
1222 #if defined (sony)
1223 #if defined (MIPSEB)
1224 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1225 I don't know.... */
1226 printf ("mips-sony-bsd\n"); exit (0);
1227 #else
1228 #include <sys/param.h>
1229 printf ("m68k-sony-newsos%s\n",
1230 #ifdef NEWSOS4
1232 #else
1234 #endif
1235 ); exit (0);
1236 #endif
1237 #endif
1239 #if defined (__arm) && defined (__acorn) && defined (__unix)
1240 printf ("arm-acorn-riscix"); exit (0);
1241 #endif
1243 #if defined (hp300) && !defined (hpux)
1244 printf ("m68k-hp-bsd\n"); exit (0);
1245 #endif
1247 #if defined (NeXT)
1248 #if !defined (__ARCHITECTURE__)
1249 #define __ARCHITECTURE__ "m68k"
1250 #endif
1251 int version;
1252 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1253 if (version < 4)
1254 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1255 else
1256 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1257 exit (0);
1258 #endif
1260 #if defined (MULTIMAX) || defined (n16)
1261 #if defined (UMAXV)
1262 printf ("ns32k-encore-sysv\n"); exit (0);
1263 #else
1264 #if defined (CMU)
1265 printf ("ns32k-encore-mach\n"); exit (0);
1266 #else
1267 printf ("ns32k-encore-bsd\n"); exit (0);
1268 #endif
1269 #endif
1270 #endif
1272 #if defined (__386BSD__)
1273 printf ("i386-pc-bsd\n"); exit (0);
1274 #endif
1276 #if defined (sequent)
1277 #if defined (i386)
1278 printf ("i386-sequent-dynix\n"); exit (0);
1279 #endif
1280 #if defined (ns32000)
1281 printf ("ns32k-sequent-dynix\n"); exit (0);
1282 #endif
1283 #endif
1285 #if defined (_SEQUENT_)
1286 struct utsname un;
1288 uname(&un);
1290 if (strncmp(un.version, "V2", 2) == 0) {
1291 printf ("i386-sequent-ptx2\n"); exit (0);
1293 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1294 printf ("i386-sequent-ptx1\n"); exit (0);
1296 printf ("i386-sequent-ptx\n"); exit (0);
1298 #endif
1300 #if defined (vax)
1301 # if !defined (ultrix)
1302 # include <sys/param.h>
1303 # if defined (BSD)
1304 # if BSD == 43
1305 printf ("vax-dec-bsd4.3\n"); exit (0);
1306 # else
1307 # if BSD == 199006
1308 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1309 # else
1310 printf ("vax-dec-bsd\n"); exit (0);
1311 # endif
1312 # endif
1313 # else
1314 printf ("vax-dec-bsd\n"); exit (0);
1315 # endif
1316 # else
1317 printf ("vax-dec-ultrix\n"); exit (0);
1318 # endif
1319 #endif
1321 #if defined (alliant) && defined (i860)
1322 printf ("i860-alliant-bsd\n"); exit (0);
1323 #endif
1325 exit (1);
1329 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
1331 # Apollos put the system type in the environment.
1333 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1335 # Convex versions that predate uname can use getsysinfo(1)
1337 if [ -x /usr/convex/getsysinfo ]
1338 then
1339 case `getsysinfo -f cpu_type` in
1340 c1*)
1341 echo c1-convex-bsd
1342 exit 0 ;;
1343 c2*)
1344 if getsysinfo -f scalar_acc
1345 then echo c32-convex-bsd
1346 else echo c2-convex-bsd
1348 exit 0 ;;
1349 c34*)
1350 echo c34-convex-bsd
1351 exit 0 ;;
1352 c38*)
1353 echo c38-convex-bsd
1354 exit 0 ;;
1355 c4*)
1356 echo c4-convex-bsd
1357 exit 0 ;;
1358 esac
1361 cat >&2 <<EOF
1362 $0: unable to guess system type
1364 This script, last modified $timestamp, has failed to recognize
1365 the operating system you are using. It is advised that you
1366 download the most up to date version of the config scripts from
1368 ftp://ftp.gnu.org/pub/gnu/config/
1370 If the version you run ($0) is already up to date, please
1371 send the following data and any information you think might be
1372 pertinent to <config-patches@gnu.org> in order to provide the needed
1373 information to handle your system.
1375 config.guess timestamp = $timestamp
1377 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1378 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1379 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1380 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1382 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1383 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1385 hostinfo = `(hostinfo) 2>/dev/null`
1386 /bin/universe = `(/bin/universe) 2>/dev/null`
1387 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1388 /bin/arch = `(/bin/arch) 2>/dev/null`
1389 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1390 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1392 UNAME_MACHINE = ${UNAME_MACHINE}
1393 UNAME_RELEASE = ${UNAME_RELEASE}
1394 UNAME_SYSTEM = ${UNAME_SYSTEM}
1395 UNAME_VERSION = ${UNAME_VERSION}
1398 exit 1
1400 # Local variables:
1401 # eval: (add-hook 'write-file-hooks 'time-stamp)
1402 # time-stamp-start: "timestamp='"
1403 # time-stamp-format: "%:y-%02m-%02d"
1404 # time-stamp-end: "'"
1405 # End: