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