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