Annotation of XML/config.sub, revision 1.5

1.1       daniel      1: #! /bin/sh
                      2: # Configuration validation subroutine script, version 1.1.
1.5     ! veillard    3: #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
        !             4: #   Free Software Foundation, Inc.
        !             5: #
1.1       daniel      6: # This file is (in principle) common to ALL GNU software.
                      7: # The presence of a machine in this file suggests that SOME GNU software
                      8: # can handle that machine.  It does not imply ALL GNU software can.
                      9: #
                     10: # This file is free software; you can redistribute it and/or modify
                     11: # it under the terms of the GNU General Public License as published by
                     12: # the Free Software Foundation; either version 2 of the License, or
                     13: # (at your option) any later version.
                     14: #
                     15: # This program is distributed in the hope that it will be useful,
                     16: # but WITHOUT ANY WARRANTY; without even the implied warranty of
                     17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     18: # GNU General Public License for more details.
                     19: #
                     20: # You should have received a copy of the GNU General Public License
                     21: # along with this program; if not, write to the Free Software
                     22: # Foundation, Inc., 59 Temple Place - Suite 330,
                     23: # Boston, MA 02111-1307, USA.
                     24: 
                     25: # As a special exception to the GNU General Public License, if you
                     26: # distribute this file as part of a program that contains a
                     27: # configuration script generated by Autoconf, you may include it under
                     28: # the same distribution terms that you use for the rest of that program.
                     29: 
1.5     ! veillard   30: # Written by Per Bothner <bothner@cygnus.com>.
        !            31: # Please send patches to <config-patches@gnu.org>.
        !            32: #
1.1       daniel     33: # Configuration subroutine to validate and canonicalize a configuration type.
                     34: # Supply the specified configuration type as an argument.
                     35: # If it is invalid, we print an error message on stderr and exit with code 1.
                     36: # Otherwise, we print the canonical config type on stdout and succeed.
                     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: 
                     53: if [ x$1 = x ]
                     54: then
                     55:        echo Configuration name missing. 1>&2
                     56:        echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
                     57:        echo "or     $0 ALIAS" 1>&2
                     58:        echo where ALIAS is a recognized configuration type. 1>&2
                     59:        exit 1
                     60: fi
                     61: 
                     62: # First pass through any local machine types.
                     63: case $1 in
                     64:        *local*)
                     65:                echo $1
                     66:                exit 0
                     67:                ;;
                     68:        *)
                     69:        ;;
                     70: esac
                     71: 
                     72: # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
                     73: # Here we must recognize all the valid KERNEL-OS combinations.
                     74: maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
                     75: case $maybe_os in
1.5     ! veillard   76:   nto-qnx* | linux-gnu*)
1.1       daniel     77:     os=-$maybe_os
                     78:     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
                     79:     ;;
                     80:   *)
                     81:     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
                     82:     if [ $basic_machine != $1 ]
                     83:     then os=`echo $1 | sed 's/.*-/-/'`
                     84:     else os=; fi
                     85:     ;;
                     86: esac
                     87: 
                     88: ### Let's recognize common machines as not being operating systems so
                     89: ### that things like config.sub decstation-3100 work.  We also
                     90: ### recognize some manufacturers as not being operating systems, so we
                     91: ### can provide default operating systems below.
                     92: case $os in
                     93:        -sun*os*)
                     94:                # Prevent following clause from handling this invalid input.
                     95:                ;;
                     96:        -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
                     97:        -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
                     98:        -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
                     99:        -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
                    100:        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
                    101:        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
                    102:        -apple)
                    103:                os=
                    104:                basic_machine=$1
                    105:                ;;
                    106:        -sim | -cisco | -oki | -wec | -winbond)
                    107:                os=
                    108:                basic_machine=$1
                    109:                ;;
                    110:        -scout)
                    111:                ;;
                    112:        -wrs)
1.2       veillard  113:                os=-vxworks
1.1       daniel    114:                basic_machine=$1
                    115:                ;;
                    116:        -hiux*)
                    117:                os=-hiuxwe2
                    118:                ;;
                    119:        -sco5)
                    120:                os=-sco3.2v5
                    121:                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                    122:                ;;
                    123:        -sco4)
                    124:                os=-sco3.2v4
                    125:                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                    126:                ;;
                    127:        -sco3.2.[4-9]*)
                    128:                os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
                    129:                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                    130:                ;;
                    131:        -sco3.2v[4-9]*)
                    132:                # Don't forget version if it is 3.2v4 or newer.
                    133:                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                    134:                ;;
                    135:        -sco*)
                    136:                os=-sco3.2v2
                    137:                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                    138:                ;;
                    139:        -udk*)
                    140:                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                    141:                ;;
                    142:        -isc)
                    143:                os=-isc2.2
                    144:                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                    145:                ;;
                    146:        -clix*)
                    147:                basic_machine=clipper-intergraph
                    148:                ;;
                    149:        -isc*)
                    150:                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                    151:                ;;
                    152:        -lynx*)
                    153:                os=-lynxos
                    154:                ;;
                    155:        -ptx*)
                    156:                basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
                    157:                ;;
                    158:        -windowsnt*)
                    159:                os=`echo $os | sed -e 's/windowsnt/winnt/'`
                    160:                ;;
                    161:        -psos*)
                    162:                os=-psos
                    163:                ;;
