source: trunk/third/libao/config.guess @ 22079

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