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