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