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