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