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