1.2       veillard  164:        -mint | -mint[0-9]*)
                    165:                basic_machine=m68k-atari
                    166:                os=-mint
                    167:                ;;
1.1       daniel    168: esac
                    169: 
                    170: # Decode aliases for certain CPU-COMPANY combinations.
                    171: case $basic_machine in
                    172:        # Recognize the basic CPU types without company name.
                    173:        # Some are omitted here because they have special meanings below.
1.2       veillard  174:        tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
1.1       daniel    175:                | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
                    176:                | 580 | i960 | h8300 \
1.5     ! veillard  177:                | x86 | ppcbe | mipsbe | mipsle | shbe | shle | armbe | armle \
1.1       daniel    178:                | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
1.5     ! veillard  179:                | hppa64 \
        !           180:                | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
        !           181:                | alphaev6[78] \
1.1       daniel    182:                | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
                    183:                | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
                    184:                | mips64orion | mips64orionel | mipstx39 | mipstx39el \
                    185:                | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
1.2       veillard  186:                | mips64vr5000 | miprs64vr5000el | mcore \
                    187:                | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
1.5     ! veillard  188:                | thumb | d10v | fr30 | avr)
1.1       daniel    189:                basic_machine=$basic_machine-unknown
                    190:                ;;
1.2       veillard  191:        m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
1.1       daniel    192:                ;;
                    193: 
                    194:        # We use `pc' rather than `unknown'
                    195:        # because (1) that's what they normally are, and
                    196:        # (2) the word "unknown" tends to confuse beginning users.
                    197:        i[34567]86)
                    198:          basic_machine=$basic_machine-pc
                    199:          ;;
                    200:        # Object if more than one company name word.
                    201:        *-*-*)
                    202:                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
                    203:                exit 1
                    204:                ;;
                    205:        # Recognize the basic CPU types with company name.
1.2       veillard  206:        # FIXME: clean up the formatting here.
                    207:        vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
1.1       daniel    208:              | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
                    209:              | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
                    210:              | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
                    211:              | xmp-* | ymp-* \
1.5     ! veillard  212:              | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \
        !           213:              | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
        !           214:              | hppa2.0n-* | hppa64-* \
        !           215:              | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
        !           216:              | alphaev6[78]-* \
1.1       daniel    217:              | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
                    218:              | clipper-* | orion-* \
                    219:              | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
                    220:              | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
                    221:              | mips64el-* | mips64orion-* | mips64orionel-* \
                    222:              | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
1.2       veillard  223:              | mipstx39-* | mipstx39el-* | mcore-* \
1.5     ! veillard  224:              | f301-* | armv*-* | s390-* | sv1-* | t3e-* \
1.1       daniel    225:              | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
1.5     ! veillard  226:              | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \
        !           227:              | bs2000-*)
