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