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