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