1#! /bin/sh 2# Configuration validation subroutine script. 3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 4# Free Software Foundation, Inc. 5 6timestamp='2000-12-15' 7 8# This file is (in principle) common to ALL GNU software. 9# The presence of a machine in this file suggests that SOME GNU software 10# can handle that machine. It does not imply ALL GNU software can. 11# 12# This file is free software; you can redistribute it and/or modify 13# it under the terms of the GNU General Public License as published by 14# the Free Software Foundation; either version 2 of the License, or 15# (at your option) any later version. 16# 17# This program is distributed in the hope that it will be useful, 18# but WITHOUT ANY WARRANTY; without even the implied warranty of 19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20# GNU General Public License for more details. 21# 22# You should have received a copy of the GNU General Public License 23# along with this program; if not, write to the Free Software 24# Foundation, Inc., 59 Temple Place - Suite 330, 25# Boston, MA 02111-1307, USA. 26 27# As a special exception to the GNU General Public License, if you 28# distribute this file as part of a program that contains a 29# configuration script generated by Autoconf, you may include it under 30# the same distribution terms that you use for the rest of that program. 31 32# Please send patches to <config-patches@gnu.org>. 33# 34# Configuration subroutine to validate and canonicalize a configuration type. 35# Supply the specified configuration type as an argument. 36# If it is invalid, we print an error message on stderr and exit with code 1. 37# Otherwise, we print the canonical config type on stdout and succeed. 38 39# This file is supposed to be the same for all GNU packages 40# and recognize all the CPU types, system types and aliases 41# that are meaningful with *any* GNU software. 42# Each package is responsible for reporting which valid configurations 43# it does not support. The user should be able to distinguish 44# a failure to support a valid configuration from a meaningless 45# configuration. 46 47# The goal of this file is to map all the various variations of a given 48# machine specification into a single specification in the form: 49# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 50# or in some cases, the newer four-part form: 51# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 52# It is wrong to echo any other type of specification. 53 54me=`echo "$0" | sed -e 's,.*/,,'` 55 56usage="\ 57Usage: $0 [OPTION] CPU-MFR-OPSYS 58 $0 [OPTION] ALIAS 59 60Canonicalize a configuration name. 61 62Operation modes: 63 -h, --help print this help, then exit 64 -t, --time-stamp print date of last modification, then exit 65 -v, --version print version number, then exit 66 67Report bugs and patches to <config-patches@gnu.org>." 68 69version="\ 70GNU config.sub ($timestamp) 71 72Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000 73Free Software Foundation, Inc. 74 75This is free software; see the source for copying conditions. There is NO 76warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 77 78help=" 79Try \`$me --help' for more information." 80 81# Parse command line 82while test $# -gt 0 ; do 83 case $1 in 84 --time-stamp | --time* | -t ) 85 echo "$timestamp" ; exit 0 ;; 86 --version | -v ) 87 echo "$version" ; exit 0 ;; 88 --help | --h* | -h ) 89 echo "$usage"; exit 0 ;; 90 -- ) # Stop option processing 91 shift; break ;; 92 - ) # Use stdin as input. 93 break ;; 94 -* ) 95 echo "$me: invalid option $1$help" 96 exit 1 ;; 97 98 *local*) 99 # First pass through any local machine types. 100 echo $1 101 exit 0;; 102 103 * ) 104 break ;; 105 esac 106done 107 108case $# in 109 0) echo "$me: missing argument$help" >&2 110 exit 1;; 111 1) ;; 112 *) echo "$me: too many arguments$help" >&2 113 exit 1;; 114esac 115 116# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). 117# Here we must recognize all the valid KERNEL-OS combinations. 118maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` 119case $maybe_os in 120 nto-qnx* | linux-gnu* | storm-chaos*) 121 os=-$maybe_os 122 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` 123 ;; 124 *) 125 basic_machine=`echo $1 | sed 's/-[^-]*$//'` 126 if [ $basic_machine != $1 ] 127 then os=`echo $1 | sed 's/.*-/-/'` 128 else os=; fi 129 ;; 130esac 131 132### Let's recognize common machines as not being operating systems so 133### that things like config.sub decstation-3100 work. We also 134### recognize some manufacturers as not being operating systems, so we 135### can provide default operating systems below. 136case $os in 137 -sun*os*) 138 # Prevent following clause from handling this invalid input. 139 ;; 140 -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ 141 -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ 142 -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ 143 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 144 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 145 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 146 -apple | -axis) 147 os= 148 basic_machine=$1 149 ;; 150 -sim | -cisco | -oki | -wec | -winbond) 151 os= 152 basic_machine=$1 153 ;; 154 -scout) 155 ;; 156 -wrs) 157 os=-vxworks 158 basic_machine=$1 159 ;; 160 -hiux*) 161 os=-hiuxwe2 162 ;; 163 -sco5) 164 os=-sco3.2v5 165 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 166 ;; 167 -sco4) 168 os=-sco3.2v4 169 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 170 ;; 171 -sco3.2.[4-9]*) 172 os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 173 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 174 ;; 175 -sco3.2v[4-9]*) 176 # Don't forget version if it is 3.2v4 or newer. 177 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 178 ;; 179 -sco*) 180 os=-sco3.2v2 181 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 182 ;; 183 -udk*) 184 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 185 ;; 186 -isc) 187 os=-isc2.2 188 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 189 ;; 190 -clix*) 191 basic_machine=clipper-intergraph 192 ;; 193 -isc*) 194 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 195 ;; 196 -lynx*) 197 os=-lynxos 198 ;; 199 -ptx*) 200 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` 201 ;; 202 -windowsnt*) 203 os=`echo $os | sed -e 's/windowsnt/winnt/'` 204 ;; 205 -psos*) 206 os=-psos 207 ;; 208 -mint | -mint[0-9]*) 209 basic_machine=m68k-atari 210 os=-mint 211 ;; 212esac 213 214# Decode aliases for certain CPU-COMPANY combinations. 215case $basic_machine in 216 # Recognize the basic CPU types without company name. 217 # Some are omitted here because they have special meanings below. 218 tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \ 219 | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \ 220 | pyramid | mn10200 | mn10300 | tron | a29k \ 221 | 580 | i960 | h8300 \ 222 | x86 | ppcbe | mipsbe | mipsle | shbe | shle \ 223 | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ 224 | hppa64 \ 225 | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ 226 | alphaev6[78] \ 227 | we32k | ns16k | clipper | i370 | sh | sh[34] \ 228 | powerpc | powerpcle \ 229 | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \ 230 | mips64orion | mips64orionel | mipstx39 | mipstx39el \ 231 | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ 232 | mips64vr5000 | miprs64vr5000el | mcore \ 233 | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \ 234 | thumb | d10v | d30v | fr30 | avr) 235 basic_machine=$basic_machine-unknown 236 ;; 237 m6811 | m68hc11 | m6812 | m68hc12) 238 # Motorola 68HC11/12. 239 basic_machine=$basic_machine-unknown 240 os=-none 241 ;; 242 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl) 243 ;; 244 245 # We use `pc' rather than `unknown' 246 # because (1) that's what they normally are, and 247 # (2) the word "unknown" tends to confuse beginning users. 248 i[234567]86 | x86_64) 249 basic_machine=$basic_machine-pc 250 ;; 251 # Object if more than one company name word. 252 *-*-*) 253 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 254 exit 1 255 ;; 256 # Recognize the basic CPU types with company name. 257 # FIXME: clean up the formatting here. 258 vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ 259 | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \ 260 | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \ 261 | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ 262 | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ 263 | xmp-* | ymp-* \ 264 | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \ 265 | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ 266 | hppa2.0n-* | hppa64-* \ 267 | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ 268 | alphaev6[78]-* \ 269 | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ 270 | clipper-* | orion-* \ 271 | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ 272 | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \ 273 | mips64el-* | mips64orion-* | mips64orionel-* \ 274 | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ 275 | mipstx39-* | mipstx39el-* | mcore-* \ 276 | f30[01]-* | s390-* | sv1-* | t3e-* \ 277 | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ 278 | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \ 279 | bs2000-* | tic54x-* | c54x-* | x86_64-*) 280 ;; 281 # Recognize the various machine names and aliases which stand 282 # for a CPU type and a company and sometimes even an OS. 283 386bsd) 284 basic_machine=i386-unknown 285 os=-bsd 286 ;; 287 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 288 basic_machine=m68000-att 289 ;; 290 3b*) 291 basic_machine=we32k-att 292 ;; 293 a29khif) 294 basic_machine=a29k-amd 295 os=-udi 296 ;; 297 adobe68k) 298 basic_machine=m68010-adobe 299 os=-scout 300 ;; 301 alliant | fx80) 302 basic_machine=fx80-alliant 303 ;; 304 altos | altos3068) 305 basic_machine=m68k-altos 306 ;; 307 am29k) 308 basic_machine=a29k-none 309 os=-bsd 310 ;; 311 amdahl) 312 basic_machine=580-amdahl 313 os=-sysv 314 ;; 315 amiga | amiga-*) 316 basic_machine=m68k-unknown 317 ;; 318 amigaos | amigados) 319 basic_machine=m68k-unknown 320 os=-amigaos 321 ;; 322 amigaunix | amix) 323 basic_machine=m68k-unknown 324 os=-sysv4 325 ;; 326 apollo68) 327 basic_machine=m68k-apollo 328 os=-sysv 329 ;; 330 apollo68bsd) 331 basic_machine=m68k-apollo 332 os=-bsd 333 ;; 334 aux) 335 basic_machine=m68k-apple 336 os=-aux 337 ;; 338 balance) 339 basic_machine=ns32k-sequent 340 os=-dynix 341 ;; 342 convex-c1) 343 basic_machine=c1-convex 344 os=-bsd 345 ;; 346 convex-c2) 347 basic_machine=c2-convex 348 os=-bsd 349 ;; 350 convex-c32) 351 basic_machine=c32-convex 352 os=-bsd 353 ;; 354 convex-c34) 355 basic_machine=c34-convex 356 os=-bsd 357 ;; 358 convex-c38) 359 basic_machine=c38-convex 360 os=-bsd 361 ;; 362 cray | ymp) 363 basic_machine=ymp-cray 364 os=-unicos 365 ;; 366 cray2) 367 basic_machine=cray2-cray 368 os=-unicos 369 ;; 370 [ctj]90-cray) 371 basic_machine=c90-cray 372 os=-unicos 373 ;; 374 crds | unos) 375 basic_machine=m68k-crds 376 ;; 377 cris | cris-* | etrax*) 378 basic_machine=cris-axis 379 ;; 380 da30 | da30-*) 381 basic_machine=m68k-da30 382 ;; 383 decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) 384 basic_machine=mips-dec 385 ;; 386 delta | 3300 | motorola-3300 | motorola-delta \ 387 | 3300-motorola | delta-motorola) 388 basic_machine=m68k-motorola 389 ;; 390 delta88) 391 basic_machine=m88k-motorola 392 os=-sysv3 393 ;; 394 dpx20 | dpx20-*) 395 basic_machine=rs6000-bull 396 os=-bosx 397 ;; 398 dpx2* | dpx2*-bull) 399 basic_machine=m68k-bull 400 os=-sysv3 401 ;; 402 ebmon29k) 403 basic_machine=a29k-amd 404 os=-ebmon 405 ;; 406 elxsi) 407 basic_machine=elxsi-elxsi 408 os=-bsd 409 ;; 410 encore | umax | mmax) 411 basic_machine=ns32k-encore 412 ;; 413 es1800 | OSE68k | ose68k | ose | OSE) 414 basic_machine=m68k-ericsson 415 os=-ose 416 ;; 417 fx2800) 418 basic_machine=i860-alliant 419 ;; 420 genix) 421 basic_machine=ns32k-ns 422 ;; 423 gmicro) 424 basic_machine=tron-gmicro 425 os=-sysv 426 ;; 427 h3050r* | hiux*) 428 basic_machine=hppa1.1-hitachi 429 os=-hiuxwe2 430 ;; 431 h8300hms) 432 basic_machine=h8300-hitachi 433 os=-hms 434 ;; 435 h8300xray) 436 basic_machine=h8300-hitachi 437 os=-xray 438 ;; 439 h8500hms) 440 basic_machine=h8500-hitachi 441 os=-hms 442 ;; 443 harris) 444 basic_machine=m88k-harris 445 os=-sysv3 446 ;; 447 hp300-*) 448 basic_machine=m68k-hp 449 ;; 450 hp300bsd) 451 basic_machine=m68k-hp 452 os=-bsd 453 ;; 454 hp300hpux) 455 basic_machine=m68k-hp 456 os=-hpux 457 ;; 458 hp3k9[0-9][0-9] | hp9[0-9][0-9]) 459 basic_machine=hppa1.0-hp 460 ;; 461 hp9k2[0-9][0-9] | hp9k31[0-9]) 462 basic_machine=m68000-hp 463 ;; 464 hp9k3[2-9][0-9]) 465 basic_machine=m68k-hp 466 ;; 467 hp9k6[0-9][0-9] | hp6[0-9][0-9]) 468 basic_machine=hppa1.0-hp 469 ;; 470 hp9k7[0-79][0-9] | hp7[0-79][0-9]) 471 basic_machine=hppa1.1-hp 472 ;; 473 hp9k78[0-9] | hp78[0-9]) 474 # FIXME: really hppa2.0-hp 475 basic_machine=hppa1.1-hp 476 ;; 477 hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 478 # FIXME: really hppa2.0-hp 479 basic_machine=hppa1.1-hp 480 ;; 481 hp9k8[0-9][13679] | hp8[0-9][13679]) 482 basic_machine=hppa1.1-hp 483 ;; 484 hp9k8[0-9][0-9] | hp8[0-9][0-9]) 485 basic_machine=hppa1.0-hp 486 ;; 487 hppa-next) 488 os=-nextstep3 489 ;; 490 hppaosf) 491 basic_machine=hppa1.1-hp 492 os=-osf 493 ;; 494 hppro) 495 basic_machine=hppa1.1-hp 496 os=-proelf 497 ;; 498 i370-ibm* | ibm*) 499 basic_machine=i370-ibm 500 ;; 501# I'm not sure what "Sysv32" means. Should this be sysv3.2? 502 i[34567]86v32) 503 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 504 os=-sysv32 505 ;; 506 i[34567]86v4*) 507 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 508 os=-sysv4 509 ;; 510 i[34567]86v) 511 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 512 os=-sysv 513 ;; 514 i[34567]86sol2) 515 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 516 os=-solaris2 517 ;; 518 i386mach) 519 basic_machine=i386-mach 520 os=-mach 521 ;; 522 i386-vsta | vsta) 523 basic_machine=i386-unknown 524 os=-vsta 525 ;; 526 i386-go32 | go32) 527 basic_machine=i386-unknown 528 os=-go32 529 ;; 530 i386-mingw32 | mingw32) 531 basic_machine=i386-unknown 532 os=-mingw32 533 ;; 534 i[34567]86-pw32 | pw32) 535 basic_machine=i586-unknown 536 os=-pw32 537 ;; 538 iris | iris4d) 539 basic_machine=mips-sgi 540 case $os in 541 -irix*) 542 ;; 543 *) 544 os=-irix4 545 ;; 546 esac 547 ;; 548 isi68 | isi) 549 basic_machine=m68k-isi 550 os=-sysv 551 ;; 552 m88k-omron*) 553 basic_machine=m88k-omron 554 ;; 555 magnum | m3230) 556 basic_machine=mips-mips 557 os=-sysv 558 ;; 559 merlin) 560 basic_machine=ns32k-utek 561 os=-sysv 562 ;; 563 miniframe) 564 basic_machine=m68000-convergent 565 ;; 566 *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) 567 basic_machine=m68k-atari 568 os=-mint 569 ;; 570 mipsel*-linux*) 571 basic_machine=mipsel-unknown 572 os=-linux-gnu 573 ;; 574 mips*-linux*) 575 basic_machine=mips-unknown 576 os=-linux-gnu 577 ;; 578 mips3*-*) 579 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` 580 ;; 581 mips3*) 582 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown 583 ;; 584 mmix*) 585 basic_machine=mmix-knuth 586 os=-mmixware 587 ;; 588 monitor) 589 basic_machine=m68k-rom68k 590 os=-coff 591 ;; 592 msdos) 593 basic_machine=i386-unknown 594 os=-msdos 595 ;; 596 mvs) 597 basic_machine=i370-ibm 598 os=-mvs 599 ;; 600 ncr3000) 601 basic_machine=i486-ncr 602 os=-sysv4 603 ;; 604 netbsd386) 605 basic_machine=i386-unknown 606 os=-netbsd 607 ;; 608 netwinder) 609 basic_machine=armv4l-rebel 610 os=-linux 611 ;; 612 news | news700 | news800 | news900) 613 basic_machine=m68k-sony 614 os=-newsos 615 ;; 616 news1000) 617 basic_machine=m68030-sony 618 os=-newsos 619 ;; 620 news-3600 | risc-news) 621 basic_machine=mips-sony 622 os=-newsos 623 ;; 624 necv70) 625 basic_machine=v70-nec 626 os=-sysv 627 ;; 628 next | m*-next ) 629 basic_machine=m68k-next 630 case $os in 631 -nextstep* ) 632 ;; 633 -ns2*) 634 os=-nextstep2 635 ;; 636 *) 637 os=-nextstep3 638 ;; 639 esac 640 ;; 641 nh3000) 642 basic_machine=m68k-harris 643 os=-cxux 644 ;; 645 nh[45]000) 646 basic_machine=m88k-harris 647 os=-cxux 648 ;; 649 nindy960) 650 basic_machine=i960-intel 651 os=-nindy 652 ;; 653 mon960) 654 basic_machine=i960-intel 655 os=-mon960 656 ;; 657 nonstopux) 658 basic_machine=mips-compaq 659 os=-nonstopux 660 ;; 661 np1) 662 basic_machine=np1-gould 663 ;; 664 nsr-tandem) 665 basic_machine=nsr-tandem 666 ;; 667 op50n-* | op60c-*) 668 basic_machine=hppa1.1-oki 669 os=-proelf 670 ;; 671 OSE68000 | ose68000) 672 basic_machine=m68000-ericsson 673 os=-ose 674 ;; 675 os68k) 676 basic_machine=m68k-none 677 os=-os68k 678 ;; 679 pa-hitachi) 680 basic_machine=hppa1.1-hitachi 681 os=-hiuxwe2 682 ;; 683 paragon) 684 basic_machine=i860-intel 685 os=-osf 686 ;; 687 pbd) 688 basic_machine=sparc-tti 689 ;; 690 pbb) 691 basic_machine=m68k-tti 692 ;; 693 pc532 | pc532-*) 694 basic_machine=ns32k-pc532 695 ;; 696 pentium | p5 | k5 | k6 | nexgen) 697 basic_machine=i586-pc 698 ;; 699 pentiumpro | p6 | 6x86 | athlon) 700 basic_machine=i686-pc 701 ;; 702 pentiumii | pentium2) 703 basic_machine=i686-pc 704 ;; 705 pentium-* | p5-* | k5-* | k6-* | nexgen-*) 706 basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` 707 ;; 708 pentiumpro-* | p6-* | 6x86-* | athlon-*) 709 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 710 ;; 711 pentiumii-* | pentium2-*) 712 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 713 ;; 714 pn) 715 basic_machine=pn-gould 716 ;; 717 power) basic_machine=power-ibm 718 ;; 719 ppc) basic_machine=powerpc-unknown 720 ;; 721 ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 722 ;; 723 ppcle | powerpclittle | ppc-le | powerpc-little) 724 basic_machine=powerpcle-unknown 725 ;; 726 ppcle-* | powerpclittle-*) 727 basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` 728 ;; 729 ps2) 730 basic_machine=i386-ibm 731 ;; 732 rom68k) 733 basic_machine=m68k-rom68k 734 os=-coff 735 ;; 736 rm[46]00) 737 basic_machine=mips-siemens 738 ;; 739 rtpc | rtpc-*) 740 basic_machine=romp-ibm 741 ;; 742 sa29200) 743 basic_machine=a29k-amd 744 os=-udi 745 ;; 746 sequent) 747 basic_machine=i386-sequent 748 ;; 749 sh) 750 basic_machine=sh-hitachi 751 os=-hms 752 ;; 753 sparclite-wrs) 754 basic_machine=sparclite-wrs 755 os=-vxworks 756 ;; 757 sps7) 758 basic_machine=m68k-bull 759 os=-sysv2 760 ;; 761 spur) 762 basic_machine=spur-unknown 763 ;; 764 st2000) 765 basic_machine=m68k-tandem 766 ;; 767 stratus) 768 basic_machine=i860-stratus 769 os=-sysv4 770 ;; 771 sun2) 772 basic_machine=m68000-sun 773 ;; 774 sun2os3) 775 basic_machine=m68000-sun 776 os=-sunos3 777 ;; 778 sun2os4) 779 basic_machine=m68000-sun 780 os=-sunos4 781 ;; 782 sun3os3) 783 basic_machine=m68k-sun 784 os=-sunos3 785 ;; 786 sun3os4) 787 basic_machine=m68k-sun 788 os=-sunos4 789 ;; 790 sun4os3) 791 basic_machine=sparc-sun 792 os=-sunos3 793 ;; 794 sun4os4) 795 basic_machine=sparc-sun 796 os=-sunos4 797 ;; 798 sun4sol2) 799 basic_machine=sparc-sun 800 os=-solaris2 801 ;; 802 sun3 | sun3-*) 803 basic_machine=m68k-sun 804 ;; 805 sun4) 806 basic_machine=sparc-sun 807 ;; 808 sun386 | sun386i | roadrunner) 809 basic_machine=i386-sun 810 ;; 811 sv1) 812 basic_machine=sv1-cray 813 os=-unicos 814 ;; 815 symmetry) 816 basic_machine=i386-sequent 817 os=-dynix 818 ;; 819 t3e) 820 basic_machine=t3e-cray 821 os=-unicos 822 ;; 823 tic54x | c54x*) 824 basic_machine=tic54x-unknown 825 os=-coff 826 ;; 827 tx39) 828 basic_machine=mipstx39-unknown 829 ;; 830 tx39el) 831 basic_machine=mipstx39el-unknown 832 ;; 833 tower | tower-32) 834 basic_machine=m68k-ncr 835 ;; 836 udi29k) 837 basic_machine=a29k-amd 838 os=-udi 839 ;; 840 ultra3) 841 basic_machine=a29k-nyu 842 os=-sym1 843 ;; 844 v810 | necv810) 845 basic_machine=v810-nec 846 os=-none 847 ;; 848 vaxv) 849 basic_machine=vax-dec 850 os=-sysv 851 ;; 852 vms) 853 basic_machine=vax-dec 854 os=-vms 855 ;; 856 vpp*|vx|vx-*) 857 basic_machine=f301-fujitsu 858 ;; 859 vxworks960) 860 basic_machine=i960-wrs 861 os=-vxworks 862 ;; 863 vxworks68) 864 basic_machine=m68k-wrs 865 os=-vxworks 866 ;; 867 vxworks29k) 868 basic_machine=a29k-wrs 869 os=-vxworks 870 ;; 871 w65*) 872 basic_machine=w65-wdc 873 os=-none 874 ;; 875 w89k-*) 876 basic_machine=hppa1.1-winbond 877 os=-proelf 878 ;; 879 xmp) 880 basic_machine=xmp-cray 881 os=-unicos 882 ;; 883 xps | xps100) 884 basic_machine=xps100-honeywell 885 ;; 886 z8k-*-coff) 887 basic_machine=z8k-unknown 888 os=-sim 889 ;; 890 none) 891 basic_machine=none-none 892 os=-none 893 ;; 894 895# Here we handle the default manufacturer of certain CPU types. It is in 896# some cases the only manufacturer, in others, it is the most popular. 897 w89k) 898 basic_machine=hppa1.1-winbond 899 ;; 900 op50n) 901 basic_machine=hppa1.1-oki 902 ;; 903 op60c) 904 basic_machine=hppa1.1-oki 905 ;; 906 mips) 907 if [ x$os = x-linux-gnu ]; then 908 basic_machine=mips-unknown 909 else 910 basic_machine=mips-mips 911 fi 912 ;; 913 romp) 914 basic_machine=romp-ibm 915 ;; 916 rs6000) 917 basic_machine=rs6000-ibm 918 ;; 919 vax) 920 basic_machine=vax-dec 921 ;; 922 pdp11) 923 basic_machine=pdp11-dec 924 ;; 925 we32k) 926 basic_machine=we32k-att 927 ;; 928 sh3 | sh4) 929 basic_machine=sh-unknown 930 ;; 931 sparc | sparcv9) 932 basic_machine=sparc-sun 933 ;; 934 cydra) 935 basic_machine=cydra-cydrome 936 ;; 937 orion) 938 basic_machine=orion-highlevel 939 ;; 940 orion105) 941 basic_machine=clipper-highlevel 942 ;; 943 mac | mpw | mac-mpw) 944 basic_machine=m68k-apple 945 ;; 946 pmac | pmac-mpw) 947 basic_machine=powerpc-apple 948 ;; 949 c4x*) 950 basic_machine=c4x-none 951 os=-coff 952 ;; 953 *) 954 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 955 exit 1 956 ;; 957esac 958 959# Here we canonicalize certain aliases for manufacturers. 960case $basic_machine in 961 *-digital*) 962 basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` 963 ;; 964 *-commodore*) 965 basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` 966 ;; 967 *) 968 ;; 969esac 970 971# Decode manufacturer-specific aliases for certain operating systems. 972 973if [ x"$os" != x"" ] 974then 975case $os in 976 # First match some system type aliases 977 # that might get confused with valid system types. 978 # -solaris* is a basic system type, with this one exception. 979 -solaris1 | -solaris1.*) 980 os=`echo $os | sed -e 's|solaris1|sunos4|'` 981 ;; 982 -solaris) 983 os=-solaris2 984 ;; 985 -svr4*) 986 os=-sysv4 987 ;; 988 -unixware*) 989 os=-sysv4.2uw 990 ;; 991 -gnu/linux*) 992 os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 993 ;; 994 # First accept the basic system types. 995 # The portable systems comes first. 996 # Each alternative MUST END IN A *, to match a version number. 997 # -sysv* is not here because it comes later, after sysvr4. 998 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 999 | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ 1000 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ 1001 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1002 | -aos* \ 1003 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 1004 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ 1005 | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ 1006 | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ 1007 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ 1008 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ 1009 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1010 | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ 1011 | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ 1012 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* | -storm-chaos*) 1013 # Remember, each alternative MUST END IN *, to match a version number. 1014 ;; 1015 -qnx*) 1016 case $basic_machine in 1017 x86-* | i[34567]86-*) 1018 ;; 1019 *) 1020 os=-nto$os 1021 ;; 1022 esac 1023 ;; 1024 -nto*) 1025 os=-nto-qnx 1026 ;; 1027 -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ 1028 | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ 1029 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) 1030 ;; 1031 -mac*) 1032 os=`echo $os | sed -e 's|mac|macos|'` 1033 ;; 1034 -linux*) 1035 os=`echo $os | sed -e 's|linux|linux-gnu|'` 1036 ;; 1037 -sunos5*) 1038 os=`echo $os | sed -e 's|sunos5|solaris2|'` 1039 ;; 1040 -sunos6*) 1041 os=`echo $os | sed -e 's|sunos6|solaris3|'` 1042 ;; 1043 -opened*) 1044 os=-openedition 1045 ;; 1046 -wince*) 1047 os=-wince 1048 ;; 1049 -osfrose*) 1050 os=-osfrose 1051 ;; 1052 -osf*) 1053 os=-osf 1054 ;; 1055 -utek*) 1056 os=-bsd 1057 ;; 1058 -dynix*) 1059 os=-bsd 1060 ;; 1061 -acis*) 1062 os=-aos 1063 ;; 1064 -386bsd) 1065 os=-bsd 1066 ;; 1067 -ctix* | -uts*) 1068 os=-sysv 1069 ;; 1070 -ns2 ) 1071 os=-nextstep2 1072 ;; 1073 -nsk*) 1074 os=-nsk 1075 ;; 1076 # Preserve the version number of sinix5. 1077 -sinix5.*) 1078 os=`echo $os | sed -e 's|sinix|sysv|'` 1079 ;; 1080 -sinix*) 1081 os=-sysv4 1082 ;; 1083 -triton*) 1084 os=-sysv3 1085 ;; 1086 -oss*) 1087 os=-sysv3 1088 ;; 1089 -svr4) 1090 os=-sysv4 1091 ;; 1092 -svr3) 1093 os=-sysv3 1094 ;; 1095 -sysvr4) 1096 os=-sysv4 1097 ;; 1098 # This must come after -sysvr4. 1099 -sysv*) 1100 ;; 1101 -ose*) 1102 os=-ose 1103 ;; 1104 -es1800*) 1105 os=-ose 1106 ;; 1107 -xenix) 1108 os=-xenix 1109 ;; 1110 -*mint | -*MiNT) 1111 os=-mint 1112 ;; 1113 -none) 1114 ;; 1115 *) 1116 # Get rid of the `-' at the beginning of $os. 1117 os=`echo $os | sed 's/[^-]*-//'` 1118 echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 1119 exit 1 1120 ;; 1121esac 1122else 1123 1124# Here we handle the default operating systems that come with various machines. 1125# The value should be what the vendor currently ships out the door with their 1126# machine or put another way, the most popular os provided with the machine. 1127 1128# Note that if you're going to try to match "-MANUFACTURER" here (say, 1129# "-sun"), then you have to tell the case statement up towards the top 1130# that MANUFACTURER isn't an operating system. Otherwise, code above 1131# will signal an error saying that MANUFACTURER isn't an operating 1132# system, and we'll never get to this point. 1133 1134case $basic_machine in 1135 *-acorn) 1136 os=-riscix1.2 1137 ;; 1138 arm*-rebel) 1139 os=-linux 1140 ;; 1141 arm*-semi) 1142 os=-aout 1143 ;; 1144 pdp11-*) 1145 os=-none 1146 ;; 1147 *-dec | vax-*) 1148 os=-ultrix4.2 1149 ;; 1150 m68*-apollo) 1151 os=-domain 1152 ;; 1153 i386-sun) 1154 os=-sunos4.0.2 1155 ;; 1156 m68000-sun) 1157 os=-sunos3 1158 # This also exists in the configure program, but was not the 1159 # default. 1160 # os=-sunos4 1161 ;; 1162 m68*-cisco) 1163 os=-aout 1164 ;; 1165 mips*-cisco) 1166 os=-elf 1167 ;; 1168 mips*-*) 1169 os=-elf 1170 ;; 1171 *-tti) # must be before sparc entry or we get the wrong os. 1172 os=-sysv3 1173 ;; 1174 sparc-* | *-sun) 1175 os=-sunos4.1.1 1176 ;; 1177 *-be) 1178 os=-beos 1179 ;; 1180 *-ibm) 1181 os=-aix 1182 ;; 1183 *-wec) 1184 os=-proelf 1185 ;; 1186 *-winbond) 1187 os=-proelf 1188 ;; 1189 *-oki) 1190 os=-proelf 1191 ;; 1192 *-hp) 1193 os=-hpux 1194 ;; 1195 *-hitachi) 1196 os=-hiux 1197 ;; 1198 i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1199 os=-sysv 1200 ;; 1201 *-cbm) 1202 os=-amigaos 1203 ;; 1204 *-dg) 1205 os=-dgux 1206 ;; 1207 *-dolphin) 1208 os=-sysv3 1209 ;; 1210 m68k-ccur) 1211 os=-rtu 1212 ;; 1213 m88k-omron*) 1214 os=-luna 1215 ;; 1216 *-next ) 1217 os=-nextstep 1218 ;; 1219 *-sequent) 1220 os=-ptx 1221 ;; 1222 *-crds) 1223 os=-unos 1224 ;; 1225 *-ns) 1226 os=-genix 1227 ;; 1228 i370-*) 1229 os=-mvs 1230 ;; 1231 *-next) 1232 os=-nextstep3 1233 ;; 1234 *-gould) 1235 os=-sysv 1236 ;; 1237 *-highlevel) 1238 os=-bsd 1239 ;; 1240 *-encore) 1241 os=-bsd 1242 ;; 1243 *-sgi) 1244 os=-irix 1245 ;; 1246 *-siemens) 1247 os=-sysv4 1248 ;; 1249 *-masscomp) 1250 os=-rtu 1251 ;; 1252 f30[01]-fujitsu) 1253 os=-uxpv 1254 ;; 1255 *-rom68k) 1256 os=-coff 1257 ;; 1258 *-*bug) 1259 os=-coff 1260 ;; 1261 *-apple) 1262 os=-macos 1263 ;; 1264 *-atari*) 1265 os=-mint 1266 ;; 1267 *) 1268 os=-none 1269 ;; 1270esac 1271fi 1272 1273# Here we handle the case where we know the os, and the CPU type, but not the 1274# manufacturer. We pick the logical manufacturer. 1275vendor=unknown 1276case $basic_machine in 1277 *-unknown) 1278 case $os in 1279 -riscix*) 1280 vendor=acorn 1281 ;; 1282 -sunos*) 1283 vendor=sun 1284 ;; 1285 -aix*) 1286 vendor=ibm 1287 ;; 1288 -beos*) 1289 vendor=be 1290 ;; 1291 -hpux*) 1292 vendor=hp 1293 ;; 1294 -mpeix*) 1295 vendor=hp 1296 ;; 1297 -hiux*) 1298 vendor=hitachi 1299 ;; 1300 -unos*) 1301 vendor=crds 1302 ;; 1303 -dgux*) 1304 vendor=dg 1305 ;; 1306 -luna*) 1307 vendor=omron 1308 ;; 1309 -genix*) 1310 vendor=ns 1311 ;; 1312 -mvs* | -opened*) 1313 vendor=ibm 1314 ;; 1315 -ptx*) 1316 vendor=sequent 1317 ;; 1318 -vxsim* | -vxworks*) 1319 vendor=wrs 1320 ;; 1321 -aux*) 1322 vendor=apple 1323 ;; 1324 -hms*) 1325 vendor=hitachi 1326 ;; 1327 -mpw* | -macos*) 1328 vendor=apple 1329 ;; 1330 -*mint | -*MiNT) 1331 vendor=atari 1332 ;; 1333 esac 1334 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` 1335 ;; 1336esac 1337 1338echo $basic_machine$os 1339exit 0 1340 1341# Local variables: 1342# eval: (add-hook 'write-file-hooks 'time-stamp) 1343# time-stamp-start: "timestamp='" 1344# time-stamp-format: "%:y-%02m-%02d" 1345# time-stamp-end: "'" 1346# End: 1347