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