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