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