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