1.1       daniel    228:                ;;
                    229:        # Recognize the various machine names and aliases which stand
                    230:        # for a CPU type and a company and sometimes even an OS.
                    231:        386bsd)
                    232:                basic_machine=i386-unknown
                    233:                os=-bsd
                    234:                ;;
                    235:        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
                    236:                basic_machine=m68000-att
                    237:                ;;
                    238:        3b*)
                    239:                basic_machine=we32k-att
                    240:                ;;
                    241:        a29khif)
                    242:                basic_machine=a29k-amd
                    243:                os=-udi
                    244:                ;;
                    245:        adobe68k)
                    246:                basic_machine=m68010-adobe
                    247:                os=-scout
                    248:                ;;
                    249:        alliant | fx80)
                    250:                basic_machine=fx80-alliant
                    251:                ;;
                    252:        altos | altos3068)
                    253:                basic_machine=m68k-altos
                    254:                ;;
                    255:        am29k)
                    256:                basic_machine=a29k-none
                    257:                os=-bsd
                    258:                ;;
                    259:        amdahl)
                    260:                basic_machine=580-amdahl
                    261:                os=-sysv
                    262:                ;;
                    263:        amiga | amiga-*)
                    264:                basic_machine=m68k-cbm
                    265:                ;;
                    266:        amigaos | amigados)
                    267:                basic_machine=m68k-cbm
                    268:                os=-amigaos
                    269:                ;;
                    270:        amigaunix | amix)
                    271:                basic_machine=m68k-cbm
                    272:                os=-sysv4
                    273:                ;;
                    274:        apollo68)
                    275:                basic_machine=m68k-apollo
                    276:                os=-sysv
                    277:                ;;
                    278:        apollo68bsd)
                    279:                basic_machine=m68k-apollo
                    280:                os=-bsd
                    281:                ;;
                    282:        aux)
                    283:                basic_machine=m68k-apple
                    284:                os=-aux
                    285:                ;;
                    286:        balance)
                    287:                basic_machine=ns32k-sequent
                    288:                os=-dynix
                    289:                ;;
                    290:        convex-c1)
                    291:                basic_machine=c1-convex
                    292:                os=-bsd
                    293:                ;;
                    294:        convex-c2)
                    295:                basic_machine=c2-convex
                    296:                os=-bsd
                    297:                ;;
                    298:        convex-c32)
                    299:                basic_machine=c32-convex
                    300:                os=-bsd
                    301:                ;;
                    302:        convex-c34)
                    303:                basic_machine=c34-convex
                    304:                os=-bsd
                    305:                ;;
                    306:        convex-c38)
                    307:                basic_machine=c38-convex
                    308:                os=-bsd
                    309:                ;;
                    310:        cray | ymp)
                    311:                basic_machine=ymp-cray
                    312:                os=-unicos
                    313:                ;;
                    314:        cray2)
                    315:                basic_machine=cray2-cray
                    316:                os=-unicos
                    317:                ;;
                    318:        [ctj]90-cray)
                    319:                basic_machine=c90-cray
                    320:                os=-unicos
                    321:                ;;
                    322:        crds | unos)
                    323:                basic_machine=m68k-crds
                    324:                ;;
                    325:        da30 | da30-*)
                    326:                basic_machine=m68k-da30
                    327:                ;;
                    328:        decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
                    329:                basic_machine=mips-dec
                    330:                ;;
                    331:        delta | 3300 | motorola-3300 | motorola-delta \
                    332:              | 3300-motorola | delta-motorola)
                    333:                basic_machine=m68k-motorola
                    334:                ;;
                    335:        delta88)
                    336:                basic_machine=m88k-motorola
                    337:                os=-sysv3
                    338:                ;;
                    339:        dpx20 | dpx20-*)
                    340:                basic_machine=rs6000-bull
                    341:                os=-bosx
                    342:                ;;
                    343:        dpx2* | dpx2*-bull)
                    344:                basic_machine=m68k-bull
                    345:                os=-sysv3
                    346:                ;;
                    347:        ebmon29k)
                    348:                basic_machine=a29k-amd
                    349:                os=-ebmon
                    350:                ;;
                    351:        elxsi)
                    352:                basic_machine=elxsi-elxsi
                    353:                os=-bsd
                    354:                ;;
                    355:        encore | umax | mmax)
                    356:                basic_machine=ns32k-encore
                    357:                ;;
                    358:        es1800 | OSE68k | ose68k | ose | OSE)
                    359:                basic_machine=m68k-ericsson
                    360:                os=-ose
                    361:                ;;
                    362:        fx2800)
                    363:                basic_machine=i860-alliant
                    364:                ;;
                    365:        genix)
                    366:                basic_machine=ns32k-ns
                    367:                ;;
                    368:        gmicro)
                    369:                basic_machine=tron-gmicro
                    370:                os=-sysv
                    371:                ;;
                    372:        h3050r* | hiux*)
                    373:                basic_machine=hppa1.1-hitachi
                    374:                os=-hiuxwe2
                    375:                ;;
                    376:        h8300hms)
                    377:                basic_machine=h8300-hitachi
                    378:                os=-hms
                    379:                ;;
                    380:        h8300xray)
                    381:                basic_machine=h8300-hitachi
                    382:                os=-xray
                    383:                ;;
                    384:        h8500hms)
                    385:                basic_machine=h8500-hitachi
                    386:                os=-hms
                    387:                ;;
                    388:        harris)
                    389:                basic_machine=m88k-harris
                    390:                os=-sysv3
                    391:                ;;
                    392:        hp300-*)
                    393:                basic_machine=m68k-hp
                    394:                ;;
                    395:        hp300bsd)
                    396:                basic_machine=m68k-hp
                    397:                os=-bsd
                    398:                ;;
                    399:        hp300hpux)
                    400:                basic_machine=m68k-hp
                    401:                os=-hpux
                    402:                ;;
                    403:        hp3k9[0-9][0-9] | hp9[0-9][0-9])
                    404:                basic_machine=hppa1.0-hp
                    405:                ;;
                    406:        hp9k2[0-9][0-9] | hp9k31[0-9])
                    407:                basic_machine=m68000-hp
                    408:                ;;
                    409:        hp9k3[2-9][0-9])
                    410:                basic_machine=m68k-hp
                    411:                ;;
                    412:        hp9k6[0-9][0-9] | hp6[0-9][0-9])
                    413:                basic_machine=hppa1.0-hp
                    414:                ;;
                    415:        hp9k7[0-79][0-9] | hp7[0-79][0-9])
                    416:                basic_machine=hppa1.1-hp
                    417:                ;;
                    418:        hp9k78[0-9] | hp78[0-9])
                    419:                # FIXME: really hppa2.0-hp
                    420:                basic_machine=hppa1.1-hp
                    421:                ;;
                    422:        hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
                    423:                # FIXME: really hppa2.0-hp
                    424:                basic_machine=hppa1.1-hp
                    425:                ;;
                    426:        hp9k8[0-9][13679] | hp8[0-9][13679])
                    427:                basic_machine=hppa1.1-hp
                    428:                ;;
                    429:        hp9k8[0-9][0-9] | hp8[0-9][0-9])
                    430:                basic_machine=hppa1.0-hp
                    431:                ;;
                    432:        hppa-next)
                    433:                os=-nextstep3
                    434:                ;;
                    435:        hppaosf)
                    436:                basic_machine=hppa1.1-hp
                    437:                os=-osf
                    438:                ;;
                    439:        hppro)
                    440:                basic_machine=hppa1.1-hp
                    441:                os=-proelf
                    442:                ;;
                    443:        i370-ibm* | ibm*)
                    444:                basic_machine=i370-ibm
                    445:                ;;
                    446: # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
                    447:        i[34567]86v32)
                    448:                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                    449:                os=-sysv32
                    450:                ;;
                    451:        i[34567]86v4*)
                    452:                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                    453:                os=-sysv4
                    454:                ;;
                    455:        i[34567]86v)
                    456:                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                    457:                os=-sysv
                    458:                ;;
                    459:        i[34567]86sol2)
                    460:                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                    461:                os=-solaris2
                    462:                ;;
                    463:        i386mach)
                    464:                basic_machine=i386-mach
                    465:                os=-mach
                    466:                ;;
                    467:        i386-vsta | vsta)
                    468:                basic_machine=i386-unknown
                    469:                os=-vsta
                    470:                ;;
                    471:        i386-go32 | go32)
                    472:                basic_machine=i386-unknown
                    473:                os=-go32
                    474:                ;;
                    475:        i386-mingw32 | mingw32)
                    476:                basic_machine=i386-unknown
                    477:                os=-mingw32
                    478:                ;;
                    479:        iris | iris4d)
                    480:                basic_machine=mips-sgi
                    481:                case $os in
                    482:                    -irix*)
                    483:                        ;;
                    484:                    *)
                    485:                        os=-irix4
                    486:                        ;;
                    487:                esac
                    488:                ;;
                    489:        isi68 | isi)
                    490:                basic_machine=m68k-isi
                    491:                os=-sysv
                    492:                ;;
                    493:        m88k-omron*)
                    494:                basic_machine=m88k-omron
                    495:                ;;
                    496:        magnum | m3230)
                    497:                basic_machine=mips-mips
                    498:                os=-sysv
                    499:                ;;
                    500:        merlin)
                    501:                basic_machine=ns32k-utek
                    502:                os=-sysv
                    503:                ;;
                    504:        miniframe)
                    505:                basic_machine=m68000-convergent
                    506:                ;;
1.2       veillard  507:        *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
1.1       daniel    508:                basic_machine=m68k-atari
                    509:                os=-mint
                    510:                ;;
                    511:        mipsel*-linux*)
                    512:                basic_machine=mipsel-unknown
                    513:                os=-linux-gnu
                    514:                ;;
                    515:        mips*-linux*)
                    516:                basic_machine=mips-unknown
                    517:                os=-linux-gnu
                    518:                ;;
                    519:        mips3*-*)
                    520:                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
                    521:                ;;
                    522:        mips3*)
                    523:                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
                    524:                ;;
1.5     ! veillard  525:        mmix*)
        !           526:                basic_machine=mmix-knuth
        !           527:                os=-mmixware
        !           528:                ;;
1.1       daniel    529:        monitor)
                    530:                basic_machine=m68k-rom68k
                    531:                os=-coff
                    532:                ;;
                    533:        msdos)
                    534:                basic_machine=i386-unknown
                    535:                os=-msdos
                    536:                ;;
1.2       veillard  537:        mvs)
                    538:                basic_machine=i370-ibm
                    539:                os=-mvs
                    540:                ;;
1.1       daniel    541:        ncr3000)
                    542:                basic_machine=i486-ncr
                    543:                os=-sysv4
                    544:                ;;
                    545:        netbsd386)
                    546:                basic_machine=i386-unknown
                    547:                os=-netbsd
                    548:                ;;
                    549:        netwinder)
1.2       veillard  550:                basic_machine=armv4l-rebel
1.1       daniel    551:                os=-linux
                    552:                ;;
                    553:        news | news700 | news800 | news900)
                    554:                basic_machine=m68k-sony
                    555:                os=-newsos
                    556:                ;;
                    557:        news1000)
                    558:                basic_machine=m68030-sony
                    559:                os=-newsos
                    560:                ;;
                    561:        news-3600 | risc-news)
                    562:                basic_machine=mips-sony
                    563:                os=-newsos
                    564:                ;;
                    565:        necv70)
                    566:                basic_machine=v70-nec
                    567:                os=-sysv
                    568:                ;;
                    569:        next | m*-next )
                    570:                basic_machine=m68k-next
                    571:                case $os in
                    572:                    -nextstep* )
                    573:                        ;;
                    574:                    -ns2*)
                    575:                      os=-nextstep2
                    576:                        ;;
                    577:                    *)
                    578:                      os=-nextstep3
                    579:                        ;;
                    580:                esac
                    581:                ;;
                    582:        nh3000)
                    583:                basic_machine=m68k-harris
                    584:                os=-cxux
                    585:                ;;
                    586:        nh[45]000)
                    587:                basic_machine=m88k-harris
                    588:                os=-cxux
                    589:                ;;
                    590:        nindy960)
                    591:                basic_machine=i960-intel
                    592:                os=-nindy
                    593:                ;;
                    594:        mon960)
                    595:                basic_machine=i960-intel
                    596:                os=-mon960
                    597:                ;;
                    598:        np1)
                    599:                basic_machine=np1-gould
                    600:                ;;
1.5     ! veillard  601:        nsr-tandem)
        !           602:                basic_machine=nsr-tandem
        !           603:                ;;
