]> git.ipfire.org Git - thirdparty/glibc.git/blame - scripts/config.guess
Update.
[thirdparty/glibc.git] / scripts / config.guess
CommitLineData
28f540f4
RM
1#! /bin/sh
2# Attempt to guess a canonical system name.
13895d1d 3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
5d4f57bd 4# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
3bc88c40 5
ad316adf 6timestamp='2003-06-06'
3bc88c40 7
28f540f4
RM
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
d144e1d2 20# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28f540f4
RM
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
13895d1d
AJ
27# Originally written by Per Bothner <per@bothner.com>.
28# Please send patches to <config-patches@gnu.org>. Submit a context
29# diff and a properly formatted ChangeLog entry.
28f540f4
RM
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
98f8cdf0 36# don't specify an explicit build system type.
28f540f4 37
3bc88c40
AJ
38me=`echo "$0" | sed -e 's,.*/,,'`
39
40usage="\
41Usage: $0 [OPTION]
42
98f8cdf0 43Output the configuration name of the system \`$me' is run on.
3bc88c40
AJ
44
45Operation modes:
98f8cdf0
AJ
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.
13895d1d 56Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
98f8cdf0
AJ
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."
3bc88c40
AJ
61
62help="
63Try \`$me --help' for more information."
64
65# Parse command line
66while test $# -gt 0 ; do
98f8cdf0
AJ
67 case $1 in
68 --time-stamp | --time* | -t )
69 echo "$timestamp" ; exit 0 ;;
70 --version | -v )
3bc88c40
AJ
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 -* )
98f8cdf0 79 echo "$me: invalid option $1$help" >&2
3bc88c40
AJ
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
13895d1d 91trap 'exit 1' 1 2 15
bda5433d 92
13895d1d
AJ
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.
bda5433d 97
98f8cdf0
AJ
98# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
99# use `HOST_CC' if defined, but it is deprecated.
19b6575a 100
5d4f57bd 101# Portable tmp directory creation inspired by the Autoconf team.
13895d1d 102
5d4f57bd
UD
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) ; } ||
ad316adf 109 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
5d4f57bd
UD
110 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
111dummy=$tmp/dummy ;
112tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
98f8cdf0 113case $CC_FOR_BUILD,$HOST_CC,$CC in
13895d1d
AJ
114 ,,) echo "int x;" > $dummy.c ;
115 for c in cc gcc c89 c99 ; do
5d4f57bd 116 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
13895d1d
AJ
117 CC_FOR_BUILD="$c"; break ;
118 fi ;
119 done ;
98f8cdf0 120 if test x"$CC_FOR_BUILD" = x ; then
13895d1d 121 CC_FOR_BUILD=no_compiler_found ;
98f8cdf0
AJ
122 fi
123 ;;
124 ,,*) CC_FOR_BUILD=$CC ;;
125 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
5d4f57bd 126esac ;'
19b6575a 127
28f540f4 128# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
13895d1d 129# (ghazi@noc.rutgers.edu 1994-08-24)
28f540f4
RM
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
98f8cdf0 136UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
28f540f4
RM
137UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
138
28f540f4
RM
139# Note: order is significant - the case branches are not exclusive.
140
141case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
7626e16c 142 *:NetBSD:*:*)
13895d1d 143 # NetBSD (nbsd) targets should (where applicable) match one or
7626e16c
AJ
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.
13895d1d
AJ
150 #
151 # Note: NetBSD doesn't particularly care about the vendor
152 # portion of the name. We always set it to "unknown".
153 sysctl="sysctl -n hw.machine_arch"
154 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
155 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
156 case "${UNAME_MACHINE_ARCH}" in
157 armeb) machine=armeb-unknown ;;
158 arm*) machine=arm-unknown ;;
159 sh3el) machine=shl-unknown ;;
160 sh3eb) machine=sh-unknown ;;
161 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
7626e16c 162 esac
98f8cdf0
AJ
163 # The Operating System including object format, if it has switched
164 # to ELF recently, or will in the future.
13895d1d
AJ
165 case "${UNAME_MACHINE_ARCH}" in
166 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
167 eval $set_cc_for_build
98f8cdf0
AJ
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
7626e16c 182 # The OS release
5d4f57bd
UD
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
7626e16c
AJ
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 ;;
13895d1d
AJ
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 ;;
28f540f4 239 alpha:OSF1:*:*)
9a0a462c
UD
240 if test $UNAME_RELEASE = "V4.0"; then
241 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
242 fi
5d4f57bd
UD
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
147e6009
PB
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.
28f540f4 283 # 1.2 uses "1.2" for uname -r.
19b6575a
UD
284 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
285 exit 0 ;;
286 Alpha\ *:Windows_NT*:*)
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?
290 echo alpha-pc-interix
147e6009 291 exit 0 ;;
1577cd47
RK
292 21064:Windows_NT:50:3)
293 echo alpha-dec-winnt3.5
294 exit 0 ;;
889a9677 295 Amiga*:UNIX_System_V:4.0:*)
3bc88c40 296 echo m68k-unknown-sysv4
889a9677 297 exit 0;;
47c130e3
UD
298 *:[Aa]miga[Oo][Ss]:*:*)
299 echo ${UNAME_MACHINE}-unknown-amigaos
300 exit 0 ;;
13895d1d
AJ
301 *:[Mm]orph[Oo][Ss]:*:*)
302 echo ${UNAME_MACHINE}-unknown-morphos
9d8067d8 303 exit 0 ;;
4d3a563f
UD
304 *:OS/390:*:*)
305 echo i370-ibm-openedition
306 exit 0 ;;
28f540f4
RM
307 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
308 echo arm-acorn-riscix${UNAME_RELEASE}
309 exit 0;;
98f8cdf0 310 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
2ca1375a
DM
311 echo hppa1.1-hitachi-hiuxmpp
312 exit 0;;
19b6575a 313 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
d780e42f 314 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
28f540f4
RM
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 ;;
47c130e3 321 NILE*:*:*:dcosx)
d780e42f
DM
322 echo pyramid-pyramid-svr4
323 exit 0 ;;
5d4f57bd
UD
324 DRS?6000:unix:4.0:6*)
325 echo sparc-icl-nx6
326 exit 0 ;;
327 DRS?6000:UNIX_SV:4.2*:7*)
13895d1d
AJ
328 case `/usr/bin/uname -p` in
329 sparc) echo sparc-icl-nx7 && exit 0 ;;
330 esac ;;
47c130e3
UD
331 sun4H:SunOS:5.*:*)
332 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
333 exit 0 ;;
b296c233 334 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
28f540f4
RM
335 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
336 exit 0 ;;
63deb0e4 337 i86pc:SunOS:5.*:*)
20e77fa0 338 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
63deb0e4 339 exit 0 ;;
28f540f4
RM
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 ;;
3996f34b 358 sun*:*:4.2BSD:*)
13895d1d 359 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
3996f34b
UD
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 ;;
b296c233
PB
370 aushp:SunOS:*:*)
371 echo sparc-auspex-sunos${UNAME_RELEASE}
372 exit 0 ;;
19b6575a
UD
373 # The situation for MiNT is a little confusing. The machine name
374 # can be virtually everything (everything which is not
7626e16c 375 # "atarist" or "atariste" at least should have a processor
19b6575a
UD
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 ;;
aee321f4
DM
399 powerpc:machten:*:*)
400 echo powerpc-apple-machten${UNAME_RELEASE}
401 exit 0 ;;
b296c233
PB
402 RISC*:Mach:*:*)
403 echo mips-dec-mach_bsd4.3
404 exit 0 ;;
28f540f4
RM
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 ;;
19b6575a 411 2020:CLIX:*:* | 2430:CLIX:*:*)
51702635
UD
412 echo clipper-intergraph-clix${UNAME_RELEASE}
413 exit 0 ;;
caa9e37a 414 mips:*:*:UMIPS | mips:*:*:RISCos)
13895d1d 415 eval $set_cc_for_build
47c130e3 416 sed 's/^ //' << EOF >$dummy.c
19b6575a 417#ifdef __cplusplus
7626e16c 418#include <stdio.h> /* for printf() prototype */
19b6575a
UD
419 int main (int argc, char *argv[]) {
420#else
421 int main (argc, argv) int argc; char *argv[]; {
422#endif
caa9e37a
PB
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
5d4f57bd 437 $CC_FOR_BUILD -o $dummy $dummy.c \
13895d1d 438 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
5d4f57bd 439 && exit 0
60326989 440 echo mips-mips-riscos${UNAME_RELEASE}
28f540f4 441 exit 0 ;;
98f8cdf0
AJ
442 Motorola:PowerMAX_OS:*:*)
443 echo powerpc-motorola-powermax
444 exit 0 ;;
5d4f57bd
UD
445 Motorola:*:4.3:PL8-*)
446 echo powerpc-harris-powermax
447 exit 0 ;;
448 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
13895d1d
AJ
449 echo powerpc-harris-powermax
450 exit 0 ;;
d72d8b13
PB
451 Night_Hawk:Power_UNIX:*:*)
452 echo powerpc-harris-powerunix
453 exit 0 ;;
28f540f4
RM
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:*:*)
d2774288 464 # DG/UX returns AViiON for all architectures
147e6009 465 UNAME_PROCESSOR=`/usr/bin/uname -p`
7626e16c 466 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
4d3a563f
UD
467 then
468 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
469 [ ${TARGET_BINARY_INTERFACE}x = x ]
470 then
28f540f4 471 echo m88k-dg-dgux${UNAME_RELEASE}
4d3a563f 472 else
28f540f4 473 echo m88k-dg-dguxbcs${UNAME_RELEASE}
4d3a563f
UD
474 fi
475 else
476 echo i586-dg-dgux${UNAME_RELEASE}
28f540f4
RM
477 fi
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 ;;
d780e42f 495 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
28f540f4
RM
496 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
497 exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
98f8cdf0 498 i*86:AIX:*:*)
28f540f4
RM
499 echo i386-ibm-aix
500 exit 0 ;;
98f8cdf0
AJ
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 ;;
28f540f4
RM
509 *:AIX:2:3)
510 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
13895d1d 511 eval $set_cc_for_build
47c130e3 512 sed 's/^ //' << EOF >$dummy.c
28f540f4
RM
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
5d4f57bd 523 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
28f540f4
RM
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 ;;
98f8cdf0 531 *:AIX:*:[45])
13895d1d 532 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
98f8cdf0 533 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
28f540f4
RM
534 IBM_ARCH=rs6000
535 else
536 IBM_ARCH=powerpc
537 fi
e7233b09
RK
538 if [ -x /usr/bin/oslevel ] ; then
539 IBM_REV=`/usr/bin/oslevel`
28f540f4 540 else
98f8cdf0 541 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
28f540f4
RM
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 ;;
7626e16c 551 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
59dd8641 552 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
28f540f4
RM
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 ;;
47c130e3 566 9000/[34678]??:HP-UX:*:*)
bda5433d 567 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
28f540f4
RM
568 case "${UNAME_MACHINE}" in
569 9000/31? ) HP_ARCH=m68000 ;;
570 9000/[34]?? ) HP_ARCH=m68k ;;
19b6575a 571 9000/[678][0-9][0-9])
13895d1d
AJ
572 if [ -x /usr/bin/getconf ]; then
573 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
bda5433d
UD
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" ;;
13895d1d 582 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
bda5433d
UD
583 esac ;;
584 esac
13895d1d
AJ
585 fi
586 if [ "${HP_ARCH}" = "" ]; then
587 eval $set_cc_for_build
588 sed 's/^ //' << EOF >$dummy.c
7626e16c
AJ
589
590 #define _HPUX_SOURCE
47c130e3
UD
591 #include <stdlib.h>
592 #include <unistd.h>
0dbd5567 593
47c130e3
UD
594 int main ()
595 {
596 #if defined(_SC_KERNEL_BITS)
597 long bits = sysconf(_SC_KERNEL_BITS);
0dbd5567 598 #endif
47c130e3 599 long cpu = sysconf (_SC_CPU_VERSION);
0dbd5567
UD
600
601 switch (cpu)
47c130e3
UD
602 {
603 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
604 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
0dbd5567 605 case CPU_PA_RISC2_0:
47c130e3 606 #if defined(_SC_KERNEL_BITS)
0dbd5567 607 switch (bits)
47c130e3
UD
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;
0dbd5567 615 #endif
47c130e3
UD
616 default: puts ("hppa1.0"); break;
617 }
618 exit (0);
619 }
620EOF
5d4f57bd
UD
621 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
622 test -z "$HP_ARCH" && HP_ARCH=hppa
13895d1d 623 fi ;;
28f540f4 624 esac
5d4f57bd
UD
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
28f540f4
RM
636 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
637 exit 0 ;;
98f8cdf0
AJ
638 ia64:HP-UX:*:*)
639 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
640 echo ia64-hp-hpux${HPUX_REV}
641 exit 0 ;;
28f540f4 642 3050*:HI-UX:*:*)
13895d1d 643 eval $set_cc_for_build
47c130e3 644 sed 's/^ //' << EOF >$dummy.c
28f540f4
RM
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
5d4f57bd 669 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
28f540f4
RM
670 echo unknown-hitachi-hiuxwe2
671 exit 0 ;;
c90514fc 672 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
28f540f4
RM
673 echo hppa1.1-hp-bsd
674 exit 0 ;;
675 9000/8??:4.3bsd:*:*)
676 echo hppa1.0-hp-bsd
677 exit 0 ;;
13895d1d 678 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
19b6575a
UD
679 echo hppa1.0-hp-mpeix
680 exit 0 ;;
c90514fc 681 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
28f540f4
RM
682 echo hppa1.1-hp-osf
683 exit 0 ;;
684 hp8??:OSF1:*:*)
685 echo hppa1.0-hp-osf
686 exit 0 ;;
98f8cdf0 687 i*86:OSF1:*:*)
b296c233
PB
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 ;;
9266597a
MM
694 parisc*:Lites*:*:*)
695 echo hppa1.1-hp-lites
696 exit 0 ;;
28f540f4
RM
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 ;;
103c293f 715 CRAY*Y-MP:*:*:*)
13895d1d 716 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
7ae36808 717 exit 0 ;;
939d5646
TG
718 CRAY*[A-Z]90:*:*:*)
719 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
32706074 720 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
13895d1d
AJ
721 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
722 -e 's/\.[^.]*$/.X/'
7ae36808 723 exit 0 ;;
f155a595 724 CRAY*TS:*:*:*)
7626e16c 725 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
f155a595 726 exit 0 ;;
bda5433d
UD
727 CRAY*T3E:*:*:*)
728 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
729 exit 0 ;;
7626e16c
AJ
730 CRAY*SV1:*:*:*)
731 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
47c130e3 732 exit 0 ;;
5d4f57bd
UD
733 *:UNICOS/mp:*:*)
734 echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
735 exit 0 ;;
98f8cdf0
AJ
736 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
737 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
19b6575a 738 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
b296c233 739 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
98f8cdf0 740 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
b296c233 741 exit 0 ;;
98f8cdf0 742 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
20e77fa0 743 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
28f540f4 744 exit 0 ;;
19b6575a
UD
745 sparc*:BSD/OS:*:*)
746 echo sparc-unknown-bsdi${UNAME_RELEASE}
747 exit 0 ;;
47c130e3
UD
748 *:BSD/OS:*:*)
749 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
750 exit 0 ;;
5d4f57bd 751 *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
13895d1d
AJ
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=`
13895d1d 763 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
d780e42f 764 exit 0 ;;
a7cb7644 765 i*:CYGWIN*:*)
47c130e3 766 echo ${UNAME_MACHINE}-pc-cygwin
a7cb7644 767 exit 0 ;;
5ae3e846 768 i*:MINGW*:*)
47c130e3 769 echo ${UNAME_MACHINE}-pc-mingw32
5ae3e846 770 exit 0 ;;
3bc88c40
AJ
771 i*:PW*:*)
772 echo ${UNAME_MACHINE}-pc-pw32
773 exit 0 ;;
ad316adf
UD
774 x86:Interix*:[34]*)
775 echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
5d4f57bd
UD
776 exit 0 ;;
777 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
778 echo i${UNAME_MACHINE}-pc-mks
13895d1d 779 exit 0 ;;
19b6575a
UD
780 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
781 # How do we know it's Interix rather than the generic POSIX subsystem?
782 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
783 # UNAME_MACHINE based on the output of uname instead of i386?
5d4f57bd 784 echo i586-pc-interix
19b6575a
UD
785 exit 0 ;;
786 i*:UWIN*:*)
787 echo ${UNAME_MACHINE}-pc-uwin
788 exit 0 ;;
a7cb7644 789 p*:CYGWIN*:*)
47c130e3 790 echo powerpcle-unknown-cygwin
a7cb7644 791 exit 0 ;;
2e6878f7
MM
792 prep*:SunOS:5.*:*)
793 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
794 exit 0 ;;
28f540f4 795 *:GNU:*:*)
43b0e40f 796 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
28f540f4 797 exit 0 ;;
3bc88c40
AJ
798 i*86:Minix:*:*)
799 echo ${UNAME_MACHINE}-pc-minix
800 exit 0 ;;
98f8cdf0
AJ
801 arm*:Linux:*:*)
802 echo ${UNAME_MACHINE}-unknown-linux-gnu
803 exit 0 ;;
5d4f57bd
UD
804 cris:Linux:*:*)
805 echo cris-axis-linux-gnu
806 exit 0 ;;
98f8cdf0 807 ia64:Linux:*:*)
13895d1d 808 echo ${UNAME_MACHINE}-unknown-linux-gnu
98f8cdf0
AJ
809 exit 0 ;;
810 m68*:Linux:*:*)
811 echo ${UNAME_MACHINE}-unknown-linux-gnu
812 exit 0 ;;
813 mips:Linux:*:*)
13895d1d
AJ
814 eval $set_cc_for_build
815 sed 's/^ //' << EOF >$dummy.c
816 #undef CPU
817 #undef mips
818 #undef mipsel
819 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
820 CPU=mipsel
821 #else
822 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
823 CPU=mips
824 #else
825 CPU=
826 #endif
827 #endif
98f8cdf0 828EOF
13895d1d 829 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
5d4f57bd
UD
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=`
849 test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
98f8cdf0
AJ
850 ;;
851 ppc:Linux:*:*)
13895d1d
AJ
852 echo powerpc-unknown-linux-gnu
853 exit 0 ;;
854 ppc64:Linux:*:*)
855 echo powerpc64-unknown-linux-gnu
98f8cdf0
AJ
856 exit 0 ;;
857 alpha:Linux:*:*)
13895d1d
AJ
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
98f8cdf0
AJ
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.
13895d1d
AJ
898 # Set LC_ALL=C to ensure ld outputs messages in English.
899 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
900 | sed -ne '/supported targets:/!d
98f8cdf0 901 s/[ ][ ]*/ /g
13895d1d 902 s/.*supported targets: *//
98f8cdf0
AJ
903 s/ .*//
904 p'`
13895d1d
AJ
905 case "$ld_supported_targets" in
906 elf32-i386)
98f8cdf0
AJ
907 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
908 ;;
13895d1d
AJ
909 a.out-i386-linux)
910 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
5d4f57bd 911 exit 0 ;;
13895d1d 912 coff-i386)
98f8cdf0 913 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
13895d1d
AJ
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 ;;
98f8cdf0
AJ
920 esac
921 # Determine whether the default compiler is a.out or elf
13895d1d
AJ
922 eval $set_cc_for_build
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
936 #ifdef __INTEL_COMPILER
937 LIBC=gnu
938 #else
939 LIBC=gnuaout
940 #endif
941 #endif
9266597a 942EOF
13895d1d 943 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
13895d1d 944 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
98f8cdf0
AJ
945 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
946 ;;
98f8cdf0 947 i*86:DYNIX/ptx:4*:*)
13895d1d
AJ
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.
28f540f4
RM
951 echo i386-sequent-sysv4
952 exit 0 ;;
98f8cdf0 953 i*86:UNIX_SV:4.2MP:2.*)
9c2322bc
UD
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 ;;
5d4f57bd
UD
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 ;;
98f8cdf0 978 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
4d3a563f 979 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
28f540f4 980 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
4d3a563f 981 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
28f540f4 982 else
4d3a563f 983 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
28f540f4
RM
984 fi
985 exit 0 ;;
13895d1d
AJ
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}
19b6575a 993 exit 0 ;;
98f8cdf0 994 i*86:*:3.2:*)
820bd50c
RK
995 if test -f /usr/options/cb.name; then
996 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
20e77fa0 997 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
820bd50c 998 elif /bin/uname -X 2>/dev/null >/dev/null ; then
13895d1d
AJ
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) \
8e2e98a2 1002 && UNAME_MACHINE=i586
13895d1d 1003 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
19b6575a 1004 && UNAME_MACHINE=i686
13895d1d 1005 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
19b6575a 1006 && UNAME_MACHINE=i686
20e77fa0 1007 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
28f540f4 1008 else
20e77fa0 1009 echo ${UNAME_MACHINE}-pc-sysv32
28f540f4
RM
1010 fi
1011 exit 0 ;;
907a1bac 1012 pc:*:*:*)
7626e16c 1013 # Left here for compatibility:
907a1bac
UD
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 ;;
28f540f4 1018 Intel:Mach:3*:*)
20e77fa0 1019 echo i386-pc-mach3
28f540f4
RM
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 ;;
5d4f57bd
UD
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 ;;
4398fea0 1041 M68*:*:R3V[567]*:*)
28f540f4 1042 test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
5d4f57bd 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)
b296c233
PB
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 ;;
28f540f4 1051 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
b296c233 1052 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
28f540f4 1053 && echo i486-ncr-sysv4 && exit 0 ;;
98f8cdf0 1054 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
d780e42f 1055 echo m68k-unknown-lynxos${UNAME_RELEASE}
28f540f4
RM
1056 exit 0 ;;
1057 mc68030:UNIX_System_V:4.*:*)
1058 echo m68k-atari-sysv4
1059 exit 0 ;;
d780e42f
DM
1060 TSUNAMI:LynxOS:2.*:*)
1061 echo sparc-unknown-lynxos${UNAME_RELEASE}
28f540f4 1062 exit 0 ;;
98f8cdf0 1063 rs6000:LynxOS:2.*:*)
d780e42f 1064 echo rs6000-unknown-lynxos${UNAME_RELEASE}
28f540f4 1065 exit 0 ;;
98f8cdf0
AJ
1066 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1067 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1068 exit 0 ;;
b296c233
PB
1069 SM[BE]S:UNIX_SV:*:*)
1070 echo mips-dde-sysv${UNAME_RELEASE}
1071 exit 0 ;;
19b6575a
UD
1072 RM*:ReliantUNIX-*:*:*)
1073 echo mips-sni-sysv4
1074 exit 0 ;;
28f540f4
RM
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 ;;
13895d1d
AJ
1086 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1087 # says <Richard.M.Bartel@ccMail.Census.GOV>
42054ddb
RK
1088 echo i586-unisys-sysv4
1089 exit 0 ;;
d780e42f
DM
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 ;;
13895d1d
AJ
1099 *:VOS:*:*)
1100 # From Paul.Green@stratus.com.
1101 echo hppa1.1-stratus-vos
1102 exit 0 ;;
4505e8c1
I
1103 mc68*:A/UX:*:*)
1104 echo m68k-apple-aux${UNAME_RELEASE}
1105 exit 0 ;;
3bc88c40 1106 news*:NEWS-OS:6*:*)
f9a73ae1
UD
1107 echo mips-sony-newsos6
1108 exit 0 ;;
19b6575a 1109 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
e5ba41ce
I
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 ;;
47c130e3
UD
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 ;;
1122 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1123 echo i586-pc-beos
1124 exit 0 ;;
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 ;;
5d4f57bd
UD
1131 SX-6:SUPER-UX:*:*)
1132 echo sx6-nec-superux${UNAME_RELEASE}
1133 exit 0 ;;
47c130e3
UD
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 ;;
7626e16c 1140 *:Darwin:*:*)
5d4f57bd
UD
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}
7626e16c
AJ
1146 exit 0 ;;
1147 *:procnto*:*:* | *:QNX:[0123456789]*:*)
13895d1d
AJ
1148 UNAME_PROCESSOR=`uname -p`
1149 if test "$UNAME_PROCESSOR" = "x86"; then
1150 UNAME_PROCESSOR=i386
7626e16c
AJ
1151 UNAME_MACHINE=pc
1152 fi
13895d1d 1153 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
7626e16c 1154 exit 0 ;;
4d3a563f 1155 *:QNX:*:4*)
7626e16c
AJ
1156 echo i386-pc-qnx
1157 exit 0 ;;
5d4f57bd 1158 NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
7626e16c
AJ
1159 echo nsr-tandem-nsk${UNAME_RELEASE}
1160 exit 0 ;;
bda5433d
UD
1161 *:NonStop-UX:*:*)
1162 echo mips-compaq-nonstopux
1163 exit 0 ;;
7626e16c
AJ
1164 BS2000:POSIX*:*:*)
1165 echo bs2000-siemens-sysv
1166 exit 0 ;;
1167 DS/*:UNIX_System_V:*:*)
1168 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
4d3a563f 1169 exit 0 ;;
3bc88c40
AJ
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 ;;
98f8cdf0
AJ
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 ;;
28f540f4
RM
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
13895d1d 1204eval $set_cc_for_build
47c130e3 1205cat >$dummy.c <<EOF
e7233b09
RK
1206#ifdef _SEQUENT_
1207# include <sys/types.h>
1208# include <sys/utsname.h>
1209#endif
28f540f4
RM
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`;
47c130e3
UD
1243 if (version < 4)
1244 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1245 else
1246 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
28f540f4
RM
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__)
20e77fa0 1263 printf ("i386-pc-bsd\n"); exit (0);
28f540f4
RM
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_)
e7233b09
RK
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
28f540f4
RM
1288#endif
1289
1290#if defined (vax)
98f8cdf0
AJ
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
28f540f4
RM
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
5d4f57bd 1319$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
28f540f4
RM
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
3bc88c40
AJ
1351cat >&2 <<EOF
1352$0: unable to guess system type
1353
98f8cdf0
AJ
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
3bc88c40
AJ
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
98f8cdf0 1365config.guess timestamp = $timestamp
3bc88c40
AJ
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
28f540f4
RM
1387
1388exit 1
3bc88c40
AJ
1389
1390# Local variables:
1391# eval: (add-hook 'write-file-hooks 'time-stamp)
98f8cdf0 1392# time-stamp-start: "timestamp='"
3bc88c40
AJ
1393# time-stamp-format: "%:y-%02m-%02d"
1394# time-stamp-end: "'"
1395# End: