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