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