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