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