]> www.ginac.de Git - cln.git/blob - autoconf/config.guess
Initial revision
[cln.git] / autoconf / config.guess
1 #! /bin/sh
2 # Attempt to guess a canonical system name.
3 #   Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
4 #
5 # This file is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 # General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 #
19 # As a special exception to the GNU General Public License, if you
20 # distribute this file as part of a program that contains a
21 # configuration script generated by Autoconf, you may include it under
22 # the same distribution terms that you use for the rest of that program.
23
24 # Written by Per Bothner <bothner@cygnus.com>.
25 # The master version of this file is at the FSF in /home/gd/gnu/lib.
26 # Please send patches to the Autoconf mailing list <autoconf@gnu.org>.
27 #
28 # Changed by Bruno Haible, 1 May 1999.
29 # The master version of this file is in
30 # ftp://ftp2.cons.org/pub/lisp/clisp/source/.
31 #
32 # This script attempts to guess a canonical system name similar to
33 # config.sub.  If it succeeds, it prints the system name on stdout, and
34 # exits with 0.  Otherwise, it exits with 1.
35 #
36 # The plan is that this can be called by configure scripts if you
37 # don't specify an explicit system type (host/target name).
38 #
39 # Only a few systems have been added to this list; please add others
40 # (but try to keep the structure clean).
41 #
42
43 # Use $HOST_CC if defined. $CC may point to a cross-compiler
44 if test x"$CC_FOR_BUILD" = x; then
45   if test x"$HOST_CC" != x; then
46     CC_FOR_BUILD="$HOST_CC"
47   else
48     if test x"$CC" != x; then
49       CC_FOR_BUILD="$CC"
50     else
51       CC_FOR_BUILD=cc
52     fi
53   fi
54 fi
55
56
57 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
58 # (ghazi@noc.rutgers.edu 8/24/94.)
59 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
60         PATH=$PATH:/.attbin ; export PATH
61 # This is needed to find uname on SunOS 4.0.3.
62 elif (test -f /usr/5bin/uname) >/dev/null 2>&1 ; then
63         PATH=$PATH:/usr/5bin
64 fi
65
66 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
67 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
68 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
69 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
70
71 dummy=dummy-$$
72 trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
73
74 # Note: order is significant - the case branches are not exclusive.
75
76 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
77     alpha:OSF1:*:*)
78         if test $UNAME_RELEASE = "V4.0"; then
79                 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
80         fi
81         # A Vn.n version is a released version.
82         # A Tn.n version is a released field test version.
83         # A Xn.n version is an unreleased experimental baselevel.
84         # 1.2 uses "1.2" for uname -r.
85         cat <<EOF >$dummy.s
86         .globl main
87         .ent main
88 main:
89         .frame \$30,0,\$26,0
90         .prologue 0
91         .long 0x47e03d80 # implver $0
92         lda \$2,259
93         .long 0x47e20c21 # amask $2,$1
94         srl \$1,8,\$2
95         sll \$2,2,\$2
96         sll \$0,3,\$0
97         addl \$1,\$0,\$0
98         addl \$2,\$0,\$0
99         ret \$31,(\$26),1
100         .end main
101 EOF
102         $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
103         if test "$?" = 0 ; then
104                 ./$dummy
105                 case "$?" in
106                         7)
107                                 UNAME_MACHINE="alpha"
108                                 ;;
109                         15)
110                                 UNAME_MACHINE="alphaev5"
111                                 ;;
112                         14)
113                                 UNAME_MACHINE="alphaev56"
114                                 ;;
115                         10)
116                                 UNAME_MACHINE="alphapca56"
117                                 ;;
118                         16)
119                                 UNAME_MACHINE="alphaev6"
120                                 ;;
121                 esac
122         fi
123         rm -f $dummy.s $dummy
124         echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
125         exit 0 ;;
126     21064:Windows_NT:50:3)
127         echo alpha-dec-winnt3.5
128         exit 0 ;;
129     Amiga*:UNIX_System_V:4.0:*)
130         echo m68k-cbm-sysv4
131         exit 0;;
132     amiga:NetBSD:*:*)
133       echo m68k-cbm-netbsd${UNAME_RELEASE}
134       exit 0 ;;
135     amiga:OpenBSD:*:*)
136         echo m68k-unknown-openbsd${UNAME_RELEASE}
137         exit 0 ;;
138     *:[Aa]miga[Oo][Ss]:*:*)
139         echo ${UNAME_MACHINE}-unknown-amigaos
140         exit 0 ;;
141     arc64:OpenBSD:*:*)
142         echo mips64el-unknown-openbsd${UNAME_RELEASE}
143         exit 0 ;;
144     arc:OpenBSD:*:*)
145         echo mipsel-unknown-openbsd${UNAME_RELEASE}
146         exit 0 ;;
147     hkmips:OpenBSD:*:*)
148         echo mips-unknown-openbsd${UNAME_RELEASE}
149         exit 0 ;;
150     pmax:OpenBSD:*:*)
151         echo mipsel-unknown-openbsd${UNAME_RELEASE}
152         exit 0 ;;
153     sgi:OpenBSD:*:*)
154         echo mips-unknown-openbsd${UNAME_RELEASE}
155         exit 0 ;;
156     wgrisc:OpenBSD:*:*)
157         echo mipsel-unknown-openbsd${UNAME_RELEASE}
158         exit 0 ;;
159     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
160         echo arm-acorn-riscix${UNAME_RELEASE}
161         exit 0;;
162     arm32:NetBSD:*:*)
163         echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
164         exit 0 ;;
165     SR2?01:HI-UX/MPP:*:*)
166         echo hppa1.1-hitachi-hiuxmpp
167         exit 0;;
168     Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
169         # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
170         if test "`(/bin/universe) 2>/dev/null`" = att ; then
171                 echo pyramid-pyramid-sysv3
172         else
173                 echo pyramid-pyramid-bsd
174         fi
175         exit 0 ;;
176     NILE*:*:*:dcosx)
177         echo pyramid-pyramid-svr4
178         exit 0 ;;
179     sun4H:SunOS:5.*:*)
180         echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
181         exit 0 ;;
182     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
183         echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
184         exit 0 ;;
185     i86pc:SunOS:5.*:*)
186         echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
187         exit 0 ;;
188     sun4*:SunOS:6*:*)
189         # According to config.sub, this is the proper way to canonicalize
190         # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
191         # it's likely to be more like Solaris than SunOS4.
192         echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
193         exit 0 ;;
194     sun4*:SunOS:*:*)
195         case "`/usr/bin/arch -k`" in
196             Series*|S4*)
197                 UNAME_RELEASE=`uname -v`
198                 ;;
199         esac
200         # Japanese Language versions have a version number like `4.1.3-JL'.
201         echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
202         exit 0 ;;
203     sun3*:SunOS:*:*|sun:SunOS:*:*)
204         echo m68k-sun-sunos${UNAME_RELEASE}
205         exit 0 ;;
206     sun*:*:4.2BSD:*)
207         UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
208         test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
209         case "`/bin/arch`" in
210             sun3)
211                 echo m68k-sun-sunos${UNAME_RELEASE}
212                 ;;
213             sun4)
214                 echo sparc-sun-sunos${UNAME_RELEASE}
215                 ;;
216         esac
217         exit 0 ;;
218     aushp:SunOS:*:*)
219         echo sparc-auspex-sunos${UNAME_RELEASE}
220         exit 0 ;;
221     atari*:NetBSD:*:*)
222         echo m68k-atari-netbsd${UNAME_RELEASE}
223         exit 0 ;;
224     atari*:OpenBSD:*:*)
225         echo m68k-unknown-openbsd${UNAME_RELEASE}
226         exit 0 ;;
227     # The situation for MiNT is a little confusing.  The machine name
228     # can be virtually everything (everything which is not
229     # "atarist" or "atariste" at least should have a processor 
230     # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
231     # to the lowercase version "mint" (or "freemint").  Finally
232     # the system name "TOS" denotes a system which is actually not
233     # MiNT.  But MiNT is downward compatible to TOS, so this should
234     # be no problem.
235     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
236         echo m68k-atari-mint${UNAME_RELEASE}
237         exit 0 ;;
238     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
239         echo m68k-atari-mint${UNAME_RELEASE}
240         exit 0 ;;
241     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
242         echo m68k-atari-mint${UNAME_RELEASE}
243         exit 0 ;;
244     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
245         echo m68k-milan-mint${UNAME_RELEASE}
246         exit 0 ;;
247     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
248         echo m68k-hades-mint${UNAME_RELEASE}
249         exit 0 ;;
250     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
251         echo m68k-unknown-mint${UNAME_RELEASE}
252         exit 0 ;;
253     sun3*:NetBSD:*:*)
254         echo m68k-sun-netbsd${UNAME_RELEASE}
255         exit 0 ;;
256     sun3*:OpenBSD:*:*)
257         echo m68k-unknown-openbsd${UNAME_RELEASE}
258         exit 0 ;;
259     mac68k:NetBSD:*:*)
260         echo m68k-apple-netbsd${UNAME_RELEASE}
261         exit 0 ;;
262     mac68k:OpenBSD:*:*)
263         echo m68k-unknown-openbsd${UNAME_RELEASE}
264         exit 0 ;;
265     mvme68k:OpenBSD:*:*)
266         echo m68k-unknown-openbsd${UNAME_RELEASE}
267         exit 0 ;;
268     mvme88k:OpenBSD:*:*)
269         echo m88k-unknown-openbsd${UNAME_RELEASE}
270         exit 0 ;;
271     powerpc:machten:*:*)
272         echo powerpc-apple-machten${UNAME_RELEASE}
273         exit 0 ;;
274     macppc:NetBSD:*:*)
275         echo powerpc-apple-netbsd${UNAME_RELEASE}
276         exit 0 ;;
277     RISC*:Mach:*:*)
278         echo mips-dec-mach_bsd4.3
279         exit 0 ;;
280     RISC*:ULTRIX:*:*)
281         echo mips-dec-ultrix${UNAME_RELEASE}
282         exit 0 ;;
283     VAX*:ULTRIX*:*:*)
284         echo vax-dec-ultrix${UNAME_RELEASE}
285         exit 0 ;;
286     2020:CLIX:*:* | 2430:CLIX:*:*)
287         echo clipper-intergraph-clix${UNAME_RELEASE}
288         exit 0 ;;
289     mips:*:*:UMIPS | mips:*:*:RISCos)
290         sed 's/^        //' << EOF >$dummy.c
291         #if defined(__STDC__) || defined(__cplusplus)
292         int main (int argc, char *argv[])
293         #else
294         main(argc, argv)
295         int argc;
296         char *argv[];
297         #endif
298         {
299         #if defined (host_mips) && defined (MIPSEB)
300         #if defined (SYSTYPE_SYSV)
301           printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
302         #endif
303         #if defined (SYSTYPE_SVR4)
304           printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
305         #endif
306         #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
307           printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
308         #endif
309         #endif
310           exit (-1);
311         }
312 EOF
313         $CC_FOR_BUILD $dummy.c -o $dummy \
314           && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
315           && rm $dummy.c $dummy && exit 0
316         rm -f $dummy.c $dummy
317         echo mips-mips-riscos${UNAME_RELEASE}
318         exit 0 ;;
319     Night_Hawk:Power_UNIX:*:*)
320         echo powerpc-harris-powerunix
321         exit 0 ;;
322     m88k:CX/UX:7*:*)
323         echo m88k-harris-cxux7
324         exit 0 ;;
325     m88k:*:4*:R4*)
326         echo m88k-motorola-sysv4
327         exit 0 ;;
328     m88k:*:3*:R3*)
329         echo m88k-motorola-sysv3
330         exit 0 ;;
331     AViiON:dgux:*:*)
332         # DG/UX returns AViiON for all architectures
333         UNAME_PROCESSOR=`/usr/bin/uname -p`
334         if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
335         if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
336              -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
337                 echo m88k-dg-dgux${UNAME_RELEASE}
338         else
339                 echo m88k-dg-dguxbcs${UNAME_RELEASE}
340         fi
341         else echo i586-dg-dgux${UNAME_RELEASE}
342         fi
343         exit 0 ;;
344     M88*:DolphinOS:*:*) # DolphinOS (SVR3)
345         echo m88k-dolphin-sysv3
346         exit 0 ;;
347     M88*:*:R3*:*)
348         # Delta 88k system running SVR3
349         echo m88k-motorola-sysv3
350         exit 0 ;;
351     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
352         echo m88k-tektronix-sysv3
353         exit 0 ;;
354     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
355         echo m68k-tektronix-bsd
356         exit 0 ;;
357     *:IRIX*:*:*)
358         echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
359         exit 0 ;;
360     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
361         echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
362         exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
363     i?86:AIX:*:*)
364         echo i386-ibm-aix
365         exit 0 ;;
366     *:AIX:2:3)
367         if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
368                 sed 's/^                //' << EOF >$dummy.c
369                 #include <sys/systemcfg.h>
370
371                 main()
372                         {
373                         if (!__power_pc())
374                                 exit(1);
375                         puts("powerpc-ibm-aix3.2.5");
376                         exit(0);
377                         }
378 EOF
379                 $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
380                 rm -f $dummy.c $dummy
381                 echo rs6000-ibm-aix3.2.5
382         elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
383                 echo rs6000-ibm-aix3.2.4
384         else
385                 echo rs6000-ibm-aix3.2
386         fi
387         exit 0 ;;
388     *:AIX:*:4)
389         IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
390         if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
391                 IBM_ARCH=rs6000
392         else
393                 IBM_ARCH=powerpc
394         fi
395         if [ -x /usr/bin/oslevel ] ; then
396                 IBM_REV=`/usr/bin/oslevel`
397         else
398                 IBM_REV=4.${UNAME_RELEASE}
399         fi
400         echo ${IBM_ARCH}-ibm-aix${IBM_REV}
401         exit 0 ;;
402     *:AIX:*:*)
403         echo rs6000-ibm-aix
404         exit 0 ;;
405     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
406         echo romp-ibm-bsd4.4
407         exit 0 ;;
408     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
409         echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
410         exit 0 ;;                           # report: romp-ibm BSD 4.3
411     *:BOSX:*:*)
412         echo rs6000-bull-bosx
413         exit 0 ;;
414     DPX/2?00:B.O.S.:*:*)
415         echo m68k-bull-sysv3
416         exit 0 ;;
417     9000/[34]??:4.3bsd:1.*:*)
418         echo m68k-hp-bsd
419         exit 0 ;;
420     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
421         echo m68k-hp-bsd4.4
422         exit 0 ;;
423     9000/[34678]??:HP-UX:*:*)
424         case "${UNAME_MACHINE}" in
425             9000/31? )            HP_ARCH=m68000 ;;
426             9000/[34]?? )         HP_ARCH=m68k ;;
427             9000/6?? | 9000/7?? | 9000/80[024] | 9000/8?[136790] | 9000/892 )
428               sed 's/^              //' << EOF >$dummy.c
429               #include <stdlib.h>
430               #include <unistd.h>
431               
432               int main ()
433               {
434               #if defined(_SC_KERNEL_BITS)
435                   long bits = sysconf(_SC_KERNEL_BITS);
436               #endif
437                   long cpu  = sysconf (_SC_CPU_VERSION);
438               
439                   switch (cpu)
440                 {
441                 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
442                 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
443                 case CPU_PA_RISC2_0:
444               #if defined(_SC_KERNEL_BITS)
445                     switch (bits)
446                         {
447                         case 64: puts ("hppa2.0w"); break;
448                         case 32: puts ("hppa2.0n"); break;
449                         default: puts ("hppa2.0"); break;
450                         } break;
451               #else  /* !defined(_SC_KERNEL_BITS) */
452                     puts ("hppa2.0"); break;
453               #endif
454                 default: puts ("hppa1.0"); break;
455                 }
456                   exit (0);
457               }
458 EOF
459         ($CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
460         rm -f $dummy.c $dummy
461         esac
462         HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
463         echo ${HP_ARCH}-hp-hpux${HPUX_REV}
464         exit 0 ;;
465     3050*:HI-UX:*:*)
466         sed 's/^        //' << EOF >$dummy.c
467         #include <unistd.h>
468         int
469         main ()
470         {
471           long cpu = sysconf (_SC_CPU_VERSION);
472           /* The order matters, because CPU_IS_HP_MC68K erroneously returns
473              true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
474              results, however.  */
475           if (CPU_IS_PA_RISC (cpu))
476             {
477               switch (cpu)
478                 {
479                   case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
480                   case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
481                   case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
482                   default: puts ("hppa-hitachi-hiuxwe2"); break;
483                 }
484             }
485           else if (CPU_IS_HP_MC68K (cpu))
486             puts ("m68k-hitachi-hiuxwe2");
487           else puts ("unknown-hitachi-hiuxwe2");
488           exit (0);
489         }
490 EOF
491         $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
492         rm -f $dummy.c $dummy
493         echo unknown-hitachi-hiuxwe2
494         exit 0 ;;
495     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
496         echo hppa1.1-hp-bsd
497         exit 0 ;;
498     9000/8??:4.3bsd:*:*)
499         echo hppa1.0-hp-bsd
500         exit 0 ;;
501     *9??*:MPE*:*:*)
502         echo hppa1.0-hp-mpeix
503         exit 0 ;;
504     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
505         echo hppa1.1-hp-osf
506         exit 0 ;;
507     hp8??:OSF1:*:*)
508         echo hppa1.0-hp-osf
509         exit 0 ;;
510     i?86:OSF1:*:*)
511         if [ -x /usr/sbin/sysversion ] ; then
512             echo ${UNAME_MACHINE}-unknown-osf1mk
513         else
514             echo ${UNAME_MACHINE}-unknown-osf1
515         fi
516         exit 0 ;;
517     parisc*:Lites*:*:*)
518         echo hppa1.1-hp-lites
519         exit 0 ;;
520     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
521         echo c1-convex-bsd
522         exit 0 ;;
523     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
524         if getsysinfo -f scalar_acc
525         then echo c32-convex-bsd
526         else echo c2-convex-bsd
527         fi
528         exit 0 ;;
529     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
530         echo c34-convex-bsd
531         exit 0 ;;
532     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
533         echo c38-convex-bsd
534         exit 0 ;;
535     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
536         echo c4-convex-bsd
537         exit 0 ;;
538     CRAY*X-MP:*:*:*)
539         echo xmp-cray-unicos
540         exit 0 ;;
541     CRAY*Y-MP:*:*:*)
542         echo ymp-cray-unicos${UNAME_RELEASE}
543         exit 0 ;;
544     CRAY*[A-Z]90:*:*:*)
545         echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
546         | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
547               -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
548         exit 0 ;;
549     CRAY*TS:*:*:*)
550         echo t90-cray-unicos${UNAME_RELEASE}
551         exit 0 ;;
552     CRAY*T3E:*:*:*)
553         echo t3e-cray-unicosmk${UNAME_RELEASE}
554         exit 0 ;;
555     CRAY-2:*:*:*)
556         echo cray2-cray-unicos
557         exit 0 ;;
558     F300:UNIX_System_V:*:*)
559         FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
560         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
561         echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
562         exit 0 ;;
563     F301:UNIX_System_V:*:*)
564         echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
565         exit 0 ;;
566     hp3[0-9][05]:NetBSD:*:*)
567         echo m68k-hp-netbsd${UNAME_RELEASE}
568         exit 0 ;;
569     hp300:OpenBSD:*:*)
570         echo m68k-unknown-openbsd${UNAME_RELEASE}
571         exit 0 ;;
572     sparc*:BSD/OS:*:*)
573         echo sparc-unknown-bsdi${UNAME_RELEASE}
574         exit 0 ;;
575     i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
576         echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
577         exit 0 ;;
578     *:BSD/OS:*:*)
579         echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
580         exit 0 ;;
581     *:FreeBSD:*:*)
582         if test -x /usr/bin/objformat; then
583             if test "elf" = "`/usr/bin/objformat`"; then
584                 echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
585                 exit 0
586             fi
587         fi
588         echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
589         exit 0 ;;
590     *:NetBSD:*:*)
591         echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
592         exit 0 ;;
593     *:OpenBSD:*:*)
594         echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
595         exit 0 ;;
596     i*:CYGWIN*:*)
597         echo ${UNAME_MACHINE}-pc-cygwin
598         exit 0 ;;
599     i*:MINGW*:*)
600         echo ${UNAME_MACHINE}-pc-mingw32
601         exit 0 ;;
602     p*:CYGWIN*:*)
603         echo powerpcle-unknown-cygwin
604         exit 0 ;;
605     prep*:SunOS:5.*:*)
606         echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
607         exit 0 ;;
608     *:GNU:*:*)
609         echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
610         exit 0 ;;
611     *:Linux:*:*)
612         # uname on the ARM produces all sorts of strangeness, and we need to
613         # filter it out.
614         case "$UNAME_MACHINE" in
615           armv*)                      UNAME_MACHINE=$UNAME_MACHINE ;;
616           arm* | sa110*)              UNAME_MACHINE="arm" ;;
617         esac
618
619         # The BFD linker knows what the default object file format is, so
620         # first see if it will tell us. cd to the root directory to prevent
621         # problems with other programs or directories called `ld' in the path.
622         ld_help_string=`cd /; ld --help 2>&1`
623         ld_supported_emulations=`echo $ld_help_string \
624                          | sed -ne '/supported emulations:/!d
625                                     s/[         ][      ]*/ /g
626                                     s/.*supported emulations: *//
627                                     s/ .*//
628                                     p'`
629         case "$ld_supported_emulations" in
630           i?86linux)  echo "${UNAME_MACHINE}-pc-linuxaout"      ; exit 0 ;;
631           i?86coff)   echo "${UNAME_MACHINE}-pc-linuxcoff"      ; exit 0 ;;
632           sparclinux) echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0 ;;
633           armlinux)   echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0 ;;
634           m68klinux)  echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0 ;;
635           elf32ppc)   echo "powerpc-unknown-linux"              ; exit 0 ;;
636         esac
637
638         if test "${UNAME_MACHINE}" = "alpha" ; then
639                 sed 's/^        //'  <<EOF >$dummy.s
640                 .globl main
641                 .ent main
642         main:
643                 .frame \$30,0,\$26,0
644                 .prologue 0
645                 .long 0x47e03d80 # implver $0
646                 lda \$2,259
647                 .long 0x47e20c21 # amask $2,$1
648                 srl \$1,8,\$2
649                 sll \$2,2,\$2
650                 sll \$0,3,\$0
651                 addl \$1,\$0,\$0
652                 addl \$2,\$0,\$0
653                 ret \$31,(\$26),1
654                 .end main
655 EOF
656                 LIBC="libc6"
657                 $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
658                 if test "$?" = 0 ; then
659                         ./$dummy
660                         case "$?" in
661                         7)
662                                 UNAME_MACHINE="alpha"
663                                 ;;
664                         15)
665                                 UNAME_MACHINE="alphaev5"
666                                 ;;
667                         14)
668                                 UNAME_MACHINE="alphaev56"
669                                 ;;
670                         10)
671                                 UNAME_MACHINE="alphapca56"
672                                 ;;
673                         16)
674                                 UNAME_MACHINE="alphaev6"
675                                 ;;
676                         esac
677
678                         objdump --private-headers $dummy | \
679                           grep ld.so.1 > /dev/null
680                         if test "$?" = 0 ; then
681                                 LIBC="libc5"
682                         fi
683                 fi
684                 rm -f $dummy.s $dummy
685                 echo ${UNAME_MACHINE}-unknown-linux${LIBC} ; exit 0
686         elif test "${UNAME_MACHINE}" = "mips" ; then
687           cat >$dummy.c <<EOF
688 #if defined(__STDC__) || defined(__cplusplus)
689 int main (int argc, char *argv[])
690 #else
691 main(argc, argv)
692      int argc;
693      char *argv[];
694 #endif
695 {
696 #ifdef __MIPSEB__
697   printf ("%s-unknown-linuxlibc6\n", argv[1]);
698 #endif
699 #ifdef __MIPSEL__
700   printf ("%sel-unknown-linuxlibc6\n", argv[1]);
701 #endif
702   return 0;
703 }
704 EOF
705           $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
706           rm -f $dummy.c $dummy
707         else
708           # Either a pre-BFD a.out linker (linuxoldld)
709           # or one that does not give us useful --help.
710           # GCC wants to distinguish between linuxoldld and linuxaout.
711           # If ld does not provide *any* "supported emulations:"
712           # that means it is gnuoldld.
713           echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
714           test $? != 0 && echo "${UNAME_MACHINE}-pc-linuxoldld" && exit 0
715
716           case "${UNAME_MACHINE}" in
717           i?86)
718             VENDOR=pc;
719             ;;
720           *)
721             VENDOR=unknown;
722             ;;
723           esac
724           # Determine whether the default compiler is a.out or elf
725           cat >$dummy.c <<EOF
726 #include <features.h>
727 #if defined(__STDC__) || defined(__cplusplus)
728 int main (int argc, char *argv[])
729 #else
730 main(argc, argv)
731      int argc;
732      char *argv[];
733 #endif
734 {
735 #ifdef __ELF__
736 # ifdef __GLIBC__
737 #  if __GLIBC__ >= 2
738     printf ("%s-${VENDOR}-linuxlibc6\n", argv[1]);
739 #  else
740     printf ("%s-${VENDOR}-linuxlibc5\n", argv[1]);
741 #  endif
742 # else
743    printf ("%s-${VENDOR}-linuxlibc5\n", argv[1]);
744 # endif
745 #else
746   printf ("%s-${VENDOR}-linuxaout\n", argv[1]);
747 #endif
748   return 0;
749 }
750 EOF
751           $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
752           rm -f $dummy.c $dummy
753         fi ;;
754 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
755 # are messed up and put the nodename in both sysname and nodename.
756     i?86:DYNIX/ptx:4*:*)
757         echo i386-sequent-sysv4
758         exit 0 ;;
759     i?86:UNIX_SV:4.2MP:2.*)
760         # Unixware is an offshoot of SVR4, but it has its own version
761         # number series starting with 2...
762         # I am not positive that other SVR4 systems won't match this,
763         # I just have to hope.  -- rms.
764         # Use sysv4.2uw... so that sysv4* matches it.
765         echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
766         exit 0 ;;
767     i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
768         if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
769                 echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
770         else
771                 echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
772         fi
773         exit 0 ;;
774     i?86:*:3.2:*)
775         if test -f /usr/options/cb.name; then
776                 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
777                 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
778         elif /bin/uname -X 2>/dev/null >/dev/null ; then
779                 UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
780                 (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
781                 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
782                         && UNAME_MACHINE=i586
783                 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
784         else
785                 echo ${UNAME_MACHINE}-pc-sysv32
786         fi
787         exit 0 ;;
788     i?86:UnixWare:*:*)
789         if /bin/uname -X 2>/dev/null >/dev/null ; then
790           (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
791             && UNAME_MACHINE=i586
792         fi
793         echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
794         exit 0 ;;
795     pc:*:*:*)
796         # uname -m prints for DJGPP always 'pc', but it prints nothing about
797         # the processor, so we play safe by assuming i386.
798         echo i386-pc-msdosdjgpp
799         exit 0 ;;
800     Intel:Mach:3*:*)
801         echo i386-pc-mach3
802         exit 0 ;;
803     paragon:*:*:*)
804         echo i860-intel-osf1
805         exit 0 ;;
806     i860:*:4.*:*) # i860-SVR4
807         if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
808           echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
809         else # Add other i860-SVR4 vendors below as they are discovered.
810           echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
811         fi
812         exit 0 ;;
813     mini*:CTIX:SYS*5:*)
814         # "miniframe"
815         echo m68010-convergent-sysv
816         exit 0 ;;
817     M68*:*:R3V[567]*:*)
818         test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
819     3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
820         OS_REL=''
821         test -r /etc/.relid \
822         && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
823         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
824           && echo i486-ncr-sysv4.3${OS_REL} && exit 0
825         /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
826           && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
827     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
828         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
829           && echo i486-ncr-sysv4 && exit 0 ;;
830     m68*:LynxOS:2.*:*)
831         echo m68k-unknown-lynxos${UNAME_RELEASE}
832         exit 0 ;;
833     mc68030:UNIX_System_V:4.*:*)
834         echo m68k-atari-sysv4
835         exit 0 ;;
836     i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
837         echo i386-unknown-lynxos${UNAME_RELEASE}
838         exit 0 ;;
839     TSUNAMI:LynxOS:2.*:*)
840         echo sparc-unknown-lynxos${UNAME_RELEASE}
841         exit 0 ;;
842     rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
843         echo rs6000-unknown-lynxos${UNAME_RELEASE}
844         exit 0 ;;
845     SM[BE]S:UNIX_SV:*:*)
846         echo mips-dde-sysv${UNAME_RELEASE}
847         exit 0 ;;
848     RM*:ReliantUNIX-*:*:*)
849         echo mips-sni-sysv4
850         exit 0 ;;
851     RM*:SINIX-*:*:*)
852         echo mips-sni-sysv4
853         exit 0 ;;
854     *:SINIX-*:*:*)
855         if uname -p 2>/dev/null >/dev/null ; then
856                 UNAME_MACHINE=`(uname -p) 2>/dev/null`
857                 echo ${UNAME_MACHINE}-sni-sysv4
858         else
859                 echo ns32k-sni-sysv
860         fi
861         exit 0 ;;
862     PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
863                            # says <Richard.M.Bartel@ccMail.Census.GOV>
864         echo i586-unisys-sysv4
865         exit 0 ;;
866     *:UNIX_System_V:4*:FTX*)
867         # From Gerald Hewes <hewes@openmarket.com>.
868         # How about differentiating between stratus architectures? -djm
869         echo hppa1.1-stratus-sysv4
870         exit 0 ;;
871     *:*:*:FTX*)
872         # From seanf@swdc.stratus.com.
873         echo i860-stratus-sysv4
874         exit 0 ;;
875     mc68*:A/UX:*:*)
876         echo m68k-apple-aux${UNAME_RELEASE}
877         exit 0 ;;
878     news*:NEWS-OS:*:6*)
879         echo mips-sony-newsos6
880         exit 0 ;;
881     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*)
882         if [ -d /usr/nec ]; then
883                 echo mips-nec-sysv${UNAME_RELEASE}
884         else
885                 echo mips-unknown-sysv${UNAME_RELEASE}
886         fi
887         exit 0 ;;
888     BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
889         echo powerpc-be-beos
890         exit 0 ;;
891     BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
892         echo powerpc-apple-beos
893         exit 0 ;;
894     BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
895         echo i586-pc-beos
896         exit 0 ;;
897     SX-4:SUPER-UX:*:*)
898         echo sx4-nec-superux${UNAME_RELEASE}
899         exit 0 ;;
900     SX-5:SUPER-UX:*:*)
901         echo sx5-nec-superux${UNAME_RELEASE}
902         exit 0 ;;
903     Power*:Rhapsody:*:*)
904         echo powerpc-apple-rhapsody${UNAME_RELEASE}
905         exit 0 ;;
906     *:Rhapsody:*:*)
907         echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
908         exit 0 ;;
909 esac
910
911 #echo '(No uname command or uname output not recognized.)' 1>&2
912 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
913
914 cat >$dummy.c <<EOF
915 #ifdef _SEQUENT_
916 # include <sys/types.h>
917 # include <sys/utsname.h>
918 #endif
919 main ()
920 {
921 #if defined (sony)
922 #if defined (MIPSEB)
923   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
924      I don't know....  */
925   printf ("mips-sony-bsd\n"); exit (0);
926 #else
927 #include <sys/param.h>
928   printf ("m68k-sony-newsos%s\n",
929 #ifdef NEWSOS4
930           "4"
931 #else
932           ""
933 #endif
934          ); exit (0);
935 #endif
936 #endif
937
938 #if defined (__arm) && defined (__acorn) && defined (__unix)
939   printf ("arm-acorn-riscix"); exit (0);
940 #endif
941
942 #if defined (hp300) && !defined (hpux)
943   printf ("m68k-hp-bsd\n"); exit (0);
944 #endif
945
946 #if defined (NeXT)
947 #if !defined (__ARCHITECTURE__)
948 #define __ARCHITECTURE__ "m68k"
949 #endif
950   int version;
951   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
952   if (version < 4)
953     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
954   else
955     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
956   exit (0);
957 #endif
958
959 #if defined (MULTIMAX) || defined (n16)
960 #if defined (UMAXV)
961   printf ("ns32k-encore-sysv\n"); exit (0);
962 #else
963 #if defined (CMU)
964   printf ("ns32k-encore-mach\n"); exit (0);
965 #else
966   printf ("ns32k-encore-bsd\n"); exit (0);
967 #endif
968 #endif
969 #endif
970
971 #if defined (__386BSD__)
972   printf ("i386-pc-bsd\n"); exit (0);
973 #endif
974
975 #if defined (sequent)
976 #if defined (i386)
977   printf ("i386-sequent-dynix\n"); exit (0);
978 #endif
979 #if defined (ns32000)
980   printf ("ns32k-sequent-dynix\n"); exit (0);
981 #endif
982 #endif
983
984 #if defined (_SEQUENT_)
985     struct utsname un;
986
987     uname(&un);
988
989     if (strncmp(un.version, "V2", 2) == 0) {
990         printf ("i386-sequent-ptx2\n"); exit (0);
991     }
992     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
993         printf ("i386-sequent-ptx1\n"); exit (0);
994     }
995     printf ("i386-sequent-ptx\n"); exit (0);
996
997 #endif
998
999 #if defined (vax)
1000 #if !defined (ultrix)
1001   printf ("vax-dec-bsd\n"); exit (0);
1002 #else
1003   printf ("vax-dec-ultrix\n"); exit (0);
1004 #endif
1005 #endif
1006
1007 #if defined (alliant) && defined (i860)
1008   printf ("i860-alliant-bsd\n"); exit (0);
1009 #endif
1010
1011   exit (1);
1012 }
1013 EOF
1014
1015 $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
1016 rm -f $dummy.c $dummy
1017
1018 # Apollos put the system type in the environment.
1019
1020 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
1021
1022 # Convex versions that predate uname can use getsysinfo(1)
1023
1024 if [ -x /usr/convex/getsysinfo ]
1025 then
1026     case `getsysinfo -f cpu_type` in
1027     c1*)
1028         echo c1-convex-bsd
1029         exit 0 ;;
1030     c2*)
1031         if getsysinfo -f scalar_acc
1032         then echo c32-convex-bsd
1033         else echo c2-convex-bsd
1034         fi
1035         exit 0 ;;
1036     c34*)
1037         echo c34-convex-bsd
1038         exit 0 ;;
1039     c38*)
1040         echo c38-convex-bsd
1041         exit 0 ;;
1042     c4*)
1043         echo c4-convex-bsd
1044         exit 0 ;;
1045     esac
1046 fi
1047
1048 #echo '(Unable to guess system type)' 1>&2
1049
1050 exit 1