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