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