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-30'
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 "$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 '
863             /^CPU/{
864                 s: ::g
865                 p
866             }'`"
867         test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
868         ;;
869     mips64:Linux:*:*)
870         eval $set_cc_for_build
871         sed 's/^        //' << EOF >$dummy.c
872         #undef CPU
873         #undef mips64
874         #undef mips64el
875         #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
876         CPU=mips64el
877         #else
878         #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
879         CPU=mips64
880         #else
881         CPU=
882         #endif
883         #endif
884 EOF
885         eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
886             /^CPU/{
887                 s: ::g
888                 p
889             }'`"
890         test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
891         ;;
892     or32:Linux:*:*)
893         echo or32-unknown-linux-gnu
894         exit ;;
895     ppc:Linux:*:*)
896         echo powerpc-unknown-linux-gnu
897         exit ;;
898     ppc64:Linux:*:*)
899         echo powerpc64-unknown-linux-gnu
900         exit ;;
901     alpha:Linux:*:*)
902         case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
903           EV5)   UNAME_MACHINE=alphaev5 ;;
904           EV56)  UNAME_MACHINE=alphaev56 ;;
905           PCA56) UNAME_MACHINE=alphapca56 ;;
906           PCA57) UNAME_MACHINE=alphapca56 ;;
907           EV6)   UNAME_MACHINE=alphaev6 ;;
908           EV67)  UNAME_MACHINE=alphaev67 ;;
909           EV68*) UNAME_MACHINE=alphaev68 ;;
910         esac
911         objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
912         if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
913         echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
914         exit ;;
915     parisc:Linux:*:* | hppa:Linux:*:*)
916         # Look for CPU level
917         case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
918           PA7*) echo hppa1.1-unknown-linux-gnu ;;
919           PA8*) echo hppa2.0-unknown-linux-gnu ;;
920           *)    echo hppa-unknown-linux-gnu ;;
921         esac
922         exit ;;
923     parisc64:Linux:*:* | hppa64:Linux:*:*)
924         echo hppa64-unknown-linux-gnu
925         exit ;;
926     s390:Linux:*:* | s390x:Linux:*:*)
927         echo ${UNAME_MACHINE}-ibm-linux
928         exit ;;
929     sh64*:Linux:*:*)
930         echo ${UNAME_MACHINE}-unknown-linux-gnu
931         exit ;;
932     sh*:Linux:*:*)
933         echo ${UNAME_MACHINE}-unknown-linux-gnu
934         exit ;;
935     sparc:Linux:*:* | sparc64:Linux:*:*)
936         echo ${UNAME_MACHINE}-unknown-linux-gnu
937         exit ;;
938     vax:Linux:*:*)
939         echo ${UNAME_MACHINE}-dec-linux-gnu
940         exit ;;
941     x86_64:Linux:*:*)
942         echo x86_64-unknown-linux-gnu
943         exit ;;
944     i*86:Linux:*:*)
945         # The BFD linker knows what the default object file format is, so
946         # first see if it will tell us. cd to the root directory to prevent
947         # problems with other programs or directories called `ld' in the path.
948         # Set LC_ALL=C to ensure ld outputs messages in English.
949         ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
950                          | sed -ne '/supported targets:/!d
951                                     s/[         ][      ]*/ /g
952                                     s/.*supported targets: *//
953                                     s/ .*//
954                                     p'`
955         case "$ld_supported_targets" in
956           elf32-i386)
957                 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
958                 ;;
959           a.out-i386-linux)
960                 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
961                 exit ;;
962           coff-i386)
963                 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
964                 exit ;;
965           "")
966                 # Either a pre-BFD a.out linker (linux-gnuoldld) or
967                 # one that does not give us useful --help.
968                 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
969                 exit ;;
970         esac
971         # Determine whether the default compiler is a.out or elf
972         eval $set_cc_for_build
973         sed 's/^        //' << EOF >$dummy.c
974         #include <features.h>
975         #ifdef __ELF__
976         # ifdef __GLIBC__
977         #  if __GLIBC__ >= 2
978         LIBC=gnu
979         #  else
980         LIBC=gnulibc1
981         #  endif
982         # else
983         LIBC=gnulibc1
984         # endif
985         #else
986         #if defined(__INTEL_COMPILER) || defined(__PGI)
987         LIBC=gnu
988         #else
989         LIBC=gnuaout
990         #endif
991         #endif
992         #ifdef __dietlibc__
993         LIBC=dietlibc
994         #endif
995 EOF
996         eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
997             /^LIBC/{
998                 s: ::g
999                 p
1000             }'`"
1001         test x"${LIBC}" != x && {
1002                 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
1003                 exit
1004         }
1005         test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
1006         ;;
1007     i*86:DYNIX/ptx:4*:*)
1008         # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1009         # earlier versions are messed up and put the nodename in both
1010         # sysname and nodename.
1011         echo i386-sequent-sysv4
1012         exit ;;
1013     i*86:UNIX_SV:4.2MP:2.*)
1014         # Unixware is an offshoot of SVR4, but it has its own version
1015         # number series starting with 2...
1016         # I am not positive that other SVR4 systems won't match this,
1017         # I just have to hope.  -- rms.
1018         # Use sysv4.2uw... so that sysv4* matches it.
1019         echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1020         exit ;;
1021     i*86:OS/2:*:*)
1022         # If we were able to find `uname', then EMX Unix compatibility
1023         # is probably installed.
1024         echo ${UNAME_MACHINE}-pc-os2-emx
1025         exit ;;
1026     i*86:XTS-300:*:STOP)
1027         echo ${UNAME_MACHINE}-unknown-stop
1028         exit ;;
1029     i*86:atheos:*:*)
1030         echo ${UNAME_MACHINE}-unknown-atheos
1031         exit ;;
1032     i*86:syllable:*:*)
1033         echo ${UNAME_MACHINE}-pc-syllable
1034         exit ;;
1035     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1036         echo i386-unknown-lynxos${UNAME_RELEASE}
1037         exit ;;
1038     i*86:*DOS:*:*)
1039         echo ${UNAME_MACHINE}-pc-msdosdjgpp
1040         exit ;;
1041     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1042         UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1043         if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1044                 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1045         else
1046                 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1047         fi
1048         exit ;;
1049     i*86:*:5:[678]*)
1050         # UnixWare 7.x, OpenUNIX and OpenServer 6.
1051         case `/bin/uname -X | grep "^Machine"` in
1052             *486*)           UNAME_MACHINE=i486 ;;
1053             *Pentium)        UNAME_MACHINE=i586 ;;
1054             *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1055         esac
1056         echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1057         exit ;;
1058     i*86:*:3.2:*)
1059         if test -f /usr/options/cb.name; then
1060                 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1061                 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1062         elif /bin/uname -X 2>/dev/null >/dev/null ; then
1063                 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1064                 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1065                 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1066                         && UNAME_MACHINE=i586
1067                 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1068                         && UNAME_MACHINE=i686
1069                 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1070                         && UNAME_MACHINE=i686
1071                 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1072         else
1073                 echo ${UNAME_MACHINE}-pc-sysv32
1074         fi
1075         exit ;;
1076     pc:*:*:*)
1077         # Left here for compatibility:
1078         # uname -m prints for DJGPP always 'pc', but it prints nothing about
1079         # the processor, so we play safe by assuming i386.
1080         echo i386-pc-msdosdjgpp
1081         exit ;;
1082     Intel:Mach:3*:*)
1083         echo i386-pc-mach3
1084         exit ;;
1085     paragon:*:*:*)
1086         echo i860-intel-osf1
1087         exit ;;
1088     i860:*:4.*:*) # i860-SVR4
1089         if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1090           echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1091         else # Add other i860-SVR4 vendors below as they are discovered.
1092           echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
1093         fi
1094         exit ;;
1095     mini*:CTIX:SYS*5:*)
1096         # "miniframe"
1097         echo m68010-convergent-sysv
1098         exit ;;
1099     mc68k:UNIX:SYSTEM5:3.51m)
1100         echo m68k-convergent-sysv
1101         exit ;;
1102     M680?0:D-NIX:5.3:*)
1103         echo m68k-diab-dnix
1104         exit ;;
1105     M68*:*:R3V[5678]*:*)
1106         test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1107     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)
1108         OS_REL=''
1109         test -r /etc/.relid \
1110         && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1111         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1112           && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1113         /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1114           && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1115     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1116         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1117           && { echo i486-ncr-sysv4; exit; } ;;
1118     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1119         echo m68k-unknown-lynxos${UNAME_RELEASE}
1120         exit ;;
1121     mc68030:UNIX_System_V:4.*:*)
1122         echo m68k-atari-sysv4
1123         exit ;;
1124     TSUNAMI:LynxOS:2.*:*)
1125         echo sparc-unknown-lynxos${UNAME_RELEASE}
1126         exit ;;
1127     rs6000:LynxOS:2.*:*)
1128         echo rs6000-unknown-lynxos${UNAME_RELEASE}
1129         exit ;;
1130     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1131         echo powerpc-unknown-lynxos${UNAME_RELEASE}
1132         exit ;;
1133     SM[BE]S:UNIX_SV:*:*)
1134         echo mips-dde-sysv${UNAME_RELEASE}
1135         exit ;;
1136     RM*:ReliantUNIX-*:*:*)
1137         echo mips-sni-sysv4
1138         exit ;;
1139     RM*:SINIX-*:*:*)
1140         echo mips-sni-sysv4
1141         exit ;;
1142     *:SINIX-*:*:*)
1143         if uname -p 2>/dev/null >/dev/null ; then
1144                 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1145                 echo ${UNAME_MACHINE}-sni-sysv4
1146         else
1147                 echo ns32k-sni-sysv
1148         fi
1149         exit ;;
1150     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1151                       # says <Richard.M.Bartel@ccMail.Census.GOV>
1152         echo i586-unisys-sysv4
1153         exit ;;
1154     *:UNIX_System_V:4*:FTX*)
1155         # From Gerald Hewes <hewes@openmarket.com>.
1156         # How about differentiating between stratus architectures? -djm
1157         echo hppa1.1-stratus-sysv4
1158         exit ;;
1159     *:*:*:FTX*)
1160         # From seanf@swdc.stratus.com.
1161         echo i860-stratus-sysv4
1162         exit ;;
1163     i*86:VOS:*:*)
1164         # From Paul.Green@stratus.com.
1165         echo ${UNAME_MACHINE}-stratus-vos
1166         exit ;;
1167     *:VOS:*:*)
1168         # From Paul.Green@stratus.com.
1169         echo hppa1.1-stratus-vos
1170         exit ;;
1171     mc68*:A/UX:*:*)
1172         echo m68k-apple-aux${UNAME_RELEASE}
1173         exit ;;
1174     news*:NEWS-OS:6*:*)
1175         echo mips-sony-newsos6
1176         exit ;;
1177     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1178         if [ -d /usr/nec ]; then
1179                 echo mips-nec-sysv${UNAME_RELEASE}
1180         else
1181                 echo mips-unknown-sysv${UNAME_RELEASE}
1182         fi
1183         exit ;;
1184     BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
1185         echo powerpc-be-beos
1186         exit ;;
1187     BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
1188         echo powerpc-apple-beos
1189         exit ;;
1190     BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
1191         echo i586-pc-beos
1192         exit ;;
1193     SX-4:SUPER-UX:*:*)
1194         echo sx4-nec-superux${UNAME_RELEASE}
1195         exit ;;
1196     SX-5:SUPER-UX:*:*)
1197         echo sx5-nec-superux${UNAME_RELEASE}
1198         exit ;;
1199     SX-6:SUPER-UX:*:*)
1200         echo sx6-nec-superux${UNAME_RELEASE}
1201         exit ;;
1202     Power*:Rhapsody:*:*)
1203         echo powerpc-apple-rhapsody${UNAME_RELEASE}
1204         exit ;;
1205     *:Rhapsody:*:*)
1206         echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1207         exit ;;
1208     *:Darwin:*:*)
1209         UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1210         case $UNAME_PROCESSOR in
1211             unknown) UNAME_PROCESSOR=powerpc ;;
1212         esac
1213         echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1214         exit ;;
1215     *:procnto*:*:* | *:QNX:[0123456789]*:*)
1216         UNAME_PROCESSOR=`uname -p`
1217         if test "$UNAME_PROCESSOR" = "x86"; then
1218                 UNAME_PROCESSOR=i386
1219                 UNAME_MACHINE=pc
1220         fi
1221         echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1222         exit ;;
1223     *:QNX:*:4*)
1224         echo i386-pc-qnx
1225         exit ;;
1226     NSE-?:NONSTOP_KERNEL:*:*)
1227         echo nse-tandem-nsk${UNAME_RELEASE}
1228         exit ;;
1229     NSR-?:NONSTOP_KERNEL:*:*)
1230         echo nsr-tandem-nsk${UNAME_RELEASE}
1231         exit ;;
1232     *:NonStop-UX:*:*)
1233         echo mips-compaq-nonstopux
1234         exit ;;
1235     BS2000:POSIX*:*:*)
1236         echo bs2000-siemens-sysv
1237         exit ;;
1238     DS/*:UNIX_System_V:*:*)
1239         echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1240         exit ;;
1241     *:Plan9:*:*)
1242         # "uname -m" is not consistent, so use $cputype instead. 386
1243         # is converted to i386 for consistency with other x86
1244         # operating systems.
1245         if test "$cputype" = "386"; then
1246             UNAME_MACHINE=i386
1247         else
1248             UNAME_MACHINE="$cputype"
1249         fi
1250         echo ${UNAME_MACHINE}-unknown-plan9
1251         exit ;;
1252     *:TOPS-10:*:*)
1253         echo pdp10-unknown-tops10
1254         exit ;;
1255     *:TENEX:*:*)
1256         echo pdp10-unknown-tenex
1257         exit ;;
1258     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1259         echo pdp10-dec-tops20
1260         exit ;;
1261     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1262         echo pdp10-xkl-tops20
1263         exit ;;
1264     *:TOPS-20:*:*)
1265         echo pdp10-unknown-tops20
1266         exit ;;
1267     *:ITS:*:*)
1268         echo pdp10-unknown-its
1269         exit ;;
1270     SEI:*:*:SEIUX)
1271         echo mips-sei-seiux${UNAME_RELEASE}
1272         exit ;;
1273     *:DragonFly:*:*)
1274         echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1275         exit ;;
1276     *:*VMS:*:*)
1277         UNAME_MACHINE=`(uname -p) 2>/dev/null`
1278         case "${UNAME_MACHINE}" in
1279             A*) echo alpha-dec-vms ; exit ;;
1280             I*) echo ia64-dec-vms ; exit ;;
1281             V*) echo vax-dec-vms ; exit ;;
1282         esac ;;
1283     *:XENIX:*:SysV)
1284         echo i386-pc-xenix
1285         exit ;;
1286     i*86:skyos:*:*)
1287         echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1288         exit ;;
1289     i*86:rdos:*:*)
1290         echo ${UNAME_MACHINE}-pc-rdos
1291         exit ;;
1292 esac
1293
1294 #echo '(No uname command or uname output not recognized.)' 1>&2
1295 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1296
1297 eval $set_cc_for_build
1298 cat >$dummy.c <<EOF
1299 #ifdef _SEQUENT_
1300 # include <sys/types.h>
1301 # include <sys/utsname.h>
1302 #endif
1303 main ()
1304 {
1305 #if defined (sony)
1306 #if defined (MIPSEB)
1307   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1308      I don't know....  */
1309   printf ("mips-sony-bsd\n"); exit (0);
1310 #else
1311 #include <sys/param.h>
1312   printf ("m68k-sony-newsos%s\n",
1313 #ifdef NEWSOS4
1314           "4"
1315 #else
1316           ""
1317 #endif
1318          ); exit (0);
1319 #endif
1320 #endif
1321
1322 #if defined (__arm) && defined (__acorn) && defined (__unix)
1323   printf ("arm-acorn-riscix\n"); exit (0);
1324 #endif
1325
1326 #if defined (hp300) && !defined (hpux)
1327   printf ("m68k-hp-bsd\n"); exit (0);
1328 #endif
1329
1330 #if defined (NeXT)
1331 #if !defined (__ARCHITECTURE__)
1332 #define __ARCHITECTURE__ "m68k"
1333 #endif
1334   int version;
1335   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1336   if (version < 4)
1337     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1338   else
1339     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1340   exit (0);
1341 #endif
1342
1343 #if defined (MULTIMAX) || defined (n16)
1344 #if defined (UMAXV)
1345   printf ("ns32k-encore-sysv\n"); exit (0);
1346 #else
1347 #if defined (CMU)
1348   printf ("ns32k-encore-mach\n"); exit (0);
1349 #else
1350   printf ("ns32k-encore-bsd\n"); exit (0);
1351 #endif
1352 #endif
1353 #endif
1354
1355 #if defined (__386BSD__)
1356   printf ("i386-pc-bsd\n"); exit (0);
1357 #endif
1358
1359 #if defined (sequent)
1360 #if defined (i386)
1361   printf ("i386-sequent-dynix\n"); exit (0);
1362 #endif
1363 #if defined (ns32000)
1364   printf ("ns32k-sequent-dynix\n"); exit (0);
1365 #endif
1366 #endif
1367
1368 #if defined (_SEQUENT_)
1369     struct utsname un;
1370
1371     uname(&un);
1372
1373     if (strncmp(un.version, "V2", 2) == 0) {
1374         printf ("i386-sequent-ptx2\n"); exit (0);
1375     }
1376     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1377         printf ("i386-sequent-ptx1\n"); exit (0);
1378     }
1379     printf ("i386-sequent-ptx\n"); exit (0);
1380
1381 #endif
1382
1383 #if defined (vax)
1384 # if !defined (ultrix)
1385 #  include <sys/param.h>
1386 #  if defined (BSD)
1387 #   if BSD == 43
1388       printf ("vax-dec-bsd4.3\n"); exit (0);
1389 #   else
1390 #    if BSD == 199006
1391       printf ("vax-dec-bsd4.3reno\n"); exit (0);
1392 #    else
1393       printf ("vax-dec-bsd\n"); exit (0);
1394 #    endif
1395 #   endif
1396 #  else
1397     printf ("vax-dec-bsd\n"); exit (0);
1398 #  endif
1399 # else
1400     printf ("vax-dec-ultrix\n"); exit (0);
1401 # endif
1402 #endif
1403
1404 #if defined (alliant) && defined (i860)
1405   printf ("i860-alliant-bsd\n"); exit (0);
1406 #endif
1407
1408   exit (1);
1409 }
1410 EOF
1411
1412 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1413         { echo "$SYSTEM_NAME"; exit; }
1414
1415 # Apollos put the system type in the environment.
1416
1417 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1418
1419 # Convex versions that predate uname can use getsysinfo(1)
1420
1421 if [ -x /usr/convex/getsysinfo ]
1422 then
1423     case `getsysinfo -f cpu_type` in
1424     c1*)
1425         echo c1-convex-bsd
1426         exit ;;
1427     c2*)
1428         if getsysinfo -f scalar_acc
1429         then echo c32-convex-bsd
1430         else echo c2-convex-bsd
1431         fi
1432         exit ;;
1433     c34*)
1434         echo c34-convex-bsd
1435         exit ;;
1436     c38*)
1437         echo c38-convex-bsd
1438         exit ;;
1439     c4*)
1440         echo c4-convex-bsd
1441         exit ;;
1442     esac
1443 fi
1444
1445 cat >&2 <<EOF
1446 $0: unable to guess system type
1447
1448 This script, last modified $timestamp, has failed to recognize
1449 the operating system you are using. It is advised that you
1450 download the most up to date version of the config scripts from
1451
1452   http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
1453 and
1454   http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
1455
1456 If the version you run ($0) is already up to date, please
1457 send the following data and any information you think might be
1458 pertinent to <config-patches@gnu.org> in order to provide the needed
1459 information to handle your system.
1460
1461 config.guess timestamp = $timestamp
1462
1463 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1464 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1465 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1466 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1467
1468 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1469 /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1470
1471 hostinfo               = `(hostinfo) 2>/dev/null`
1472 /bin/universe          = `(/bin/universe) 2>/dev/null`
1473 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1474 /bin/arch              = `(/bin/arch) 2>/dev/null`
1475 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1476 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1477
1478 UNAME_MACHINE = ${UNAME_MACHINE}
1479 UNAME_RELEASE = ${UNAME_RELEASE}
1480 UNAME_SYSTEM  = ${UNAME_SYSTEM}
1481 UNAME_VERSION = ${UNAME_VERSION}
1482 EOF
1483
1484 exit 1
1485
1486 # Local variables:
1487 # eval: (add-hook 'write-file-hooks 'time-stamp)
1488 # time-stamp-start: "timestamp='"
1489 # time-stamp-format: "%:y-%02m-%02d"
1490 # time-stamp-end: "'"
1491 # End: