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