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