1.1       daniel    604:        op50n-* | op60c-*)
                    605:                basic_machine=hppa1.1-oki
                    606:                os=-proelf
                    607:                ;;
                    608:        OSE68000 | ose68000)
                    609:                basic_machine=m68000-ericsson
                    610:                os=-ose
                    611:                ;;
                    612:        os68k)
                    613:                basic_machine=m68k-none
                    614:                os=-os68k
                    615:                ;;
                    616:        pa-hitachi)
                    617:                basic_machine=hppa1.1-hitachi
                    618:                os=-hiuxwe2
                    619:                ;;
                    620:        paragon)
                    621:                basic_machine=i860-intel
                    622:                os=-osf
                    623:                ;;
                    624:        pbd)
                    625:                basic_machine=sparc-tti
                    626:                ;;
                    627:        pbb)
                    628:                basic_machine=m68k-tti
                    629:                ;;
                    630:         pc532 | pc532-*)
                    631:                basic_machine=ns32k-pc532
                    632:                ;;
                    633:        pentium | p5 | k5 | k6 | nexen)
                    634:                basic_machine=i586-pc
                    635:                ;;
                    636:        pentiumpro | p6 | 6x86)
                    637:                basic_machine=i686-pc
                    638:                ;;
                    639:        pentiumii | pentium2)
                    640:                basic_machine=i786-pc
                    641:                ;;
                    642:        pentium-* | p5-* | k5-* | k6-* | nexen-*)
                    643:                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
                    644:                ;;
                    645:        pentiumpro-* | p6-* | 6x86-*)
                    646:                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                    647:                ;;
                    648:        pentiumii-* | pentium2-*)
                    649:                basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
                    650:                ;;
                    651:        pn)
                    652:                basic_machine=pn-gould
                    653:                ;;
                    654:        power)  basic_machine=rs6000-ibm
                    655:                ;;
                    656:        ppc)    basic_machine=powerpc-unknown
                    657:                ;;
                    658:        ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
                    659:                ;;
                    660:        ppcle | powerpclittle | ppc-le | powerpc-little)
                    661:                basic_machine=powerpcle-unknown
                    662:                ;;
                    663:        ppcle-* | powerpclittle-*)
                    664:                basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
                    665:                ;;
                    666:        ps2)
                    667:                basic_machine=i386-ibm
                    668:                ;;
                    669:        rom68k)
                    670:                basic_machine=m68k-rom68k
                    671:                os=-coff
                    672:                ;;
                    673:        rm[46]00)
                    674:                basic_machine=mips-siemens
                    675:                ;;
                    676:        rtpc | rtpc-*)
                    677:                basic_machine=romp-ibm
                    678:                ;;
                    679:        sa29200)
                    680:                basic_machine=a29k-amd
                    681:                os=-udi
                    682:                ;;
                    683:        sequent)
                    684:                basic_machine=i386-sequent
                    685:                ;;
                    686:        sh)
                    687:                basic_machine=sh-hitachi
                    688:                os=-hms
                    689:                ;;
                    690:        sparclite-wrs)
                    691:                basic_machine=sparclite-wrs
                    692:                os=-vxworks
                    693:                ;;
                    694:        sps7)
                    695:                basic_machine=m68k-bull
                    696:                os=-sysv2
                    697:                ;;
                    698:        spur)
                    699:                basic_machine=spur-unknown
                    700:                ;;
                    701:        st2000)
                    702:                basic_machine=m68k-tandem
                    703:                ;;
                    704:        stratus)
                    705:                basic_machine=i860-stratus
                    706:                os=-sysv4
                    707:                ;;
                    708:        sun2)
                    709:                basic_machine=m68000-sun
                    710:                ;;
                    711:        sun2os3)
                    712:                basic_machine=m68000-sun
                    713:                os=-sunos3
                    714:                ;;
                    715:        sun2os4)
                    716:                basic_machine=m68000-sun
                    717:                os=-sunos4
                    718:                ;;
                    719:        sun3os3)
                    720:                basic_machine=m68k-sun
                    721:                os=-sunos3
                    722:                ;;
                    723:        sun3os4)
                    724:                basic_machine=m68k-sun
                    725:                os=-sunos4
                    726:                ;;
                    727:        sun4os3)
                    728:                basic_machine=sparc-sun
                    729:                os=-sunos3
                    730:                ;;
                    731:        sun4os4)
                    732:                basic_machine=sparc-sun
                    733:                os=-sunos4
                    734:                ;;
                    735:        sun4sol2)
                    736:                basic_machine=sparc-sun
                    737:                os=-solaris2
                    738:                ;;
                    739:        sun3 | sun3-*)
                    740:                basic_machine=m68k-sun
                    741:                ;;
                    742:        sun4)
                    743:                basic_machine=sparc-sun
                    744:                ;;
                    745:        sun386 | sun386i | roadrunner)
                    746:                basic_machine=i386-sun
                    747:                ;;
1.5     ! veillard  748:        sv1)
        !           749:                basic_machine=sv1-cray
        !           750:                os=-unicos
        !           751:                ;;
