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