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