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