source: trunk/third/libgnome/config.guess @ 21494

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