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