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