1.1       daniel    752:        symmetry)
                    753:                basic_machine=i386-sequent
                    754:                os=-dynix
                    755:                ;;
                    756:        t3e)
                    757:                basic_machine=t3e-cray
                    758:                os=-unicos
                    759:                ;;
                    760:        tx39)
                    761:                basic_machine=mipstx39-unknown
                    762:                ;;
                    763:        tx39el)
                    764:                basic_machine=mipstx39el-unknown
                    765:                ;;
                    766:        tower | tower-32)
                    767:                basic_machine=m68k-ncr
                    768:                ;;
                    769:        udi29k)
                    770:                basic_machine=a29k-amd
                    771:                os=-udi
                    772:                ;;
                    773:        ultra3)
                    774:                basic_machine=a29k-nyu
                    775:                os=-sym1
                    776:                ;;
                    777:        v810 | necv810)
                    778:                basic_machine=v810-nec
                    779:                os=-none
                    780:                ;;
                    781:        vaxv)
                    782:                basic_machine=vax-dec
                    783:                os=-sysv
                    784:                ;;
                    785:        vms)
                    786:                basic_machine=vax-dec
                    787:                os=-vms
                    788:                ;;
                    789:        vpp*|vx|vx-*)
                    790:                basic_machine=f301-fujitsu
                    791:                ;;
                    792:        vxworks960)
                    793:                basic_machine=i960-wrs
                    794:                os=-vxworks
                    795:                ;;
                    796:        vxworks68)
                    797:                basic_machine=m68k-wrs
                    798:                os=-vxworks
                    799:                ;;
                    800:        vxworks29k)
                    801:                basic_machine=a29k-wrs
                    802:                os=-vxworks
                    803:                ;;
                    804:        w65*)
                    805:                basic_machine=w65-wdc
                    806:                os=-none
                    807:                ;;
                    808:        w89k-*)
                    809:                basic_machine=hppa1.1-winbond
                    810:                os=-proelf
                    811:                ;;
                    812:        xmp)
                    813:                basic_machine=xmp-cray
                    814:                os=-unicos
                    815:                ;;
                    816:         xps | xps100)
                    817:                basic_machine=xps100-honeywell
                    818:                ;;
                    819:        z8k-*-coff)
                    820:                basic_machine=z8k-unknown
                    821:                os=-sim
                    822:                ;;
                    823:        none)
                    824:                basic_machine=none-none
                    825:                os=-none
                    826:                ;;
                    827: 
                    828: # Here we handle the default manufacturer of certain CPU types.  It is in
                    829: # some cases the only manufacturer, in others, it is the most popular.
                    830:        w89k)
                    831:                basic_machine=hppa1.1-winbond
                    832:                ;;
                    833:        op50n)
                    834:                basic_machine=hppa1.1-oki
                    835:                ;;
                    836:        op60c)
                    837:                basic_machine=hppa1.1-oki
                    838:                ;;
                    839:        mips)
                    840:                if [ x$os = x-linux-gnu ]; then
                    841:                        basic_machine=mips-unknown
                    842:                else
                    843:                        basic_machine=mips-mips
                    844:                fi
                    845:                ;;
                    846:        romp)
                    847:                basic_machine=romp-ibm
                    848:                ;;
                    849:        rs6000)
                    850:                basic_machine=rs6000-ibm
                    851:                ;;
                    852:        vax)
                    853:                basic_machine=vax-dec
                    854:                ;;
                    855:        pdp11)
                    856:                basic_machine=pdp11-dec
                    857:                ;;
                    858:        we32k)
                    859:                basic_machine=we32k-att
                    860:                ;;
                    861:        sparc | sparcv9)
                    862:                basic_machine=sparc-sun
                    863:                ;;
                    864:         cydra)
                    865:                basic_machine=cydra-cydrome
                    866:                ;;
                    867:        orion)
                    868:                basic_machine=orion-highlevel
                    869:                ;;
                    870:        orion105)
                    871:                basic_machine=clipper-highlevel
                    872:                ;;
                    873:        mac | mpw | mac-mpw)
                    874:                basic_machine=m68k-apple
                    875:                ;;
                    876:        pmac | pmac-mpw)
                    877:                basic_machine=powerpc-apple
                    878:                ;;
                    879:        c4x*)
                    880:                basic_machine=c4x-none
                    881:                os=-coff
                    882:                ;;
                    883:        *)
                    884:                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
                    885:                exit 1
                    886:                ;;
                    887: esac
                    888: 
                    889: # Here we canonicalize certain aliases for manufacturers.
                    890: case $basic_machine in
                    891:        *-digital*)
                    892:                basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
                    893:                ;;
                    894:        *-commodore*)
                    895:                basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
                    896:                ;;
                    897:        *)
                    898:                ;;
                    899: esac
                    900: 
                    901: # Decode manufacturer-specific aliases for certain operating systems.
                    902: 
                    903: if [ x"$os" != x"" ]
                    904: then
                    905: case $os in
                    906:         # First match some system type aliases
                    907:         # that might get confused with valid system types.
                    908:        # -solaris* is a basic system type, with this one exception.
                    909:        -solaris1 | -solaris1.*)
                    910:                os=`echo $os | sed -e 's|solaris1|sunos4|'`
                    911:                ;;
                    912:        -solaris)
                    913:                os=-solaris2
                    914:                ;;
                    915:        -svr4*)
                    916:                os=-sysv4
                    917:                ;;
                    918:        -unixware*)
                    919:                os=-sysv4.2uw
                    920:                ;;
                    921:        -gnu/linux*)
                    922:                os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
                    923:                ;;
                    924:        # First accept the basic system types.
                    925:        # The portable systems comes first.
                    926:        # Each alternative MUST END IN A *, to match a version number.
                    927:        # -sysv* is not here because it comes later, after sysvr4.
                    928:        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
                    929:              | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
                    930:              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
                    931:              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
                    932:              | -aos* \
                    933:              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
                    934:              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
                    935:              | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
                    936:              | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
                    937:              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
                    938:              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
                    939:              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
                    940:              | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
1.5     ! veillard  941:              | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
        !           942:              | -openstep* | -oskit*)
1.1       daniel    943:        # Remember, each alternative MUST END IN *, to match a version number.
                    944:                ;;
