OSDN Git Service

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