ncurses 5.3
[ncurses.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-08-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     Motorola:*:4.3:PL8-*)
450         echo powerpc-harris-powermax
451         exit 0 ;;
452     Night_Hawk:*:*:PowerMAX_OS)
453         echo powerpc-harris-powermax
454         exit 0 ;;
455     Night_Hawk:Power_UNIX:*:*)
456         echo powerpc-harris-powerunix
457         exit 0 ;;
458     m88k:CX/UX:7*:*)
459         echo m88k-harris-cxux7
460         exit 0 ;;
461     m88k:*:4*:R4*)
462         echo m88k-motorola-sysv4
463         exit 0 ;;
464     m88k:*:3*:R3*)
465         echo m88k-motorola-sysv3
466         exit 0 ;;
467     AViiON:dgux:*:*)
468         # DG/UX returns AViiON for all architectures
469         UNAME_PROCESSOR=`/usr/bin/uname -p`
470         if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
471         then
472             if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
473                [ ${TARGET_BINARY_INTERFACE}x = x ]
474             then
475                 echo m88k-dg-dgux${UNAME_RELEASE}
476             else
477                 echo m88k-dg-dguxbcs${UNAME_RELEASE}
478             fi
479         else
480             echo i586-dg-dgux${UNAME_RELEASE}
481         fi
482         exit 0 ;;
483     M88*:DolphinOS:*:*) # DolphinOS (SVR3)
484         echo m88k-dolphin-sysv3
485         exit 0 ;;
486     M88*:*:R3*:*)
487         # Delta 88k system running SVR3
488         echo m88k-motorola-sysv3
489         exit 0 ;;
490     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
491         echo m88k-tektronix-sysv3
492         exit 0 ;;
493     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
494         echo m68k-tektronix-bsd
495         exit 0 ;;
496     *:IRIX*:*:*)
497         echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
498         exit 0 ;;
499     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
500         echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
501         exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
502     i*86:AIX:*:*)
503         echo i386-ibm-aix
504         exit 0 ;;
505     ia64:AIX:*:*)
506         if [ -x /usr/bin/oslevel ] ; then
507                 IBM_REV=`/usr/bin/oslevel`
508         else
509                 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
510         fi
511         echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
512         exit 0 ;;
513     *:AIX:2:3)
514         if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
515                 eval $set_cc_for_build
516                 sed 's/^                //' << EOF >$dummy.c
517                 #include <sys/systemcfg.h>
518
519                 main()
520                         {
521                         if (!__power_pc())
522                                 exit(1);
523                         puts("powerpc-ibm-aix3.2.5");
524                         exit(0);
525                         }
526 EOF
527                 $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
528                 rm -f $dummy.c $dummy && rmdir $tmpdir
529                 echo rs6000-ibm-aix3.2.5
530         elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
531                 echo rs6000-ibm-aix3.2.4
532         else
533                 echo rs6000-ibm-aix3.2
534         fi
535         exit 0 ;;
536     *:AIX:*:[45])
537         IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
538         if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
539                 IBM_ARCH=rs6000
540         else
541                 IBM_ARCH=powerpc
542         fi
543         if [ -x /usr/bin/oslevel ] ; then
544                 IBM_REV=`/usr/bin/oslevel`
545         else
546                 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
547         fi
548         echo ${IBM_ARCH}-ibm-aix${IBM_REV}
549         exit 0 ;;
550     *:AIX:*:*)
551         echo rs6000-ibm-aix
552         exit 0 ;;
553     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
554         echo romp-ibm-bsd4.4
555         exit 0 ;;
556     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
557         echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
558         exit 0 ;;                           # report: romp-ibm BSD 4.3
559     *:BOSX:*:*)
560         echo rs6000-bull-bosx
561         exit 0 ;;
562     DPX/2?00:B.O.S.:*:*)
563         echo m68k-bull-sysv3
564         exit 0 ;;
565     9000/[34]??:4.3bsd:1.*:*)
566         echo m68k-hp-bsd
567         exit 0 ;;
568     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
569         echo m68k-hp-bsd4.4
570         exit 0 ;;
571     9000/[34678]??:HP-UX:*:*)
572         HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
573         case "${UNAME_MACHINE}" in
574             9000/31? )            HP_ARCH=m68000 ;;
575             9000/[34]?? )         HP_ARCH=m68k ;;
576             9000/[678][0-9][0-9])
577                 if [ -x /usr/bin/getconf ]; then
578                     sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
579                     sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
580                     case "${sc_cpu_version}" in
581                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
582                       528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
583                       532)                      # CPU_PA_RISC2_0
584                         case "${sc_kernel_bits}" in
585                           32) HP_ARCH="hppa2.0n" ;;
586                           64) HP_ARCH="hppa2.0w" ;;
587                           '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
588                         esac ;;
589                     esac
590                 fi
591                 if [ "${HP_ARCH}" = "" ]; then
592                     eval $set_cc_for_build
593                     sed 's/^              //' << EOF >$dummy.c
594
595               #define _HPUX_SOURCE
596               #include <stdlib.h>
597               #include <unistd.h>
598
599               int main ()
600               {
601               #if defined(_SC_KERNEL_BITS)
602                   long bits = sysconf(_SC_KERNEL_BITS);
603               #endif
604                   long cpu  = sysconf (_SC_CPU_VERSION);
605
606                   switch (cpu)
607                 {
608                 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
609                 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
610                 case CPU_PA_RISC2_0:
611               #if defined(_SC_KERNEL_BITS)
612                     switch (bits)
613                         {
614                         case 64: puts ("hppa2.0w"); break;
615                         case 32: puts ("hppa2.0n"); break;
616                         default: puts ("hppa2.0"); break;
617                         } break;
618               #else  /* !defined(_SC_KERNEL_BITS) */
619                     puts ("hppa2.0"); break;
620               #endif
621                 default: puts ("hppa1.0"); break;
622                 }
623                   exit (0);
624               }
625 EOF
626                     (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy`
627                     if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
628                     rm -f $dummy.c $dummy && rmdir $tmpdir
629                 fi ;;
630         esac
631         echo ${HP_ARCH}-hp-hpux${HPUX_REV}
632         exit 0 ;;
633     ia64:HP-UX:*:*)
634         HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
635         echo ia64-hp-hpux${HPUX_REV}
636         exit 0 ;;
637     3050*:HI-UX:*:*)
638         eval $set_cc_for_build
639         sed 's/^        //' << EOF >$dummy.c
640         #include <unistd.h>
641         int
642         main ()
643         {
644           long cpu = sysconf (_SC_CPU_VERSION);
645           /* The order matters, because CPU_IS_HP_MC68K erroneously returns
646              true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
647              results, however.  */
648           if (CPU_IS_PA_RISC (cpu))
649             {
650               switch (cpu)
651                 {
652                   case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
653                   case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
654                   case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
655                   default: puts ("hppa-hitachi-hiuxwe2"); break;
656                 }
657             }
658           else if (CPU_IS_HP_MC68K (cpu))
659             puts ("m68k-hitachi-hiuxwe2");
660           else puts ("unknown-hitachi-hiuxwe2");
661           exit (0);
662         }
663 EOF
664         $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
665         rm -f $dummy.c $dummy && rmdir $tmpdir
666         echo unknown-hitachi-hiuxwe2
667         exit 0 ;;
668     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
669         echo hppa1.1-hp-bsd
670         exit 0 ;;
671     9000/8??:4.3bsd:*:*)
672         echo hppa1.0-hp-bsd
673         exit 0 ;;
674     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
675         echo hppa1.0-hp-mpeix
676         exit 0 ;;
677     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
678         echo hppa1.1-hp-osf
679         exit 0 ;;
680     hp8??:OSF1:*:*)
681         echo hppa1.0-hp-osf
682         exit 0 ;;
683     i*86:OSF1:*:*)
684         if [ -x /usr/sbin/sysversion ] ; then
685             echo ${UNAME_MACHINE}-unknown-osf1mk
686         else
687             echo ${UNAME_MACHINE}-unknown-osf1
688         fi
689         exit 0 ;;
690     parisc*:Lites*:*:*)
691         echo hppa1.1-hp-lites
692         exit 0 ;;
693     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
694         echo c1-convex-bsd
695         exit 0 ;;
696     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
697         if getsysinfo -f scalar_acc
698         then echo c32-convex-bsd
699         else echo c2-convex-bsd
700         fi
701         exit 0 ;;
702     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
703         echo c34-convex-bsd
704         exit 0 ;;
705     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
706         echo c38-convex-bsd
707         exit 0 ;;
708     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
709         echo c4-convex-bsd
710         exit 0 ;;
711     CRAY*Y-MP:*:*:*)
712         echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
713         exit 0 ;;
714     CRAY*[A-Z]90:*:*:*)
715         echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
716         | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
717               -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
718               -e 's/\.[^.]*$/.X/'
719         exit 0 ;;
720     CRAY*TS:*:*:*)
721         echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
722         exit 0 ;;
723     CRAY*T3D:*:*:*)
724         echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
725         exit 0 ;;
726     CRAY*T3E:*:*:*)
727         echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
728         exit 0 ;;
729     CRAY*SV1:*:*:*)
730         echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
731         exit 0 ;;
732     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
733         FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
734         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
735         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
736         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
737         exit 0 ;;
738     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
739         echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
740         exit 0 ;;
741     sparc*:BSD/OS:*:*)
742         echo sparc-unknown-bsdi${UNAME_RELEASE}
743         exit 0 ;;
744     *:BSD/OS:*:*)
745         echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
746         exit 0 ;;
747     *:FreeBSD:*:*)
748         # Determine whether the default compiler uses glibc.
749         eval $set_cc_for_build
750         sed 's/^        //' << EOF >$dummy.c
751         #include <features.h>
752         #if __GLIBC__ >= 2
753         LIBC=gnu
754         #else
755         LIBC=
756         #endif
757 EOF
758         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
759         rm -f $dummy.c && rmdir $tmpdir
760         echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
761         exit 0 ;;
762     i*:CYGWIN*:*)
763         echo ${UNAME_MACHINE}-pc-cygwin
764         exit 0 ;;
765     i*:MINGW*:*)
766         echo ${UNAME_MACHINE}-pc-mingw32
767         exit 0 ;;
768     i*:PW*:*)
769         echo ${UNAME_MACHINE}-pc-pw32
770         exit 0 ;;
771     x86:Interix*:3*)
772         echo i386-pc-interix3
773         exit 0 ;;
774     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
775         # How do we know it's Interix rather than the generic POSIX subsystem?
776         # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
777         # UNAME_MACHINE based on the output of uname instead of i386?
778         echo i386-pc-interix
779         exit 0 ;;
780     i*:UWIN*:*)
781         echo ${UNAME_MACHINE}-pc-uwin
782         exit 0 ;;
783     p*:CYGWIN*:*)
784         echo powerpcle-unknown-cygwin
785         exit 0 ;;
786     prep*:SunOS:5.*:*)
787         echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
788         exit 0 ;;
789     *:GNU:*:*)
790         echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
791         exit 0 ;;
792     i*86:Minix:*:*)
793         echo ${UNAME_MACHINE}-pc-minix
794         exit 0 ;;
795     arm*:Linux:*:*)
796         echo ${UNAME_MACHINE}-unknown-linux-gnu
797         exit 0 ;;
798     ia64:Linux:*:*)
799         echo ${UNAME_MACHINE}-unknown-linux-gnu
800         exit 0 ;;
801     m68*:Linux:*:*)
802         echo ${UNAME_MACHINE}-unknown-linux-gnu
803         exit 0 ;;
804     mips:Linux:*:*)
805         eval $set_cc_for_build
806         sed 's/^        //' << EOF >$dummy.c
807         #undef CPU
808         #undef mips
809         #undef mipsel
810         #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
811         CPU=mipsel
812         #else
813         #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
814         CPU=mips
815         #else
816         CPU=
817         #endif
818         #endif
819 EOF
820         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
821         rm -f $dummy.c && rmdir $tmpdir
822         test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
823         ;;
824     ppc:Linux:*:*)
825         echo powerpc-unknown-linux-gnu
826         exit 0 ;;
827     ppc64:Linux:*:*)
828         echo powerpc64-unknown-linux-gnu
829         exit 0 ;;
830     alpha:Linux:*:*)
831         case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
832           EV5)   UNAME_MACHINE=alphaev5 ;;
833           EV56)  UNAME_MACHINE=alphaev56 ;;
834           PCA56) UNAME_MACHINE=alphapca56 ;;
835           PCA57) UNAME_MACHINE=alphapca56 ;;
836           EV6)   UNAME_MACHINE=alphaev6 ;;
837           EV67)  UNAME_MACHINE=alphaev67 ;;
838           EV68*) UNAME_MACHINE=alphaev68 ;;
839         esac
840         objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
841         if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
842         echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
843         exit 0 ;;
844     parisc:Linux:*:* | hppa:Linux:*:*)
845         # Look for CPU level
846         case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
847           PA7*) echo hppa1.1-unknown-linux-gnu ;;
848           PA8*) echo hppa2.0-unknown-linux-gnu ;;
849           *)    echo hppa-unknown-linux-gnu ;;
850         esac
851         exit 0 ;;
852     parisc64:Linux:*:* | hppa64:Linux:*:*)
853         echo hppa64-unknown-linux-gnu
854         exit 0 ;;
855     s390:Linux:*:* | s390x:Linux:*:*)
856         echo ${UNAME_MACHINE}-ibm-linux
857         exit 0 ;;
858     sh*:Linux:*:*)
859         echo ${UNAME_MACHINE}-unknown-linux-gnu
860         exit 0 ;;
861     sparc:Linux:*:* | sparc64:Linux:*:*)
862         echo ${UNAME_MACHINE}-unknown-linux-gnu
863         exit 0 ;;
864     x86_64:Linux:*:*)
865         echo x86_64-unknown-linux-gnu
866         exit 0 ;;
867     i*86:Linux:*:*)
868         # The BFD linker knows what the default object file format is, so
869         # first see if it will tell us. cd to the root directory to prevent
870         # problems with other programs or directories called `ld' in the path.
871         # Set LC_ALL=C to ensure ld outputs messages in English.
872         ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
873                          | sed -ne '/supported targets:/!d
874                                     s/[         ][      ]*/ /g
875                                     s/.*supported targets: *//
876                                     s/ .*//
877                                     p'`
878         case "$ld_supported_targets" in
879           elf32-i386)
880                 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
881                 ;;
882           a.out-i386-linux)
883                 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
884                 exit 0 ;;
885           coff-i386)
886                 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
887                 exit 0 ;;
888           "")
889                 # Either a pre-BFD a.out linker (linux-gnuoldld) or
890                 # one that does not give us useful --help.
891                 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
892                 exit 0 ;;
893         esac
894         # Determine whether the default compiler is a.out or elf
895         eval $set_cc_for_build
896         sed 's/^        //' << EOF >$dummy.c
897         #include <features.h>
898         #ifdef __ELF__
899         # ifdef __GLIBC__
900         #  if __GLIBC__ >= 2
901         LIBC=gnu
902         #  else
903         LIBC=gnulibc1
904         #  endif
905         # else
906         LIBC=gnulibc1
907         # endif
908         #else
909         #ifdef __INTEL_COMPILER
910         LIBC=gnu
911         #else
912         LIBC=gnuaout
913         #endif
914         #endif
915 EOF
916         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
917         rm -f $dummy.c && rmdir $tmpdir
918         test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
919         test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
920         ;;
921     i*86:DYNIX/ptx:4*:*)
922         # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
923         # earlier versions are messed up and put the nodename in both
924         # sysname and nodename.
925         echo i386-sequent-sysv4
926         exit 0 ;;
927     i*86:UNIX_SV:4.2MP:2.*)
928         # Unixware is an offshoot of SVR4, but it has its own version
929         # number series starting with 2...
930         # I am not positive that other SVR4 systems won't match this,
931         # I just have to hope.  -- rms.
932         # Use sysv4.2uw... so that sysv4* matches it.
933         echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
934         exit 0 ;;
935     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
936         UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
937         if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
938                 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
939         else
940                 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
941         fi
942         exit 0 ;;
943     i*86:*:5:[78]*)
944         case `/bin/uname -X | grep "^Machine"` in
945             *486*)           UNAME_MACHINE=i486 ;;
946             *Pentium)        UNAME_MACHINE=i586 ;;
947             *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
948         esac
949         echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
950         exit 0 ;;
951     i*86:*:3.2:*)
952         if test -f /usr/options/cb.name; then
953                 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
954                 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
955         elif /bin/uname -X 2>/dev/null >/dev/null ; then
956                 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
957                 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
958                 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
959                         && UNAME_MACHINE=i586
960                 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
961                         && UNAME_MACHINE=i686
962                 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
963                         && UNAME_MACHINE=i686
964                 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
965         else
966                 echo ${UNAME_MACHINE}-pc-sysv32
967         fi
968         exit 0 ;;
969     i*86:*DOS:*:*)
970         echo ${UNAME_MACHINE}-pc-msdosdjgpp
971         exit 0 ;;
972     pc:*:*:*)
973         # Left here for compatibility:
974         # uname -m prints for DJGPP always 'pc', but it prints nothing about
975         # the processor, so we play safe by assuming i386.
976         echo i386-pc-msdosdjgpp
977         exit 0 ;;
978     Intel:Mach:3*:*)
979         echo i386-pc-mach3
980         exit 0 ;;
981     paragon:*:*:*)
982         echo i860-intel-osf1
983         exit 0 ;;
984     i860:*:4.*:*) # i860-SVR4
985         if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
986           echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
987         else # Add other i860-SVR4 vendors below as they are discovered.
988           echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
989         fi
990         exit 0 ;;
991     mini*:CTIX:SYS*5:*)
992         # "miniframe"
993         echo m68010-convergent-sysv
994         exit 0 ;;
995     mc68k:UNIX:SYSTEM5:3.51m)
996         echo m68k-convergent-sysv
997         exit 0 ;;
998     M68*:*:R3V[567]*:*)
999         test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1000     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)
1001         OS_REL=''
1002         test -r /etc/.relid \
1003         && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1004         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1005           && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1006         /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1007           && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1008     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1009         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1010           && echo i486-ncr-sysv4 && exit 0 ;;
1011     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1012         echo m68k-unknown-lynxos${UNAME_RELEASE}
1013         exit 0 ;;
1014     mc68030:UNIX_System_V:4.*:*)
1015         echo m68k-atari-sysv4
1016         exit 0 ;;
1017     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1018         echo i386-unknown-lynxos${UNAME_RELEASE}
1019         exit 0 ;;
1020     TSUNAMI:LynxOS:2.*:*)
1021         echo sparc-unknown-lynxos${UNAME_RELEASE}
1022         exit 0 ;;
1023     rs6000:LynxOS:2.*:*)
1024         echo rs6000-unknown-lynxos${UNAME_RELEASE}
1025         exit 0 ;;
1026     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1027         echo powerpc-unknown-lynxos${UNAME_RELEASE}
1028         exit 0 ;;
1029     SM[BE]S:UNIX_SV:*:*)
1030         echo mips-dde-sysv${UNAME_RELEASE}
1031         exit 0 ;;
1032     RM*:ReliantUNIX-*:*:*)
1033         echo mips-sni-sysv4
1034         exit 0 ;;
1035     RM*:SINIX-*:*:*)
1036         echo mips-sni-sysv4
1037         exit 0 ;;
1038     *:SINIX-*:*:*)
1039         if uname -p 2>/dev/null >/dev/null ; then
1040                 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1041                 echo ${UNAME_MACHINE}-sni-sysv4
1042         else
1043                 echo ns32k-sni-sysv
1044         fi
1045         exit 0 ;;
1046     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1047                       # says <Richard.M.Bartel@ccMail.Census.GOV>
1048         echo i586-unisys-sysv4
1049         exit 0 ;;
1050     *:UNIX_System_V:4*:FTX*)
1051         # From Gerald Hewes <hewes@openmarket.com>.
1052         # How about differentiating between stratus architectures? -djm
1053         echo hppa1.1-stratus-sysv4
1054         exit 0 ;;
1055     *:*:*:FTX*)
1056         # From seanf@swdc.stratus.com.
1057         echo i860-stratus-sysv4
1058         exit 0 ;;
1059     *:VOS:*:*)
1060         # From Paul.Green@stratus.com.
1061         echo hppa1.1-stratus-vos
1062         exit 0 ;;
1063     mc68*:A/UX:*:*)
1064         echo m68k-apple-aux${UNAME_RELEASE}
1065         exit 0 ;;
1066     news*:NEWS-OS:6*:*)
1067         echo mips-sony-newsos6
1068         exit 0 ;;
1069     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1070         if [ -d /usr/nec ]; then
1071                 echo mips-nec-sysv${UNAME_RELEASE}
1072         else
1073                 echo mips-unknown-sysv${UNAME_RELEASE}
1074         fi
1075         exit 0 ;;
1076     BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
1077         echo powerpc-be-beos
1078         exit 0 ;;
1079     BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
1080         echo powerpc-apple-beos
1081         exit 0 ;;
1082     BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
1083         echo i586-pc-beos
1084         exit 0 ;;
1085     SX-4:SUPER-UX:*:*)
1086         echo sx4-nec-superux${UNAME_RELEASE}
1087         exit 0 ;;
1088     SX-5:SUPER-UX:*:*)
1089         echo sx5-nec-superux${UNAME_RELEASE}
1090         exit 0 ;;
1091     SX-6:SUPER-UX:*:*)
1092         echo sx6-nec-superux${UNAME_RELEASE}
1093         exit 0 ;;
1094     Power*:Rhapsody:*:*)
1095         echo powerpc-apple-rhapsody${UNAME_RELEASE}
1096         exit 0 ;;
1097     *:Rhapsody:*:*)
1098         echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1099         exit 0 ;;
1100     *:Darwin:*:*)
1101         echo `uname -p`-apple-darwin${UNAME_RELEASE}
1102         exit 0 ;;
1103     *:procnto*:*:* | *:QNX:[0123456789]*:*)
1104         UNAME_PROCESSOR=`uname -p`
1105         if test "$UNAME_PROCESSOR" = "x86"; then
1106                 UNAME_PROCESSOR=i386
1107                 UNAME_MACHINE=pc
1108         fi
1109         echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1110         exit 0 ;;
1111     *:QNX:*:4*)
1112         echo i386-pc-qnx
1113         exit 0 ;;
1114     NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
1115         echo nsr-tandem-nsk${UNAME_RELEASE}
1116         exit 0 ;;
1117     *:NonStop-UX:*:*)
1118         echo mips-compaq-nonstopux
1119         exit 0 ;;
1120     BS2000:POSIX*:*:*)
1121         echo bs2000-siemens-sysv
1122         exit 0 ;;
1123     DS/*:UNIX_System_V:*:*)
1124         echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1125         exit 0 ;;
1126     *:Plan9:*:*)
1127         # "uname -m" is not consistent, so use $cputype instead. 386
1128         # is converted to i386 for consistency with other x86
1129         # operating systems.
1130         if test "$cputype" = "386"; then
1131             UNAME_MACHINE=i386
1132         else
1133             UNAME_MACHINE="$cputype"
1134         fi
1135         echo ${UNAME_MACHINE}-unknown-plan9
1136         exit 0 ;;
1137     i*86:OS/2:*:*)
1138         # If we were able to find `uname', then EMX Unix compatibility
1139         # is probably installed.
1140         echo ${UNAME_MACHINE}-pc-os2-emx
1141         exit 0 ;;
1142     *:TOPS-10:*:*)
1143         echo pdp10-unknown-tops10
1144         exit 0 ;;
1145     *:TENEX:*:*)
1146         echo pdp10-unknown-tenex
1147         exit 0 ;;
1148     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1149         echo pdp10-dec-tops20
1150         exit 0 ;;
1151     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1152         echo pdp10-xkl-tops20
1153         exit 0 ;;
1154     *:TOPS-20:*:*)
1155         echo pdp10-unknown-tops20
1156         exit 0 ;;
1157     *:ITS:*:*)
1158         echo pdp10-unknown-its
1159         exit 0 ;;
1160     i*86:XTS-300:*:STOP)
1161         echo ${UNAME_MACHINE}-unknown-stop
1162         exit 0 ;;
1163     i*86:atheos:*:*)
1164         echo ${UNAME_MACHINE}-unknown-atheos
1165         exit 0 ;;
1166 esac
1167
1168 #echo '(No uname command or uname output not recognized.)' 1>&2
1169 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1170
1171 eval $set_cc_for_build
1172 cat >$dummy.c <<EOF
1173 #ifdef _SEQUENT_
1174 # include <sys/types.h>
1175 # include <sys/utsname.h>
1176 #endif
1177 main ()
1178 {
1179 #if defined (sony)
1180 #if defined (MIPSEB)
1181   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1182      I don't know....  */
1183   printf ("mips-sony-bsd\n"); exit (0);
1184 #else
1185 #include <sys/param.h>
1186   printf ("m68k-sony-newsos%s\n",
1187 #ifdef NEWSOS4
1188           "4"
1189 #else
1190           ""
1191 #endif
1192          ); exit (0);
1193 #endif
1194 #endif
1195
1196 #if defined (__arm) && defined (__acorn) && defined (__unix)
1197   printf ("arm-acorn-riscix"); exit (0);
1198 #endif
1199
1200 #if defined (hp300) && !defined (hpux)
1201   printf ("m68k-hp-bsd\n"); exit (0);
1202 #endif
1203
1204 #if defined (NeXT)
1205 #if !defined (__ARCHITECTURE__)
1206 #define __ARCHITECTURE__ "m68k"
1207 #endif
1208   int version;
1209   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1210   if (version < 4)
1211     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1212   else
1213     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1214   exit (0);
1215 #endif
1216
1217 #if defined (MULTIMAX) || defined (n16)
1218 #if defined (UMAXV)
1219   printf ("ns32k-encore-sysv\n"); exit (0);
1220 #else
1221 #if defined (CMU)
1222   printf ("ns32k-encore-mach\n"); exit (0);
1223 #else
1224   printf ("ns32k-encore-bsd\n"); exit (0);
1225 #endif
1226 #endif
1227 #endif
1228
1229 #if defined (__386BSD__)
1230   printf ("i386-pc-bsd\n"); exit (0);
1231 #endif
1232
1233 #if defined (sequent)
1234 #if defined (i386)
1235   printf ("i386-sequent-dynix\n"); exit (0);
1236 #endif
1237 #if defined (ns32000)
1238   printf ("ns32k-sequent-dynix\n"); exit (0);
1239 #endif
1240 #endif
1241
1242 #if defined (_SEQUENT_)
1243     struct utsname un;
1244
1245     uname(&un);
1246
1247     if (strncmp(un.version, "V2", 2) == 0) {
1248         printf ("i386-sequent-ptx2\n"); exit (0);
1249     }
1250     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1251         printf ("i386-sequent-ptx1\n"); exit (0);
1252     }
1253     printf ("i386-sequent-ptx\n"); exit (0);
1254
1255 #endif
1256
1257 #if defined (vax)
1258 # if !defined (ultrix)
1259 #  include <sys/param.h>
1260 #  if defined (BSD)
1261 #   if BSD == 43
1262       printf ("vax-dec-bsd4.3\n"); exit (0);
1263 #   else
1264 #    if BSD == 199006
1265       printf ("vax-dec-bsd4.3reno\n"); exit (0);
1266 #    else
1267       printf ("vax-dec-bsd\n"); exit (0);
1268 #    endif
1269 #   endif
1270 #  else
1271     printf ("vax-dec-bsd\n"); exit (0);
1272 #  endif
1273 # else
1274     printf ("vax-dec-ultrix\n"); exit (0);
1275 # endif
1276 #endif
1277
1278 #if defined (alliant) && defined (i860)
1279   printf ("i860-alliant-bsd\n"); exit (0);
1280 #endif
1281
1282   exit (1);
1283 }
1284 EOF
1285
1286 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1287 rm -f $dummy.c $dummy && rmdir $tmpdir
1288
1289 # Apollos put the system type in the environment.
1290
1291 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1292
1293 # Convex versions that predate uname can use getsysinfo(1)
1294
1295 if [ -x /usr/convex/getsysinfo ]
1296 then
1297     case `getsysinfo -f cpu_type` in
1298     c1*)
1299         echo c1-convex-bsd
1300         exit 0 ;;
1301     c2*)
1302         if getsysinfo -f scalar_acc
1303         then echo c32-convex-bsd
1304         else echo c2-convex-bsd
1305         fi
1306         exit 0 ;;
1307     c34*)
1308         echo c34-convex-bsd
1309         exit 0 ;;
1310     c38*)
1311         echo c38-convex-bsd
1312         exit 0 ;;
1313     c4*)
1314         echo c4-convex-bsd
1315         exit 0 ;;
1316     esac
1317 fi
1318
1319 cat >&2 <<EOF
1320 $0: unable to guess system type
1321
1322 This script, last modified $timestamp, has failed to recognize
1323 the operating system you are using. It is advised that you
1324 download the most up to date version of the config scripts from
1325
1326     ftp://ftp.gnu.org/pub/gnu/config/
1327
1328 If the version you run ($0) is already up to date, please
1329 send the following data and any information you think might be
1330 pertinent to <config-patches@gnu.org> in order to provide the needed
1331 information to handle your system.
1332
1333 config.guess timestamp = $timestamp
1334
1335 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1336 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1337 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1338 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1339
1340 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1341 /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1342
1343 hostinfo               = `(hostinfo) 2>/dev/null`
1344 /bin/universe          = `(/bin/universe) 2>/dev/null`
1345 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1346 /bin/arch              = `(/bin/arch) 2>/dev/null`
1347 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1348 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1349
1350 UNAME_MACHINE = ${UNAME_MACHINE}
1351 UNAME_RELEASE = ${UNAME_RELEASE}
1352 UNAME_SYSTEM  = ${UNAME_SYSTEM}
1353 UNAME_VERSION = ${UNAME_VERSION}
1354 EOF
1355
1356 exit 1
1357
1358 # Local variables:
1359 # eval: (add-hook 'write-file-hooks 'time-stamp)
1360 # time-stamp-start: "timestamp='"
1361 # time-stamp-format: "%:y-%02m-%02d"
1362 # time-stamp-end: "'"
1363 # End: