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

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