Annotation of embedaddon/iperf/config/config.sub, revision 1.1.1.2
1.1 misho 1: #! /bin/sh
2: # Configuration validation subroutine script.
1.1.1.2 ! misho 3: # Copyright 1992-2021 Free Software Foundation, Inc.
1.1 misho 4:
1.1.1.2 ! misho 5: # shellcheck disable=SC2006,SC2268 # see below for rationale
! 6:
! 7: timestamp='2021-08-14'
1.1 misho 8:
9: # This file is free software; you can redistribute it and/or modify it
10: # under the terms of the GNU General Public License as published by
11: # the Free Software Foundation; either version 3 of the License, or
12: # (at your option) any later version.
13: #
14: # This program is distributed in the hope that it will be useful, but
15: # WITHOUT ANY WARRANTY; without even the implied warranty of
16: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17: # General Public License for more details.
18: #
19: # You should have received a copy of the GNU General Public License
1.1.1.2 ! misho 20: # along with this program; if not, see <https://www.gnu.org/licenses/>.
1.1 misho 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
26: # program. This Exception is an additional permission under section 7
27: # of the GNU General Public License, version 3 ("GPLv3").
28:
29:
1.1.1.2 ! misho 30: # Please send patches to <config-patches@gnu.org>.
1.1 misho 31: #
32: # Configuration subroutine to validate and canonicalize a configuration type.
33: # Supply the specified configuration type as an argument.
34: # If it is invalid, we print an error message on stderr and exit with code 1.
35: # Otherwise, we print the canonical config type on stdout and succeed.
36:
37: # You can get the latest version of this script from:
1.1.1.2 ! misho 38: # https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
1.1 misho 39:
40: # This file is supposed to be the same for all GNU packages
41: # and recognize all the CPU types, system types and aliases
42: # that are meaningful with *any* GNU software.
43: # Each package is responsible for reporting which valid configurations
44: # it does not support. The user should be able to distinguish
45: # a failure to support a valid configuration from a meaningless
46: # configuration.
47:
48: # The goal of this file is to map all the various variations of a given
49: # machine specification into a single specification in the form:
50: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
51: # or in some cases, the newer four-part form:
52: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
53: # It is wrong to echo any other type of specification.
54:
1.1.1.2 ! misho 55: # The "shellcheck disable" line above the timestamp inhibits complaints
! 56: # about features and limitations of the classic Bourne shell that were
! 57: # superseded or lifted in POSIX. However, this script identifies a wide
! 58: # variety of pre-POSIX systems that do not have POSIX shells at all, and
! 59: # even some reasonably current systems (Solaris 10 as case-in-point) still
! 60: # have a pre-POSIX /bin/sh.
! 61:
1.1 misho 62: me=`echo "$0" | sed -e 's,.*/,,'`
63:
64: usage="\
1.1.1.2 ! misho 65: Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
1.1 misho 66:
67: Canonicalize a configuration name.
68:
1.1.1.2 ! misho 69: Options:
1.1 misho 70: -h, --help print this help, then exit
71: -t, --time-stamp print date of last modification, then exit
72: -v, --version print version number, then exit
73:
74: Report bugs and patches to <config-patches@gnu.org>."
75:
76: version="\
77: GNU config.sub ($timestamp)
78:
1.1.1.2 ! misho 79: Copyright 1992-2021 Free Software Foundation, Inc.
1.1 misho 80:
81: This is free software; see the source for copying conditions. There is NO
82: warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
83:
84: help="
85: Try \`$me --help' for more information."
86:
87: # Parse command line
88: while test $# -gt 0 ; do
89: case $1 in
90: --time-stamp | --time* | -t )
91: echo "$timestamp" ; exit ;;
92: --version | -v )
93: echo "$version" ; exit ;;
94: --help | --h* | -h )
95: echo "$usage"; exit ;;
96: -- ) # Stop option processing
97: shift; break ;;
98: - ) # Use stdin as input.
99: break ;;
100: -* )
1.1.1.2 ! misho 101: echo "$me: invalid option $1$help" >&2
1.1 misho 102: exit 1 ;;
103:
104: *local*)
105: # First pass through any local machine types.
1.1.1.2 ! misho 106: echo "$1"
1.1 misho 107: exit ;;
108:
109: * )
110: break ;;
111: esac
112: done
113:
114: case $# in
115: 0) echo "$me: missing argument$help" >&2
116: exit 1;;
117: 1) ;;
118: *) echo "$me: too many arguments$help" >&2
119: exit 1;;
120: esac
121:
1.1.1.2 ! misho 122: # Split fields of configuration type
! 123: # shellcheck disable=SC2162
! 124: saved_IFS=$IFS
! 125: IFS="-" read field1 field2 field3 field4 <<EOF
! 126: $1
! 127: EOF
! 128: IFS=$saved_IFS
! 129:
! 130: # Separate into logical components for further validation
! 131: case $1 in
! 132: *-*-*-*-*)
! 133: echo Invalid configuration \`"$1"\': more than four components >&2
! 134: exit 1
1.1 misho 135: ;;
1.1.1.2 ! misho 136: *-*-*-*)
! 137: basic_machine=$field1-$field2
! 138: basic_os=$field3-$field4
1.1 misho 139: ;;
1.1.1.2 ! misho 140: *-*-*)
! 141: # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
! 142: # parts
! 143: maybe_os=$field2-$field3
! 144: case $maybe_os in
! 145: nto-qnx* | linux-* | uclinux-uclibc* \
! 146: | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
! 147: | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
! 148: | storm-chaos* | os2-emx* | rtmk-nova*)
! 149: basic_machine=$field1
! 150: basic_os=$maybe_os
! 151: ;;
! 152: android-linux)
! 153: basic_machine=$field1-unknown
! 154: basic_os=linux-android
! 155: ;;
! 156: *)
! 157: basic_machine=$field1-$field2
! 158: basic_os=$field3
! 159: ;;
! 160: esac
1.1 misho 161: ;;
1.1.1.2 ! misho 162: *-*)
! 163: # A lone config we happen to match not fitting any pattern
! 164: case $field1-$field2 in
! 165: decstation-3100)
! 166: basic_machine=mips-dec
! 167: basic_os=
! 168: ;;
! 169: *-*)
! 170: # Second component is usually, but not always the OS
! 171: case $field2 in
! 172: # Prevent following clause from handling this valid os
! 173: sun*os*)
! 174: basic_machine=$field1
! 175: basic_os=$field2
! 176: ;;
! 177: zephyr*)
! 178: basic_machine=$field1-unknown
! 179: basic_os=$field2
! 180: ;;
! 181: # Manufacturers
! 182: dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
! 183: | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
! 184: | unicom* | ibm* | next | hp | isi* | apollo | altos* \
! 185: | convergent* | ncr* | news | 32* | 3600* | 3100* \
! 186: | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
! 187: | ultra | tti* | harris | dolphin | highlevel | gould \
! 188: | cbm | ns | masscomp | apple | axis | knuth | cray \
! 189: | microblaze* | sim | cisco \
! 190: | oki | wec | wrs | winbond)
! 191: basic_machine=$field1-$field2
! 192: basic_os=
! 193: ;;
! 194: *)
! 195: basic_machine=$field1
! 196: basic_os=$field2
! 197: ;;
! 198: esac
! 199: ;;
! 200: esac
1.1 misho 201: ;;
1.1.1.2 ! misho 202: *)
! 203: # Convert single-component short-hands not valid as part of
! 204: # multi-component configurations.
! 205: case $field1 in
! 206: 386bsd)
! 207: basic_machine=i386-pc
! 208: basic_os=bsd
! 209: ;;
! 210: a29khif)
! 211: basic_machine=a29k-amd
! 212: basic_os=udi
! 213: ;;
! 214: adobe68k)
! 215: basic_machine=m68010-adobe
! 216: basic_os=scout
! 217: ;;
! 218: alliant)
! 219: basic_machine=fx80-alliant
! 220: basic_os=
! 221: ;;
! 222: altos | altos3068)
! 223: basic_machine=m68k-altos
! 224: basic_os=
! 225: ;;
! 226: am29k)
! 227: basic_machine=a29k-none
! 228: basic_os=bsd
! 229: ;;
! 230: amdahl)
! 231: basic_machine=580-amdahl
! 232: basic_os=sysv
! 233: ;;
! 234: amiga)
! 235: basic_machine=m68k-unknown
! 236: basic_os=
! 237: ;;
! 238: amigaos | amigados)
! 239: basic_machine=m68k-unknown
! 240: basic_os=amigaos
! 241: ;;
! 242: amigaunix | amix)
! 243: basic_machine=m68k-unknown
! 244: basic_os=sysv4
! 245: ;;
! 246: apollo68)
! 247: basic_machine=m68k-apollo
! 248: basic_os=sysv
! 249: ;;
! 250: apollo68bsd)
! 251: basic_machine=m68k-apollo
! 252: basic_os=bsd
! 253: ;;
! 254: aros)
! 255: basic_machine=i386-pc
! 256: basic_os=aros
! 257: ;;
! 258: aux)
! 259: basic_machine=m68k-apple
! 260: basic_os=aux
! 261: ;;
! 262: balance)
! 263: basic_machine=ns32k-sequent
! 264: basic_os=dynix
! 265: ;;
! 266: blackfin)
! 267: basic_machine=bfin-unknown
! 268: basic_os=linux
! 269: ;;
! 270: cegcc)
! 271: basic_machine=arm-unknown
! 272: basic_os=cegcc
! 273: ;;
! 274: convex-c1)
! 275: basic_machine=c1-convex
! 276: basic_os=bsd
! 277: ;;
! 278: convex-c2)
! 279: basic_machine=c2-convex
! 280: basic_os=bsd
! 281: ;;
! 282: convex-c32)
! 283: basic_machine=c32-convex
! 284: basic_os=bsd
! 285: ;;
! 286: convex-c34)
! 287: basic_machine=c34-convex
! 288: basic_os=bsd
! 289: ;;
! 290: convex-c38)
! 291: basic_machine=c38-convex
! 292: basic_os=bsd
! 293: ;;
! 294: cray)
! 295: basic_machine=j90-cray
! 296: basic_os=unicos
! 297: ;;
! 298: crds | unos)
! 299: basic_machine=m68k-crds
! 300: basic_os=
! 301: ;;
! 302: da30)
! 303: basic_machine=m68k-da30
! 304: basic_os=
! 305: ;;
! 306: decstation | pmax | pmin | dec3100 | decstatn)
! 307: basic_machine=mips-dec
! 308: basic_os=
! 309: ;;
! 310: delta88)
! 311: basic_machine=m88k-motorola
! 312: basic_os=sysv3
! 313: ;;
! 314: dicos)
! 315: basic_machine=i686-pc
! 316: basic_os=dicos
! 317: ;;
! 318: djgpp)
! 319: basic_machine=i586-pc
! 320: basic_os=msdosdjgpp
! 321: ;;
! 322: ebmon29k)
! 323: basic_machine=a29k-amd
! 324: basic_os=ebmon
! 325: ;;
! 326: es1800 | OSE68k | ose68k | ose | OSE)
! 327: basic_machine=m68k-ericsson
! 328: basic_os=ose
! 329: ;;
! 330: gmicro)
! 331: basic_machine=tron-gmicro
! 332: basic_os=sysv
! 333: ;;
! 334: go32)
! 335: basic_machine=i386-pc
! 336: basic_os=go32
! 337: ;;
! 338: h8300hms)
! 339: basic_machine=h8300-hitachi
! 340: basic_os=hms
! 341: ;;
! 342: h8300xray)
! 343: basic_machine=h8300-hitachi
! 344: basic_os=xray
! 345: ;;
! 346: h8500hms)
! 347: basic_machine=h8500-hitachi
! 348: basic_os=hms
! 349: ;;
! 350: harris)
! 351: basic_machine=m88k-harris
! 352: basic_os=sysv3
! 353: ;;
! 354: hp300 | hp300hpux)
! 355: basic_machine=m68k-hp
! 356: basic_os=hpux
! 357: ;;
! 358: hp300bsd)
! 359: basic_machine=m68k-hp
! 360: basic_os=bsd
! 361: ;;
! 362: hppaosf)
! 363: basic_machine=hppa1.1-hp
! 364: basic_os=osf
! 365: ;;
! 366: hppro)
! 367: basic_machine=hppa1.1-hp
! 368: basic_os=proelf
! 369: ;;
! 370: i386mach)
! 371: basic_machine=i386-mach
! 372: basic_os=mach
! 373: ;;
! 374: isi68 | isi)
! 375: basic_machine=m68k-isi
! 376: basic_os=sysv
! 377: ;;
! 378: m68knommu)
! 379: basic_machine=m68k-unknown
! 380: basic_os=linux
! 381: ;;
! 382: magnum | m3230)
! 383: basic_machine=mips-mips
! 384: basic_os=sysv
! 385: ;;
! 386: merlin)
! 387: basic_machine=ns32k-utek
! 388: basic_os=sysv
! 389: ;;
! 390: mingw64)
! 391: basic_machine=x86_64-pc
! 392: basic_os=mingw64
! 393: ;;
! 394: mingw32)
! 395: basic_machine=i686-pc
! 396: basic_os=mingw32
! 397: ;;
! 398: mingw32ce)
! 399: basic_machine=arm-unknown
! 400: basic_os=mingw32ce
! 401: ;;
! 402: monitor)
! 403: basic_machine=m68k-rom68k
! 404: basic_os=coff
! 405: ;;
! 406: morphos)
! 407: basic_machine=powerpc-unknown
! 408: basic_os=morphos
! 409: ;;
! 410: moxiebox)
! 411: basic_machine=moxie-unknown
! 412: basic_os=moxiebox
! 413: ;;
! 414: msdos)
! 415: basic_machine=i386-pc
! 416: basic_os=msdos
! 417: ;;
! 418: msys)
! 419: basic_machine=i686-pc
! 420: basic_os=msys
! 421: ;;
! 422: mvs)
! 423: basic_machine=i370-ibm
! 424: basic_os=mvs
! 425: ;;
! 426: nacl)
! 427: basic_machine=le32-unknown
! 428: basic_os=nacl
! 429: ;;
! 430: ncr3000)
! 431: basic_machine=i486-ncr
! 432: basic_os=sysv4
! 433: ;;
! 434: netbsd386)
! 435: basic_machine=i386-pc
! 436: basic_os=netbsd
! 437: ;;
! 438: netwinder)
! 439: basic_machine=armv4l-rebel
! 440: basic_os=linux
! 441: ;;
! 442: news | news700 | news800 | news900)
! 443: basic_machine=m68k-sony
! 444: basic_os=newsos
! 445: ;;
! 446: news1000)
! 447: basic_machine=m68030-sony
! 448: basic_os=newsos
! 449: ;;
! 450: necv70)
! 451: basic_machine=v70-nec
! 452: basic_os=sysv
! 453: ;;
! 454: nh3000)
! 455: basic_machine=m68k-harris
! 456: basic_os=cxux
! 457: ;;
! 458: nh[45]000)
! 459: basic_machine=m88k-harris
! 460: basic_os=cxux
! 461: ;;
! 462: nindy960)
! 463: basic_machine=i960-intel
! 464: basic_os=nindy
! 465: ;;
! 466: mon960)
! 467: basic_machine=i960-intel
! 468: basic_os=mon960
! 469: ;;
! 470: nonstopux)
! 471: basic_machine=mips-compaq
! 472: basic_os=nonstopux
! 473: ;;
! 474: os400)
! 475: basic_machine=powerpc-ibm
! 476: basic_os=os400
! 477: ;;
! 478: OSE68000 | ose68000)
! 479: basic_machine=m68000-ericsson
! 480: basic_os=ose
! 481: ;;
! 482: os68k)
! 483: basic_machine=m68k-none
! 484: basic_os=os68k
! 485: ;;
! 486: paragon)
! 487: basic_machine=i860-intel
! 488: basic_os=osf
! 489: ;;
! 490: parisc)
! 491: basic_machine=hppa-unknown
! 492: basic_os=linux
! 493: ;;
! 494: psp)
! 495: basic_machine=mipsallegrexel-sony
! 496: basic_os=psp
! 497: ;;
! 498: pw32)
! 499: basic_machine=i586-unknown
! 500: basic_os=pw32
! 501: ;;
! 502: rdos | rdos64)
! 503: basic_machine=x86_64-pc
! 504: basic_os=rdos
! 505: ;;
! 506: rdos32)
! 507: basic_machine=i386-pc
! 508: basic_os=rdos
! 509: ;;
! 510: rom68k)
! 511: basic_machine=m68k-rom68k
! 512: basic_os=coff
! 513: ;;
! 514: sa29200)
! 515: basic_machine=a29k-amd
! 516: basic_os=udi
! 517: ;;
! 518: sei)
! 519: basic_machine=mips-sei
! 520: basic_os=seiux
! 521: ;;
! 522: sequent)
! 523: basic_machine=i386-sequent
! 524: basic_os=
! 525: ;;
! 526: sps7)
! 527: basic_machine=m68k-bull
! 528: basic_os=sysv2
! 529: ;;
! 530: st2000)
! 531: basic_machine=m68k-tandem
! 532: basic_os=
! 533: ;;
! 534: stratus)
! 535: basic_machine=i860-stratus
! 536: basic_os=sysv4
! 537: ;;
! 538: sun2)
! 539: basic_machine=m68000-sun
! 540: basic_os=
! 541: ;;
! 542: sun2os3)
! 543: basic_machine=m68000-sun
! 544: basic_os=sunos3
! 545: ;;
! 546: sun2os4)
! 547: basic_machine=m68000-sun
! 548: basic_os=sunos4
! 549: ;;
! 550: sun3)
! 551: basic_machine=m68k-sun
! 552: basic_os=
! 553: ;;
! 554: sun3os3)
! 555: basic_machine=m68k-sun
! 556: basic_os=sunos3
! 557: ;;
! 558: sun3os4)
! 559: basic_machine=m68k-sun
! 560: basic_os=sunos4
! 561: ;;
! 562: sun4)
! 563: basic_machine=sparc-sun
! 564: basic_os=
! 565: ;;
! 566: sun4os3)
! 567: basic_machine=sparc-sun
! 568: basic_os=sunos3
! 569: ;;
! 570: sun4os4)
! 571: basic_machine=sparc-sun
! 572: basic_os=sunos4
! 573: ;;
! 574: sun4sol2)
! 575: basic_machine=sparc-sun
! 576: basic_os=solaris2
! 577: ;;
! 578: sun386 | sun386i | roadrunner)
! 579: basic_machine=i386-sun
! 580: basic_os=
! 581: ;;
! 582: sv1)
! 583: basic_machine=sv1-cray
! 584: basic_os=unicos
! 585: ;;
! 586: symmetry)
! 587: basic_machine=i386-sequent
! 588: basic_os=dynix
! 589: ;;
! 590: t3e)
! 591: basic_machine=alphaev5-cray
! 592: basic_os=unicos
! 593: ;;
! 594: t90)
! 595: basic_machine=t90-cray
! 596: basic_os=unicos
! 597: ;;
! 598: toad1)
! 599: basic_machine=pdp10-xkl
! 600: basic_os=tops20
! 601: ;;
! 602: tpf)
! 603: basic_machine=s390x-ibm
! 604: basic_os=tpf
! 605: ;;
! 606: udi29k)
! 607: basic_machine=a29k-amd
! 608: basic_os=udi
! 609: ;;
! 610: ultra3)
! 611: basic_machine=a29k-nyu
! 612: basic_os=sym1
! 613: ;;
! 614: v810 | necv810)
! 615: basic_machine=v810-nec
! 616: basic_os=none
! 617: ;;
! 618: vaxv)
! 619: basic_machine=vax-dec
! 620: basic_os=sysv
! 621: ;;
! 622: vms)
! 623: basic_machine=vax-dec
! 624: basic_os=vms
! 625: ;;
! 626: vsta)
! 627: basic_machine=i386-pc
! 628: basic_os=vsta
! 629: ;;
! 630: vxworks960)
! 631: basic_machine=i960-wrs
! 632: basic_os=vxworks
! 633: ;;
! 634: vxworks68)
! 635: basic_machine=m68k-wrs
! 636: basic_os=vxworks
! 637: ;;
! 638: vxworks29k)
! 639: basic_machine=a29k-wrs
! 640: basic_os=vxworks
! 641: ;;
! 642: xbox)
! 643: basic_machine=i686-pc
! 644: basic_os=mingw32
! 645: ;;
! 646: ymp)
! 647: basic_machine=ymp-cray
! 648: basic_os=unicos
! 649: ;;
! 650: *)
! 651: basic_machine=$1
! 652: basic_os=
! 653: ;;
! 654: esac
1.1 misho 655: ;;
656: esac
657:
1.1.1.2 ! misho 658: # Decode 1-component or ad-hoc basic machines
1.1 misho 659: case $basic_machine in
1.1.1.2 ! misho 660: # Here we handle the default manufacturer of certain CPU types. It is in
! 661: # some cases the only manufacturer, in others, it is the most popular.
! 662: w89k)
! 663: cpu=hppa1.1
! 664: vendor=winbond
1.1 misho 665: ;;
1.1.1.2 ! misho 666: op50n)
! 667: cpu=hppa1.1
! 668: vendor=oki
1.1 misho 669: ;;
1.1.1.2 ! misho 670: op60c)
! 671: cpu=hppa1.1
! 672: vendor=oki
1.1 misho 673: ;;
1.1.1.2 ! misho 674: ibm*)
! 675: cpu=i370
! 676: vendor=ibm
1.1 misho 677: ;;
1.1.1.2 ! misho 678: orion105)
! 679: cpu=clipper
! 680: vendor=highlevel
! 681: ;;
! 682: mac | mpw | mac-mpw)
! 683: cpu=m68k
! 684: vendor=apple
1.1 misho 685: ;;
1.1.1.2 ! misho 686: pmac | pmac-mpw)
! 687: cpu=powerpc
! 688: vendor=apple
! 689: ;;
! 690:
1.1 misho 691: # Recognize the various machine names and aliases which stand
692: # for a CPU type and a company and sometimes even an OS.
693: 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
1.1.1.2 ! misho 694: cpu=m68000
! 695: vendor=att
1.1 misho 696: ;;
697: 3b*)
1.1.1.2 ! misho 698: cpu=we32k
! 699: vendor=att
1.1 misho 700: ;;
701: bluegene*)
1.1.1.2 ! misho 702: cpu=powerpc
! 703: vendor=ibm
! 704: basic_os=cnk
1.1 misho 705: ;;
706: decsystem10* | dec10*)
1.1.1.2 ! misho 707: cpu=pdp10
! 708: vendor=dec
! 709: basic_os=tops10
1.1 misho 710: ;;
711: decsystem20* | dec20*)
1.1.1.2 ! misho 712: cpu=pdp10
! 713: vendor=dec
! 714: basic_os=tops20
1.1 misho 715: ;;
716: delta | 3300 | motorola-3300 | motorola-delta \
717: | 3300-motorola | delta-motorola)
1.1.1.2 ! misho 718: cpu=m68k
! 719: vendor=motorola
1.1 misho 720: ;;
1.1.1.2 ! misho 721: dpx2*)
! 722: cpu=m68k
! 723: vendor=bull
! 724: basic_os=sysv3
1.1 misho 725: ;;
726: encore | umax | mmax)
1.1.1.2 ! misho 727: cpu=ns32k
! 728: vendor=encore
1.1 misho 729: ;;
1.1.1.2 ! misho 730: elxsi)
! 731: cpu=elxsi
! 732: vendor=elxsi
! 733: basic_os=${basic_os:-bsd}
1.1 misho 734: ;;
735: fx2800)
1.1.1.2 ! misho 736: cpu=i860
! 737: vendor=alliant
1.1 misho 738: ;;
739: genix)
1.1.1.2 ! misho 740: cpu=ns32k
! 741: vendor=ns
1.1 misho 742: ;;
743: h3050r* | hiux*)
1.1.1.2 ! misho 744: cpu=hppa1.1
! 745: vendor=hitachi
! 746: basic_os=hiuxwe2
1.1 misho 747: ;;
748: hp3k9[0-9][0-9] | hp9[0-9][0-9])
1.1.1.2 ! misho 749: cpu=hppa1.0
! 750: vendor=hp
1.1 misho 751: ;;
752: hp9k2[0-9][0-9] | hp9k31[0-9])
1.1.1.2 ! misho 753: cpu=m68000
! 754: vendor=hp
1.1 misho 755: ;;
756: hp9k3[2-9][0-9])
1.1.1.2 ! misho 757: cpu=m68k
! 758: vendor=hp
1.1 misho 759: ;;
760: hp9k6[0-9][0-9] | hp6[0-9][0-9])
1.1.1.2 ! misho 761: cpu=hppa1.0
! 762: vendor=hp
1.1 misho 763: ;;
764: hp9k7[0-79][0-9] | hp7[0-79][0-9])
1.1.1.2 ! misho 765: cpu=hppa1.1
! 766: vendor=hp
1.1 misho 767: ;;
768: hp9k78[0-9] | hp78[0-9])
769: # FIXME: really hppa2.0-hp
1.1.1.2 ! misho 770: cpu=hppa1.1
! 771: vendor=hp
1.1 misho 772: ;;
773: hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
774: # FIXME: really hppa2.0-hp
1.1.1.2 ! misho 775: cpu=hppa1.1
! 776: vendor=hp
1.1 misho 777: ;;
778: hp9k8[0-9][13679] | hp8[0-9][13679])
1.1.1.2 ! misho 779: cpu=hppa1.1
! 780: vendor=hp
1.1 misho 781: ;;
782: hp9k8[0-9][0-9] | hp8[0-9][0-9])
1.1.1.2 ! misho 783: cpu=hppa1.0
! 784: vendor=hp
1.1 misho 785: ;;
786: i*86v32)
1.1.1.2 ! misho 787: cpu=`echo "$1" | sed -e 's/86.*/86/'`
! 788: vendor=pc
! 789: basic_os=sysv32
1.1 misho 790: ;;
791: i*86v4*)
1.1.1.2 ! misho 792: cpu=`echo "$1" | sed -e 's/86.*/86/'`
! 793: vendor=pc
! 794: basic_os=sysv4
1.1 misho 795: ;;
796: i*86v)
1.1.1.2 ! misho 797: cpu=`echo "$1" | sed -e 's/86.*/86/'`
! 798: vendor=pc
! 799: basic_os=sysv
1.1 misho 800: ;;
801: i*86sol2)
1.1.1.2 ! misho 802: cpu=`echo "$1" | sed -e 's/86.*/86/'`
! 803: vendor=pc
! 804: basic_os=solaris2
! 805: ;;
! 806: j90 | j90-cray)
! 807: cpu=j90
! 808: vendor=cray
! 809: basic_os=${basic_os:-unicos}
1.1 misho 810: ;;
811: iris | iris4d)
1.1.1.2 ! misho 812: cpu=mips
! 813: vendor=sgi
! 814: case $basic_os in
! 815: irix*)
1.1 misho 816: ;;
817: *)
1.1.1.2 ! misho 818: basic_os=irix4
1.1 misho 819: ;;
820: esac
821: ;;
822: miniframe)
1.1.1.2 ! misho 823: cpu=m68000
! 824: vendor=convergent
1.1 misho 825: ;;
1.1.1.2 ! misho 826: *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
! 827: cpu=m68k
! 828: vendor=atari
! 829: basic_os=mint
1.1 misho 830: ;;
831: news-3600 | risc-news)
1.1.1.2 ! misho 832: cpu=mips
! 833: vendor=sony
! 834: basic_os=newsos
! 835: ;;
! 836: next | m*-next)
! 837: cpu=m68k
! 838: vendor=next
! 839: case $basic_os in
! 840: openstep*)
! 841: ;;
! 842: nextstep*)
1.1 misho 843: ;;
1.1.1.2 ! misho 844: ns2*)
! 845: basic_os=nextstep2
1.1 misho 846: ;;
847: *)
1.1.1.2 ! misho 848: basic_os=nextstep3
1.1 misho 849: ;;
850: esac
851: ;;
852: np1)
1.1.1.2 ! misho 853: cpu=np1
! 854: vendor=gould
1.1 misho 855: ;;
856: op50n-* | op60c-*)
1.1.1.2 ! misho 857: cpu=hppa1.1
! 858: vendor=oki
! 859: basic_os=proelf
1.1 misho 860: ;;
861: pa-hitachi)
1.1.1.2 ! misho 862: cpu=hppa1.1
! 863: vendor=hitachi
! 864: basic_os=hiuxwe2
1.1 misho 865: ;;
866: pbd)
1.1.1.2 ! misho 867: cpu=sparc
! 868: vendor=tti
1.1 misho 869: ;;
870: pbb)
1.1.1.2 ! misho 871: cpu=m68k
! 872: vendor=tti
1.1 misho 873: ;;
1.1.1.2 ! misho 874: pc532)
! 875: cpu=ns32k
! 876: vendor=pc532
1.1 misho 877: ;;
878: pn)
1.1.1.2 ! misho 879: cpu=pn
! 880: vendor=gould
1.1 misho 881: ;;
1.1.1.2 ! misho 882: power)
! 883: cpu=power
! 884: vendor=ibm
1.1 misho 885: ;;
886: ps2)
1.1.1.2 ! misho 887: cpu=i386
! 888: vendor=ibm
1.1 misho 889: ;;
890: rm[46]00)
1.1.1.2 ! misho 891: cpu=mips
! 892: vendor=siemens
1.1 misho 893: ;;
894: rtpc | rtpc-*)
1.1.1.2 ! misho 895: cpu=romp
! 896: vendor=ibm
1.1 misho 897: ;;
1.1.1.2 ! misho 898: sde)
! 899: cpu=mipsisa32
! 900: vendor=sde
! 901: basic_os=${basic_os:-elf}
! 902: ;;
! 903: simso-wrs)
! 904: cpu=sparclite
! 905: vendor=wrs
! 906: basic_os=vxworks
1.1 misho 907: ;;
1.1.1.2 ! misho 908: tower | tower-32)
! 909: cpu=m68k
! 910: vendor=ncr
1.1 misho 911: ;;
1.1.1.2 ! misho 912: vpp*|vx|vx-*)
! 913: cpu=f301
! 914: vendor=fujitsu
1.1 misho 915: ;;
1.1.1.2 ! misho 916: w65)
! 917: cpu=w65
! 918: vendor=wdc
1.1 misho 919: ;;
1.1.1.2 ! misho 920: w89k-*)
! 921: cpu=hppa1.1
! 922: vendor=winbond
! 923: basic_os=proelf
1.1 misho 924: ;;
1.1.1.2 ! misho 925: none)
! 926: cpu=none
! 927: vendor=none
1.1 misho 928: ;;
1.1.1.2 ! misho 929: leon|leon[3-9])
! 930: cpu=sparc
! 931: vendor=$basic_machine
! 932: ;;
! 933: leon-*|leon[3-9]-*)
! 934: cpu=sparc
! 935: vendor=`echo "$basic_machine" | sed 's/-.*//'`
! 936: ;;
! 937:
! 938: *-*)
! 939: # shellcheck disable=SC2162
! 940: saved_IFS=$IFS
! 941: IFS="-" read cpu vendor <<EOF
! 942: $basic_machine
! 943: EOF
! 944: IFS=$saved_IFS
1.1 misho 945: ;;
1.1.1.2 ! misho 946: # We use `pc' rather than `unknown'
! 947: # because (1) that's what they normally are, and
! 948: # (2) the word "unknown" tends to confuse beginning users.
! 949: i*86 | x86_64)
! 950: cpu=$basic_machine
! 951: vendor=pc
1.1 misho 952: ;;
1.1.1.2 ! misho 953: # These rules are duplicated from below for sake of the special case above;
! 954: # i.e. things that normalized to x86 arches should also default to "pc"
! 955: pc98)
! 956: cpu=i386
! 957: vendor=pc
1.1 misho 958: ;;
1.1.1.2 ! misho 959: x64 | amd64)
! 960: cpu=x86_64
! 961: vendor=pc
1.1 misho 962: ;;
1.1.1.2 ! misho 963: # Recognize the basic CPU types without company name.
! 964: *)
! 965: cpu=$basic_machine
! 966: vendor=unknown
1.1 misho 967: ;;
1.1.1.2 ! misho 968: esac
! 969:
! 970: unset -v basic_machine
! 971:
! 972: # Decode basic machines in the full and proper CPU-Company form.
! 973: case $cpu-$vendor in
! 974: # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
! 975: # some cases the only manufacturer, in others, it is the most popular.
! 976: craynv-unknown)
! 977: vendor=cray
! 978: basic_os=${basic_os:-unicosmp}
1.1 misho 979: ;;
1.1.1.2 ! misho 980: c90-unknown | c90-cray)
! 981: vendor=cray
! 982: basic_os=${Basic_os:-unicos}
1.1 misho 983: ;;
1.1.1.2 ! misho 984: fx80-unknown)
! 985: vendor=alliant
1.1 misho 986: ;;
1.1.1.2 ! misho 987: romp-unknown)
! 988: vendor=ibm
1.1 misho 989: ;;
1.1.1.2 ! misho 990: mmix-unknown)
! 991: vendor=knuth
1.1 misho 992: ;;
1.1.1.2 ! misho 993: microblaze-unknown | microblazeel-unknown)
! 994: vendor=xilinx
1.1 misho 995: ;;
1.1.1.2 ! misho 996: rs6000-unknown)
! 997: vendor=ibm
1.1 misho 998: ;;
1.1.1.2 ! misho 999: vax-unknown)
! 1000: vendor=dec
1.1 misho 1001: ;;
1.1.1.2 ! misho 1002: pdp11-unknown)
! 1003: vendor=dec
1.1 misho 1004: ;;
1.1.1.2 ! misho 1005: we32k-unknown)
! 1006: vendor=att
1.1 misho 1007: ;;
1.1.1.2 ! misho 1008: cydra-unknown)
! 1009: vendor=cydrome
1.1 misho 1010: ;;
1.1.1.2 ! misho 1011: i370-ibm*)
! 1012: vendor=ibm
1.1 misho 1013: ;;
1.1.1.2 ! misho 1014: orion-unknown)
! 1015: vendor=highlevel
1.1 misho 1016: ;;
1.1.1.2 ! misho 1017: xps-unknown | xps100-unknown)
! 1018: cpu=xps100
! 1019: vendor=honeywell
1.1 misho 1020: ;;
1.1.1.2 ! misho 1021:
! 1022: # Here we normalize CPU types with a missing or matching vendor
! 1023: dpx20-unknown | dpx20-bull)
! 1024: cpu=rs6000
! 1025: vendor=bull
! 1026: basic_os=${basic_os:-bosx}
1.1 misho 1027: ;;
1.1.1.2 ! misho 1028:
! 1029: # Here we normalize CPU types irrespective of the vendor
! 1030: amd64-*)
! 1031: cpu=x86_64
1.1 misho 1032: ;;
1.1.1.2 ! misho 1033: blackfin-*)
! 1034: cpu=bfin
! 1035: basic_os=linux
1.1 misho 1036: ;;
1.1.1.2 ! misho 1037: c54x-*)
! 1038: cpu=tic54x
1.1 misho 1039: ;;
1.1.1.2 ! misho 1040: c55x-*)
! 1041: cpu=tic55x
1.1 misho 1042: ;;
1.1.1.2 ! misho 1043: c6x-*)
! 1044: cpu=tic6x
1.1 misho 1045: ;;
1.1.1.2 ! misho 1046: e500v[12]-*)
! 1047: cpu=powerpc
! 1048: basic_os=${basic_os}"spe"
1.1 misho 1049: ;;
1.1.1.2 ! misho 1050: mips3*-*)
! 1051: cpu=mips64
1.1 misho 1052: ;;
1.1.1.2 ! misho 1053: ms1-*)
! 1054: cpu=mt
1.1 misho 1055: ;;
1.1.1.2 ! misho 1056: m68knommu-*)
! 1057: cpu=m68k
! 1058: basic_os=linux
1.1 misho 1059: ;;
1.1.1.2 ! misho 1060: m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
! 1061: cpu=s12z
1.1 misho 1062: ;;
1.1.1.2 ! misho 1063: openrisc-*)
! 1064: cpu=or32
1.1 misho 1065: ;;
1.1.1.2 ! misho 1066: parisc-*)
! 1067: cpu=hppa
! 1068: basic_os=linux
1.1 misho 1069: ;;
1.1.1.2 ! misho 1070: pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
! 1071: cpu=i586
1.1 misho 1072: ;;
1.1.1.2 ! misho 1073: pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
! 1074: cpu=i686
1.1 misho 1075: ;;
1.1.1.2 ! misho 1076: pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
! 1077: cpu=i686
1.1 misho 1078: ;;
1.1.1.2 ! misho 1079: pentium4-*)
! 1080: cpu=i786
1.1 misho 1081: ;;
1.1.1.2 ! misho 1082: pc98-*)
! 1083: cpu=i386
1.1 misho 1084: ;;
1.1.1.2 ! misho 1085: ppc-* | ppcbe-*)
! 1086: cpu=powerpc
1.1 misho 1087: ;;
1.1.1.2 ! misho 1088: ppcle-* | powerpclittle-*)
! 1089: cpu=powerpcle
1.1 misho 1090: ;;
1.1.1.2 ! misho 1091: ppc64-*)
! 1092: cpu=powerpc64
1.1 misho 1093: ;;
1.1.1.2 ! misho 1094: ppc64le-* | powerpc64little-*)
! 1095: cpu=powerpc64le
1.1 misho 1096: ;;
1.1.1.2 ! misho 1097: sb1-*)
! 1098: cpu=mipsisa64sb1
1.1 misho 1099: ;;
1.1.1.2 ! misho 1100: sb1el-*)
! 1101: cpu=mipsisa64sb1el
1.1 misho 1102: ;;
1.1.1.2 ! misho 1103: sh5e[lb]-*)
! 1104: cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1.1 misho 1105: ;;
1.1.1.2 ! misho 1106: spur-*)
! 1107: cpu=spur
1.1 misho 1108: ;;
1.1.1.2 ! misho 1109: strongarm-* | thumb-*)
! 1110: cpu=arm
1.1 misho 1111: ;;
1.1.1.2 ! misho 1112: tx39-*)
! 1113: cpu=mipstx39
1.1 misho 1114: ;;
1.1.1.2 ! misho 1115: tx39el-*)
! 1116: cpu=mipstx39el
1.1 misho 1117: ;;
1.1.1.2 ! misho 1118: x64-*)
! 1119: cpu=x86_64
1.1 misho 1120: ;;
1.1.1.2 ! misho 1121: xscale-* | xscalee[bl]-*)
! 1122: cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1.1 misho 1123: ;;
1.1.1.2 ! misho 1124: arm64-*)
! 1125: cpu=aarch64
1.1 misho 1126: ;;
1.1.1.2 ! misho 1127:
! 1128: # Recognize the canonical CPU Types that limit and/or modify the
! 1129: # company names they are paired with.
! 1130: cr16-*)
! 1131: basic_os=${basic_os:-elf}
1.1 misho 1132: ;;
1.1.1.2 ! misho 1133: crisv32-* | etraxfs*-*)
! 1134: cpu=crisv32
! 1135: vendor=axis
1.1 misho 1136: ;;
1.1.1.2 ! misho 1137: cris-* | etrax*-*)
! 1138: cpu=cris
! 1139: vendor=axis
1.1 misho 1140: ;;
1.1.1.2 ! misho 1141: crx-*)
! 1142: basic_os=${basic_os:-elf}
1.1 misho 1143: ;;
1.1.1.2 ! misho 1144: neo-tandem)
! 1145: cpu=neo
! 1146: vendor=tandem
1.1 misho 1147: ;;
1.1.1.2 ! misho 1148: nse-tandem)
! 1149: cpu=nse
! 1150: vendor=tandem
1.1 misho 1151: ;;
1.1.1.2 ! misho 1152: nsr-tandem)
! 1153: cpu=nsr
! 1154: vendor=tandem
! 1155: ;;
! 1156: nsv-tandem)
! 1157: cpu=nsv
! 1158: vendor=tandem
! 1159: ;;
! 1160: nsx-tandem)
! 1161: cpu=nsx
! 1162: vendor=tandem
! 1163: ;;
! 1164: mipsallegrexel-sony)
! 1165: cpu=mipsallegrexel
! 1166: vendor=sony
1.1 misho 1167: ;;
1.1.1.2 ! misho 1168: tile*-*)
! 1169: basic_os=${basic_os:-linux-gnu}
! 1170: ;;
! 1171:
1.1 misho 1172: *)
1.1.1.2 ! misho 1173: # Recognize the canonical CPU types that are allowed with any
! 1174: # company name.
! 1175: case $cpu in
! 1176: 1750a | 580 \
! 1177: | a29k \
! 1178: | aarch64 | aarch64_be \
! 1179: | abacus \
! 1180: | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
! 1181: | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
! 1182: | alphapca5[67] | alpha64pca5[67] \
! 1183: | am33_2.0 \
! 1184: | amdgcn \
! 1185: | arc | arceb | arc32 | arc64 \
! 1186: | arm | arm[lb]e | arme[lb] | armv* \
! 1187: | avr | avr32 \
! 1188: | asmjs \
! 1189: | ba \
! 1190: | be32 | be64 \
! 1191: | bfin | bpf | bs2000 \
! 1192: | c[123]* | c30 | [cjt]90 | c4x \
! 1193: | c8051 | clipper | craynv | csky | cydra \
! 1194: | d10v | d30v | dlx | dsp16xx \
! 1195: | e2k | elxsi | epiphany \
! 1196: | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
! 1197: | h8300 | h8500 \
! 1198: | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
! 1199: | hexagon \
! 1200: | i370 | i*86 | i860 | i960 | ia16 | ia64 \
! 1201: | ip2k | iq2000 \
! 1202: | k1om \
! 1203: | le32 | le64 \
! 1204: | lm32 \
! 1205: | loongarch32 | loongarch64 | loongarchx32 \
! 1206: | m32c | m32r | m32rle \
! 1207: | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
! 1208: | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
! 1209: | m88110 | m88k | maxq | mb | mcore | mep | metag \
! 1210: | microblaze | microblazeel \
! 1211: | mips | mipsbe | mipseb | mipsel | mipsle \
! 1212: | mips16 \
! 1213: | mips64 | mips64eb | mips64el \
! 1214: | mips64octeon | mips64octeonel \
! 1215: | mips64orion | mips64orionel \
! 1216: | mips64r5900 | mips64r5900el \
! 1217: | mips64vr | mips64vrel \
! 1218: | mips64vr4100 | mips64vr4100el \
! 1219: | mips64vr4300 | mips64vr4300el \
! 1220: | mips64vr5000 | mips64vr5000el \
! 1221: | mips64vr5900 | mips64vr5900el \
! 1222: | mipsisa32 | mipsisa32el \
! 1223: | mipsisa32r2 | mipsisa32r2el \
! 1224: | mipsisa32r3 | mipsisa32r3el \
! 1225: | mipsisa32r5 | mipsisa32r5el \
! 1226: | mipsisa32r6 | mipsisa32r6el \
! 1227: | mipsisa64 | mipsisa64el \
! 1228: | mipsisa64r2 | mipsisa64r2el \
! 1229: | mipsisa64r3 | mipsisa64r3el \
! 1230: | mipsisa64r5 | mipsisa64r5el \
! 1231: | mipsisa64r6 | mipsisa64r6el \
! 1232: | mipsisa64sb1 | mipsisa64sb1el \
! 1233: | mipsisa64sr71k | mipsisa64sr71kel \
! 1234: | mipsr5900 | mipsr5900el \
! 1235: | mipstx39 | mipstx39el \
! 1236: | mmix \
! 1237: | mn10200 | mn10300 \
! 1238: | moxie \
! 1239: | mt \
! 1240: | msp430 \
! 1241: | nds32 | nds32le | nds32be \
! 1242: | nfp \
! 1243: | nios | nios2 | nios2eb | nios2el \
! 1244: | none | np1 | ns16k | ns32k | nvptx \
! 1245: | open8 \
! 1246: | or1k* \
! 1247: | or32 \
! 1248: | orion \
! 1249: | picochip \
! 1250: | pdp10 | pdp11 | pj | pjl | pn | power \
! 1251: | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
! 1252: | pru \
! 1253: | pyramid \
! 1254: | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
! 1255: | rl78 | romp | rs6000 | rx \
! 1256: | s390 | s390x \
! 1257: | score \
! 1258: | sh | shl \
! 1259: | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
! 1260: | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
! 1261: | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
! 1262: | sparclite \
! 1263: | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
! 1264: | spu \
! 1265: | tahoe \
! 1266: | thumbv7* \
! 1267: | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
! 1268: | tron \
! 1269: | ubicom32 \
! 1270: | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
! 1271: | vax \
! 1272: | visium \
! 1273: | w65 \
! 1274: | wasm32 | wasm64 \
! 1275: | we32k \
! 1276: | x86 | x86_64 | xc16x | xgate | xps100 \
! 1277: | xstormy16 | xtensa* \
! 1278: | ymp \
! 1279: | z8k | z80)
! 1280: ;;
! 1281:
! 1282: *)
! 1283: echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
! 1284: exit 1
! 1285: ;;
! 1286: esac
1.1 misho 1287: ;;
1288: esac
1289:
1290: # Here we canonicalize certain aliases for manufacturers.
1.1.1.2 ! misho 1291: case $vendor in
! 1292: digital*)
! 1293: vendor=dec
1.1 misho 1294: ;;
1.1.1.2 ! misho 1295: commodore*)
! 1296: vendor=cbm
1.1 misho 1297: ;;
1298: *)
1299: ;;
1300: esac
1301:
1302: # Decode manufacturer-specific aliases for certain operating systems.
1303:
1.1.1.2 ! misho 1304: if test x$basic_os != x
1.1 misho 1305: then
1.1.1.2 ! misho 1306:
! 1307: # First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
! 1308: # set os.
! 1309: case $basic_os in
! 1310: gnu/linux*)
! 1311: kernel=linux
! 1312: os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
! 1313: ;;
! 1314: os2-emx)
! 1315: kernel=os2
! 1316: os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
! 1317: ;;
! 1318: nto-qnx*)
! 1319: kernel=nto
! 1320: os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
! 1321: ;;
! 1322: *-*)
! 1323: # shellcheck disable=SC2162
! 1324: saved_IFS=$IFS
! 1325: IFS="-" read kernel os <<EOF
! 1326: $basic_os
! 1327: EOF
! 1328: IFS=$saved_IFS
! 1329: ;;
! 1330: # Default OS when just kernel was specified
! 1331: nto*)
! 1332: kernel=nto
! 1333: os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
! 1334: ;;
! 1335: linux*)
! 1336: kernel=linux
! 1337: os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
! 1338: ;;
! 1339: *)
! 1340: kernel=
! 1341: os=$basic_os
! 1342: ;;
! 1343: esac
! 1344:
! 1345: # Now, normalize the OS (knowing we just have one component, it's not a kernel,
! 1346: # etc.)
1.1 misho 1347: case $os in
1.1.1.2 ! misho 1348: # First match some system type aliases that might get confused
! 1349: # with valid system types.
! 1350: # solaris* is a basic system type, with this one exception.
! 1351: auroraux)
! 1352: os=auroraux
1.1 misho 1353: ;;
1.1.1.2 ! misho 1354: bluegene*)
! 1355: os=cnk
1.1 misho 1356: ;;
1.1.1.2 ! misho 1357: solaris1 | solaris1.*)
! 1358: os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
1.1 misho 1359: ;;
1.1.1.2 ! misho 1360: solaris)
! 1361: os=solaris2
1.1 misho 1362: ;;
1.1.1.2 ! misho 1363: unixware*)
! 1364: os=sysv4.2uw
1.1 misho 1365: ;;
1.1.1.2 ! misho 1366: # es1800 is here to avoid being matched by es* (a different OS)
! 1367: es1800*)
! 1368: os=ose
1.1 misho 1369: ;;
1.1.1.2 ! misho 1370: # Some version numbers need modification
! 1371: chorusos*)
! 1372: os=chorusos
1.1 misho 1373: ;;
1.1.1.2 ! misho 1374: isc)
! 1375: os=isc2.2
1.1 misho 1376: ;;
1.1.1.2 ! misho 1377: sco6)
! 1378: os=sco5v6
1.1 misho 1379: ;;
1.1.1.2 ! misho 1380: sco5)
! 1381: os=sco3.2v5
1.1 misho 1382: ;;
1.1.1.2 ! misho 1383: sco4)
! 1384: os=sco3.2v4
1.1 misho 1385: ;;
1.1.1.2 ! misho 1386: sco3.2.[4-9]*)
! 1387: os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
1.1 misho 1388: ;;
1.1.1.2 ! misho 1389: sco*v* | scout)
! 1390: # Don't match below
1.1 misho 1391: ;;
1.1.1.2 ! misho 1392: sco*)
! 1393: os=sco3.2v2
1.1 misho 1394: ;;
1.1.1.2 ! misho 1395: psos*)
! 1396: os=psos
1.1 misho 1397: ;;
1.1.1.2 ! misho 1398: qnx*)
! 1399: os=qnx
1.1 misho 1400: ;;
1.1.1.2 ! misho 1401: hiux*)
! 1402: os=hiuxwe2
1.1 misho 1403: ;;
1.1.1.2 ! misho 1404: lynx*178)
! 1405: os=lynxos178
1.1 misho 1406: ;;
1.1.1.2 ! misho 1407: lynx*5)
! 1408: os=lynxos5
1.1 misho 1409: ;;
1.1.1.2 ! misho 1410: lynxos*)
! 1411: # don't get caught up in next wildcard
1.1 misho 1412: ;;
1.1.1.2 ! misho 1413: lynx*)
! 1414: os=lynxos
1.1 misho 1415: ;;
1.1.1.2 ! misho 1416: mac[0-9]*)
! 1417: os=`echo "$os" | sed -e 's|mac|macos|'`
1.1 misho 1418: ;;
1.1.1.2 ! misho 1419: opened*)
! 1420: os=openedition
1.1 misho 1421: ;;
1.1.1.2 ! misho 1422: os400*)
! 1423: os=os400
1.1 misho 1424: ;;
1.1.1.2 ! misho 1425: sunos5*)
! 1426: os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1.1 misho 1427: ;;
1.1.1.2 ! misho 1428: sunos6*)
! 1429: os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1.1 misho 1430: ;;
1.1.1.2 ! misho 1431: wince*)
! 1432: os=wince
1.1 misho 1433: ;;
1.1.1.2 ! misho 1434: utek*)
! 1435: os=bsd
1.1 misho 1436: ;;
1.1.1.2 ! misho 1437: dynix*)
! 1438: os=bsd
1.1 misho 1439: ;;
1.1.1.2 ! misho 1440: acis*)
! 1441: os=aos
1.1 misho 1442: ;;
1.1.1.2 ! misho 1443: atheos*)
! 1444: os=atheos
1.1 misho 1445: ;;
1.1.1.2 ! misho 1446: syllable*)
! 1447: os=syllable
1.1 misho 1448: ;;
1.1.1.2 ! misho 1449: 386bsd)
! 1450: os=bsd
1.1 misho 1451: ;;
1.1.1.2 ! misho 1452: ctix* | uts*)
! 1453: os=sysv
1.1 misho 1454: ;;
1.1.1.2 ! misho 1455: nova*)
! 1456: os=rtmk-nova
1.1 misho 1457: ;;
1.1.1.2 ! misho 1458: ns2)
! 1459: os=nextstep2
1.1 misho 1460: ;;
1.1.1.2 ! misho 1461: # Preserve the version number of sinix5.
! 1462: sinix5.*)
! 1463: os=`echo "$os" | sed -e 's|sinix|sysv|'`
1.1 misho 1464: ;;
1.1.1.2 ! misho 1465: sinix*)
! 1466: os=sysv4
1.1 misho 1467: ;;
1.1.1.2 ! misho 1468: tpf*)
! 1469: os=tpf
1.1 misho 1470: ;;
1.1.1.2 ! misho 1471: triton*)
! 1472: os=sysv3
1.1 misho 1473: ;;
1.1.1.2 ! misho 1474: oss*)
! 1475: os=sysv3
1.1 misho 1476: ;;
1.1.1.2 ! misho 1477: svr4*)
! 1478: os=sysv4
1.1 misho 1479: ;;
1.1.1.2 ! misho 1480: svr3)
! 1481: os=sysv3
1.1 misho 1482: ;;
1.1.1.2 ! misho 1483: sysvr4)
! 1484: os=sysv4
1.1 misho 1485: ;;
1.1.1.2 ! misho 1486: ose*)
! 1487: os=ose
1.1 misho 1488: ;;
1.1.1.2 ! misho 1489: *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
! 1490: os=mint
1.1 misho 1491: ;;
1.1.1.2 ! misho 1492: dicos*)
! 1493: os=dicos
1.1 misho 1494: ;;
1.1.1.2 ! misho 1495: pikeos*)
! 1496: # Until real need of OS specific support for
! 1497: # particular features comes up, bare metal
! 1498: # configurations are quite functional.
! 1499: case $cpu in
! 1500: arm*)
! 1501: os=eabi
! 1502: ;;
! 1503: *)
! 1504: os=elf
! 1505: ;;
! 1506: esac
1.1 misho 1507: ;;
1508: *)
1.1.1.2 ! misho 1509: # No normalization, but not necessarily accepted, that comes below.
1.1 misho 1510: ;;
1511: esac
1.1.1.2 ! misho 1512:
1.1 misho 1513: else
1514:
1515: # Here we handle the default operating systems that come with various machines.
1516: # The value should be what the vendor currently ships out the door with their
1517: # machine or put another way, the most popular os provided with the machine.
1518:
1519: # Note that if you're going to try to match "-MANUFACTURER" here (say,
1520: # "-sun"), then you have to tell the case statement up towards the top
1521: # that MANUFACTURER isn't an operating system. Otherwise, code above
1522: # will signal an error saying that MANUFACTURER isn't an operating
1523: # system, and we'll never get to this point.
1524:
1.1.1.2 ! misho 1525: kernel=
! 1526: case $cpu-$vendor in
1.1 misho 1527: score-*)
1.1.1.2 ! misho 1528: os=elf
1.1 misho 1529: ;;
1530: spu-*)
1.1.1.2 ! misho 1531: os=elf
1.1 misho 1532: ;;
1533: *-acorn)
1.1.1.2 ! misho 1534: os=riscix1.2
1.1 misho 1535: ;;
1536: arm*-rebel)
1.1.1.2 ! misho 1537: kernel=linux
! 1538: os=gnu
1.1 misho 1539: ;;
1540: arm*-semi)
1.1.1.2 ! misho 1541: os=aout
1.1 misho 1542: ;;
1543: c4x-* | tic4x-*)
1.1.1.2 ! misho 1544: os=coff
1.1 misho 1545: ;;
1546: c8051-*)
1.1.1.2 ! misho 1547: os=elf
! 1548: ;;
! 1549: clipper-intergraph)
! 1550: os=clix
1.1 misho 1551: ;;
1552: hexagon-*)
1.1.1.2 ! misho 1553: os=elf
1.1 misho 1554: ;;
1555: tic54x-*)
1.1.1.2 ! misho 1556: os=coff
1.1 misho 1557: ;;
1558: tic55x-*)
1.1.1.2 ! misho 1559: os=coff
1.1 misho 1560: ;;
1561: tic6x-*)
1.1.1.2 ! misho 1562: os=coff
1.1 misho 1563: ;;
1564: # This must come before the *-dec entry.
1565: pdp10-*)
1.1.1.2 ! misho 1566: os=tops20
1.1 misho 1567: ;;
1568: pdp11-*)
1.1.1.2 ! misho 1569: os=none
1.1 misho 1570: ;;
1571: *-dec | vax-*)
1.1.1.2 ! misho 1572: os=ultrix4.2
1.1 misho 1573: ;;
1574: m68*-apollo)
1.1.1.2 ! misho 1575: os=domain
1.1 misho 1576: ;;
1577: i386-sun)
1.1.1.2 ! misho 1578: os=sunos4.0.2
1.1 misho 1579: ;;
1580: m68000-sun)
1.1.1.2 ! misho 1581: os=sunos3
1.1 misho 1582: ;;
1583: m68*-cisco)
1.1.1.2 ! misho 1584: os=aout
1.1 misho 1585: ;;
1586: mep-*)
1.1.1.2 ! misho 1587: os=elf
1.1 misho 1588: ;;
1589: mips*-cisco)
1.1.1.2 ! misho 1590: os=elf
1.1 misho 1591: ;;
1592: mips*-*)
1.1.1.2 ! misho 1593: os=elf
1.1 misho 1594: ;;
1595: or32-*)
1.1.1.2 ! misho 1596: os=coff
1.1 misho 1597: ;;
1598: *-tti) # must be before sparc entry or we get the wrong os.
1.1.1.2 ! misho 1599: os=sysv3
1.1 misho 1600: ;;
1601: sparc-* | *-sun)
1.1.1.2 ! misho 1602: os=sunos4.1.1
1.1 misho 1603: ;;
1.1.1.2 ! misho 1604: pru-*)
! 1605: os=elf
1.1 misho 1606: ;;
1.1.1.2 ! misho 1607: *-be)
! 1608: os=beos
1.1 misho 1609: ;;
1610: *-ibm)
1.1.1.2 ! misho 1611: os=aix
1.1 misho 1612: ;;
1613: *-knuth)
1.1.1.2 ! misho 1614: os=mmixware
1.1 misho 1615: ;;
1616: *-wec)
1.1.1.2 ! misho 1617: os=proelf
1.1 misho 1618: ;;
1619: *-winbond)
1.1.1.2 ! misho 1620: os=proelf
1.1 misho 1621: ;;
1622: *-oki)
1.1.1.2 ! misho 1623: os=proelf
1.1 misho 1624: ;;
1625: *-hp)
1.1.1.2 ! misho 1626: os=hpux
1.1 misho 1627: ;;
1628: *-hitachi)
1.1.1.2 ! misho 1629: os=hiux
1.1 misho 1630: ;;
1631: i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1.1.1.2 ! misho 1632: os=sysv
1.1 misho 1633: ;;
1634: *-cbm)
1.1.1.2 ! misho 1635: os=amigaos
1.1 misho 1636: ;;
1637: *-dg)
1.1.1.2 ! misho 1638: os=dgux
1.1 misho 1639: ;;
1640: *-dolphin)
1.1.1.2 ! misho 1641: os=sysv3
1.1 misho 1642: ;;
1643: m68k-ccur)
1.1.1.2 ! misho 1644: os=rtu
1.1 misho 1645: ;;
1646: m88k-omron*)
1.1.1.2 ! misho 1647: os=luna
1.1 misho 1648: ;;
1.1.1.2 ! misho 1649: *-next)
! 1650: os=nextstep
1.1 misho 1651: ;;
1652: *-sequent)
1.1.1.2 ! misho 1653: os=ptx
1.1 misho 1654: ;;
1655: *-crds)
1.1.1.2 ! misho 1656: os=unos
1.1 misho 1657: ;;
1658: *-ns)
1.1.1.2 ! misho 1659: os=genix
1.1 misho 1660: ;;
1661: i370-*)
1.1.1.2 ! misho 1662: os=mvs
1.1 misho 1663: ;;
1664: *-gould)
1.1.1.2 ! misho 1665: os=sysv
1.1 misho 1666: ;;
1667: *-highlevel)
1.1.1.2 ! misho 1668: os=bsd
1.1 misho 1669: ;;
1670: *-encore)
1.1.1.2 ! misho 1671: os=bsd
1.1 misho 1672: ;;
1673: *-sgi)
1.1.1.2 ! misho 1674: os=irix
1.1 misho 1675: ;;
1676: *-siemens)
1.1.1.2 ! misho 1677: os=sysv4
1.1 misho 1678: ;;
1679: *-masscomp)
1.1.1.2 ! misho 1680: os=rtu
1.1 misho 1681: ;;
1682: f30[01]-fujitsu | f700-fujitsu)
1.1.1.2 ! misho 1683: os=uxpv
1.1 misho 1684: ;;
1685: *-rom68k)
1.1.1.2 ! misho 1686: os=coff
1.1 misho 1687: ;;
1688: *-*bug)
1.1.1.2 ! misho 1689: os=coff
1.1 misho 1690: ;;
1691: *-apple)
1.1.1.2 ! misho 1692: os=macos
1.1 misho 1693: ;;
1694: *-atari*)
1.1.1.2 ! misho 1695: os=mint
! 1696: ;;
! 1697: *-wrs)
! 1698: os=vxworks
1.1 misho 1699: ;;
1700: *)
1.1.1.2 ! misho 1701: os=none
1.1 misho 1702: ;;
1703: esac
1.1.1.2 ! misho 1704:
1.1 misho 1705: fi
1706:
1.1.1.2 ! misho 1707: # Now, validate our (potentially fixed-up) OS.
! 1708: case $os in
! 1709: # Sometimes we do "kernel-libc", so those need to count as OSes.
! 1710: musl* | newlib* | relibc* | uclibc*)
! 1711: ;;
! 1712: # Likewise for "kernel-abi"
! 1713: eabi* | gnueabi*)
! 1714: ;;
! 1715: # VxWorks passes extra cpu info in the 4th filed.
! 1716: simlinux | simwindows | spe)
! 1717: ;;
! 1718: # Now accept the basic system types.
! 1719: # The portable systems comes first.
! 1720: # Each alternative MUST end in a * to match a version number.
! 1721: gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
! 1722: | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
! 1723: | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
! 1724: | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
! 1725: | hiux* | abug | nacl* | netware* | windows* \
! 1726: | os9* | macos* | osx* | ios* \
! 1727: | mpw* | magic* | mmixware* | mon960* | lnews* \
! 1728: | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
! 1729: | aos* | aros* | cloudabi* | sortix* | twizzler* \
! 1730: | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
! 1731: | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
! 1732: | mirbsd* | netbsd* | dicos* | openedition* | ose* \
! 1733: | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
! 1734: | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
! 1735: | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
! 1736: | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
! 1737: | udi* | lites* | ieee* | go32* | aux* | hcos* \
! 1738: | chorusrdb* | cegcc* | glidix* | serenity* \
! 1739: | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
! 1740: | midipix* | mingw32* | mingw64* | mint* \
! 1741: | uxpv* | beos* | mpeix* | udk* | moxiebox* \
! 1742: | interix* | uwin* | mks* | rhapsody* | darwin* \
! 1743: | openstep* | oskit* | conix* | pw32* | nonstopux* \
! 1744: | storm-chaos* | tops10* | tenex* | tops20* | its* \
! 1745: | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
! 1746: | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
! 1747: | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
! 1748: | skyos* | haiku* | rdos* | toppers* | drops* | es* \
! 1749: | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
! 1750: | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
! 1751: | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*)
! 1752: ;;
! 1753: # This one is extra strict with allowed versions
! 1754: sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
! 1755: # Don't forget version if it is 3.2v4 or newer.
! 1756: ;;
! 1757: none)
! 1758: ;;
! 1759: *)
! 1760: echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
! 1761: exit 1
! 1762: ;;
! 1763: esac
! 1764:
! 1765: # As a final step for OS-related things, validate the OS-kernel combination
! 1766: # (given a valid OS), if there is a kernel.
! 1767: case $kernel-$os in
! 1768: linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
! 1769: | linux-musl* | linux-relibc* | linux-uclibc* )
! 1770: ;;
! 1771: uclinux-uclibc* )
! 1772: ;;
! 1773: -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
! 1774: # These are just libc implementations, not actual OSes, and thus
! 1775: # require a kernel.
! 1776: echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
! 1777: exit 1
! 1778: ;;
! 1779: kfreebsd*-gnu* | kopensolaris*-gnu*)
! 1780: ;;
! 1781: vxworks-simlinux | vxworks-simwindows | vxworks-spe)
! 1782: ;;
! 1783: nto-qnx*)
! 1784: ;;
! 1785: os2-emx)
! 1786: ;;
! 1787: *-eabi* | *-gnueabi*)
! 1788: ;;
! 1789: -*)
! 1790: # Blank kernel with real OS is always fine.
! 1791: ;;
! 1792: *-*)
! 1793: echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
! 1794: exit 1
! 1795: ;;
! 1796: esac
! 1797:
1.1 misho 1798: # Here we handle the case where we know the os, and the CPU type, but not the
1799: # manufacturer. We pick the logical manufacturer.
1.1.1.2 ! misho 1800: case $vendor in
! 1801: unknown)
! 1802: case $cpu-$os in
! 1803: *-riscix*)
1.1 misho 1804: vendor=acorn
1805: ;;
1.1.1.2 ! misho 1806: *-sunos*)
1.1 misho 1807: vendor=sun
1808: ;;
1.1.1.2 ! misho 1809: *-cnk* | *-aix*)
1.1 misho 1810: vendor=ibm
1811: ;;
1.1.1.2 ! misho 1812: *-beos*)
1.1 misho 1813: vendor=be
1814: ;;
1.1.1.2 ! misho 1815: *-hpux*)
1.1 misho 1816: vendor=hp
1817: ;;
1.1.1.2 ! misho 1818: *-mpeix*)
1.1 misho 1819: vendor=hp
1820: ;;
1.1.1.2 ! misho 1821: *-hiux*)
1.1 misho 1822: vendor=hitachi
1823: ;;
1.1.1.2 ! misho 1824: *-unos*)
1.1 misho 1825: vendor=crds
1826: ;;
1.1.1.2 ! misho 1827: *-dgux*)
1.1 misho 1828: vendor=dg
1829: ;;
1.1.1.2 ! misho 1830: *-luna*)
1.1 misho 1831: vendor=omron
1832: ;;
1.1.1.2 ! misho 1833: *-genix*)
1.1 misho 1834: vendor=ns
1835: ;;
1.1.1.2 ! misho 1836: *-clix*)
! 1837: vendor=intergraph
! 1838: ;;
! 1839: *-mvs* | *-opened*)
! 1840: vendor=ibm
! 1841: ;;
! 1842: *-os400*)
1.1 misho 1843: vendor=ibm
1844: ;;
1.1.1.2 ! misho 1845: s390-* | s390x-*)
1.1 misho 1846: vendor=ibm
1847: ;;
1.1.1.2 ! misho 1848: *-ptx*)
1.1 misho 1849: vendor=sequent
1850: ;;
1.1.1.2 ! misho 1851: *-tpf*)
1.1 misho 1852: vendor=ibm
1853: ;;
1.1.1.2 ! misho 1854: *-vxsim* | *-vxworks* | *-windiss*)
1.1 misho 1855: vendor=wrs
1856: ;;
1.1.1.2 ! misho 1857: *-aux*)
1.1 misho 1858: vendor=apple
1859: ;;
1.1.1.2 ! misho 1860: *-hms*)
1.1 misho 1861: vendor=hitachi
1862: ;;
1.1.1.2 ! misho 1863: *-mpw* | *-macos*)
1.1 misho 1864: vendor=apple
1865: ;;
1.1.1.2 ! misho 1866: *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
1.1 misho 1867: vendor=atari
1868: ;;
1.1.1.2 ! misho 1869: *-vos*)
1.1 misho 1870: vendor=stratus
1871: ;;
1872: esac
1873: ;;
1874: esac
1875:
1.1.1.2 ! misho 1876: echo "$cpu-$vendor-${kernel:+$kernel-}$os"
1.1 misho 1877: exit
1878:
1879: # Local variables:
1.1.1.2 ! misho 1880: # eval: (add-hook 'before-save-hook 'time-stamp)
1.1 misho 1881: # time-stamp-start: "timestamp='"
1882: # time-stamp-format: "%:y-%02m-%02d"
1883: # time-stamp-end: "'"
1884: # End:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>