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