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