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