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