Logo AND Algorithmique Numérique Distribuée

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