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