This commit was generated by cvs2svn to track changes on a CVS vendor
[platform/upstream/binutils.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     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     mc68k:UNIX:SYSTEM5:3.51m)
993         echo m68k-convergent-sysv
994         exit 0 ;;
995     M68*:*:R3V[567]*:*)
996         test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
997     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)
998         OS_REL=''
999         test -r /etc/.relid \
1000         && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1001         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1002           && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1003         /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1004           && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1005     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1006         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1007           && echo i486-ncr-sysv4 && exit 0 ;;
1008     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1009         echo m68k-unknown-lynxos${UNAME_RELEASE}
1010         exit 0 ;;
1011     mc68030:UNIX_System_V:4.*:*)
1012         echo m68k-atari-sysv4
1013         exit 0 ;;
1014     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1015         echo i386-unknown-lynxos${UNAME_RELEASE}
1016         exit 0 ;;
1017     TSUNAMI:LynxOS:2.*:*)
1018         echo sparc-unknown-lynxos${UNAME_RELEASE}
1019         exit 0 ;;
1020     rs6000:LynxOS:2.*:*)
1021         echo rs6000-unknown-lynxos${UNAME_RELEASE}
1022         exit 0 ;;
1023     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1024         echo powerpc-unknown-lynxos${UNAME_RELEASE}
1025         exit 0 ;;
1026     SM[BE]S:UNIX_SV:*:*)
1027         echo mips-dde-sysv${UNAME_RELEASE}
1028         exit 0 ;;
1029     RM*:ReliantUNIX-*:*:*)
1030         echo mips-sni-sysv4
1031         exit 0 ;;
1032     RM*:SINIX-*:*:*)
1033         echo mips-sni-sysv4
1034         exit 0 ;;
1035     *:SINIX-*:*:*)
1036         if uname -p 2>/dev/null >/dev/null ; then
1037                 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1038                 echo ${UNAME_MACHINE}-sni-sysv4
1039         else
1040                 echo ns32k-sni-sysv
1041         fi
1042         exit 0 ;;
1043     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1044                       # says <Richard.M.Bartel@ccMail.Census.GOV>
1045         echo i586-unisys-sysv4
1046         exit 0 ;;
1047     *:UNIX_System_V:4*:FTX*)
1048         # From Gerald Hewes <hewes@openmarket.com>.
1049         # How about differentiating between stratus architectures? -djm
1050         echo hppa1.1-stratus-sysv4
1051         exit 0 ;;
1052     *:*:*:FTX*)
1053         # From seanf@swdc.stratus.com.
1054         echo i860-stratus-sysv4
1055         exit 0 ;;
1056     *:VOS:*:*)
1057         # From Paul.Green@stratus.com.
1058         echo hppa1.1-stratus-vos
1059         exit 0 ;;
1060     mc68*:A/UX:*:*)
1061         echo m68k-apple-aux${UNAME_RELEASE}
1062         exit 0 ;;
1063     news*:NEWS-OS:6*:*)
1064         echo mips-sony-newsos6
1065         exit 0 ;;
1066     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1067         if [ -d /usr/nec ]; then
1068                 echo mips-nec-sysv${UNAME_RELEASE}
1069         else
1070                 echo mips-unknown-sysv${UNAME_RELEASE}
1071         fi
1072         exit 0 ;;
1073     BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
1074         echo powerpc-be-beos
1075         exit 0 ;;
1076     BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
1077         echo powerpc-apple-beos
1078         exit 0 ;;
1079     BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
1080         echo i586-pc-beos
1081         exit 0 ;;
1082     SX-4:SUPER-UX:*:*)
1083         echo sx4-nec-superux${UNAME_RELEASE}
1084         exit 0 ;;
1085     SX-5:SUPER-UX:*:*)
1086         echo sx5-nec-superux${UNAME_RELEASE}
1087         exit 0 ;;
1088     SX-6:SUPER-UX:*:*)
1089         echo sx6-nec-superux${UNAME_RELEASE}
1090         exit 0 ;;
1091     Power*:Rhapsody:*:*)
1092         echo powerpc-apple-rhapsody${UNAME_RELEASE}
1093         exit 0 ;;
1094     *:Rhapsody:*:*)
1095         echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1096         exit 0 ;;
1097     *:Darwin:*:*)
1098         echo `uname -p`-apple-darwin${UNAME_RELEASE}
1099         exit 0 ;;
1100     *:procnto*:*:* | *:QNX:[0123456789]*:*)
1101         UNAME_PROCESSOR=`uname -p`
1102         if test "$UNAME_PROCESSOR" = "x86"; then
1103                 UNAME_PROCESSOR=i386
1104                 UNAME_MACHINE=pc
1105         fi
1106         echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1107         exit 0 ;;
1108     *:QNX:*:4*)
1109         echo i386-pc-qnx
1110         exit 0 ;;
1111     NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
1112         echo nsr-tandem-nsk${UNAME_RELEASE}
1113         exit 0 ;;
1114     *:NonStop-UX:*:*)
1115         echo mips-compaq-nonstopux
1116         exit 0 ;;
1117     BS2000:POSIX*:*:*)
1118         echo bs2000-siemens-sysv
1119         exit 0 ;;
1120     DS/*:UNIX_System_V:*:*)
1121         echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1122         exit 0 ;;
1123     *:Plan9:*:*)
1124         # "uname -m" is not consistent, so use $cputype instead. 386
1125         # is converted to i386 for consistency with other x86
1126         # operating systems.
1127         if test "$cputype" = "386"; then
1128             UNAME_MACHINE=i386
1129         else
1130             UNAME_MACHINE="$cputype"
1131         fi
1132         echo ${UNAME_MACHINE}-unknown-plan9
1133         exit 0 ;;
1134     i*86:OS/2:*:*)
1135         # If we were able to find `uname', then EMX Unix compatibility
1136         # is probably installed.
1137         echo ${UNAME_MACHINE}-pc-os2-emx
1138         exit 0 ;;
1139     *:TOPS-10:*:*)
1140         echo pdp10-unknown-tops10
1141         exit 0 ;;
1142     *:TENEX:*:*)
1143         echo pdp10-unknown-tenex
1144         exit 0 ;;
1145     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1146         echo pdp10-dec-tops20
1147         exit 0 ;;
1148     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1149         echo pdp10-xkl-tops20
1150         exit 0 ;;
1151     *:TOPS-20:*:*)
1152         echo pdp10-unknown-tops20
1153         exit 0 ;;
1154     *:ITS:*:*)
1155         echo pdp10-unknown-its
1156         exit 0 ;;
1157     i*86:XTS-300:*:STOP)
1158         echo ${UNAME_MACHINE}-unknown-stop
1159         exit 0 ;;
1160     i*86:atheos:*:*)
1161         echo ${UNAME_MACHINE}-unknown-atheos
1162         exit 0 ;;
1163 esac
1164
1165 #echo '(No uname command or uname output not recognized.)' 1>&2
1166 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1167
1168 eval $set_cc_for_build
1169 cat >$dummy.c <<EOF
1170 #ifdef _SEQUENT_
1171 # include <sys/types.h>
1172 # include <sys/utsname.h>
1173 #endif
1174 main ()
1175 {
1176 #if defined (sony)
1177 #if defined (MIPSEB)
1178   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1179      I don't know....  */
1180   printf ("mips-sony-bsd\n"); exit (0);
1181 #else
1182 #include <sys/param.h>
1183   printf ("m68k-sony-newsos%s\n",
1184 #ifdef NEWSOS4
1185           "4"
1186 #else
1187           ""
1188 #endif
1189          ); exit (0);
1190 #endif
1191 #endif
1192
1193 #if defined (__arm) && defined (__acorn) && defined (__unix)
1194   printf ("arm-acorn-riscix"); exit (0);
1195 #endif
1196
1197 #if defined (hp300) && !defined (hpux)
1198   printf ("m68k-hp-bsd\n"); exit (0);
1199 #endif
1200
1201 #if defined (NeXT)
1202 #if !defined (__ARCHITECTURE__)
1203 #define __ARCHITECTURE__ "m68k"
1204 #endif
1205   int version;
1206   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1207   if (version < 4)
1208     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1209   else
1210     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1211   exit (0);
1212 #endif
1213
1214 #if defined (MULTIMAX) || defined (n16)
1215 #if defined (UMAXV)
1216   printf ("ns32k-encore-sysv\n"); exit (0);
1217 #else
1218 #if defined (CMU)
1219   printf ("ns32k-encore-mach\n"); exit (0);
1220 #else
1221   printf ("ns32k-encore-bsd\n"); exit (0);
1222 #endif
1223 #endif
1224 #endif
1225
1226 #if defined (__386BSD__)
1227   printf ("i386-pc-bsd\n"); exit (0);
1228 #endif
1229
1230 #if defined (sequent)
1231 #if defined (i386)
1232   printf ("i386-sequent-dynix\n"); exit (0);
1233 #endif
1234 #if defined (ns32000)
1235   printf ("ns32k-sequent-dynix\n"); exit (0);
1236 #endif
1237 #endif
1238
1239 #if defined (_SEQUENT_)
1240     struct utsname un;
1241
1242     uname(&un);
1243
1244     if (strncmp(un.version, "V2", 2) == 0) {
1245         printf ("i386-sequent-ptx2\n"); exit (0);
1246     }
1247     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1248         printf ("i386-sequent-ptx1\n"); exit (0);
1249     }
1250     printf ("i386-sequent-ptx\n"); exit (0);
1251
1252 #endif
1253
1254 #if defined (vax)
1255 # if !defined (ultrix)
1256 #  include <sys/param.h>
1257 #  if defined (BSD)
1258 #   if BSD == 43
1259       printf ("vax-dec-bsd4.3\n"); exit (0);
1260 #   else
1261 #    if BSD == 199006
1262       printf ("vax-dec-bsd4.3reno\n"); exit (0);
1263 #    else
1264       printf ("vax-dec-bsd\n"); exit (0);
1265 #    endif
1266 #   endif
1267 #  else
1268     printf ("vax-dec-bsd\n"); exit (0);
1269 #  endif
1270 # else
1271     printf ("vax-dec-ultrix\n"); exit (0);
1272 # endif
1273 #endif
1274
1275 #if defined (alliant) && defined (i860)
1276   printf ("i860-alliant-bsd\n"); exit (0);
1277 #endif
1278
1279   exit (1);
1280 }
1281 EOF
1282
1283 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1284 rm -f $dummy.c $dummy && rmdir $tmpdir
1285
1286 # Apollos put the system type in the environment.
1287
1288 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1289
1290 # Convex versions that predate uname can use getsysinfo(1)
1291
1292 if [ -x /usr/convex/getsysinfo ]
1293 then
1294     case `getsysinfo -f cpu_type` in
1295     c1*)
1296         echo c1-convex-bsd
1297         exit 0 ;;
1298     c2*)
1299         if getsysinfo -f scalar_acc
1300         then echo c32-convex-bsd
1301         else echo c2-convex-bsd
1302         fi
1303         exit 0 ;;
1304     c34*)
1305         echo c34-convex-bsd
1306         exit 0 ;;
1307     c38*)
1308         echo c38-convex-bsd
1309         exit 0 ;;
1310     c4*)
1311         echo c4-convex-bsd
1312         exit 0 ;;
1313     esac
1314 fi
1315
1316 cat >&2 <<EOF
1317 $0: unable to guess system type
1318
1319 This script, last modified $timestamp, has failed to recognize
1320 the operating system you are using. It is advised that you
1321 download the most up to date version of the config scripts from
1322
1323     ftp://ftp.gnu.org/pub/gnu/config/
1324
1325 If the version you run ($0) is already up to date, please
1326 send the following data and any information you think might be
1327 pertinent to <config-patches@gnu.org> in order to provide the needed
1328 information to handle your system.
1329
1330 config.guess timestamp = $timestamp
1331
1332 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1333 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1334 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1335 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1336
1337 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1338 /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1339
1340 hostinfo               = `(hostinfo) 2>/dev/null`
1341 /bin/universe          = `(/bin/universe) 2>/dev/null`
1342 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1343 /bin/arch              = `(/bin/arch) 2>/dev/null`
1344 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1345 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1346
1347 UNAME_MACHINE = ${UNAME_MACHINE}
1348 UNAME_RELEASE = ${UNAME_RELEASE}
1349 UNAME_SYSTEM  = ${UNAME_SYSTEM}
1350 UNAME_VERSION = ${UNAME_VERSION}
1351 EOF
1352
1353 exit 1
1354
1355 # Local variables:
1356 # eval: (add-hook 'write-file-hooks 'time-stamp)
1357 # time-stamp-start: "timestamp='"
1358 # time-stamp-format: "%:y-%02m-%02d"
1359 # time-stamp-end: "'"
1360 # End: