Annotation of embedaddon/iperf/config/config.sub, revision 1.1.1.2

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>