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