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