More error messages.
[rsync.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-19'
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} | sed -e 's/\.[^.]*$/.X/'
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               -e 's/\.[^.]*$/.X/'
693         exit 0 ;;
694     CRAY*TS:*:*:*)
695         echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
696         exit 0 ;;
697     CRAY*T3D:*:*:*)
698         echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
699         exit 0 ;;
700     CRAY*T3E:*:*:*)
701         echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
702         exit 0 ;;
703     CRAY*SV1:*:*:*)
704         echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
705         exit 0 ;;
706     CRAY-2:*:*:*)
707         echo cray2-cray-unicos
708         exit 0 ;;
709     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
710         FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
711         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
712         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
713         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
714         exit 0 ;;
715     hp300:OpenBSD:*:*)
716         echo m68k-unknown-openbsd${UNAME_RELEASE}
717         exit 0 ;;
718     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
719         echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
720         exit 0 ;;
721     sparc*:BSD/OS:*:*)
722         echo sparc-unknown-bsdi${UNAME_RELEASE}
723         exit 0 ;;
724     *:BSD/OS:*:*)
725         echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
726         exit 0 ;;
727     *:FreeBSD:*:*)
728         echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
729         exit 0 ;;
730     *:OpenBSD:*:*)
731         echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
732         exit 0 ;;
733     i*:CYGWIN*:*)
734         echo ${UNAME_MACHINE}-pc-cygwin
735         exit 0 ;;
736     i*:MINGW*:*)
737         echo ${UNAME_MACHINE}-pc-mingw32
738         exit 0 ;;
739     i*:PW*:*)
740         echo ${UNAME_MACHINE}-pc-pw32
741         exit 0 ;;
742     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
743         # How do we know it's Interix rather than the generic POSIX subsystem?
744         # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
745         # UNAME_MACHINE based on the output of uname instead of i386?
746         echo i386-pc-interix
747         exit 0 ;;
748     i*:UWIN*:*)
749         echo ${UNAME_MACHINE}-pc-uwin
750         exit 0 ;;
751     p*:CYGWIN*:*)
752         echo powerpcle-unknown-cygwin
753         exit 0 ;;
754     prep*:SunOS:5.*:*)
755         echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
756         exit 0 ;;
757     *:GNU:*:*)
758         echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
759         exit 0 ;;
760     i*86:Minix:*:*)
761         echo ${UNAME_MACHINE}-pc-minix
762         exit 0 ;;
763     arm*:Linux:*:*)
764         echo ${UNAME_MACHINE}-unknown-linux-gnu
765         exit 0 ;;
766     ia64:Linux:*:*)
767         echo ${UNAME_MACHINE}-unknown-linux
768         exit 0 ;;
769     m68*:Linux:*:*)
770         echo ${UNAME_MACHINE}-unknown-linux-gnu
771         exit 0 ;;
772     mips:Linux:*:*)
773         case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
774           big)    echo mips-unknown-linux-gnu && exit 0 ;;
775           little) echo mipsel-unknown-linux-gnu && exit 0 ;;
776         esac
777         ;;
778     ppc:Linux:*:*)
779         echo powerpc-unknown-linux-gnu
780         exit 0 ;;
781     ppc64:Linux:*:*)
782         echo powerpc64-unknown-linux-gnu
783         exit 0 ;;
784     alpha:Linux:*:*)
785         case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
786           EV5)   UNAME_MACHINE=alphaev5 ;;
787           EV56)  UNAME_MACHINE=alphaev56 ;;
788           PCA56) UNAME_MACHINE=alphapca56 ;;
789           PCA57) UNAME_MACHINE=alphapca56 ;;
790           EV6)   UNAME_MACHINE=alphaev6 ;;
791           EV67)  UNAME_MACHINE=alphaev67 ;;
792           EV68*) UNAME_MACHINE=alphaev67 ;;
793         esac
794         objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
795         if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
796         echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
797         exit 0 ;;
798     parisc:Linux:*:* | hppa:Linux:*:*)
799         # Look for CPU level
800         case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
801           PA7*) echo hppa1.1-unknown-linux-gnu ;;
802           PA8*) echo hppa2.0-unknown-linux-gnu ;;
803           *)    echo hppa-unknown-linux-gnu ;;
804         esac
805         exit 0 ;;
806     parisc64:Linux:*:* | hppa64:Linux:*:*)
807         echo hppa64-unknown-linux-gnu
808         exit 0 ;;
809     s390:Linux:*:* | s390x:Linux:*:*)
810         echo ${UNAME_MACHINE}-ibm-linux
811         exit 0 ;;
812     sh*:Linux:*:*)
813         echo ${UNAME_MACHINE}-unknown-linux-gnu
814         exit 0 ;;
815     sparc:Linux:*:* | sparc64:Linux:*:*)
816         echo ${UNAME_MACHINE}-unknown-linux-gnu
817         exit 0 ;;
818     x86_64:Linux:*:*)
819         echo x86_64-unknown-linux-gnu
820         exit 0 ;;
821     i*86:Linux:*:*)
822         # The BFD linker knows what the default object file format is, so
823         # first see if it will tell us. cd to the root directory to prevent
824         # problems with other programs or directories called `ld' in the path.
825         ld_supported_targets=`cd /; ld --help 2>&1 \
826                          | sed -ne '/supported targets:/!d
827                                     s/[         ][      ]*/ /g
828                                     s/.*supported targets: *//
829                                     s/ .*//
830                                     p'`
831         case "$ld_supported_targets" in
832           elf32-i386)
833                 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
834                 ;;
835           a.out-i386-linux)
836                 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
837                 exit 0 ;;               
838           coff-i386)
839                 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
840                 exit 0 ;;
841           "")
842                 # Either a pre-BFD a.out linker (linux-gnuoldld) or
843                 # one that does not give us useful --help.
844                 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
845                 exit 0 ;;
846         esac
847         # Determine whether the default compiler is a.out or elf
848         cat >$dummy.c <<EOF
849 #include <features.h>
850 #ifdef __cplusplus
851 #include <stdio.h>  /* for printf() prototype */
852         int main (int argc, char *argv[]) {
853 #else
854         int main (argc, argv) int argc; char *argv[]; {
855 #endif
856 #ifdef __ELF__
857 # ifdef __GLIBC__
858 #  if __GLIBC__ >= 2
859     printf ("%s-pc-linux-gnu\n", argv[1]);
860 #  else
861     printf ("%s-pc-linux-gnulibc1\n", argv[1]);
862 #  endif
863 # else
864    printf ("%s-pc-linux-gnulibc1\n", argv[1]);
865 # endif
866 #else
867   printf ("%s-pc-linux-gnuaout\n", argv[1]);
868 #endif
869   return 0;
870 }
871 EOF
872         eval $set_cc_for_build
873         $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
874         rm -f $dummy.c $dummy
875         test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
876         ;;
877     i*86:DYNIX/ptx:4*:*)
878         # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
879         # earlier versions are messed up and put the nodename in both
880         # sysname and nodename.
881         echo i386-sequent-sysv4
882         exit 0 ;;
883     i*86:UNIX_SV:4.2MP:2.*)
884         # Unixware is an offshoot of SVR4, but it has its own version
885         # number series starting with 2...
886         # I am not positive that other SVR4 systems won't match this,
887         # I just have to hope.  -- rms.
888         # Use sysv4.2uw... so that sysv4* matches it.
889         echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
890         exit 0 ;;
891     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
892         UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
893         if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
894                 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
895         else
896                 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
897         fi
898         exit 0 ;;
899     i*86:*:5:[78]*)
900         case `/bin/uname -X | grep "^Machine"` in
901             *486*)           UNAME_MACHINE=i486 ;;
902             *Pentium)        UNAME_MACHINE=i586 ;;
903             *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
904         esac
905         echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
906         exit 0 ;;
907     i*86:*:3.2:*)
908         if test -f /usr/options/cb.name; then
909                 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
910                 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
911         elif /bin/uname -X 2>/dev/null >/dev/null ; then
912                 UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
913                 (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
914                 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
915                         && UNAME_MACHINE=i586
916                 (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
917                         && UNAME_MACHINE=i686
918                 (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
919                         && UNAME_MACHINE=i686
920                 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
921         else
922                 echo ${UNAME_MACHINE}-pc-sysv32
923         fi
924         exit 0 ;;
925     i*86:*DOS:*:*)
926         echo ${UNAME_MACHINE}-pc-msdosdjgpp
927         exit 0 ;;
928     pc:*:*:*)
929         # Left here for compatibility:
930         # uname -m prints for DJGPP always 'pc', but it prints nothing about
931         # the processor, so we play safe by assuming i386.
932         echo i386-pc-msdosdjgpp
933         exit 0 ;;
934     Intel:Mach:3*:*)
935         echo i386-pc-mach3
936         exit 0 ;;
937     paragon:*:*:*)
938         echo i860-intel-osf1
939         exit 0 ;;
940     i860:*:4.*:*) # i860-SVR4
941         if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
942           echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
943         else # Add other i860-SVR4 vendors below as they are discovered.
944           echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
945         fi
946         exit 0 ;;
947     mini*:CTIX:SYS*5:*)
948         # "miniframe"
949         echo m68010-convergent-sysv
950         exit 0 ;;
951     M68*:*:R3V[567]*:*)
952         test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
953     3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
954         OS_REL=''
955         test -r /etc/.relid \
956         && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
957         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
958           && echo i486-ncr-sysv4.3${OS_REL} && exit 0
959         /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
960           && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
961     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
962         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
963           && echo i486-ncr-sysv4 && exit 0 ;;
964     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
965         echo m68k-unknown-lynxos${UNAME_RELEASE}
966         exit 0 ;;
967     mc68030:UNIX_System_V:4.*:*)
968         echo m68k-atari-sysv4
969         exit 0 ;;
970     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
971         echo i386-unknown-lynxos${UNAME_RELEASE}
972         exit 0 ;;
973     TSUNAMI:LynxOS:2.*:*)
974         echo sparc-unknown-lynxos${UNAME_RELEASE}
975         exit 0 ;;
976     rs6000:LynxOS:2.*:*)
977         echo rs6000-unknown-lynxos${UNAME_RELEASE}
978         exit 0 ;;
979     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
980         echo powerpc-unknown-lynxos${UNAME_RELEASE}
981         exit 0 ;;
982     SM[BE]S:UNIX_SV:*:*)
983         echo mips-dde-sysv${UNAME_RELEASE}
984         exit 0 ;;
985     RM*:ReliantUNIX-*:*:*)
986         echo mips-sni-sysv4
987         exit 0 ;;
988     RM*:SINIX-*:*:*)
989         echo mips-sni-sysv4
990         exit 0 ;;
991     *:SINIX-*:*:*)
992         if uname -p 2>/dev/null >/dev/null ; then
993                 UNAME_MACHINE=`(uname -p) 2>/dev/null`
994                 echo ${UNAME_MACHINE}-sni-sysv4
995         else
996                 echo ns32k-sni-sysv
997         fi
998         exit 0 ;;
999     PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1000                            # says <Richard.M.Bartel@ccMail.Census.GOV>
1001         echo i586-unisys-sysv4
1002         exit 0 ;;
1003     *:UNIX_System_V:4*:FTX*)
1004         # From Gerald Hewes <hewes@openmarket.com>.
1005         # How about differentiating between stratus architectures? -djm
1006         echo hppa1.1-stratus-sysv4
1007         exit 0 ;;
1008     *:*:*:FTX*)
1009         # From seanf@swdc.stratus.com.
1010         echo i860-stratus-sysv4
1011         exit 0 ;;
1012     mc68*:A/UX:*:*)
1013         echo m68k-apple-aux${UNAME_RELEASE}
1014         exit 0 ;;
1015     news*:NEWS-OS:6*:*)
1016         echo mips-sony-newsos6
1017         exit 0 ;;
1018     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1019         if [ -d /usr/nec ]; then
1020                 echo mips-nec-sysv${UNAME_RELEASE}
1021         else
1022                 echo mips-unknown-sysv${UNAME_RELEASE}
1023         fi
1024         exit 0 ;;
1025     BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
1026         echo powerpc-be-beos
1027         exit 0 ;;
1028     BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
1029         echo powerpc-apple-beos
1030         exit 0 ;;
1031     BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
1032         echo i586-pc-beos
1033         exit 0 ;;
1034     SX-4:SUPER-UX:*:*)
1035         echo sx4-nec-superux${UNAME_RELEASE}
1036         exit 0 ;;
1037     SX-5:SUPER-UX:*:*)
1038         echo sx5-nec-superux${UNAME_RELEASE}
1039         exit 0 ;;
1040     Power*:Rhapsody:*:*)
1041         echo powerpc-apple-rhapsody${UNAME_RELEASE}
1042         exit 0 ;;
1043     *:Rhapsody:*:*)
1044         echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1045         exit 0 ;;
1046     *:Darwin:*:*)
1047         echo `uname -p`-apple-darwin${UNAME_RELEASE}
1048         exit 0 ;;
1049     *:procnto*:*:* | *:QNX:[0123456789]*:*)
1050         if test "${UNAME_MACHINE}" = "x86pc"; then
1051                 UNAME_MACHINE=pc
1052         fi
1053         echo `uname -p`-${UNAME_MACHINE}-nto-qnx
1054         exit 0 ;;
1055     *:QNX:*:4*)
1056         echo i386-pc-qnx
1057         exit 0 ;;
1058     NSR-[KW]:NONSTOP_KERNEL:*:*)
1059         echo nsr-tandem-nsk${UNAME_RELEASE}
1060         exit 0 ;;
1061     *:NonStop-UX:*:*)
1062         echo mips-compaq-nonstopux
1063         exit 0 ;;
1064     BS2000:POSIX*:*:*)
1065         echo bs2000-siemens-sysv
1066         exit 0 ;;
1067     DS/*:UNIX_System_V:*:*)
1068         echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1069         exit 0 ;;
1070     *:Plan9:*:*)
1071         # "uname -m" is not consistent, so use $cputype instead. 386
1072         # is converted to i386 for consistency with other x86
1073         # operating systems.
1074         if test "$cputype" = "386"; then
1075             UNAME_MACHINE=i386
1076         else
1077             UNAME_MACHINE="$cputype"
1078         fi
1079         echo ${UNAME_MACHINE}-unknown-plan9
1080         exit 0 ;;
1081     i*86:OS/2:*:*)
1082         # If we were able to find `uname', then EMX Unix compatibility
1083         # is probably installed.
1084         echo ${UNAME_MACHINE}-pc-os2-emx
1085         exit 0 ;;
1086     *:TOPS-10:*:*)
1087         echo pdp10-unknown-tops10
1088         exit 0 ;;
1089     *:TENEX:*:*)
1090         echo pdp10-unknown-tenex
1091         exit 0 ;;
1092     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1093         echo pdp10-dec-tops20
1094         exit 0 ;;
1095     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1096         echo pdp10-xkl-tops20
1097         exit 0 ;;
1098     *:TOPS-20:*:*)
1099         echo pdp10-unknown-tops20
1100         exit 0 ;;
1101     *:ITS:*:*)
1102         echo pdp10-unknown-its
1103         exit 0 ;;
1104 esac
1105
1106 #echo '(No uname command or uname output not recognized.)' 1>&2
1107 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1108
1109 cat >$dummy.c <<EOF
1110 #ifdef _SEQUENT_
1111 # include <sys/types.h>
1112 # include <sys/utsname.h>
1113 #endif
1114 main ()
1115 {
1116 #if defined (sony)
1117 #if defined (MIPSEB)
1118   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1119      I don't know....  */
1120   printf ("mips-sony-bsd\n"); exit (0);
1121 #else
1122 #include <sys/param.h>
1123   printf ("m68k-sony-newsos%s\n",
1124 #ifdef NEWSOS4
1125           "4"
1126 #else
1127           ""
1128 #endif
1129          ); exit (0);
1130 #endif
1131 #endif
1132
1133 #if defined (__arm) && defined (__acorn) && defined (__unix)
1134   printf ("arm-acorn-riscix"); exit (0);
1135 #endif
1136
1137 #if defined (hp300) && !defined (hpux)
1138   printf ("m68k-hp-bsd\n"); exit (0);
1139 #endif
1140
1141 #if defined (NeXT)
1142 #if !defined (__ARCHITECTURE__)
1143 #define __ARCHITECTURE__ "m68k"
1144 #endif
1145   int version;
1146   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1147   if (version < 4)
1148     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1149   else
1150     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1151   exit (0);
1152 #endif
1153
1154 #if defined (MULTIMAX) || defined (n16)
1155 #if defined (UMAXV)
1156   printf ("ns32k-encore-sysv\n"); exit (0);
1157 #else
1158 #if defined (CMU)
1159   printf ("ns32k-encore-mach\n"); exit (0);
1160 #else
1161   printf ("ns32k-encore-bsd\n"); exit (0);
1162 #endif
1163 #endif
1164 #endif
1165
1166 #if defined (__386BSD__)
1167   printf ("i386-pc-bsd\n"); exit (0);
1168 #endif
1169
1170 #if defined (sequent)
1171 #if defined (i386)
1172   printf ("i386-sequent-dynix\n"); exit (0);
1173 #endif
1174 #if defined (ns32000)
1175   printf ("ns32k-sequent-dynix\n"); exit (0);
1176 #endif
1177 #endif
1178
1179 #if defined (_SEQUENT_)
1180     struct utsname un;
1181
1182     uname(&un);
1183
1184     if (strncmp(un.version, "V2", 2) == 0) {
1185         printf ("i386-sequent-ptx2\n"); exit (0);
1186     }
1187     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1188         printf ("i386-sequent-ptx1\n"); exit (0);
1189     }
1190     printf ("i386-sequent-ptx\n"); exit (0);
1191
1192 #endif
1193
1194 #if defined (vax)
1195 # if !defined (ultrix)
1196 #  include <sys/param.h>
1197 #  if defined (BSD)
1198 #   if BSD == 43
1199       printf ("vax-dec-bsd4.3\n"); exit (0);
1200 #   else
1201 #    if BSD == 199006
1202       printf ("vax-dec-bsd4.3reno\n"); exit (0);
1203 #    else
1204       printf ("vax-dec-bsd\n"); exit (0);
1205 #    endif
1206 #   endif
1207 #  else
1208     printf ("vax-dec-bsd\n"); exit (0);
1209 #  endif
1210 # else
1211     printf ("vax-dec-ultrix\n"); exit (0);
1212 # endif
1213 #endif
1214
1215 #if defined (alliant) && defined (i860)
1216   printf ("i860-alliant-bsd\n"); exit (0);
1217 #endif
1218
1219   exit (1);
1220 }
1221 EOF
1222
1223 eval $set_cc_for_build
1224 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
1225 rm -f $dummy.c $dummy
1226
1227 # Apollos put the system type in the environment.
1228
1229 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1230
1231 # Convex versions that predate uname can use getsysinfo(1)
1232
1233 if [ -x /usr/convex/getsysinfo ]
1234 then
1235     case `getsysinfo -f cpu_type` in
1236     c1*)
1237         echo c1-convex-bsd
1238         exit 0 ;;
1239     c2*)
1240         if getsysinfo -f scalar_acc
1241         then echo c32-convex-bsd
1242         else echo c2-convex-bsd
1243         fi
1244         exit 0 ;;
1245     c34*)
1246         echo c34-convex-bsd
1247         exit 0 ;;
1248     c38*)
1249         echo c38-convex-bsd
1250         exit 0 ;;
1251     c4*)
1252         echo c4-convex-bsd
1253         exit 0 ;;
1254     esac
1255 fi
1256
1257 cat >&2 <<EOF
1258 $0: unable to guess system type
1259
1260 This script, last modified $timestamp, has failed to recognize
1261 the operating system you are using. It is advised that you
1262 download the most up to date version of the config scripts from
1263
1264     ftp://ftp.gnu.org/pub/gnu/config/
1265
1266 If the version you run ($0) is already up to date, please
1267 send the following data and any information you think might be
1268 pertinent to <config-patches@gnu.org> in order to provide the needed
1269 information to handle your system.
1270
1271 config.guess timestamp = $timestamp
1272
1273 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1274 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1275 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1276 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1277
1278 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1279 /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1280
1281 hostinfo               = `(hostinfo) 2>/dev/null`
1282 /bin/universe          = `(/bin/universe) 2>/dev/null`
1283 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1284 /bin/arch              = `(/bin/arch) 2>/dev/null`
1285 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1286 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1287
1288 UNAME_MACHINE = ${UNAME_MACHINE}
1289 UNAME_RELEASE = ${UNAME_RELEASE}
1290 UNAME_SYSTEM  = ${UNAME_SYSTEM}
1291 UNAME_VERSION = ${UNAME_VERSION}
1292 EOF
1293
1294 exit 1
1295
1296 # Local variables:
1297 # eval: (add-hook 'write-file-hooks 'time-stamp)
1298 # time-stamp-start: "timestamp='"
1299 # time-stamp-format: "%:y-%02m-%02d"
1300 # time-stamp-end: "'"
1301 # End: