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