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