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