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