]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/libreadline/support/config.guess
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / libreadline / support / 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-11-30'
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                     if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
639                     rm -f $dummy.c $dummy && rmdir $tmpdir
640                 fi ;;
641         esac
642         echo ${HP_ARCH}-hp-hpux${HPUX_REV}
643         exit 0 ;;
644     ia64:HP-UX:*:*)
645         HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
646         echo ia64-hp-hpux${HPUX_REV}
647         exit 0 ;;
648     3050*:HI-UX:*:*)
649         eval $set_cc_for_build
650         sed 's/^        //' << EOF >$dummy.c
651         #include <unistd.h>
652         int
653         main ()
654         {
655           long cpu = sysconf (_SC_CPU_VERSION);
656           /* The order matters, because CPU_IS_HP_MC68K erroneously returns
657              true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
658              results, however.  */
659           if (CPU_IS_PA_RISC (cpu))
660             {
661               switch (cpu)
662                 {
663                   case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
664                   case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
665                   case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
666                   default: puts ("hppa-hitachi-hiuxwe2"); break;
667                 }
668             }
669           else if (CPU_IS_HP_MC68K (cpu))
670             puts ("m68k-hitachi-hiuxwe2");
671           else puts ("unknown-hitachi-hiuxwe2");
672           exit (0);
673         }
674 EOF
675         $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
676         rm -f $dummy.c $dummy && rmdir $tmpdir
677         echo unknown-hitachi-hiuxwe2
678         exit 0 ;;
679     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
680         echo hppa1.1-hp-bsd
681         exit 0 ;;
682     9000/8??:4.3bsd:*:*)
683         echo hppa1.0-hp-bsd
684         exit 0 ;;
685     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
686         echo hppa1.0-hp-mpeix
687         exit 0 ;;
688     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
689         echo hppa1.1-hp-osf
690         exit 0 ;;
691     hp8??:OSF1:*:*)
692         echo hppa1.0-hp-osf
693         exit 0 ;;
694     i*86:OSF1:*:*)
695         if [ -x /usr/sbin/sysversion ] ; then
696             echo ${UNAME_MACHINE}-unknown-osf1mk
697         else
698             echo ${UNAME_MACHINE}-unknown-osf1
699         fi
700         exit 0 ;;
701     parisc*:Lites*:*:*)
702         echo hppa1.1-hp-lites
703         exit 0 ;;
704     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
705         echo c1-convex-bsd
706         exit 0 ;;
707     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
708         if getsysinfo -f scalar_acc
709         then echo c32-convex-bsd
710         else echo c2-convex-bsd
711         fi
712         exit 0 ;;
713     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
714         echo c34-convex-bsd
715         exit 0 ;;
716     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
717         echo c38-convex-bsd
718         exit 0 ;;
719     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
720         echo c4-convex-bsd
721         exit 0 ;;
722     CRAY*Y-MP:*:*:*)
723         echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
724         exit 0 ;;
725     CRAY*[A-Z]90:*:*:*)
726         echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
727         | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
728               -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
729               -e 's/\.[^.]*$/.X/'
730         exit 0 ;;
731     CRAY*TS:*:*:*)
732         echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
733         exit 0 ;;
734     CRAY*T3D:*:*:*)
735         echo alpha-cray-unicosmk${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     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
744         FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
745         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
746         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
747         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
748         exit 0 ;;
749     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
750         echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
751         exit 0 ;;
752     sparc*:BSD/OS:*:*)
753         echo sparc-unknown-bsdi${UNAME_RELEASE}
754         exit 0 ;;
755     *:BSD/OS:*:*)
756         echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
757         exit 0 ;;
758     amd64:FreeBSD:*:*)
759         echo x86_64-unknown-freebsd
760         exit 0 ;;
761     *: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         rm -f $dummy.c && rmdir $tmpdir
774         echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
775         exit 0 ;;
776     i*:CYGWIN*:*)
777         echo ${UNAME_MACHINE}-pc-cygwin
778         exit 0 ;;
779     i*:MINGW*:*)
780         echo ${UNAME_MACHINE}-pc-mingw32
781         exit 0 ;;
782     i*:PW*:*)
783         echo ${UNAME_MACHINE}-pc-pw32
784         exit 0 ;;
785     x86:Interix*:3*)
786         echo i586-pc-interix3
787         exit 0 ;;
788     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
789         echo i${UNAME_MACHINE}-pc-mks
790         exit 0 ;;
791     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
792         # How do we know it's Interix rather than the generic POSIX subsystem?
793         # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
794         # UNAME_MACHINE based on the output of uname instead of i386?
795         echo i586-pc-interix
796         exit 0 ;;
797     i*:UWIN*:*)
798         echo ${UNAME_MACHINE}-pc-uwin
799         exit 0 ;;
800     p*:CYGWIN*:*)
801         echo powerpcle-unknown-cygwin
802         exit 0 ;;
803     prep*:SunOS:5.*:*)
804         echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
805         exit 0 ;;
806     *:GNU:*:*)
807         echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
808         exit 0 ;;
809     i*86:Minix:*:*)
810         echo ${UNAME_MACHINE}-pc-minix
811         exit 0 ;;
812     arm*:Linux:*:*)
813         echo ${UNAME_MACHINE}-unknown-linux-gnu
814         exit 0 ;;
815     ia64:Linux:*:*)
816         echo ${UNAME_MACHINE}-unknown-linux-gnu
817         exit 0 ;;
818     m68*:Linux:*:*)
819         echo ${UNAME_MACHINE}-unknown-linux-gnu
820         exit 0 ;;
821     mips:Linux:*:*)
822         eval $set_cc_for_build
823         sed 's/^        //' << EOF >$dummy.c
824         #undef CPU
825         #undef mips
826         #undef mipsel
827         #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
828         CPU=mipsel
829         #else
830         #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
831         CPU=mips
832         #else
833         CPU=
834         #endif
835         #endif
836 EOF
837         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
838         rm -f $dummy.c && rmdir $tmpdir
839         test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
840         ;;
841     mips64:Linux:*:*)
842         eval $set_cc_for_build
843         sed 's/^        //' << EOF >$dummy.c
844         #undef CPU
845         #undef mips64
846         #undef mips64el
847         #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
848         CPU=mips64el
849         #else
850         #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
851         CPU=mips64
852         #else
853         CPU=
854         #endif
855         #endif
856 EOF
857         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
858         rm -f $dummy.c && rmdir $tmpdir
859         test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
860         ;;
861     ppc:Linux:*:*)
862         echo powerpc-unknown-linux-gnu
863         exit 0 ;;
864     ppc64:Linux:*:*)
865         echo powerpc64-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}-ibm-linux
894         exit 0 ;;
895     sh*:Linux:*:*)
896         echo ${UNAME_MACHINE}-unknown-linux-gnu
897         exit 0 ;;
898     sparc:Linux:*:* | sparc64:Linux:*:*)
899         echo ${UNAME_MACHINE}-unknown-linux-gnu
900         exit 0 ;;
901     x86_64:Linux:*:*)
902         echo x86_64-unknown-linux-gnu
903         exit 0 ;;
904     i*86:Linux:*:*)
905         # The BFD linker knows what the default object file format is, so
906         # first see if it will tell us. cd to the root directory to prevent
907         # problems with other programs or directories called `ld' in the path.
908         # Set LC_ALL=C to ensure ld outputs messages in English.
909         ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
910                          | sed -ne '/supported targets:/!d
911                                     s/[         ][      ]*/ /g
912                                     s/.*supported targets: *//
913                                     s/ .*//
914                                     p'`
915         case "$ld_supported_targets" in
916           elf32-i386)
917                 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
918                 ;;
919           a.out-i386-linux)
920                 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
921                 exit 0 ;;
922           coff-i386)
923                 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
924                 exit 0 ;;
925           "")
926                 # Either a pre-BFD a.out linker (linux-gnuoldld) or
927                 # one that does not give us useful --help.
928                 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
929                 exit 0 ;;
930         esac
931         # Determine whether the default compiler is a.out or elf
932         eval $set_cc_for_build
933         sed 's/^        //' << EOF >$dummy.c
934         #include <features.h>
935         #ifdef __ELF__
936         # ifdef __GLIBC__
937         #  if __GLIBC__ >= 2
938         LIBC=gnu
939         #  else
940         LIBC=gnulibc1
941         #  endif
942         # else
943         LIBC=gnulibc1
944         # endif
945         #else
946         #ifdef __INTEL_COMPILER
947         LIBC=gnu
948         #else
949         LIBC=gnuaout
950         #endif
951         #endif
952 EOF
953         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
954         rm -f $dummy.c && rmdir $tmpdir
955         test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
956         test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
957         ;;
958     i*86:DYNIX/ptx:4*:*)
959         # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
960         # earlier versions are messed up and put the nodename in both
961         # sysname and nodename.
962         echo i386-sequent-sysv4
963         exit 0 ;;
964     i*86:UNIX_SV:4.2MP:2.*)
965         # Unixware is an offshoot of SVR4, but it has its own version
966         # number series starting with 2...
967         # I am not positive that other SVR4 systems won't match this,
968         # I just have to hope.  -- rms.
969         # Use sysv4.2uw... so that sysv4* matches it.
970         echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
971         exit 0 ;;
972     i*86:OS/2:*:*)
973         # If we were able to find `uname', then EMX Unix compatibility
974         # is probably installed.
975         echo ${UNAME_MACHINE}-pc-os2-emx
976         exit 0 ;;
977     i*86:XTS-300:*:STOP)
978         echo ${UNAME_MACHINE}-unknown-stop
979         exit 0 ;;
980     i*86:atheos:*:*)
981         echo ${UNAME_MACHINE}-unknown-atheos
982         exit 0 ;;
983     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
984         echo i386-unknown-lynxos${UNAME_RELEASE}
985         exit 0 ;;
986     i*86:*DOS:*:*)
987         echo ${UNAME_MACHINE}-pc-msdosdjgpp
988         exit 0 ;;
989     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
990         UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
991         if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
992                 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
993         else
994                 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
995         fi
996         exit 0 ;;
997     i*86:*:5:[78]*)
998         case `/bin/uname -X | grep "^Machine"` in
999             *486*)           UNAME_MACHINE=i486 ;;
1000             *Pentium)        UNAME_MACHINE=i586 ;;
1001             *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1002         esac
1003         echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1004         exit 0 ;;
1005     i*86:*:3.2:*)
1006         if test -f /usr/options/cb.name; then
1007                 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1008                 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1009         elif /bin/uname -X 2>/dev/null >/dev/null ; then
1010                 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1011                 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1012                 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1013                         && UNAME_MACHINE=i586
1014                 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1015                         && UNAME_MACHINE=i686
1016                 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1017                         && UNAME_MACHINE=i686
1018                 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1019         else
1020                 echo ${UNAME_MACHINE}-pc-sysv32
1021         fi
1022         exit 0 ;;
1023     pc:*:*:*)
1024         # Left here for compatibility:
1025         # uname -m prints for DJGPP always 'pc', but it prints nothing about
1026         # the processor, so we play safe by assuming i386.
1027         echo i386-pc-msdosdjgpp
1028         exit 0 ;;
1029     Intel:Mach:3*:*)
1030         echo i386-pc-mach3
1031         exit 0 ;;
1032     paragon:*:*:*)
1033         echo i860-intel-osf1
1034         exit 0 ;;
1035     i860:*:4.*:*) # i860-SVR4
1036         if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1037           echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1038         else # Add other i860-SVR4 vendors below as they are discovered.
1039           echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
1040         fi
1041         exit 0 ;;
1042     mini*:CTIX:SYS*5:*)
1043         # "miniframe"
1044         echo m68010-convergent-sysv
1045         exit 0 ;;
1046     mc68k:UNIX:SYSTEM5:3.51m)
1047         echo m68k-convergent-sysv
1048         exit 0 ;;
1049     M680?0:D-NIX:5.3:*)
1050         echo m68k-diab-dnix
1051         exit 0 ;;
1052     M68*:*:R3V[567]*:*)
1053         test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
1054     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)
1055         OS_REL=''
1056         test -r /etc/.relid \
1057         && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1058         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1059           && echo i486-ncr-sysv4.3${OS_REL} && exit 0
1060         /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1061           && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
1062     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1063         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1064           && echo i486-ncr-sysv4 && exit 0 ;;
1065     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1066         echo m68k-unknown-lynxos${UNAME_RELEASE}
1067         exit 0 ;;
1068     mc68030:UNIX_System_V:4.*:*)
1069         echo m68k-atari-sysv4
1070         exit 0 ;;
1071     TSUNAMI:LynxOS:2.*:*)
1072         echo sparc-unknown-lynxos${UNAME_RELEASE}
1073         exit 0 ;;
1074     rs6000:LynxOS:2.*:*)
1075         echo rs6000-unknown-lynxos${UNAME_RELEASE}
1076         exit 0 ;;
1077     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1078         echo powerpc-unknown-lynxos${UNAME_RELEASE}
1079         exit 0 ;;
1080     SM[BE]S:UNIX_SV:*:*)
1081         echo mips-dde-sysv${UNAME_RELEASE}
1082         exit 0 ;;
1083     RM*:ReliantUNIX-*:*:*)
1084         echo mips-sni-sysv4
1085         exit 0 ;;
1086     RM*:SINIX-*:*:*)
1087         echo mips-sni-sysv4
1088         exit 0 ;;
1089     *:SINIX-*:*:*)
1090         if uname -p 2>/dev/null >/dev/null ; then
1091                 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1092                 echo ${UNAME_MACHINE}-sni-sysv4
1093         else
1094                 echo ns32k-sni-sysv
1095         fi
1096         exit 0 ;;
1097     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1098                       # says <Richard.M.Bartel@ccMail.Census.GOV>
1099         echo i586-unisys-sysv4
1100         exit 0 ;;
1101     *:UNIX_System_V:4*:FTX*)
1102         # From Gerald Hewes <hewes@openmarket.com>.
1103         # How about differentiating between stratus architectures? -djm
1104         echo hppa1.1-stratus-sysv4
1105         exit 0 ;;
1106     *:*:*:FTX*)
1107         # From seanf@swdc.stratus.com.
1108         echo i860-stratus-sysv4
1109         exit 0 ;;
1110     *:VOS:*:*)
1111         # From Paul.Green@stratus.com.
1112         echo hppa1.1-stratus-vos
1113         exit 0 ;;
1114     mc68*:A/UX:*:*)
1115         echo m68k-apple-aux${UNAME_RELEASE}
1116         exit 0 ;;
1117     news*:NEWS-OS:6*:*)
1118         echo mips-sony-newsos6
1119         exit 0 ;;
1120     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1121         if [ -d /usr/nec ]; then
1122                 echo mips-nec-sysv${UNAME_RELEASE}
1123         else
1124                 echo mips-unknown-sysv${UNAME_RELEASE}
1125         fi
1126         exit 0 ;;
1127     BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
1128         echo powerpc-be-beos
1129         exit 0 ;;
1130     BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
1131         echo powerpc-apple-beos
1132         exit 0 ;;
1133     BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
1134         echo i586-pc-beos
1135         exit 0 ;;
1136     SX-4:SUPER-UX:*:*)
1137         echo sx4-nec-superux${UNAME_RELEASE}
1138         exit 0 ;;
1139     SX-5:SUPER-UX:*:*)
1140         echo sx5-nec-superux${UNAME_RELEASE}
1141         exit 0 ;;
1142     SX-6:SUPER-UX:*:*)
1143         echo sx6-nec-superux${UNAME_RELEASE}
1144         exit 0 ;;
1145     Power*:Rhapsody:*:*)
1146         echo powerpc-apple-rhapsody${UNAME_RELEASE}
1147         exit 0 ;;
1148     *:Rhapsody:*:*)
1149         echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1150         exit 0 ;;
1151     *:Darwin:*:*)
1152         echo `uname -p`-apple-darwin${UNAME_RELEASE}
1153         exit 0 ;;
1154     *:procnto*:*:* | *:QNX:[0123456789]*:*)
1155         UNAME_PROCESSOR=`uname -p`
1156         if test "$UNAME_PROCESSOR" = "x86"; then
1157                 UNAME_PROCESSOR=i386
1158                 UNAME_MACHINE=pc
1159         fi
1160         echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1161         exit 0 ;;
1162     *:QNX:*:4*)
1163         echo i386-pc-qnx
1164         exit 0 ;;
1165     NSR-[DGKLNPTVWXY]:NONSTOP_KERNEL:*:*)
1166         echo nsr-tandem-nsk${UNAME_RELEASE}
1167         exit 0 ;;
1168     *:NonStop-UX:*:*)
1169         echo mips-compaq-nonstopux
1170         exit 0 ;;
1171     BS2000:POSIX*:*:*)
1172         echo bs2000-siemens-sysv
1173         exit 0 ;;
1174     DS/*:UNIX_System_V:*:*)
1175         echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1176         exit 0 ;;
1177     *:Plan9:*:*)
1178         # "uname -m" is not consistent, so use $cputype instead. 386
1179         # is converted to i386 for consistency with other x86
1180         # operating systems.
1181         if test "$cputype" = "386"; then
1182             UNAME_MACHINE=i386
1183         else
1184             UNAME_MACHINE="$cputype"
1185         fi
1186         echo ${UNAME_MACHINE}-unknown-plan9
1187         exit 0 ;;
1188     *:TOPS-10:*:*)
1189         echo pdp10-unknown-tops10
1190         exit 0 ;;
1191     *:TENEX:*:*)
1192         echo pdp10-unknown-tenex
1193         exit 0 ;;
1194     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1195         echo pdp10-dec-tops20
1196         exit 0 ;;
1197     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1198         echo pdp10-xkl-tops20
1199         exit 0 ;;
1200     *:TOPS-20:*:*)
1201         echo pdp10-unknown-tops20
1202         exit 0 ;;
1203     *:ITS:*:*)
1204         echo pdp10-unknown-its
1205         exit 0 ;;
1206 esac
1207
1208 #echo '(No uname command or uname output not recognized.)' 1>&2
1209 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1210
1211 eval $set_cc_for_build
1212 cat >$dummy.c <<EOF
1213 #ifdef _SEQUENT_
1214 # include <sys/types.h>
1215 # include <sys/utsname.h>
1216 #endif
1217 main ()
1218 {
1219 #if defined (sony)
1220 #if defined (MIPSEB)
1221   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1222      I don't know....  */
1223   printf ("mips-sony-bsd\n"); exit (0);
1224 #else
1225 #include <sys/param.h>
1226   printf ("m68k-sony-newsos%s\n",
1227 #ifdef NEWSOS4
1228           "4"
1229 #else
1230           ""
1231 #endif
1232          ); exit (0);
1233 #endif
1234 #endif
1235
1236 #if defined (__arm) && defined (__acorn) && defined (__unix)
1237   printf ("arm-acorn-riscix"); exit (0);
1238 #endif
1239
1240 #if defined (hp300) && !defined (hpux)
1241   printf ("m68k-hp-bsd\n"); exit (0);
1242 #endif
1243
1244 #if defined (NeXT)
1245 #if !defined (__ARCHITECTURE__)
1246 #define __ARCHITECTURE__ "m68k"
1247 #endif
1248   int version;
1249   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1250   if (version < 4)
1251     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1252   else
1253     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1254   exit (0);
1255 #endif
1256
1257 #if defined (MULTIMAX) || defined (n16)
1258 #if defined (UMAXV)
1259   printf ("ns32k-encore-sysv\n"); exit (0);
1260 #else
1261 #if defined (CMU)
1262   printf ("ns32k-encore-mach\n"); exit (0);
1263 #else
1264   printf ("ns32k-encore-bsd\n"); exit (0);
1265 #endif
1266 #endif
1267 #endif
1268
1269 #if defined (__386BSD__)
1270   printf ("i386-pc-bsd\n"); exit (0);
1271 #endif
1272
1273 #if defined (sequent)
1274 #if defined (i386)
1275   printf ("i386-sequent-dynix\n"); exit (0);
1276 #endif
1277 #if defined (ns32000)
1278   printf ("ns32k-sequent-dynix\n"); exit (0);
1279 #endif
1280 #endif
1281
1282 #if defined (_SEQUENT_)
1283     struct utsname un;
1284
1285     uname(&un);
1286
1287     if (strncmp(un.version, "V2", 2) == 0) {
1288         printf ("i386-sequent-ptx2\n"); exit (0);
1289     }
1290     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1291         printf ("i386-sequent-ptx1\n"); exit (0);
1292     }
1293     printf ("i386-sequent-ptx\n"); exit (0);
1294
1295 #endif
1296
1297 #if defined (vax)
1298 # if !defined (ultrix)
1299 #  include <sys/param.h>
1300 #  if defined (BSD)
1301 #   if BSD == 43
1302       printf ("vax-dec-bsd4.3\n"); exit (0);
1303 #   else
1304 #    if BSD == 199006
1305       printf ("vax-dec-bsd4.3reno\n"); exit (0);
1306 #    else
1307       printf ("vax-dec-bsd\n"); exit (0);
1308 #    endif
1309 #   endif
1310 #  else
1311     printf ("vax-dec-bsd\n"); exit (0);
1312 #  endif
1313 # else
1314     printf ("vax-dec-ultrix\n"); exit (0);
1315 # endif
1316 #endif
1317
1318 #if defined (alliant) && defined (i860)
1319   printf ("i860-alliant-bsd\n"); exit (0);
1320 #endif
1321
1322   exit (1);
1323 }
1324 EOF
1325
1326 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
1327 rm -f $dummy.c $dummy && rmdir $tmpdir
1328
1329 # Apollos put the system type in the environment.
1330
1331 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1332
1333 # Convex versions that predate uname can use getsysinfo(1)
1334
1335 if [ -x /usr/convex/getsysinfo ]
1336 then
1337     case `getsysinfo -f cpu_type` in
1338     c1*)
1339         echo c1-convex-bsd
1340         exit 0 ;;
1341     c2*)
1342         if getsysinfo -f scalar_acc
1343         then echo c32-convex-bsd
1344         else echo c2-convex-bsd
1345         fi
1346         exit 0 ;;
1347     c34*)
1348         echo c34-convex-bsd
1349         exit 0 ;;
1350     c38*)
1351         echo c38-convex-bsd
1352         exit 0 ;;
1353     c4*)
1354         echo c4-convex-bsd
1355         exit 0 ;;
1356     esac
1357 fi
1358
1359 cat >&2 <<EOF
1360 $0: unable to guess system type
1361
1362 This script, last modified $timestamp, has failed to recognize
1363 the operating system you are using. It is advised that you
1364 download the most up to date version of the config scripts from
1365
1366     ftp://ftp.gnu.org/pub/gnu/config/
1367
1368 If the version you run ($0) is already up to date, please
1369 send the following data and any information you think might be
1370 pertinent to <config-patches@gnu.org> in order to provide the needed
1371 information to handle your system.
1372
1373 config.guess timestamp = $timestamp
1374
1375 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1376 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1377 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1378 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1379
1380 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1381 /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1382
1383 hostinfo               = `(hostinfo) 2>/dev/null`
1384 /bin/universe          = `(/bin/universe) 2>/dev/null`
1385 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1386 /bin/arch              = `(/bin/arch) 2>/dev/null`
1387 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1388 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1389
1390 UNAME_MACHINE = ${UNAME_MACHINE}
1391 UNAME_RELEASE = ${UNAME_RELEASE}
1392 UNAME_SYSTEM  = ${UNAME_SYSTEM}
1393 UNAME_VERSION = ${UNAME_VERSION}
1394 EOF
1395
1396 exit 1
1397
1398 # Local variables:
1399 # eval: (add-hook 'write-file-hooks 'time-stamp)
1400 # time-stamp-start: "timestamp='"
1401 # time-stamp-format: "%:y-%02m-%02d"
1402 # time-stamp-end: "'"
1403 # End: