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