config update
[gnulib.git] / 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-10-16'
7
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 # General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 #
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
26
27 # Originally written by Per Bothner <per@bothner.com>.
28 # Please send patches to <config-patches@gnu.org>.  Submit a context
29 # diff and a properly formatted ChangeLog entry.
30 #
31 # This script attempts to guess a canonical system name similar to
32 # config.sub.  If it succeeds, it prints the system name on stdout, and
33 # exits with 0.  Otherwise, it exits with 1.
34 #
35 # The plan is that this can be called by configure scripts if you
36 # don't specify an explicit build system type.
37
38 me=`echo "$0" | sed -e 's,.*/,,'`
39
40 usage="\
41 Usage: $0 [OPTION]
42
43 Output the configuration name of the system \`$me' is run on.
44
45 Operation modes:
46   -h, --help         print this help, then exit
47   -t, --time-stamp   print date of last modification, then exit
48   -v, --version      print version number, then exit
49
50 Report bugs and patches to <config-patches@gnu.org>."
51
52 version="\
53 GNU config.guess ($timestamp)
54
55 Originally written by Per Bothner.
56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
57 Free Software Foundation, Inc.
58
59 This is free software; see the source for copying conditions.  There is NO
60 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
61
62 help="
63 Try \`$me --help' for more information."
64
65 # Parse command line
66 while test $# -gt 0 ; do
67   case $1 in
68     --time-stamp | --time* | -t )
69        echo "$timestamp" ; exit 0 ;;
70     --version | -v )
71        echo "$version" ; exit 0 ;;
72     --help | --h* | -h )
73        echo "$usage"; exit 0 ;;
74     -- )     # Stop option processing
75        shift; break ;;
76     - ) # Use stdin as input.
77        break ;;
78     -* )
79        echo "$me: invalid option $1$help" >&2
80        exit 1 ;;
81     * )
82        break ;;
83   esac
84 done
85
86 if test $# != 0; then
87   echo "$me: too many arguments$help" >&2
88   exit 1
89 fi
90
91 trap 'exit 1' 1 2 15
92
93 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
94 # compiler to aid in system detection is discouraged as it requires
95 # temporary files to be created and, as you can see below, it is a
96 # headache to deal with in a portable fashion.
97
98 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
99 # use `HOST_CC' if defined, but it is deprecated.
100
101 # Portable tmp directory creation inspired by the Autoconf team.
102
103 set_cc_for_build='
104 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
105 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
106 : ${TMPDIR=/tmp} ;
107  { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
108  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
109  { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
110  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
111 dummy=$tmp/dummy ;
112 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
113 case $CC_FOR_BUILD,$HOST_CC,$CC in
114  ,,)    echo "int x;" > $dummy.c ;
115         for c in cc gcc c89 c99 ; do
116           if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
117              CC_FOR_BUILD="$c"; break ;
118           fi ;
119         done ;
120         if test x"$CC_FOR_BUILD" = x ; then
121           CC_FOR_BUILD=no_compiler_found ;
122         fi
123         ;;
124  ,,*)   CC_FOR_BUILD=$CC ;;
125  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
126 esac ;'
127
128 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
129 # (ghazi@noc.rutgers.edu 1994-08-24)
130 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
131         PATH=$PATH:/.attbin ; export PATH
132 fi
133
134 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
135 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
136 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
137 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
138
139 # Note: order is significant - the case branches are not exclusive.
140
141 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
142     *:NetBSD:*:*)
143         # NetBSD (nbsd) targets should (where applicable) match one or
144         # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
145         # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
146         # switched to ELF, *-*-netbsd* would select the old
147         # object file format.  This provides both forward
148         # compatibility and a consistent mechanism for selecting the
149         # object file format.
150         #
151         # Note: NetBSD doesn't particularly care about the vendor
152         # portion of the name.  We always set it to "unknown".
153         sysctl="sysctl -n hw.machine_arch"
154         UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
155             /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
156         case "${UNAME_MACHINE_ARCH}" in
157             armeb) machine=armeb-unknown ;;
158             arm*) machine=arm-unknown ;;
159             sh3el) machine=shl-unknown ;;
160             sh3eb) machine=sh-unknown ;;
161             *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
162         esac
163         # The Operating System including object format, if it has switched
164         # to ELF recently, or will in the future.
165         case "${UNAME_MACHINE_ARCH}" in
166             arm*|i386|m68k|ns32k|sh3*|sparc|vax)
167                 eval $set_cc_for_build
168                 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
169                         | grep __ELF__ >/dev/null
170                 then
171                     # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
172                     # Return netbsd for either.  FIX?
173                     os=netbsd
174                 else
175                     os=netbsdelf
176                 fi
177                 ;;
178             *)
179                 os=netbsd
180                 ;;
181         esac
182         # The OS release
183         # Debian GNU/NetBSD machines have a different userland, and
184         # thus, need a distinct triplet. However, they do not need
185         # kernel version information, so it can be replaced with a
186         # suitable tag, in the style of linux-gnu.
187         case "${UNAME_VERSION}" in
188             Debian*)
189                 release='-gnu'
190                 ;;
191             *)
192                 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
193                 ;;
194         esac
195         # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
196         # contains redundant information, the shorter form:
197         # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
198         echo "${machine}-${os}${release}"
199         exit 0 ;;
200     amiga:OpenBSD:*:*)
201         echo m68k-unknown-openbsd${UNAME_RELEASE}
202         exit 0 ;;
203     arc:OpenBSD:*:*)
204         echo mipsel-unknown-openbsd${UNAME_RELEASE}
205         exit 0 ;;
206     hp300:OpenBSD:*:*)
207         echo m68k-unknown-openbsd${UNAME_RELEASE}
208         exit 0 ;;
209     mac68k:OpenBSD:*:*)
210         echo m68k-unknown-openbsd${UNAME_RELEASE}
211         exit 0 ;;
212     macppc:OpenBSD:*:*)
213         echo powerpc-unknown-openbsd${UNAME_RELEASE}
214         exit 0 ;;
215     mvme68k:OpenBSD:*:*)
216         echo m68k-unknown-openbsd${UNAME_RELEASE}
217         exit 0 ;;
218     mvme88k:OpenBSD:*:*)
219         echo m88k-unknown-openbsd${UNAME_RELEASE}
220         exit 0 ;;
221     mvmeppc:OpenBSD:*:*)
222         echo powerpc-unknown-openbsd${UNAME_RELEASE}
223         exit 0 ;;
224     pmax:OpenBSD:*:*)
225         echo mipsel-unknown-openbsd${UNAME_RELEASE}
226         exit 0 ;;
227     sgi:OpenBSD:*:*)
228         echo mipseb-unknown-openbsd${UNAME_RELEASE}
229         exit 0 ;;
230     sun3:OpenBSD:*:*)
231         echo m68k-unknown-openbsd${UNAME_RELEASE}
232         exit 0 ;;
233     wgrisc:OpenBSD:*:*)
234         echo mipsel-unknown-openbsd${UNAME_RELEASE}
235         exit 0 ;;
236     *:OpenBSD:*:*)
237         echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
238         exit 0 ;;
239     alpha:OSF1:*:*)
240         if test $UNAME_RELEASE = "V4.0"; then
241                 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
242         fi
243         # According to Compaq, /usr/sbin/psrinfo has been available on
244         # OSF/1 and Tru64 systems produced since 1995.  I hope that
245         # covers most systems running today.  This code pipes the CPU
246         # types through head -n 1, so we only detect the type of CPU 0.
247         ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
248         case "$ALPHA_CPU_TYPE" in
249             "EV4 (21064)")
250                 UNAME_MACHINE="alpha" ;;
251             "EV4.5 (21064)")
252                 UNAME_MACHINE="alpha" ;;
253             "LCA4 (21066/21068)")
254                 UNAME_MACHINE="alpha" ;;
255             "EV5 (21164)")
256                 UNAME_MACHINE="alphaev5" ;;
257             "EV5.6 (21164A)")
258                 UNAME_MACHINE="alphaev56" ;;
259             "EV5.6 (21164PC)")
260                 UNAME_MACHINE="alphapca56" ;;
261             "EV5.7 (21164PC)")
262                 UNAME_MACHINE="alphapca57" ;;
263             "EV6 (21264)")
264                 UNAME_MACHINE="alphaev6" ;;
265             "EV6.7 (21264A)")
266                 UNAME_MACHINE="alphaev67" ;;
267             "EV6.8CB (21264C)")
268                 UNAME_MACHINE="alphaev68" ;;
269             "EV6.8AL (21264B)")
270                 UNAME_MACHINE="alphaev68" ;;
271             "EV6.8CX (21264D)")
272                 UNAME_MACHINE="alphaev68" ;;
273             "EV6.9A (21264/EV69A)")
274                 UNAME_MACHINE="alphaev69" ;;
275             "EV7 (21364)")
276                 UNAME_MACHINE="alphaev7" ;;
277             "EV7.9 (21364A)")
278                 UNAME_MACHINE="alphaev79" ;;
279         esac
280         # A Vn.n version is a released version.
281         # A Tn.n version is a released field test version.
282         # A Xn.n version is an unreleased experimental baselevel.
283         # 1.2 uses "1.2" for uname -r.
284         echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
285         exit 0 ;;
286     Alpha*:OpenVMS:*:*)
287         echo alpha-hp-vms
288         exit 0 ;;
289     Alpha\ *:Windows_NT*:*)
290         # How do we know it's Interix rather than the generic POSIX subsystem?
291         # Should we change UNAME_MACHINE based on the output of uname instead
292         # of the specific Alpha model?
293         echo alpha-pc-interix
294         exit 0 ;;
295     21064:Windows_NT:50:3)
296         echo alpha-dec-winnt3.5
297         exit 0 ;;
298     Amiga*:UNIX_System_V:4.0:*)
299         echo m68k-unknown-sysv4
300         exit 0;;
301     *:[Aa]miga[Oo][Ss]:*:*)
302         echo ${UNAME_MACHINE}-unknown-amigaos
303         exit 0 ;;
304     *:[Mm]orph[Oo][Ss]:*:*)
305         echo ${UNAME_MACHINE}-unknown-morphos
306         exit 0 ;;
307     *:OS/390:*:*)
308         echo i370-ibm-openedition
309         exit 0 ;;
310     *:OS400:*:*)
311         echo powerpc-ibm-os400
312         exit 0 ;;
313     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
314         echo arm-acorn-riscix${UNAME_RELEASE}
315         exit 0;;
316     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
317         echo hppa1.1-hitachi-hiuxmpp
318         exit 0;;
319     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
320         # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
321         if test "`(/bin/universe) 2>/dev/null`" = att ; then
322                 echo pyramid-pyramid-sysv3
323         else
324                 echo pyramid-pyramid-bsd
325         fi
326         exit 0 ;;
327     NILE*:*:*:dcosx)
328         echo pyramid-pyramid-svr4
329         exit 0 ;;
330     DRS?6000:unix:4.0:6*)
331         echo sparc-icl-nx6
332         exit 0 ;;
333     DRS?6000:UNIX_SV:4.2*:7*)
334         case `/usr/bin/uname -p` in
335             sparc) echo sparc-icl-nx7 && exit 0 ;;
336         esac ;;
337     sun4H:SunOS:5.*:*)
338         echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
339         exit 0 ;;
340     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
341         echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
342         exit 0 ;;
343     i86pc:SunOS:5.*:*)
344         echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
345         exit 0 ;;
346     sun4*:SunOS:6*:*)
347         # According to config.sub, this is the proper way to canonicalize
348         # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
349         # it's likely to be more like Solaris than SunOS4.
350         echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
351         exit 0 ;;
352     sun4*:SunOS:*:*)
353         case "`/usr/bin/arch -k`" in
354             Series*|S4*)
355                 UNAME_RELEASE=`uname -v`
356                 ;;
357         esac
358         # Japanese Language versions have a version number like `4.1.3-JL'.
359         echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
360         exit 0 ;;
361     sun3*:SunOS:*:*)
362         echo m68k-sun-sunos${UNAME_RELEASE}
363         exit 0 ;;
364     sun*:*:4.2BSD:*)
365         UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
366         test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
367         case "`/bin/arch`" in
368             sun3)
369                 echo m68k-sun-sunos${UNAME_RELEASE}
370                 ;;
371             sun4)
372                 echo sparc-sun-sunos${UNAME_RELEASE}
373                 ;;
374         esac
375         exit 0 ;;
376     aushp:SunOS:*:*)
377         echo sparc-auspex-sunos${UNAME_RELEASE}
378         exit 0 ;;
379     # The situation for MiNT is a little confusing.  The machine name
380     # can be virtually everything (everything which is not
381     # "atarist" or "atariste" at least should have a processor
382     # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
383     # to the lowercase version "mint" (or "freemint").  Finally
384     # the system name "TOS" denotes a system which is actually not
385     # MiNT.  But MiNT is downward compatible to TOS, so this should
386     # be no problem.
387     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
388         echo m68k-atari-mint${UNAME_RELEASE}
389         exit 0 ;;
390     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
391         echo m68k-atari-mint${UNAME_RELEASE}
392         exit 0 ;;
393     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
394         echo m68k-atari-mint${UNAME_RELEASE}
395         exit 0 ;;
396     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
397         echo m68k-milan-mint${UNAME_RELEASE}
398         exit 0 ;;
399     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
400         echo m68k-hades-mint${UNAME_RELEASE}
401         exit 0 ;;
402     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
403         echo m68k-unknown-mint${UNAME_RELEASE}
404         exit 0 ;;
405     powerpc:machten:*:*)
406         echo powerpc-apple-machten${UNAME_RELEASE}
407         exit 0 ;;
408     RISC*:Mach:*:*)
409         echo mips-dec-mach_bsd4.3
410         exit 0 ;;
411     RISC*:ULTRIX:*:*)
412         echo mips-dec-ultrix${UNAME_RELEASE}
413         exit 0 ;;
414     VAX*:ULTRIX*:*:*)
415         echo vax-dec-ultrix${UNAME_RELEASE}
416         exit 0 ;;
417     2020:CLIX:*:* | 2430:CLIX:*:*)
418         echo clipper-intergraph-clix${UNAME_RELEASE}
419         exit 0 ;;
420     mips:*:*:UMIPS | mips:*:*:RISCos)
421         eval $set_cc_for_build
422         sed 's/^        //' << EOF >$dummy.c
423 #ifdef __cplusplus
424 #include <stdio.h>  /* for printf() prototype */
425         int main (int argc, char *argv[]) {
426 #else
427         int main (argc, argv) int argc; char *argv[]; {
428 #endif
429         #if defined (host_mips) && defined (MIPSEB)
430         #if defined (SYSTYPE_SYSV)
431           printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
432         #endif
433         #if defined (SYSTYPE_SVR4)
434           printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
435         #endif
436         #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
437           printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
438         #endif
439         #endif
440           exit (-1);
441         }
442 EOF
443         $CC_FOR_BUILD -o $dummy $dummy.c \
444           && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
445           && exit 0
446         echo mips-mips-riscos${UNAME_RELEASE}
447         exit 0 ;;
448     Motorola:PowerMAX_OS:*:*)
449         echo powerpc-motorola-powermax
450         exit 0 ;;
451     Motorola:*:4.3:PL8-*)
452         echo powerpc-harris-powermax
453         exit 0 ;;
454     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
455         echo powerpc-harris-powermax
456         exit 0 ;;
457     Night_Hawk:Power_UNIX:*:*)
458         echo powerpc-harris-powerunix
459         exit 0 ;;
460     m88k:CX/UX:7*:*)
461         echo m88k-harris-cxux7
462         exit 0 ;;
463     m88k:*:4*:R4*)
464         echo m88k-motorola-sysv4
465         exit 0 ;;
466     m88k:*:3*:R3*)
467         echo m88k-motorola-sysv3
468         exit 0 ;;
469     AViiON:dgux:*:*)
470         # DG/UX returns AViiON for all architectures
471         UNAME_PROCESSOR=`/usr/bin/uname -p`
472         if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
473         then
474             if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
475                [ ${TARGET_BINARY_INTERFACE}x = x ]
476             then
477                 echo m88k-dg-dgux${UNAME_RELEASE}
478             else
479                 echo m88k-dg-dguxbcs${UNAME_RELEASE}
480             fi
481         else
482             echo i586-dg-dgux${UNAME_RELEASE}
483         fi
484         exit 0 ;;
485     M88*:DolphinOS:*:*) # DolphinOS (SVR3)
486         echo m88k-dolphin-sysv3
487         exit 0 ;;
488     M88*:*:R3*:*)
489         # Delta 88k system running SVR3
490         echo m88k-motorola-sysv3
491         exit 0 ;;
492     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
493         echo m88k-tektronix-sysv3
494         exit 0 ;;
495     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
496         echo m68k-tektronix-bsd
497         exit 0 ;;
498     *:IRIX*:*:*)
499         echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
500         exit 0 ;;
501     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
502         echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
503         exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
504     i*86:AIX:*:*)
505         echo i386-ibm-aix
506         exit 0 ;;
507     ia64:AIX:*:*)
508         if [ -x /usr/bin/oslevel ] ; then
509                 IBM_REV=`/usr/bin/oslevel`
510         else
511                 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
512         fi
513         echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
514         exit 0 ;;
515     *:AIX:2:3)
516         if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
517                 eval $set_cc_for_build
518                 sed 's/^                //' << EOF >$dummy.c
519                 #include <sys/systemcfg.h>
520
521                 main()
522                         {
523                         if (!__power_pc())
524                                 exit(1);
525                         puts("powerpc-ibm-aix3.2.5");
526                         exit(0);
527                         }
528 EOF
529                 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
530                 echo rs6000-ibm-aix3.2.5
531         elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
532                 echo rs6000-ibm-aix3.2.4
533         else
534                 echo rs6000-ibm-aix3.2
535         fi
536         exit 0 ;;
537     *:AIX:*:[45])
538         IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
539         if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
540                 IBM_ARCH=rs6000
541         else
542                 IBM_ARCH=powerpc
543         fi
544         if [ -x /usr/bin/oslevel ] ; then
545                 IBM_REV=`/usr/bin/oslevel`
546         else
547                 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
548         fi
549         echo ${IBM_ARCH}-ibm-aix${IBM_REV}
550         exit 0 ;;
551     *:AIX:*:*)
552         echo rs6000-ibm-aix
553         exit 0 ;;
554     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
555         echo romp-ibm-bsd4.4
556         exit 0 ;;
557     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
558         echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
559         exit 0 ;;                           # report: romp-ibm BSD 4.3
560     *:BOSX:*:*)
561         echo rs6000-bull-bosx
562         exit 0 ;;
563     DPX/2?00:B.O.S.:*:*)
564         echo m68k-bull-sysv3
565         exit 0 ;;
566     9000/[34]??:4.3bsd:1.*:*)
567         echo m68k-hp-bsd
568         exit 0 ;;
569     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
570         echo m68k-hp-bsd4.4
571         exit 0 ;;
572     9000/[34678]??:HP-UX:*:*)
573         HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
574         case "${UNAME_MACHINE}" in
575             9000/31? )            HP_ARCH=m68000 ;;
576             9000/[34]?? )         HP_ARCH=m68k ;;
577             9000/[678][0-9][0-9])
578                 if [ -x /usr/bin/getconf ]; then
579                     sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
580                     sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
581                     case "${sc_cpu_version}" in
582                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
583                       528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
584                       532)                      # CPU_PA_RISC2_0
585                         case "${sc_kernel_bits}" in
586                           32) HP_ARCH="hppa2.0n" ;;
587                           64) HP_ARCH="hppa2.0w" ;;
588                           '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
589                         esac ;;
590                     esac
591                 fi
592                 if [ "${HP_ARCH}" = "" ]; then
593                     eval $set_cc_for_build
594                     sed 's/^              //' << EOF >$dummy.c
595
596               #define _HPUX_SOURCE
597               #include <stdlib.h>
598               #include <unistd.h>
599
600               int main ()
601               {
602               #if defined(_SC_KERNEL_BITS)
603                   long bits = sysconf(_SC_KERNEL_BITS);
604               #endif
605                   long cpu  = sysconf (_SC_CPU_VERSION);
606
607                   switch (cpu)
608                 {
609                 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
610                 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
611                 case CPU_PA_RISC2_0:
612               #if defined(_SC_KERNEL_BITS)
613                     switch (bits)
614                         {
615                         case 64: puts ("hppa2.0w"); break;
616                         case 32: puts ("hppa2.0n"); break;
617                         default: puts ("hppa2.0"); break;
618                         } break;
619               #else  /* !defined(_SC_KERNEL_BITS) */
620                     puts ("hppa2.0"); break;
621               #endif
622                 default: puts ("hppa1.0"); break;
623                 }
624                   exit (0);
625               }
626 EOF
627                     (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
628                     test -z "$HP_ARCH" && HP_ARCH=hppa
629                 fi ;;
630         esac
631         if [ ${HP_ARCH} = "hppa2.0w" ]
632         then
633             # avoid double evaluation of $set_cc_for_build
634             test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
635             if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
636             then
637                 HP_ARCH="hppa2.0w"
638             else
639                 HP_ARCH="hppa64"
640             fi
641         fi
642         echo ${HP_ARCH}-hp-hpux${HPUX_REV}
643         exit 0 ;;
644     ia64:HP-UX:*:*)
645         HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
646         echo ia64-hp-hpux${HPUX_REV}
647         exit 0 ;;
648     3050*:HI-UX:*:*)
649         eval $set_cc_for_build
650         sed 's/^        //' << EOF >$dummy.c
651         #include <unistd.h>
652         int
653         main ()
654         {
655           long cpu = sysconf (_SC_CPU_VERSION);
656           /* The order matters, because CPU_IS_HP_MC68K erroneously returns
657              true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
658              results, however.  */
659           if (CPU_IS_PA_RISC (cpu))
660             {
661               switch (cpu)
662                 {
663                   case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
664                   case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
665                   case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
666                   default: puts ("hppa-hitachi-hiuxwe2"); break;
667                 }
668             }
669           else if (CPU_IS_HP_MC68K (cpu))
670             puts ("m68k-hitachi-hiuxwe2");
671           else puts ("unknown-hitachi-hiuxwe2");
672           exit (0);
673         }
674 EOF
675         $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
676         echo unknown-hitachi-hiuxwe2
677         exit 0 ;;
678     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
679         echo hppa1.1-hp-bsd
680         exit 0 ;;
681     9000/8??:4.3bsd:*:*)
682         echo hppa1.0-hp-bsd
683         exit 0 ;;
684     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
685         echo hppa1.0-hp-mpeix
686         exit 0 ;;
687     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
688         echo hppa1.1-hp-osf
689         exit 0 ;;
690     hp8??:OSF1:*:*)
691         echo hppa1.0-hp-osf
692         exit 0 ;;
693     i*86:OSF1:*:*)
694         if [ -x /usr/sbin/sysversion ] ; then
695             echo ${UNAME_MACHINE}-unknown-osf1mk
696         else
697             echo ${UNAME_MACHINE}-unknown-osf1
698         fi
699         exit 0 ;;
700     parisc*:Lites*:*:*)
701         echo hppa1.1-hp-lites
702         exit 0 ;;
703     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
704         echo c1-convex-bsd
705         exit 0 ;;
706     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
707         if getsysinfo -f scalar_acc
708         then echo c32-convex-bsd
709         else echo c2-convex-bsd
710         fi
711         exit 0 ;;
712     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
713         echo c34-convex-bsd
714         exit 0 ;;
715     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
716         echo c38-convex-bsd
717         exit 0 ;;
718     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
719         echo c4-convex-bsd
720         exit 0 ;;
721     CRAY*Y-MP:*:*:*)
722         echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
723         exit 0 ;;
724     CRAY*[A-Z]90:*:*:*)
725         echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
726         | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
727               -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
728               -e 's/\.[^.]*$/.X/'
729         exit 0 ;;
730     CRAY*TS:*:*:*)
731         echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
732         exit 0 ;;
733     CRAY*T3E:*:*:*)
734         echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
735         exit 0 ;;
736     CRAY*SV1:*:*:*)
737         echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
738         exit 0 ;;
739     *:UNICOS/mp:*:*)
740         echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
741         exit 0 ;;
742     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
743         FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
744         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
745         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
746         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
747         exit 0 ;;
748     5000:UNIX_System_V:4.*:*)
749         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
750         FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
751         echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
752         exit 0 ;;
753     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
754         echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
755         exit 0 ;;
756     sparc*:BSD/OS:*:*)
757         echo sparc-unknown-bsdi${UNAME_RELEASE}
758         exit 0 ;;
759     *:BSD/OS:*:*)
760         echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
761         exit 0 ;;
762     *:FreeBSD:*:*)
763         # Determine whether the default compiler uses glibc.
764         eval $set_cc_for_build
765         sed 's/^        //' << EOF >$dummy.c
766         #include <features.h>
767         #if __GLIBC__ >= 2
768         LIBC=gnu
769         #else
770         LIBC=
771         #endif
772 EOF
773         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
774         # GNU/KFreeBSD systems have a "k" prefix to indicate we are using
775         # FreeBSD's kernel, but not the complete OS.
776         case ${LIBC} in gnu) kernel_only='k' ;; esac
777         echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
778         exit 0 ;;
779     i*:CYGWIN*:*)
780         echo ${UNAME_MACHINE}-pc-cygwin
781         exit 0 ;;
782     i*:MINGW*:*)
783         echo ${UNAME_MACHINE}-pc-mingw32
784         exit 0 ;;
785     i*:PW*:*)
786         echo ${UNAME_MACHINE}-pc-pw32
787         exit 0 ;;
788     x86:Interix*:[34]*)
789         echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
790         exit 0 ;;
791     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
792         echo i${UNAME_MACHINE}-pc-mks
793         exit 0 ;;
794     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
795         # How do we know it's Interix rather than the generic POSIX subsystem?
796         # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
797         # UNAME_MACHINE based on the output of uname instead of i386?
798         echo i586-pc-interix
799         exit 0 ;;
800     i*:UWIN*:*)
801         echo ${UNAME_MACHINE}-pc-uwin
802         exit 0 ;;
803     p*:CYGWIN*:*)
804         echo powerpcle-unknown-cygwin
805         exit 0 ;;
806     prep*:SunOS:5.*:*)
807         echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
808         exit 0 ;;
809     *:GNU:*:*)
810         # the GNU system
811         echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
812         exit 0 ;;
813     *:GNU/*:*:*)
814         # other systems with GNU libc and userland
815         echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
816         exit 0 ;;
817     i*86:Minix:*:*)
818         echo ${UNAME_MACHINE}-pc-minix
819         exit 0 ;;
820     arm*:Linux:*:*)
821         echo ${UNAME_MACHINE}-unknown-linux-gnu
822         exit 0 ;;
823     cris:Linux:*:*)
824         echo cris-axis-linux-gnu
825         exit 0 ;;
826     ia64:Linux:*:*)
827         echo ${UNAME_MACHINE}-unknown-linux-gnu
828         exit 0 ;;
829     m68*:Linux:*:*)
830         echo ${UNAME_MACHINE}-unknown-linux-gnu
831         exit 0 ;;
832     mips:Linux:*:*)
833         eval $set_cc_for_build
834         sed 's/^        //' << EOF >$dummy.c
835         #undef CPU
836         #undef mips
837         #undef mipsel
838         #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
839         CPU=mipsel
840         #else
841         #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
842         CPU=mips
843         #else
844         CPU=
845         #endif
846         #endif
847 EOF
848         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
849         test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
850         ;;
851     mips64:Linux:*:*)
852         eval $set_cc_for_build
853         sed 's/^        //' << EOF >$dummy.c
854         #undef CPU
855         #undef mips64
856         #undef mips64el
857         #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
858         CPU=mips64el
859         #else
860         #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
861         CPU=mips64
862         #else
863         CPU=
864         #endif
865         #endif
866 EOF
867         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
868         test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
869         ;;
870     ppc:Linux:*:*)
871         echo powerpc-unknown-linux-gnu
872         exit 0 ;;
873     ppc64:Linux:*:*)
874         echo powerpc64-unknown-linux-gnu
875         exit 0 ;;
876     alpha:Linux:*:*)
877         case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
878           EV5)   UNAME_MACHINE=alphaev5 ;;
879           EV56)  UNAME_MACHINE=alphaev56 ;;
880           PCA56) UNAME_MACHINE=alphapca56 ;;
881           PCA57) UNAME_MACHINE=alphapca56 ;;
882           EV6)   UNAME_MACHINE=alphaev6 ;;
883           EV67)  UNAME_MACHINE=alphaev67 ;;
884           EV68*) UNAME_MACHINE=alphaev68 ;;
885         esac
886         objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
887         if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
888         echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
889         exit 0 ;;
890     parisc:Linux:*:* | hppa:Linux:*:*)
891         # Look for CPU level
892         case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
893           PA7*) echo hppa1.1-unknown-linux-gnu ;;
894           PA8*) echo hppa2.0-unknown-linux-gnu ;;
895           *)    echo hppa-unknown-linux-gnu ;;
896         esac
897         exit 0 ;;
898     parisc64:Linux:*:* | hppa64:Linux:*:*)
899         echo hppa64-unknown-linux-gnu
900         exit 0 ;;
901     s390:Linux:*:* | s390x:Linux:*:*)
902         echo ${UNAME_MACHINE}-ibm-linux
903         exit 0 ;;
904     sh64*:Linux:*:*)
905         echo ${UNAME_MACHINE}-unknown-linux-gnu
906         exit 0 ;;
907     sh*:Linux:*:*)
908         echo ${UNAME_MACHINE}-unknown-linux-gnu
909         exit 0 ;;
910     sparc:Linux:*:* | sparc64:Linux:*:*)
911         echo ${UNAME_MACHINE}-unknown-linux-gnu
912         exit 0 ;;
913     x86_64:Linux:*:*)
914         echo x86_64-unknown-linux-gnu
915         exit 0 ;;
916     i*86:Linux:*:*)
917         # The BFD linker knows what the default object file format is, so
918         # first see if it will tell us. cd to the root directory to prevent
919         # problems with other programs or directories called `ld' in the path.
920         # Set LC_ALL=C to ensure ld outputs messages in English.
921         ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
922                          | sed -ne '/supported targets:/!d
923                                     s/[         ][      ]*/ /g
924                                     s/.*supported targets: *//
925                                     s/ .*//
926                                     p'`
927         case "$ld_supported_targets" in
928           elf32-i386)
929                 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
930                 ;;
931           a.out-i386-linux)
932                 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
933                 exit 0 ;;
934           coff-i386)
935                 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
936                 exit 0 ;;
937           "")
938                 # Either a pre-BFD a.out linker (linux-gnuoldld) or
939                 # one that does not give us useful --help.
940                 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
941                 exit 0 ;;
942         esac
943         # Determine whether the default compiler is a.out or elf
944         eval $set_cc_for_build
945         sed 's/^        //' << EOF >$dummy.c
946         #include <features.h>
947         #ifdef __ELF__
948         # ifdef __GLIBC__
949         #  if __GLIBC__ >= 2
950         LIBC=gnu
951         #  else
952         LIBC=gnulibc1
953         #  endif
954         # else
955         LIBC=gnulibc1
956         # endif
957         #else
958         #ifdef __INTEL_COMPILER
959         LIBC=gnu
960         #else
961         LIBC=gnuaout
962         #endif
963         #endif
964         #ifdef __dietlibc__
965         LIBC=dietlibc
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[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
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-[DGKLNPTVWY]: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: