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