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