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