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