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