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