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