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