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