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