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