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