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