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