OSDN Git Service

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