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