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