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