Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Ticket #378: config.guess

File config.guess, 38.8 kB (added by Carlos, 5 years ago)

linux/ppc config.guess

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