1.5     ! veillard  945:        -qnx*)
        !           946:                case $basic_machine in
        !           947:                    x86-* | i[34567]86-*)
        !           948:                        ;;
        !           949:                    *)
        !           950:                        os=-nto$os
        !           951:                        ;;
        !           952:                esac
        !           953:                ;;
        !           954:        -nto*)
        !           955:                os=-nto-qnx
        !           956:                ;;
1.1       daniel    957:        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
                    958:              | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
1.5     ! veillard  959:              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1.1       daniel    960:                ;;
                    961:        -mac*)
                    962:                os=`echo $os | sed -e 's|mac|macos|'`
                    963:                ;;
                    964:        -linux*)
                    965:                os=`echo $os | sed -e 's|linux|linux-gnu|'`
                    966:                ;;
                    967:        -sunos5*)
                    968:                os=`echo $os | sed -e 's|sunos5|solaris2|'`
                    969:                ;;
                    970:        -sunos6*)
                    971:                os=`echo $os | sed -e 's|sunos6|solaris3|'`
                    972:                ;;
1.2       veillard  973:        -opened*)
                    974:                os=-openedition
                    975:                ;;
1.5     ! veillard  976:        -wince*)
        !           977:                os=-wince
        !           978:                ;;
1.1       daniel    979:        -osfrose*)
                    980:                os=-osfrose
                    981:                ;;
                    982:        -osf*)
                    983:                os=-osf
                    984:                ;;
                    985:        -utek*)
                    986:                os=-bsd
                    987:                ;;
                    988:        -dynix*)
                    989:                os=-bsd
                    990:                ;;
                    991:        -acis*)
                    992:                os=-aos
                    993:                ;;
                    994:        -386bsd)
                    995:                os=-bsd
                    996:                ;;
                    997:        -ctix* | -uts*)
                    998:                os=-sysv
                    999:                ;;
                   1000:        -ns2 )
                   1001:                os=-nextstep2
                   1002:                ;;
1.5     ! veillard 1003:        -nsk)
        !          1004:                os=-nsk
        !          1005:                ;;
1.1       daniel   1006:        # Preserve the version number of sinix5.
                   1007:        -sinix5.*)
                   1008:                os=`echo $os | sed -e 's|sinix|sysv|'`
                   1009:                ;;
                   1010:        -sinix*)
                   1011:                os=-sysv4
                   1012:                ;;
                   1013:        -triton*)
                   1014:                os=-sysv3
                   1015:                ;;
                   1016:        -oss*)
                   1017:                os=-sysv3
1.2       veillard 1018:                ;;
1.1       daniel   1019:        -svr4)
                   1020:                os=-sysv4
                   1021:                ;;
                   1022:        -svr3)
                   1023:                os=-sysv3
                   1024:                ;;
                   1025:        -sysvr4)
                   1026:                os=-sysv4
                   1027:                ;;
                   1028:        # This must come after -sysvr4.
                   1029:        -sysv*)
                   1030:                ;;
                   1031:        -ose*)
                   1032:                os=-ose
                   1033:                ;;
                   1034:        -es1800*)
                   1035:                os=-ose
                   1036:                ;;
                   1037:        -xenix)
                   1038:                os=-xenix
                   1039:                ;;
                   1040:         -*mint | -*MiNT)
                   1041:                os=-mint
                   1042:                ;;
                   1043:        -none)
                   1044:                ;;
                   1045:        *)
                   1046:                # Get rid of the `-' at the beginning of $os.
                   1047:                os=`echo $os | sed 's/[^-]*-//'`
                   1048:                echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
                   1049:                exit 1
                   1050:                ;;
                   1051: esac
                   1052: else
                   1053: 
                   1054: # Here we handle the default operating systems that come with various machines.
                   1055: # The value should be what the vendor currently ships out the door with their
                   1056: # machine or put another way, the most popular os provided with the machine.
                   1057: 
                   1058: # Note that if you're going to try to match "-MANUFACTURER" here (say,
                   1059: # "-sun"), then you have to tell the case statement up towards the top
                   1060: # that MANUFACTURER isn't an operating system.  Otherwise, code above
                   1061: # will signal an error saying that MANUFACTURER isn't an operating
                   1062: # system, and we'll never get to this point.
                   1063: 
                   1064: case $basic_machine in
                   1065:        *-acorn)
                   1066:                os=-riscix1.2
                   1067:                ;;
