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