source: trunk/third/bind/config.guess @ 21744

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