(split-window-sensibly): New function.
[emacs.git] / config.guess
blobc466aa763647712cc3be3646bbf1a64debd8904b
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.
7 timestamp='2008-12-11'
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.
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.
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.
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.
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.
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.
38 # The plan is that this can be called by configure scripts if you
39 # don't specify an explicit build system type.
41 me=`echo "$0" | sed -e 's,.*/,,'`
43 usage="\
44 Usage: $0 [OPTION]
46 Output the configuration name of the system \`$me' is run on.
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
53 Report bugs and patches to <config-patches@gnu.org>."
55 version="\
56 GNU config.guess ($timestamp)
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.
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."
65 help="
66 Try \`$me --help' for more information."
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
89 if test $# != 0; then
90 echo "$me: too many arguments$help" >&2
91 exit 1
94 trap 'exit 1' 1 2 15
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.
101 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
102 # use `HOST_CC' if defined, but it is deprecated.
104 # Portable tmp directory creation inspired by the Autoconf team.
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 ;
127 ,,*) CC_FOR_BUILD=$CC ;;
128 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
129 esac ; set_cc_for_build= ;'
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
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
142 # Note: order is significant - the case branches are not exclusive.
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.
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
183 os=netbsd
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'
196 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
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}'`
225 *5.*)
226 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
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
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 eval $set_cc_for_build
335 SUN_ARCH="i386"
336 # If there is a compiler, see if it is configured for 64-bit objects.
337 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
338 # This test works for both compilers. Note that the full path to
339 # /usr/bin/echo is necessary to work around the shell builtins for
340 # echo that do not handle newlines.
341 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
342 if /usr/bin/echo '\n#ifdef __amd64\nIS_64BIT_ARCH\n#endif' | \
343 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
344 grep IS_64BIT_ARCH >/dev/null
345 then
346 SUN_ARCH="x86_64"
349 echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
350 exit ;;
351 sun4*:SunOS:6*:*)
352 # According to config.sub, this is the proper way to canonicalize
353 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
354 # it's likely to be more like Solaris than SunOS4.
355 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
356 exit ;;
357 sun4*:SunOS:*:*)
358 case "`/usr/bin/arch -k`" in
359 Series*|S4*)
360 UNAME_RELEASE=`uname -v`
362 esac
363 # Japanese Language versions have a version number like `4.1.3-JL'.
364 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
365 exit ;;
366 sun3*:SunOS:*:*)
367 echo m68k-sun-sunos${UNAME_RELEASE}
368 exit ;;
369 sun*:*:4.2BSD:*)
370 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
371 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
372 case "`/bin/arch`" in
373 sun3)
374 echo m68k-sun-sunos${UNAME_RELEASE}
376 sun4)
377 echo sparc-sun-sunos${UNAME_RELEASE}
379 esac
380 exit ;;
381 aushp:SunOS:*:*)
382 echo sparc-auspex-sunos${UNAME_RELEASE}
383 exit ;;
384 # The situation for MiNT is a little confusing. The machine name
385 # can be virtually everything (everything which is not
386 # "atarist" or "atariste" at least should have a processor
387 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
388 # to the lowercase version "mint" (or "freemint"). Finally
389 # the system name "TOS" denotes a system which is actually not
390 # MiNT. But MiNT is downward compatible to TOS, so this should
391 # be no problem.
392 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
393 echo m68k-atari-mint${UNAME_RELEASE}
394 exit ;;
395 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
396 echo m68k-atari-mint${UNAME_RELEASE}
397 exit ;;
398 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
399 echo m68k-atari-mint${UNAME_RELEASE}
400 exit ;;
401 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
402 echo m68k-milan-mint${UNAME_RELEASE}
403 exit ;;
404 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
405 echo m68k-hades-mint${UNAME_RELEASE}
406 exit ;;
407 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
408 echo m68k-unknown-mint${UNAME_RELEASE}
409 exit ;;
410 m68k:machten:*:*)
411 echo m68k-apple-machten${UNAME_RELEASE}
412 exit ;;
413 powerpc:machten:*:*)
414 echo powerpc-apple-machten${UNAME_RELEASE}
415 exit ;;
416 RISC*:Mach:*:*)
417 echo mips-dec-mach_bsd4.3
418 exit ;;
419 RISC*:ULTRIX:*:*)
420 echo mips-dec-ultrix${UNAME_RELEASE}
421 exit ;;
422 VAX*:ULTRIX*:*:*)
423 echo vax-dec-ultrix${UNAME_RELEASE}
424 exit ;;
425 2020:CLIX:*:* | 2430:CLIX:*:*)
426 echo clipper-intergraph-clix${UNAME_RELEASE}
427 exit ;;
428 mips:*:*:UMIPS | mips:*:*:RISCos)
429 eval $set_cc_for_build
430 sed 's/^ //' << EOF >$dummy.c
431 #ifdef __cplusplus
432 #include <stdio.h> /* for printf() prototype */
433 int main (int argc, char *argv[]) {
434 #else
435 int main (argc, argv) int argc; char *argv[]; {
436 #endif
437 #if defined (host_mips) && defined (MIPSEB)
438 #if defined (SYSTYPE_SYSV)
439 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
440 #endif
441 #if defined (SYSTYPE_SVR4)
442 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
443 #endif
444 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
445 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
446 #endif
447 #endif
448 exit (-1);
451 $CC_FOR_BUILD -o $dummy $dummy.c &&
452 dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
453 SYSTEM_NAME=`$dummy $dummyarg` &&
454 { echo "$SYSTEM_NAME"; exit; }
455 echo mips-mips-riscos${UNAME_RELEASE}
456 exit ;;
457 Motorola:PowerMAX_OS:*:*)
458 echo powerpc-motorola-powermax
459 exit ;;
460 Motorola:*:4.3:PL8-*)
461 echo powerpc-harris-powermax
462 exit ;;
463 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
464 echo powerpc-harris-powermax
465 exit ;;
466 Night_Hawk:Power_UNIX:*:*)
467 echo powerpc-harris-powerunix
468 exit ;;
469 m88k:CX/UX:7*:*)
470 echo m88k-harris-cxux7
471 exit ;;
472 m88k:*:4*:R4*)
473 echo m88k-motorola-sysv4
474 exit ;;
475 m88k:*:3*:R3*)
476 echo m88k-motorola-sysv3
477 exit ;;
478 AViiON:dgux:*:*)
479 # DG/UX returns AViiON for all architectures
480 UNAME_PROCESSOR=`/usr/bin/uname -p`
481 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
482 then
483 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
484 [ ${TARGET_BINARY_INTERFACE}x = x ]
485 then
486 echo m88k-dg-dgux${UNAME_RELEASE}
487 else
488 echo m88k-dg-dguxbcs${UNAME_RELEASE}
490 else
491 echo i586-dg-dgux${UNAME_RELEASE}
493 exit ;;
494 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
495 echo m88k-dolphin-sysv3
496 exit ;;
497 M88*:*:R3*:*)
498 # Delta 88k system running SVR3
499 echo m88k-motorola-sysv3
500 exit ;;
501 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
502 echo m88k-tektronix-sysv3
503 exit ;;
504 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
505 echo m68k-tektronix-bsd
506 exit ;;
507 *:IRIX*:*:*)
508 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
509 exit ;;
510 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
511 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
512 exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
513 i*86:AIX:*:*)
514 echo i386-ibm-aix
515 exit ;;
516 ia64:AIX:*:*)
517 if [ -x /usr/bin/oslevel ] ; then
518 IBM_REV=`/usr/bin/oslevel`
519 else
520 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
522 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
523 exit ;;
524 *:AIX:2:3)
525 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
526 eval $set_cc_for_build
527 sed 's/^ //' << EOF >$dummy.c
528 #include <sys/systemcfg.h>
530 main()
532 if (!__power_pc())
533 exit(1);
534 puts("powerpc-ibm-aix3.2.5");
535 exit(0);
538 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
539 then
540 echo "$SYSTEM_NAME"
541 else
542 echo rs6000-ibm-aix3.2.5
544 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
545 echo rs6000-ibm-aix3.2.4
546 else
547 echo rs6000-ibm-aix3.2
549 exit ;;
550 *:AIX:*:[456])
551 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
552 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
553 IBM_ARCH=rs6000
554 else
555 IBM_ARCH=powerpc
557 if [ -x /usr/bin/oslevel ] ; then
558 IBM_REV=`/usr/bin/oslevel`
559 else
560 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
562 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
563 exit ;;
564 *:AIX:*:*)
565 echo rs6000-ibm-aix
566 exit ;;
567 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
568 echo romp-ibm-bsd4.4
569 exit ;;
570 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
571 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
572 exit ;; # report: romp-ibm BSD 4.3
573 *:BOSX:*:*)
574 echo rs6000-bull-bosx
575 exit ;;
576 DPX/2?00:B.O.S.:*:*)
577 echo m68k-bull-sysv3
578 exit ;;
579 9000/[34]??:4.3bsd:1.*:*)
580 echo m68k-hp-bsd
581 exit ;;
582 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
583 echo m68k-hp-bsd4.4
584 exit ;;
585 9000/[34678]??:HP-UX:*:*)
586 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
587 case "${UNAME_MACHINE}" in
588 9000/31? ) HP_ARCH=m68000 ;;
589 9000/[34]?? ) HP_ARCH=m68k ;;
590 9000/[678][0-9][0-9])
591 if [ -x /usr/bin/getconf ]; then
592 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
593 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
594 case "${sc_cpu_version}" in
595 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
596 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
597 532) # CPU_PA_RISC2_0
598 case "${sc_kernel_bits}" in
599 32) HP_ARCH="hppa2.0n" ;;
600 64) HP_ARCH="hppa2.0w" ;;
601 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
602 esac ;;
603 esac
605 if [ "${HP_ARCH}" = "" ]; then
606 eval $set_cc_for_build
607 sed 's/^ //' << EOF >$dummy.c
609 #define _HPUX_SOURCE
610 #include <stdlib.h>
611 #include <unistd.h>
613 int main ()
615 #if defined(_SC_KERNEL_BITS)
616 long bits = sysconf(_SC_KERNEL_BITS);
617 #endif
618 long cpu = sysconf (_SC_CPU_VERSION);
620 switch (cpu)
622 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
623 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
624 case CPU_PA_RISC2_0:
625 #if defined(_SC_KERNEL_BITS)
626 switch (bits)
628 case 64: puts ("hppa2.0w"); break;
629 case 32: puts ("hppa2.0n"); break;
630 default: puts ("hppa2.0"); break;
631 } break;
632 #else /* !defined(_SC_KERNEL_BITS) */
633 puts ("hppa2.0"); break;
634 #endif
635 default: puts ("hppa1.0"); break;
637 exit (0);
640 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
641 test -z "$HP_ARCH" && HP_ARCH=hppa
642 fi ;;
643 esac
644 if [ ${HP_ARCH} = "hppa2.0w" ]
645 then
646 eval $set_cc_for_build
648 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
649 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
650 # generating 64-bit code. GNU and HP use different nomenclature:
652 # $ CC_FOR_BUILD=cc ./config.guess
653 # => hppa2.0w-hp-hpux11.23
654 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
655 # => hppa64-hp-hpux11.23
657 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
658 grep __LP64__ >/dev/null
659 then
660 HP_ARCH="hppa2.0w"
661 else
662 HP_ARCH="hppa64"
665 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
666 exit ;;
667 ia64:HP-UX:*:*)
668 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
669 echo ia64-hp-hpux${HPUX_REV}
670 exit ;;
671 3050*:HI-UX:*:*)
672 eval $set_cc_for_build
673 sed 's/^ //' << EOF >$dummy.c
674 #include <unistd.h>
676 main ()
678 long cpu = sysconf (_SC_CPU_VERSION);
679 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
680 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
681 results, however. */
682 if (CPU_IS_PA_RISC (cpu))
684 switch (cpu)
686 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
687 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
688 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
689 default: puts ("hppa-hitachi-hiuxwe2"); break;
692 else if (CPU_IS_HP_MC68K (cpu))
693 puts ("m68k-hitachi-hiuxwe2");
694 else puts ("unknown-hitachi-hiuxwe2");
695 exit (0);
698 $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
699 { echo "$SYSTEM_NAME"; exit; }
700 echo unknown-hitachi-hiuxwe2
701 exit ;;
702 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
703 echo hppa1.1-hp-bsd
704 exit ;;
705 9000/8??:4.3bsd:*:*)
706 echo hppa1.0-hp-bsd
707 exit ;;
708 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
709 echo hppa1.0-hp-mpeix
710 exit ;;
711 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
712 echo hppa1.1-hp-osf
713 exit ;;
714 hp8??:OSF1:*:*)
715 echo hppa1.0-hp-osf
716 exit ;;
717 i*86:OSF1:*:*)
718 if [ -x /usr/sbin/sysversion ] ; then
719 echo ${UNAME_MACHINE}-unknown-osf1mk
720 else
721 echo ${UNAME_MACHINE}-unknown-osf1
723 exit ;;
724 parisc*:Lites*:*:*)
725 echo hppa1.1-hp-lites
726 exit ;;
727 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
728 echo c1-convex-bsd
729 exit ;;
730 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
731 if getsysinfo -f scalar_acc
732 then echo c32-convex-bsd
733 else echo c2-convex-bsd
735 exit ;;
736 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
737 echo c34-convex-bsd
738 exit ;;
739 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
740 echo c38-convex-bsd
741 exit ;;
742 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
743 echo c4-convex-bsd
744 exit ;;
745 CRAY*Y-MP:*:*:*)
746 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
747 exit ;;
748 CRAY*[A-Z]90:*:*:*)
749 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
750 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
751 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
752 -e 's/\.[^.]*$/.X/'
753 exit ;;
754 CRAY*TS:*:*:*)
755 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
756 exit ;;
757 CRAY*T3E:*:*:*)
758 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
759 exit ;;
760 CRAY*SV1:*:*:*)
761 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
762 exit ;;
763 *:UNICOS/mp:*:*)
764 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
765 exit ;;
766 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
767 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
768 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
769 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
770 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
771 exit ;;
772 5000:UNIX_System_V:4.*:*)
773 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
774 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
775 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
776 exit ;;
777 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
778 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
779 exit ;;
780 sparc*:BSD/OS:*:*)
781 echo sparc-unknown-bsdi${UNAME_RELEASE}
782 exit ;;
783 *:BSD/OS:*:*)
784 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
785 exit ;;
786 *:FreeBSD:*:*)
787 case ${UNAME_MACHINE} in
788 pc98)
789 echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
790 amd64)
791 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
793 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
794 esac
795 exit ;;
796 i*:CYGWIN*:*)
797 echo ${UNAME_MACHINE}-pc-cygwin
798 exit ;;
799 *:MINGW*:*)
800 echo ${UNAME_MACHINE}-pc-mingw32
801 exit ;;
802 i*:windows32*:*)
803 # uname -m includes "-pc" on this system.
804 echo ${UNAME_MACHINE}-mingw32
805 exit ;;
806 i*:PW*:*)
807 echo ${UNAME_MACHINE}-pc-pw32
808 exit ;;
809 *:Interix*:[3456]*)
810 case ${UNAME_MACHINE} in
811 x86)
812 echo i586-pc-interix${UNAME_RELEASE}
813 exit ;;
814 EM64T | authenticamd | genuineintel)
815 echo x86_64-unknown-interix${UNAME_RELEASE}
816 exit ;;
817 IA64)
818 echo ia64-unknown-interix${UNAME_RELEASE}
819 exit ;;
820 esac ;;
821 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
822 echo i${UNAME_MACHINE}-pc-mks
823 exit ;;
824 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
825 # How do we know it's Interix rather than the generic POSIX subsystem?
826 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
827 # UNAME_MACHINE based on the output of uname instead of i386?
828 echo i586-pc-interix
829 exit ;;
830 i*:UWIN*:*)
831 echo ${UNAME_MACHINE}-pc-uwin
832 exit ;;
833 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
834 echo x86_64-unknown-cygwin
835 exit ;;
836 p*:CYGWIN*:*)
837 echo powerpcle-unknown-cygwin
838 exit ;;
839 prep*:SunOS:5.*:*)
840 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
841 exit ;;
842 *:GNU:*:*)
843 # the GNU system
844 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
845 exit ;;
846 *:GNU/*:*:*)
847 # other systems with GNU libc and userland
848 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
849 exit ;;
850 i*86:Minix:*:*)
851 echo ${UNAME_MACHINE}-pc-minix
852 exit ;;
853 arm*:Linux:*:*)
854 eval $set_cc_for_build
855 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
856 | grep -q __ARM_EABI__
857 then
858 echo ${UNAME_MACHINE}-unknown-linux-gnu
859 else
860 echo ${UNAME_MACHINE}-unknown-linux-gnueabi
862 exit ;;
863 avr32*:Linux:*:*)
864 echo ${UNAME_MACHINE}-unknown-linux-gnu
865 exit ;;
866 cris:Linux:*:*)
867 echo cris-axis-linux-gnu
868 exit ;;
869 crisv32:Linux:*:*)
870 echo crisv32-axis-linux-gnu
871 exit ;;
872 frv:Linux:*:*)
873 echo frv-unknown-linux-gnu
874 exit ;;
875 ia64:Linux:*:*)
876 echo ${UNAME_MACHINE}-unknown-linux-gnu
877 exit ;;
878 m32r*:Linux:*:*)
879 echo ${UNAME_MACHINE}-unknown-linux-gnu
880 exit ;;
881 m68*:Linux:*:*)
882 echo ${UNAME_MACHINE}-unknown-linux-gnu
883 exit ;;
884 mips:Linux:*:*)
885 eval $set_cc_for_build
886 sed 's/^ //' << EOF >$dummy.c
887 #undef CPU
888 #undef mips
889 #undef mipsel
890 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
891 CPU=mipsel
892 #else
893 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
894 CPU=mips
895 #else
896 CPU=
897 #endif
898 #endif
900 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
901 /^CPU/{
902 s: ::g
904 }'`"
905 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
907 mips64:Linux:*:*)
908 eval $set_cc_for_build
909 sed 's/^ //' << EOF >$dummy.c
910 #undef CPU
911 #undef mips64
912 #undef mips64el
913 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
914 CPU=mips64el
915 #else
916 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
917 CPU=mips64
918 #else
919 CPU=
920 #endif
921 #endif
923 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
924 /^CPU/{
925 s: ::g
927 }'`"
928 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
930 or32:Linux:*:*)
931 echo or32-unknown-linux-gnu
932 exit ;;
933 ppc:Linux:*:*)
934 echo powerpc-unknown-linux-gnu
935 exit ;;
936 ppc64:Linux:*:*)
937 echo powerpc64-unknown-linux-gnu
938 exit ;;
939 alpha:Linux:*:*)
940 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
941 EV5) UNAME_MACHINE=alphaev5 ;;
942 EV56) UNAME_MACHINE=alphaev56 ;;
943 PCA56) UNAME_MACHINE=alphapca56 ;;
944 PCA57) UNAME_MACHINE=alphapca56 ;;
945 EV6) UNAME_MACHINE=alphaev6 ;;
946 EV67) UNAME_MACHINE=alphaev67 ;;
947 EV68*) UNAME_MACHINE=alphaev68 ;;
948 esac
949 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
950 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
951 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
952 exit ;;
953 padre:Linux:*:*)
954 echo sparc-unknown-linux-gnu
955 exit ;;
956 parisc:Linux:*:* | hppa:Linux:*:*)
957 # Look for CPU level
958 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
959 PA7*) echo hppa1.1-unknown-linux-gnu ;;
960 PA8*) echo hppa2.0-unknown-linux-gnu ;;
961 *) echo hppa-unknown-linux-gnu ;;
962 esac
963 exit ;;
964 parisc64:Linux:*:* | hppa64:Linux:*:*)
965 echo hppa64-unknown-linux-gnu
966 exit ;;
967 s390:Linux:*:* | s390x:Linux:*:*)
968 echo ${UNAME_MACHINE}-ibm-linux
969 exit ;;
970 sh64*:Linux:*:*)
971 echo ${UNAME_MACHINE}-unknown-linux-gnu
972 exit ;;
973 sh*:Linux:*:*)
974 echo ${UNAME_MACHINE}-unknown-linux-gnu
975 exit ;;
976 sparc:Linux:*:* | sparc64:Linux:*:*)
977 echo ${UNAME_MACHINE}-unknown-linux-gnu
978 exit ;;
979 vax:Linux:*:*)
980 echo ${UNAME_MACHINE}-dec-linux-gnu
981 exit ;;
982 x86_64:Linux:*:*)
983 echo x86_64-unknown-linux-gnu
984 exit ;;
985 xtensa*:Linux:*:*)
986 echo ${UNAME_MACHINE}-unknown-linux-gnu
987 exit ;;
988 i*86:Linux:*:*)
989 # The BFD linker knows what the default object file format is, so
990 # first see if it will tell us. cd to the root directory to prevent
991 # problems with other programs or directories called `ld' in the path.
992 # Set LC_ALL=C to ensure ld outputs messages in English.
993 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
994 | sed -ne '/supported targets:/!d
995 s/[ ][ ]*/ /g
996 s/.*supported targets: *//
997 s/ .*//
999 case "$ld_supported_targets" in
1000 elf32-i386)
1001 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
1003 a.out-i386-linux)
1004 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
1005 exit ;;
1007 # Either a pre-BFD a.out linker (linux-gnuoldld) or
1008 # one that does not give us useful --help.
1009 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
1010 exit ;;
1011 esac
1012 # Determine whether the default compiler is a.out or elf
1013 eval $set_cc_for_build
1014 sed 's/^ //' << EOF >$dummy.c
1015 #include <features.h>
1016 #ifdef __ELF__
1017 # ifdef __GLIBC__
1018 # if __GLIBC__ >= 2
1019 LIBC=gnu
1020 # else
1021 LIBC=gnulibc1
1022 # endif
1023 # else
1024 LIBC=gnulibc1
1025 # endif
1026 #else
1027 #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
1028 LIBC=gnu
1029 #else
1030 LIBC=gnuaout
1031 #endif
1032 #endif
1033 #ifdef __dietlibc__
1034 LIBC=dietlibc
1035 #endif
1037 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
1038 /^LIBC/{
1039 s: ::g
1041 }'`"
1042 test x"${LIBC}" != x && {
1043 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
1044 exit
1046 test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
1048 i*86:DYNIX/ptx:4*:*)
1049 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1050 # earlier versions are messed up and put the nodename in both
1051 # sysname and nodename.
1052 echo i386-sequent-sysv4
1053 exit ;;
1054 i*86:UNIX_SV:4.2MP:2.*)
1055 # Unixware is an offshoot of SVR4, but it has its own version
1056 # number series starting with 2...
1057 # I am not positive that other SVR4 systems won't match this,
1058 # I just have to hope. -- rms.
1059 # Use sysv4.2uw... so that sysv4* matches it.
1060 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1061 exit ;;
1062 i*86:OS/2:*:*)
1063 # If we were able to find `uname', then EMX Unix compatibility
1064 # is probably installed.
1065 echo ${UNAME_MACHINE}-pc-os2-emx
1066 exit ;;
1067 i*86:XTS-300:*:STOP)
1068 echo ${UNAME_MACHINE}-unknown-stop
1069 exit ;;
1070 i*86:atheos:*:*)
1071 echo ${UNAME_MACHINE}-unknown-atheos
1072 exit ;;
1073 i*86:syllable:*:*)
1074 echo ${UNAME_MACHINE}-pc-syllable
1075 exit ;;
1076 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1077 echo i386-unknown-lynxos${UNAME_RELEASE}
1078 exit ;;
1079 i*86:*DOS:*:*)
1080 echo ${UNAME_MACHINE}-pc-msdosdjgpp
1081 exit ;;
1082 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1083 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1084 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1085 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1086 else
1087 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1089 exit ;;
1090 i*86:*:5:[678]*)
1091 # UnixWare 7.x, OpenUNIX and OpenServer 6.
1092 case `/bin/uname -X | grep "^Machine"` in
1093 *486*) UNAME_MACHINE=i486 ;;
1094 *Pentium) UNAME_MACHINE=i586 ;;
1095 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1096 esac
1097 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1098 exit ;;
1099 i*86:*:3.2:*)
1100 if test -f /usr/options/cb.name; then
1101 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1102 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1103 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1104 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1105 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1106 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1107 && UNAME_MACHINE=i586
1108 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1109 && UNAME_MACHINE=i686
1110 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1111 && UNAME_MACHINE=i686
1112 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1113 else
1114 echo ${UNAME_MACHINE}-pc-sysv32
1116 exit ;;
1117 pc:*:*:*)
1118 # Left here for compatibility:
1119 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1120 # the processor, so we play safe by assuming i386.
1121 echo i386-pc-msdosdjgpp
1122 exit ;;
1123 Intel:Mach:3*:*)
1124 echo i386-pc-mach3
1125 exit ;;
1126 paragon:*:*:*)
1127 echo i860-intel-osf1
1128 exit ;;
1129 i860:*:4.*:*) # i860-SVR4
1130 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1131 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1132 else # Add other i860-SVR4 vendors below as they are discovered.
1133 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1135 exit ;;
1136 mini*:CTIX:SYS*5:*)
1137 # "miniframe"
1138 echo m68010-convergent-sysv
1139 exit ;;
1140 mc68k:UNIX:SYSTEM5:3.51m)
1141 echo m68k-convergent-sysv
1142 exit ;;
1143 M680?0:D-NIX:5.3:*)
1144 echo m68k-diab-dnix
1145 exit ;;
1146 M68*:*:R3V[5678]*:*)
1147 test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1148 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)
1149 OS_REL=''
1150 test -r /etc/.relid \
1151 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1152 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1153 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1154 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1155 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1156 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1157 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1158 && { echo i486-ncr-sysv4; exit; } ;;
1159 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1160 echo m68k-unknown-lynxos${UNAME_RELEASE}
1161 exit ;;
1162 mc68030:UNIX_System_V:4.*:*)
1163 echo m68k-atari-sysv4
1164 exit ;;
1165 TSUNAMI:LynxOS:2.*:*)
1166 echo sparc-unknown-lynxos${UNAME_RELEASE}
1167 exit ;;
1168 rs6000:LynxOS:2.*:*)
1169 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1170 exit ;;
1171 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1172 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1173 exit ;;
1174 SM[BE]S:UNIX_SV:*:*)
1175 echo mips-dde-sysv${UNAME_RELEASE}
1176 exit ;;
1177 RM*:ReliantUNIX-*:*:*)
1178 echo mips-sni-sysv4
1179 exit ;;
1180 RM*:SINIX-*:*:*)
1181 echo mips-sni-sysv4
1182 exit ;;
1183 *:SINIX-*:*:*)
1184 if uname -p 2>/dev/null >/dev/null ; then
1185 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1186 echo ${UNAME_MACHINE}-sni-sysv4
1187 else
1188 echo ns32k-sni-sysv
1190 exit ;;
1191 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1192 # says <Richard.M.Bartel@ccMail.Census.GOV>
1193 echo i586-unisys-sysv4
1194 exit ;;
1195 *:UNIX_System_V:4*:FTX*)
1196 # From Gerald Hewes <hewes@openmarket.com>.
1197 # How about differentiating between stratus architectures? -djm
1198 echo hppa1.1-stratus-sysv4
1199 exit ;;
1200 *:*:*:FTX*)
1201 # From seanf@swdc.stratus.com.
1202 echo i860-stratus-sysv4
1203 exit ;;
1204 i*86:VOS:*:*)
1205 # From Paul.Green@stratus.com.
1206 echo ${UNAME_MACHINE}-stratus-vos
1207 exit ;;
1208 *:VOS:*:*)
1209 # From Paul.Green@stratus.com.
1210 echo hppa1.1-stratus-vos
1211 exit ;;
1212 mc68*:A/UX:*:*)
1213 echo m68k-apple-aux${UNAME_RELEASE}
1214 exit ;;
1215 news*:NEWS-OS:6*:*)
1216 echo mips-sony-newsos6
1217 exit ;;
1218 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1219 if [ -d /usr/nec ]; then
1220 echo mips-nec-sysv${UNAME_RELEASE}
1221 else
1222 echo mips-unknown-sysv${UNAME_RELEASE}
1224 exit ;;
1225 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1226 echo powerpc-be-beos
1227 exit ;;
1228 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1229 echo powerpc-apple-beos
1230 exit ;;
1231 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1232 echo i586-pc-beos
1233 exit ;;
1234 BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1235 echo i586-pc-haiku
1236 exit ;;
1237 SX-4:SUPER-UX:*:*)
1238 echo sx4-nec-superux${UNAME_RELEASE}
1239 exit ;;
1240 SX-5:SUPER-UX:*:*)
1241 echo sx5-nec-superux${UNAME_RELEASE}
1242 exit ;;
1243 SX-6:SUPER-UX:*:*)
1244 echo sx6-nec-superux${UNAME_RELEASE}
1245 exit ;;
1246 SX-7:SUPER-UX:*:*)
1247 echo sx7-nec-superux${UNAME_RELEASE}
1248 exit ;;
1249 SX-8:SUPER-UX:*:*)
1250 echo sx8-nec-superux${UNAME_RELEASE}
1251 exit ;;
1252 SX-8R:SUPER-UX:*:*)
1253 echo sx8r-nec-superux${UNAME_RELEASE}
1254 exit ;;
1255 Power*:Rhapsody:*:*)
1256 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1257 exit ;;
1258 *:Rhapsody:*:*)
1259 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1260 exit ;;
1261 *:Darwin:*:*)
1262 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1263 case $UNAME_PROCESSOR in
1264 unknown) UNAME_PROCESSOR=powerpc ;;
1265 esac
1266 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1267 exit ;;
1268 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1269 UNAME_PROCESSOR=`uname -p`
1270 if test "$UNAME_PROCESSOR" = "x86"; then
1271 UNAME_PROCESSOR=i386
1272 UNAME_MACHINE=pc
1274 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1275 exit ;;
1276 *:QNX:*:4*)
1277 echo i386-pc-qnx
1278 exit ;;
1279 NSE-?:NONSTOP_KERNEL:*:*)
1280 echo nse-tandem-nsk${UNAME_RELEASE}
1281 exit ;;
1282 NSR-?:NONSTOP_KERNEL:*:*)
1283 echo nsr-tandem-nsk${UNAME_RELEASE}
1284 exit ;;
1285 *:NonStop-UX:*:*)
1286 echo mips-compaq-nonstopux
1287 exit ;;
1288 BS2000:POSIX*:*:*)
1289 echo bs2000-siemens-sysv
1290 exit ;;
1291 DS/*:UNIX_System_V:*:*)
1292 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1293 exit ;;
1294 *:Plan9:*:*)
1295 # "uname -m" is not consistent, so use $cputype instead. 386
1296 # is converted to i386 for consistency with other x86
1297 # operating systems.
1298 if test "$cputype" = "386"; then
1299 UNAME_MACHINE=i386
1300 else
1301 UNAME_MACHINE="$cputype"
1303 echo ${UNAME_MACHINE}-unknown-plan9
1304 exit ;;
1305 *:TOPS-10:*:*)
1306 echo pdp10-unknown-tops10
1307 exit ;;
1308 *:TENEX:*:*)
1309 echo pdp10-unknown-tenex
1310 exit ;;
1311 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1312 echo pdp10-dec-tops20
1313 exit ;;
1314 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1315 echo pdp10-xkl-tops20
1316 exit ;;
1317 *:TOPS-20:*:*)
1318 echo pdp10-unknown-tops20
1319 exit ;;
1320 *:ITS:*:*)
1321 echo pdp10-unknown-its
1322 exit ;;
1323 SEI:*:*:SEIUX)
1324 echo mips-sei-seiux${UNAME_RELEASE}
1325 exit ;;
1326 *:DragonFly:*:*)
1327 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1328 exit ;;
1329 *:*VMS:*:*)
1330 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1331 case "${UNAME_MACHINE}" in
1332 A*) echo alpha-dec-vms ; exit ;;
1333 I*) echo ia64-dec-vms ; exit ;;
1334 V*) echo vax-dec-vms ; exit ;;
1335 esac ;;
1336 *:XENIX:*:SysV)
1337 echo i386-pc-xenix
1338 exit ;;
1339 i*86:skyos:*:*)
1340 echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1341 exit ;;
1342 i*86:rdos:*:*)
1343 echo ${UNAME_MACHINE}-pc-rdos
1344 exit ;;
1345 esac
1347 #echo '(No uname command or uname output not recognized.)' 1>&2
1348 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1350 eval $set_cc_for_build
1351 cat >$dummy.c <<EOF
1352 #ifdef _SEQUENT_
1353 # include <sys/types.h>
1354 # include <sys/utsname.h>
1355 #endif
1356 main ()
1358 #if defined (sony)
1359 #if defined (MIPSEB)
1360 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1361 I don't know.... */
1362 printf ("mips-sony-bsd\n"); exit (0);
1363 #else
1364 #include <sys/param.h>
1365 printf ("m68k-sony-newsos%s\n",
1366 #ifdef NEWSOS4
1368 #else
1370 #endif
1371 ); exit (0);
1372 #endif
1373 #endif
1375 #if defined (__arm) && defined (__acorn) && defined (__unix)
1376 printf ("arm-acorn-riscix\n"); exit (0);
1377 #endif
1379 #if defined (hp300) && !defined (hpux)
1380 printf ("m68k-hp-bsd\n"); exit (0);
1381 #endif
1383 #if defined (NeXT)
1384 #if !defined (__ARCHITECTURE__)
1385 #define __ARCHITECTURE__ "m68k"
1386 #endif
1387 int version;
1388 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1389 if (version < 4)
1390 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1391 else
1392 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1393 exit (0);
1394 #endif
1396 #if defined (MULTIMAX) || defined (n16)
1397 #if defined (UMAXV)
1398 printf ("ns32k-encore-sysv\n"); exit (0);
1399 #else
1400 #if defined (CMU)
1401 printf ("ns32k-encore-mach\n"); exit (0);
1402 #else
1403 printf ("ns32k-encore-bsd\n"); exit (0);
1404 #endif
1405 #endif
1406 #endif
1408 #if defined (__386BSD__)
1409 printf ("i386-pc-bsd\n"); exit (0);
1410 #endif
1412 #if defined (sequent)
1413 #if defined (i386)
1414 printf ("i386-sequent-dynix\n"); exit (0);
1415 #endif
1416 #if defined (ns32000)
1417 printf ("ns32k-sequent-dynix\n"); exit (0);
1418 #endif
1419 #endif
1421 #if defined (_SEQUENT_)
1422 struct utsname un;
1424 uname(&un);
1426 if (strncmp(un.version, "V2", 2) == 0) {
1427 printf ("i386-sequent-ptx2\n"); exit (0);
1429 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1430 printf ("i386-sequent-ptx1\n"); exit (0);
1432 printf ("i386-sequent-ptx\n"); exit (0);
1434 #endif
1436 #if defined (vax)
1437 # if !defined (ultrix)
1438 # include <sys/param.h>
1439 # if defined (BSD)
1440 # if BSD == 43
1441 printf ("vax-dec-bsd4.3\n"); exit (0);
1442 # else
1443 # if BSD == 199006
1444 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1445 # else
1446 printf ("vax-dec-bsd\n"); exit (0);
1447 # endif
1448 # endif
1449 # else
1450 printf ("vax-dec-bsd\n"); exit (0);
1451 # endif
1452 # else
1453 printf ("vax-dec-ultrix\n"); exit (0);
1454 # endif
1455 #endif
1457 #if defined (alliant) && defined (i860)
1458 printf ("i860-alliant-bsd\n"); exit (0);
1459 #endif
1461 exit (1);
1465 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1466 { echo "$SYSTEM_NAME"; exit; }
1468 # Apollos put the system type in the environment.
1470 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1472 # Convex versions that predate uname can use getsysinfo(1)
1474 if [ -x /usr/convex/getsysinfo ]
1475 then
1476 case `getsysinfo -f cpu_type` in
1477 c1*)
1478 echo c1-convex-bsd
1479 exit ;;
1480 c2*)
1481 if getsysinfo -f scalar_acc
1482 then echo c32-convex-bsd
1483 else echo c2-convex-bsd
1485 exit ;;
1486 c34*)
1487 echo c34-convex-bsd
1488 exit ;;
1489 c38*)
1490 echo c38-convex-bsd
1491 exit ;;
1492 c4*)
1493 echo c4-convex-bsd
1494 exit ;;
1495 esac
1498 cat >&2 <<EOF
1499 $0: unable to guess system type
1501 This script, last modified $timestamp, has failed to recognize
1502 the operating system you are using. It is advised that you
1503 download the most up to date version of the config scripts from
1505 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1507 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1509 If the version you run ($0) is already up to date, please
1510 send the following data and any information you think might be
1511 pertinent to <config-patches@gnu.org> in order to provide the needed
1512 information to handle your system.
1514 config.guess timestamp = $timestamp
1516 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1517 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1518 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1519 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1521 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1522 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1524 hostinfo = `(hostinfo) 2>/dev/null`
1525 /bin/universe = `(/bin/universe) 2>/dev/null`
1526 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1527 /bin/arch = `(/bin/arch) 2>/dev/null`
1528 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1529 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1531 UNAME_MACHINE = ${UNAME_MACHINE}
1532 UNAME_RELEASE = ${UNAME_RELEASE}
1533 UNAME_SYSTEM = ${UNAME_SYSTEM}
1534 UNAME_VERSION = ${UNAME_VERSION}
1537 exit 1
1539 # Local variables:
1540 # eval: (add-hook 'write-file-hooks 'time-stamp)
1541 # time-stamp-start: "timestamp='"
1542 # time-stamp-format: "%:y-%02m-%02d"
1543 # time-stamp-end: "'"
1544 # End: