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