source: trunk/third/autoconf/config.guess @ 13391

Revision 13391, 26.1 KB checked in by ghudson, 25 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r13390, 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, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
4#
5# This file is free software; you can redistribute it and/or modify it
6# under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful, but
11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13# General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18#
19# As a special exception to the GNU General Public License, if you
20# distribute this file as part of a program that contains a
21# configuration script generated by Autoconf, you may include it under
22# the same distribution terms that you use for the rest of that program.
23
24# Written by Per Bothner <bothner@cygnus.com>.
25# The master version of this file is at the FSF in /home/gd/gnu/lib.
26#
27# This script attempts to guess a canonical system name similar to
28# config.sub.  If it succeeds, it prints the system name on stdout, and
29# exits with 0.  Otherwise, it exits with 1.
30#
31# The plan is that this can be called by configure scripts if you
32# don't specify an explicit system type (host/target name).
33#
34# Only a few systems have been added to this list; please add others
35# (but try to keep the structure clean).
36#
37
38# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
39# (ghazi@noc.rutgers.edu 8/24/94.)
40if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
41        PATH=$PATH:/.attbin ; export PATH
42fi
43
44UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
45UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
46UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
47UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
48
49trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
50
51# Note: order is significant - the case branches are not exclusive.
52
53case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
54    alpha:OSF1:*:*)
55        if test $UNAME_RELEASE = "V4.0"; then
56                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
57        fi
58        # A Vn.n version is a released version.
59        # A Tn.n version is a released field test version.
60        # A Xn.n version is an unreleased experimental baselevel.
61        # 1.2 uses "1.2" for uname -r.
62        cat <<EOF >dummy.s
63        .globl main
64        .ent main
65main:
66        .frame \$30,0,\$26,0
67        .prologue 0
68        .long 0x47e03d80 # implver $0
69        lda \$2,259
70        .long 0x47e20c21 # amask $2,$1
71        srl \$1,8,\$2
72        sll \$2,2,\$2
73        sll \$0,3,\$0
74        addl \$1,\$0,\$0
75        addl \$2,\$0,\$0
76        ret \$31,(\$26),1
77        .end main
78EOF
79        ${CC-cc} dummy.s -o dummy 2>/dev/null
80        if test "$?" = 0 ; then
81                ./dummy
82                case "$?" in
83                        7)
84                                UNAME_MACHINE="alpha"
85                                ;;
86                        15)
87                                UNAME_MACHINE="alphaev5"
88                                ;;
89                        14)
90                                UNAME_MACHINE="alphaev56"
91                                ;;
92                        10)
93                                UNAME_MACHINE="alphapca56"
94                                ;;
95                        16)
96                                UNAME_MACHINE="alphaev6"
97                                ;;
98                esac
99        fi
100        rm -f dummy.s dummy
101        echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
102        exit 0 ;;
103    21064:Windows_NT:50:3)
104        echo alpha-dec-winnt3.5
105        exit 0 ;;
106    Amiga*:UNIX_System_V:4.0:*)
107        echo m68k-cbm-sysv4
108        exit 0;;
109    amiga:NetBSD:*:*)
110      echo m68k-cbm-netbsd${UNAME_RELEASE}
111      exit 0 ;;
112    amiga:OpenBSD:*:*)
113        echo m68k-unknown-openbsd${UNAME_RELEASE}
114        exit 0 ;;
115    *:[Aa]miga[Oo][Ss]:*:*)
116        echo ${UNAME_MACHINE}-unknown-amigaos
117        exit 0 ;;
118    arc64:OpenBSD:*:*)
119        echo mips64el-unknown-openbsd${UNAME_RELEASE}
120        exit 0 ;;
121    arc:OpenBSD:*:*)
122        echo mipsel-unknown-openbsd${UNAME_RELEASE}
123        exit 0 ;;
124    hkmips:OpenBSD:*:*)
125        echo mips-unknown-openbsd${UNAME_RELEASE}
126        exit 0 ;;
127    pmax:OpenBSD:*:*)
128        echo mipsel-unknown-openbsd${UNAME_RELEASE}
129        exit 0 ;;
130    sgi:OpenBSD:*:*)
131        echo mips-unknown-openbsd${UNAME_RELEASE}
132        exit 0 ;;
133    wgrisc:OpenBSD:*:*)
134        echo mipsel-unknown-openbsd${UNAME_RELEASE}
135        exit 0 ;;
136    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
137        echo arm-acorn-riscix${UNAME_RELEASE}
138        exit 0;;
139    arm32:NetBSD:*:*)
140        echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
141        exit 0 ;;
142    SR2?01:HI-UX/MPP:*:*)
143        echo hppa1.1-hitachi-hiuxmpp
144        exit 0;;
145    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
146        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
147        if test "`(/bin/universe) 2>/dev/null`" = att ; then
148                echo pyramid-pyramid-sysv3
149        else
150                echo pyramid-pyramid-bsd
151        fi
152        exit 0 ;;
153    NILE:*:*:dcosx)
154        echo pyramid-pyramid-svr4
155        exit 0 ;;
156    sun4H:SunOS:5.*:*)
157        echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
158        exit 0 ;;
159    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
160        echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
161        exit 0 ;;
162    i86pc:SunOS:5.*:*)
163        echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
164        exit 0 ;;
165    sun4*:SunOS:6*:*)
166        # According to config.sub, this is the proper way to canonicalize
167        # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
168        # it's likely to be more like Solaris than SunOS4.
169        echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
170        exit 0 ;;
171    sun4*:SunOS:*:*)
172        case "`/usr/bin/arch -k`" in
173            Series*|S4*)
174                UNAME_RELEASE=`uname -v`
175                ;;
176        esac
177        # Japanese Language versions have a version number like `4.1.3-JL'.
178        echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
179        exit 0 ;;
180    sun3*:SunOS:*:*)
181        echo m68k-sun-sunos${UNAME_RELEASE}
182        exit 0 ;;
183    sun*:*:4.2BSD:*)
184        UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
185        test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
186        case "`/bin/arch`" in
187            sun3)
188                echo m68k-sun-sunos${UNAME_RELEASE}
189                ;;
190            sun4)
191                echo sparc-sun-sunos${UNAME_RELEASE}
192                ;;
193        esac
194        exit 0 ;;
195    aushp:SunOS:*:*)
196        echo sparc-auspex-sunos${UNAME_RELEASE}
197        exit 0 ;;
198    atari*:NetBSD:*:*)
199        echo m68k-atari-netbsd${UNAME_RELEASE}
200        exit 0 ;;
201    atari*:OpenBSD:*:*)
202        echo m68k-unknown-openbsd${UNAME_RELEASE}
203        exit 0 ;;
204    sun3*:NetBSD:*:*)
205        echo m68k-sun-netbsd${UNAME_RELEASE}
206        exit 0 ;;
207    sun3*:OpenBSD:*:*)
208        echo m68k-unknown-openbsd${UNAME_RELEASE}
209        exit 0 ;;
210    mac68k:NetBSD:*:*)
211        echo m68k-apple-netbsd${UNAME_RELEASE}
212        exit 0 ;;
213    mac68k:OpenBSD:*:*)
214        echo m68k-unknown-openbsd${UNAME_RELEASE}
215        exit 0 ;;
216    mvme68k:OpenBSD:*:*)
217        echo m68k-unknown-openbsd${UNAME_RELEASE}
218        exit 0 ;;
219    mvme88k:OpenBSD:*:*)
220        echo m88k-unknown-openbsd${UNAME_RELEASE}
221        exit 0 ;;
222    powerpc:machten:*:*)
223        echo powerpc-apple-machten${UNAME_RELEASE}
224        exit 0 ;;
225    macppc:NetBSD:*:*)
226        echo powerpc-apple-netbsd${UNAME_RELEASE}
227        exit 0 ;;
228    RISC*:Mach:*:*)
229        echo mips-dec-mach_bsd4.3
230        exit 0 ;;
231    RISC*:ULTRIX:*:*)
232        echo mips-dec-ultrix${UNAME_RELEASE}
233        exit 0 ;;
234    VAX*:ULTRIX*:*:*)
235        echo vax-dec-ultrix${UNAME_RELEASE}
236        exit 0 ;;
237    2020:CLIX:*:*)
238        echo clipper-intergraph-clix${UNAME_RELEASE}
239        exit 0 ;;
240    mips:*:*:UMIPS | mips:*:*:RISCos)
241        sed 's/^        //' << EOF >dummy.c
242        int main (argc, argv) int argc; char **argv; {
243        #if defined (host_mips) && defined (MIPSEB)
244        #if defined (SYSTYPE_SYSV)
245          printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
246        #endif
247        #if defined (SYSTYPE_SVR4)
248          printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
249        #endif
250        #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
251          printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
252        #endif
253        #endif
254          exit (-1);
255        }
256EOF
257        ${CC-cc} dummy.c -o dummy \
258          && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
259          && rm dummy.c dummy && exit 0
260        rm -f dummy.c dummy
261        echo mips-mips-riscos${UNAME_RELEASE}
262        exit 0 ;;
263    Night_Hawk:Power_UNIX:*:*)
264        echo powerpc-harris-powerunix
265        exit 0 ;;
266    m88k:CX/UX:7*:*)
267        echo m88k-harris-cxux7
268        exit 0 ;;
269    m88k:*:4*:R4*)
270        echo m88k-motorola-sysv4
271        exit 0 ;;
272    m88k:*:3*:R3*)
273        echo m88k-motorola-sysv3
274        exit 0 ;;
275    AViiON:dgux:*:*)
276        # DG/UX returns AViiON for all architectures
277        UNAME_PROCESSOR=`/usr/bin/uname -p`
278        if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
279        if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
280             -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
281                echo m88k-dg-dgux${UNAME_RELEASE}
282        else
283                echo m88k-dg-dguxbcs${UNAME_RELEASE}
284        fi
285        else echo i586-dg-dgux${UNAME_RELEASE}
286        fi
287        exit 0 ;;
288    M88*:DolphinOS:*:*) # DolphinOS (SVR3)
289        echo m88k-dolphin-sysv3
290        exit 0 ;;
291    M88*:*:R3*:*)
292        # Delta 88k system running SVR3
293        echo m88k-motorola-sysv3
294        exit 0 ;;
295    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
296        echo m88k-tektronix-sysv3
297        exit 0 ;;
298    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
299        echo m68k-tektronix-bsd
300        exit 0 ;;
301    *:IRIX*:*:*)
302        echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
303        exit 0 ;;
304    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
305        echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
306        exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
307    i?86:AIX:*:*)
308        echo i386-ibm-aix
309        exit 0 ;;
310    *:AIX:2:3)
311        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
312                sed 's/^                //' << EOF >dummy.c
313                #include <sys/systemcfg.h>
314
315                main()
316                        {
317                        if (!__power_pc())
318                                exit(1);
319                        puts("powerpc-ibm-aix3.2.5");
320                        exit(0);
321                        }
322EOF
323                ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
324                rm -f dummy.c dummy
325                echo rs6000-ibm-aix3.2.5
326        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
327                echo rs6000-ibm-aix3.2.4
328        else
329                echo rs6000-ibm-aix3.2
330        fi
331        exit 0 ;;
332    *:AIX:*:4)
333        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
334        if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
335                IBM_ARCH=rs6000
336        else
337                IBM_ARCH=powerpc
338        fi
339        if [ -x /usr/bin/oslevel ] ; then
340                IBM_REV=`/usr/bin/oslevel`
341        else
342                IBM_REV=4.${UNAME_RELEASE}
343        fi
344        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
345        exit 0 ;;
346    *:AIX:*:*)
347        echo rs6000-ibm-aix
348        exit 0 ;;
349    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
350        echo romp-ibm-bsd4.4
351        exit 0 ;;
352    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
353        echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
354        exit 0 ;;                           # report: romp-ibm BSD 4.3
355    *:BOSX:*:*)
356        echo rs6000-bull-bosx
357        exit 0 ;;
358    DPX/2?00:B.O.S.:*:*)
359        echo m68k-bull-sysv3
360        exit 0 ;;
361    9000/[34]??:4.3bsd:1.*:*)
362        echo m68k-hp-bsd
363        exit 0 ;;
364    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
365        echo m68k-hp-bsd4.4
366        exit 0 ;;
367    9000/[34678]??:HP-UX:*:*)
368        case "${UNAME_MACHINE}" in
369            9000/31? )            HP_ARCH=m68000 ;;
370            9000/[34]?? )         HP_ARCH=m68k ;;
371            9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 )
372              sed 's/^              //' << EOF >dummy.c
373              #include <stdlib.h>
374              #include <unistd.h>
375             
376              int main ()
377              {
378              #if defined(_SC_KERNEL_BITS)
379                  long bits = sysconf(_SC_KERNEL_BITS);
380              #endif
381                  long cpu  = sysconf (_SC_CPU_VERSION);
382             
383                  switch (cpu)
384                {
385                case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
386                case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
387                case CPU_PA_RISC2_0:
388              #if defined(_SC_KERNEL_BITS)
389                    switch (bits)
390                        {
391                        case 64: puts ("hppa2.0w"); break;
392                        case 32: puts ("hppa2.0n"); break;
393                        default: puts ("hppa2.0"); break;
394                        } break;
395              #else  /* !defined(_SC_KERNEL_BITS) */
396                    puts ("hppa2.0"); break;
397              #endif
398                default: puts ("hppa1.0"); break;
399                }
400                  exit (0);
401              }
402EOF
403        (${CC-cc} dummy.c -o dummy 2>/dev/null ) && HP_ARCH=`./dummy`
404        rm -f dummy.c dummy
405        esac
406        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
407        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
408        exit 0 ;;
409    3050*:HI-UX:*:*)
410        sed 's/^        //' << EOF >dummy.c
411        #include <unistd.h>
412        int
413        main ()
414        {
415          long cpu = sysconf (_SC_CPU_VERSION);
416          /* The order matters, because CPU_IS_HP_MC68K erroneously returns
417             true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
418             results, however.  */
419          if (CPU_IS_PA_RISC (cpu))
420            {
421              switch (cpu)
422                {
423                  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
424                  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
425                  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
426                  default: puts ("hppa-hitachi-hiuxwe2"); break;
427                }
428            }
429          else if (CPU_IS_HP_MC68K (cpu))
430            puts ("m68k-hitachi-hiuxwe2");
431          else puts ("unknown-hitachi-hiuxwe2");
432          exit (0);
433        }
434EOF
435        ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
436        rm -f dummy.c dummy
437        echo unknown-hitachi-hiuxwe2
438        exit 0 ;;
439    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
440        echo hppa1.1-hp-bsd
441        exit 0 ;;
442    9000/8??:4.3bsd:*:*)
443        echo hppa1.0-hp-bsd
444        exit 0 ;;
445    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
446        echo hppa1.1-hp-osf
447        exit 0 ;;
448    hp8??:OSF1:*:*)
449        echo hppa1.0-hp-osf
450        exit 0 ;;
451    i?86:OSF1:*:*)
452        if [ -x /usr/sbin/sysversion ] ; then
453            echo ${UNAME_MACHINE}-unknown-osf1mk
454        else
455            echo ${UNAME_MACHINE}-unknown-osf1
456        fi
457        exit 0 ;;
458    parisc*:Lites*:*:*)
459        echo hppa1.1-hp-lites
460        exit 0 ;;
461    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
462        echo c1-convex-bsd
463        exit 0 ;;
464    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
465        if getsysinfo -f scalar_acc
466        then echo c32-convex-bsd
467        else echo c2-convex-bsd
468        fi
469        exit 0 ;;
470    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
471        echo c34-convex-bsd
472        exit 0 ;;
473    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
474        echo c38-convex-bsd
475        exit 0 ;;
476    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
477        echo c4-convex-bsd
478        exit 0 ;;
479    CRAY*X-MP:*:*:*)
480        echo xmp-cray-unicos
481        exit 0 ;;
482    CRAY*Y-MP:*:*:*)
483        echo ymp-cray-unicos${UNAME_RELEASE}
484        exit 0 ;;
485    CRAY*[A-Z]90:*:*:*)
486        echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
487        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
488              -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
489        exit 0 ;;
490    CRAY*TS:*:*:*)
491        echo t90-cray-unicos${UNAME_RELEASE}
492        exit 0 ;;
493    CRAY-2:*:*:*)
494        echo cray2-cray-unicos
495        exit 0 ;;
496    F300:UNIX_System_V:*:*)
497        FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
498        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
499        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
500        exit 0 ;;
501    F301:UNIX_System_V:*:*)
502       echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
503       exit 0 ;;
504    hp3[0-9][05]:NetBSD:*:*)
505        echo m68k-hp-netbsd${UNAME_RELEASE}
506        exit 0 ;;
507    hp300:OpenBSD:*:*)
508        echo m68k-unknown-openbsd${UNAME_RELEASE}
509        exit 0 ;;
510    sparc*:BSD/OS:*:*)
511        echo sparc-unknown-bsdi${UNAME_RELEASE}
512        exit 0 ;;
513    i?86:BSD/386:*:* | *:BSD/OS:*:*)
514        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
515        exit 0 ;;
516    *:FreeBSD:*:*)
517        echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
518        exit 0 ;;
519    *:NetBSD:*:*)
520        echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
521        exit 0 ;;
522    *:OpenBSD:*:*)
523        echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
524        exit 0 ;;
525    i*:CYGWIN*:*)
526        echo ${UNAME_MACHINE}-pc-cygwin
527        exit 0 ;;
528    i*:MINGW*:*)
529        echo ${UNAME_MACHINE}-pc-mingw32
530        exit 0 ;;
531    p*:CYGWIN*:*)
532        echo powerpcle-unknown-cygwin
533        exit 0 ;;
534    prep*:SunOS:5.*:*)
535        echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
536        exit 0 ;;
537    *:GNU:*:*)
538        echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
539        exit 0 ;;
540    *:Linux:*:*)
541        # uname on the ARM produces all sorts of strangeness, and we need to
542        # filter it out.
543        case "$UNAME_MACHINE" in
544          arm* | sa110*)              UNAME_MACHINE="arm" ;;
545        esac
546
547        # The BFD linker knows what the default object file format is, so
548        # first see if it will tell us.
549        ld_help_string=`ld --help 2>&1`
550        ld_supported_emulations=`echo $ld_help_string \
551                         | sed -ne '/supported emulations:/!d
552                                    s/[         ][      ]*/ /g
553                                    s/.*supported emulations: *//
554                                    s/ .*//
555                                    p'`
556        case "$ld_supported_emulations" in
557          i?86linux)  echo "${UNAME_MACHINE}-pc-linux-gnuaout"      ; exit 0 ;;
558          i?86coff)   echo "${UNAME_MACHINE}-pc-linux-gnucoff"      ; exit 0 ;;
559          sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
560          armlinux)   echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
561          m68klinux)  echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
562          elf32ppc)   echo "powerpc-unknown-linux-gnu"              ; exit 0 ;;
563        esac
564
565        if test "${UNAME_MACHINE}" = "alpha" ; then
566                sed 's/^        //'  <<EOF >dummy.s
567                .globl main
568                .ent main
569        main:
570                .frame \$30,0,\$26,0
571                .prologue 0
572                .long 0x47e03d80 # implver $0
573                lda \$2,259
574                .long 0x47e20c21 # amask $2,$1
575                srl \$1,8,\$2
576                sll \$2,2,\$2
577                sll \$0,3,\$0
578                addl \$1,\$0,\$0
579                addl \$2,\$0,\$0
580                ret \$31,(\$26),1
581                .end main
582EOF
583                LIBC=""
584                ${CC-cc} dummy.s -o dummy 2>/dev/null
585                if test "$?" = 0 ; then
586                        ./dummy
587                        case "$?" in
588                        7)
589                                UNAME_MACHINE="alpha"
590                                ;;
591                        15)
592                                UNAME_MACHINE="alphaev5"
593                                ;;
594                        14)
595                                UNAME_MACHINE="alphaev56"
596                                ;;
597                        10)
598                                UNAME_MACHINE="alphapca56"
599                                ;;
600                        16)
601                                UNAME_MACHINE="alphaev6"
602                                ;;
603                        esac   
604
605                        objdump --private-headers dummy | \
606                          grep ld.so.1 > /dev/null
607                        if test "$?" = 0 ; then
608                                LIBC="libc1"
609                        fi
610                fi     
611                rm -f dummy.s dummy
612                echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
613        elif test "${UNAME_MACHINE}" = "mips" ; then
614          cat >dummy.c <<EOF
615main(argc, argv)
616     int argc;
617     char *argv[];
618{
619#ifdef __MIPSEB__
620  printf ("%s-unknown-linux-gnu\n", argv[1]);
621#endif
622#ifdef __MIPSEL__
623  printf ("%sel-unknown-linux-gnu\n", argv[1]);
624#endif
625  return 0;
626}
627EOF
628          ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
629          rm -f dummy.c dummy
630        else
631          # Either a pre-BFD a.out linker (linux-gnuoldld)
632          # or one that does not give us useful --help.
633          # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
634          # If ld does not provide *any* "supported emulations:"
635          # that means it is gnuoldld.
636          echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
637          test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
638
639          case "${UNAME_MACHINE}" in
640          i?86)
641            VENDOR=pc;
642            ;;
643          *)
644            VENDOR=unknown;
645            ;;
646          esac
647          # Determine whether the default compiler is a.out or elf
648          cat >dummy.c <<EOF
649#include <features.h>
650main(argc, argv)
651     int argc;
652     char *argv[];
653{
654#ifdef __ELF__
655# ifdef __GLIBC__
656#  if __GLIBC__ >= 2
657    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
658#  else
659    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
660#  endif
661# else
662   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
663# endif
664#else
665  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
666#endif
667  return 0;
668}
669EOF
670          ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
671          rm -f dummy.c dummy
672        fi ;;
673# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
674# are messed up and put the nodename in both sysname and nodename.
675    i?86:DYNIX/ptx:4*:*)
676        echo i386-sequent-sysv4
677        exit 0 ;;
678    i?86:UNIX_SV:4.2MP:2.*)
679        # Unixware is an offshoot of SVR4, but it has its own version
680        # number series starting with 2...
681        # I am not positive that other SVR4 systems won't match this,
682        # I just have to hope.  -- rms.
683        # Use sysv4.2uw... so that sysv4* matches it.
684        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
685        exit 0 ;;
686    i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
687        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
688                echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
689        else
690                echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
691        fi
692        exit 0 ;;
693    i?86:*:3.2:*)
694        if test -f /usr/options/cb.name; then
695                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
696                echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
697        elif /bin/uname -X 2>/dev/null >/dev/null ; then
698                UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
699                (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
700                (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
701                        && UNAME_MACHINE=i586
702                echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
703        else
704                echo ${UNAME_MACHINE}-pc-sysv32
705        fi
706        exit 0 ;;
707    i?86:UnixWare:*:*)
708        if /bin/uname -X 2>/dev/null >/dev/null ; then
709          (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
710            && UNAME_MACHINE=i586
711        fi
712        echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
713        exit 0 ;;
714    pc:*:*:*)
715        # uname -m prints for DJGPP always 'pc', but it prints nothing about
716        # the processor, so we play safe by assuming i386.
717        echo i386-pc-msdosdjgpp
718        exit 0 ;;
719    Intel:Mach:3*:*)
720        echo i386-pc-mach3
721        exit 0 ;;
722    paragon:*:*:*)
723        echo i860-intel-osf1
724        exit 0 ;;
725    i860:*:4.*:*) # i860-SVR4
726        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
727          echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
728        else # Add other i860-SVR4 vendors below as they are discovered.
729          echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
730        fi
731        exit 0 ;;
732    mini*:CTIX:SYS*5:*)
733        # "miniframe"
734        echo m68010-convergent-sysv
735        exit 0 ;;
736    M68*:*:R3V[567]*:*)
737        test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
738    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
739        OS_REL=''
740        test -r /etc/.relid \
741        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
742        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
743          && echo i486-ncr-sysv4.3${OS_REL} && exit 0
744        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
745          && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
746    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
747        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
748          && echo i486-ncr-sysv4 && exit 0 ;;
749    m68*:LynxOS:2.*:*)
750        echo m68k-unknown-lynxos${UNAME_RELEASE}
751        exit 0 ;;
752    mc68030:UNIX_System_V:4.*:*)
753        echo m68k-atari-sysv4
754        exit 0 ;;
755    i?86:LynxOS:2.*:*)
756        echo i386-unknown-lynxos${UNAME_RELEASE}
757        exit 0 ;;
758    TSUNAMI:LynxOS:2.*:*)
759        echo sparc-unknown-lynxos${UNAME_RELEASE}
760        exit 0 ;;
761    rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
762        echo rs6000-unknown-lynxos${UNAME_RELEASE}
763        exit 0 ;;
764    SM[BE]S:UNIX_SV:*:*)
765        echo mips-dde-sysv${UNAME_RELEASE}
766        exit 0 ;;
767    RM*:SINIX-*:*:*)
768        echo mips-sni-sysv4
769        exit 0 ;;
770    *:SINIX-*:*:*)
771        if uname -p 2>/dev/null >/dev/null ; then
772                UNAME_MACHINE=`(uname -p) 2>/dev/null`
773                echo ${UNAME_MACHINE}-sni-sysv4
774        else
775                echo ns32k-sni-sysv
776        fi
777        exit 0 ;;
778    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
779                           # says <Richard.M.Bartel@ccMail.Census.GOV>
780        echo i586-unisys-sysv4
781        exit 0 ;;
782    *:UNIX_System_V:4*:FTX*)
783        # From Gerald Hewes <hewes@openmarket.com>.
784        # How about differentiating between stratus architectures? -djm
785        echo hppa1.1-stratus-sysv4
786        exit 0 ;;
787    *:*:*:FTX*)
788        # From seanf@swdc.stratus.com.
789        echo i860-stratus-sysv4
790        exit 0 ;;
791    mc68*:A/UX:*:*)
792        echo m68k-apple-aux${UNAME_RELEASE}
793        exit 0 ;;
794    news*:NEWS-OS:*:6*)
795        echo mips-sony-newsos6
796        exit 0 ;;
797    R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*)
798        if [ -d /usr/nec ]; then
799                echo mips-nec-sysv${UNAME_RELEASE}
800        else
801                echo mips-unknown-sysv${UNAME_RELEASE}
802        fi
803        exit 0 ;;
804    BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
805        echo powerpc-be-beos
806        exit 0 ;;
807    BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
808        echo powerpc-apple-beos
809        exit 0 ;;
810    BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
811        echo i586-pc-beos
812        exit 0 ;;
813esac
814
815#echo '(No uname command or uname output not recognized.)' 1>&2
816#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
817
818cat >dummy.c <<EOF
819#ifdef _SEQUENT_
820# include <sys/types.h>
821# include <sys/utsname.h>
822#endif
823main ()
824{
825#if defined (sony)
826#if defined (MIPSEB)
827  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
828     I don't know....  */
829  printf ("mips-sony-bsd\n"); exit (0);
830#else
831#include <sys/param.h>
832  printf ("m68k-sony-newsos%s\n",
833#ifdef NEWSOS4
834          "4"
835#else
836          ""
837#endif
838         ); exit (0);
839#endif
840#endif
841
842#if defined (__arm) && defined (__acorn) && defined (__unix)
843  printf ("arm-acorn-riscix"); exit (0);
844#endif
845
846#if defined (hp300) && !defined (hpux)
847  printf ("m68k-hp-bsd\n"); exit (0);
848#endif
849
850#if defined (NeXT)
851#if !defined (__ARCHITECTURE__)
852#define __ARCHITECTURE__ "m68k"
853#endif
854  int version;
855  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
856  printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
857  exit (0);
858#endif
859
860#if defined (MULTIMAX) || defined (n16)
861#if defined (UMAXV)
862  printf ("ns32k-encore-sysv\n"); exit (0);
863#else
864#if defined (CMU)
865  printf ("ns32k-encore-mach\n"); exit (0);
866#else
867  printf ("ns32k-encore-bsd\n"); exit (0);
868#endif
869#endif
870#endif
871
872#if defined (__386BSD__)
873  printf ("i386-pc-bsd\n"); exit (0);
874#endif
875
876#if defined (sequent)
877#if defined (i386)
878  printf ("i386-sequent-dynix\n"); exit (0);
879#endif
880#if defined (ns32000)
881  printf ("ns32k-sequent-dynix\n"); exit (0);
882#endif
883#endif
884
885#if defined (_SEQUENT_)
886    struct utsname un;
887
888    uname(&un);
889
890    if (strncmp(un.version, "V2", 2) == 0) {
891        printf ("i386-sequent-ptx2\n"); exit (0);
892    }
893    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
894        printf ("i386-sequent-ptx1\n"); exit (0);
895    }
896    printf ("i386-sequent-ptx\n"); exit (0);
897
898#endif
899
900#if defined (vax)
901#if !defined (ultrix)
902  printf ("vax-dec-bsd\n"); exit (0);
903#else
904  printf ("vax-dec-ultrix\n"); exit (0);
905#endif
906#endif
907
908#if defined (alliant) && defined (i860)
909  printf ("i860-alliant-bsd\n"); exit (0);
910#endif
911
912  exit (1);
913}
914EOF
915
916${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
917rm -f dummy.c dummy
918
919# Apollos put the system type in the environment.
920
921test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
922
923# Convex versions that predate uname can use getsysinfo(1)
924
925if [ -x /usr/convex/getsysinfo ]
926then
927    case `getsysinfo -f cpu_type` in
928    c1*)
929        echo c1-convex-bsd
930        exit 0 ;;
931    c2*)
932        if getsysinfo -f scalar_acc
933        then echo c32-convex-bsd
934        else echo c2-convex-bsd
935        fi
936        exit 0 ;;
937    c34*)
938        echo c34-convex-bsd
939        exit 0 ;;
940    c38*)
941        echo c38-convex-bsd
942        exit 0 ;;
943    c4*)
944        echo c4-convex-bsd
945        exit 0 ;;
946    esac
947fi
948
949#echo '(Unable to guess system type)' 1>&2
950
951exit 1
Note: See TracBrowser for help on using the repository browser.