source: trunk/third/binutils/config.guess @ 21000

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