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