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