1.2       veillard 1068:        arm*-rebel)
1.1       daniel   1069:                os=-linux
                   1070:                ;;
                   1071:        arm*-semi)
                   1072:                os=-aout
                   1073:                ;;
                   1074:         pdp11-*)
                   1075:                os=-none
                   1076:                ;;
                   1077:        *-dec | vax-*)
                   1078:                os=-ultrix4.2
                   1079:                ;;
                   1080:        m68*-apollo)
                   1081:                os=-domain
                   1082:                ;;
                   1083:        i386-sun)
                   1084:                os=-sunos4.0.2
                   1085:                ;;
                   1086:        m68000-sun)
                   1087:                os=-sunos3
                   1088:                # This also exists in the configure program, but was not the
                   1089:                # default.
                   1090:                # os=-sunos4
                   1091:                ;;
                   1092:        m68*-cisco)
                   1093:                os=-aout
                   1094:                ;;
                   1095:        mips*-cisco)
                   1096:                os=-elf
                   1097:                ;;
                   1098:        mips*-*)
                   1099:                os=-elf
                   1100:                ;;
                   1101:        *-tti)  # must be before sparc entry or we get the wrong os.
                   1102:                os=-sysv3
                   1103:                ;;
                   1104:        sparc-* | *-sun)
                   1105:                os=-sunos4.1.1
                   1106:                ;;
                   1107:        *-be)
                   1108:                os=-beos
                   1109:                ;;
                   1110:        *-ibm)
                   1111:                os=-aix
                   1112:                ;;
                   1113:        *-wec)
                   1114:                os=-proelf
                   1115:                ;;
                   1116:        *-winbond)
                   1117:                os=-proelf
                   1118:                ;;
                   1119:        *-oki)
                   1120:                os=-proelf
                   1121:                ;;
                   1122:        *-hp)
                   1123:                os=-hpux
                   1124:                ;;
                   1125:        *-hitachi)
                   1126:                os=-hiux
                   1127:                ;;
                   1128:        i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
                   1129:                os=-sysv
                   1130:                ;;
                   1131:        *-cbm)
                   1132:                os=-amigaos
                   1133:                ;;
                   1134:        *-dg)
                   1135:                os=-dgux
                   1136:                ;;
                   1137:        *-dolphin)
                   1138:                os=-sysv3
                   1139:                ;;
                   1140:        m68k-ccur)
                   1141:                os=-rtu
                   1142:                ;;
                   1143:        m88k-omron*)
                   1144:                os=-luna
                   1145:                ;;
                   1146:        *-next )
                   1147:                os=-nextstep
                   1148:                ;;
                   1149:        *-sequent)
                   1150:                os=-ptx
                   1151:                ;;
                   1152:        *-crds)
                   1153:                os=-unos
                   1154:                ;;
                   1155:        *-ns)
                   1156:                os=-genix
                   1157:                ;;
                   1158:        i370-*)
                   1159:                os=-mvs
                   1160:                ;;
                   1161:        *-next)
                   1162:                os=-nextstep3
                   1163:                ;;
                   1164:         *-gould)
                   1165:                os=-sysv
                   1166:                ;;
                   1167:         *-highlevel)
                   1168:                os=-bsd
                   1169:                ;;
                   1170:        *-encore)
                   1171:                os=-bsd
                   1172:                ;;
                   1173:         *-sgi)
                   1174:                os=-irix
                   1175:                ;;
                   1176:         *-siemens)
                   1177:                os=-sysv4
                   1178:                ;;
                   1179:        *-masscomp)
                   1180:                os=-rtu
                   1181:                ;;
                   1182:        f301-fujitsu)
                   1183:                os=-uxpv
                   1184:                ;;
                   1185:        *-rom68k)
                   1186:                os=-coff
                   1187:                ;;
                   1188:        *-*bug)
                   1189:                os=-coff
                   1190:                ;;
                   1191:        *-apple)
                   1192:                os=-macos
                   1193:                ;;
                   1194:        *-atari*)
                   1195:                os=-mint
                   1196:                ;;
                   1197:        *)
                   1198:                os=-none
                   1199:                ;;
                   1200: esac
                   1201: fi
                   1202: 
                   1203: # Here we handle the case where we know the os, and the CPU type, but not the
                   1204: # manufacturer.  We pick the logical manufacturer.
                   1205: vendor=unknown
                   1206: case $basic_machine in
                   1207:        *-unknown)
                   1208:                case $os in
                   1209:                        -riscix*)
                   1210:                                vendor=acorn
                   1211:                                ;;
                   1212:                        -sunos*)
                   1213:                                vendor=sun
                   1214:                                ;;
                   1215:                        -aix*)
                   1216:                                vendor=ibm
                   1217:                                ;;
                   1218:                        -beos*)
                   1219:                                vendor=be
                   1220:                                ;;
                   1221:                        -hpux*)
                   1222:                                vendor=hp
                   1223:                                ;;
                   1224:                        -mpeix*)
                   1225:                                vendor=hp
                   1226:                                ;;
                   1227:                        -hiux*)
                   1228:                                vendor=hitachi
                   1229:                                ;;
                   1230:                        -unos*)
                   1231:                                vendor=crds
                   1232:                                ;;
                   1233:                        -dgux*)
                   1234:                                vendor=dg
                   1235:                                ;;
                   1236:                        -luna*)
                   1237:                                vendor=omron
                   1238:                                ;;
                   1239:                        -genix*)
                   1240:                                vendor=ns
                   1241:                                ;;
1.2       veillard 1242:                        -mvs* | -opened*)
1.1       daniel   1243:                                vendor=ibm
                   1244:                                ;;
                   1245:                        -ptx*)
                   1246:                                vendor=sequent
                   1247:                                ;;
                   1248:                        -vxsim* | -vxworks*)
                   1249:                                vendor=wrs
                   1250:                                ;;
                   1251:                        -aux*)
                   1252:                                vendor=apple
                   1253:                                ;;
                   1254:                        -hms*)
                   1255:                                vendor=hitachi
                   1256:                                ;;
                   1257:                        -mpw* | -macos*)
                   1258:                                vendor=apple
                   1259:                                ;;
                   1260:                        -*mint | -*MiNT)
                   1261:                                vendor=atari
                   1262:                                ;;
                   1263:                esac
                   1264:                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
                   1265:                ;;
                   1266: esac
                   1267: 
                   1268: echo $basic_machine$os

Webmaster