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