Delete some obsolete LIFE stuff.
[external/binutils.git] / config.sub
1 #!/bin/sh
2 # Configuration validation subroutine script, version 1.0.
3 #   Copyright (C) 1991, 1992 Free Software Foundation, Inc.
4
5 #This file is free software; you can redistribute it and/or modify
6 #it under the terms of the GNU General Public License as published by
7 #the Free Software Foundation; either version 2 of the License, or
8 #(at your option) any later version.
9
10 #This program is distributed in the hope that it will be useful,
11 #but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #GNU General Public License for more details.
14
15 #You should have received a copy of the GNU General Public License
16 #along with this program; if not, write to the Free Software
17 #Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
19
20 # Configuration subroutine to validate and canonicalize a configuration type.
21 # Supply the specified configuration type as an argument.
22 # If it is invalid, we print an error message on stderr and exit with code 1.
23 # Otherwise, we print the canonical config type on stdout and succeed.
24
25 # This file is supposed to be the same for all GNU packages
26 # and recognize all the CPU types, system types and aliases
27 # that are meaningful with *any* GNU software.
28 # Each package is responsible for reporting which valid configurations
29 # it does not support.  The user should be able to distinguish
30 # a failure to support a valid configuration from a meaningless
31 # configuration.
32
33 # The goal of this file is to map all the various variations of a given
34 # machine specification into a single specification in the form:
35 #       CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
36 # it is wrong to echo any other type of specification
37
38 if [ x$1 = x ]
39 then
40         echo Configuration name missing. 1>&2
41         echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
42         echo "or     $0 ALIAS" 1>&2
43         echo where ALIAS is a recognized configuration type. 1>&2
44         exit 1
45 fi
46
47 # First pass through any local machine types.
48 case $1 in
49         *local*)
50                 echo $1
51                 exit 0
52                 ;;
53         *)
54         ;;
55 esac
56
57 # Separate what the user gave into CPU-COMPANY and OS (if any).
58 basic_machine=`echo $1 | sed 's/-[^-][^-]*$//'`
59 if [ $basic_machine != $1 ]
60 then os=`echo $1 | sed 's/.*-/-/'`
61 else os=; fi
62
63 # Lets recognize common machines as not being OS so that things like
64 # config.subr decstation-3100 as legal.
65 case $os in
66         -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
67         -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
68         -unicom* | -ibm* | -next* | -hp | -isi* | -apollo | -altos* | \
69         -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -osf* | \
70         -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
71         -harris | -sim)
72                 os=
73                 basic_machine=$1
74                 ;;
75         -scout)
76                 ;;
77         -sco*)
78                 os=-scosysv322
79                 basic_machine=i386-unknown
80                 ;;
81         -OSE68k | -ose68k | -OSE | -ose | -es1800)
82                 os=-ose
83                 basic_machine=m68k-ericsson
84                 ;;
85         -OSE68000 | -ose68000)
86                 os=-ose
87                 basic_machine=m68000-ericsson
88                 ;;
89         -isc*)
90                 os=-iscsysv
91                 basic_machine=i386-unknown
92                 ;;
93 # start-sanitize-v9
94         -32)
95                 basic_machine=sparc64-hal
96                 os=-hal32
97                 ;;
98         -64)
99                 basic_machine=sparc64-hal
100                 os=-hal64
101                 ;;
102         -v7)
103                 basic_machine=sparc64-sun
104                 os=-v7
105                 ;;
106 # end-sanitize-v9       
107 esac
108
109 # Decode aliases for certain CPU-COMPANY combinations.
110 case $basic_machine in
111         # Recognize the basic CPU types with without company name.
112         tahoe | i386 | i486 | i860 | m68k | m680[01234]0 | m683?2 \
113                 | m88k | ns32k | arm | pyramid \
114                 | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 | we32k\
115                 | v70 | we32k | z8k)
116                 basic_machine=$basic_machine-unknown
117                 ;;
118         # Recognize the basic CPU types with with company name.
119         vax-* | tahoe-* | i386-* | i486-* | i860-* | m68k-* \
120               | m680[01234]0-* | m683?2-* | m88k-* \
121               | sparc-* | ns32k-* | alliant-* | arm-* | c[123]* \
122               | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
123               | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
124               | hppa1.0-* | hppa1.1-* | we32k-* | z8k-*)
125                 ;;
126         # Recognize the various machine names and aliases which stand
127         # for a CPU type and a company and sometimes even an OS.
128 # start-sanitize-v9
129         sparc64-*) ;;
130         hal-32 | hal32)
131                 basic_machine=sparc64-hal
132                 os=-hal32
133                 ;;
134         hal-64 | hal64)
135                 basic_machine=sparc64-hal
136                 os=-hal64
137                 ;;
138         sparc64)
139                 basic_machine=sparc64-sun
140                 os=-v9
141                 ;;
142         sparc64-v7 | sparc64v7)
143                 basic_machine=sparc64-sun
144                 os=-v7
145                 ;;
146 # end-sanitize-v9
147
148         vaxv)
149                 basic_machine=vax-dec
150                 os=-sysv
151                 ;;
152         vms)
153                 basic_machine=vax-dec
154                 os=-vms
155                 ;;
156         i386mach)
157                 basic_machine=i386-mach
158                 os=-mach
159                 ;;
160         i386v32)
161                 basic_machine=i386-unknown
162                 os=-sysv32
163                 ;;
164         i386-sco* | i386sco | sco)
165                 basic_machine=i386-unknown
166                 os=-scosysv322
167                 ;;
168         go32 | i386-go32)
169                 basic_machine=i386-unknown
170                 os=-go32
171                 ;;
172         i386-isc* | isc)
173                 basic_machine=i386-unknown
174                 os=-iscsysv
175                 ;;
176         i386-linux* | linux)
177                 basic_machine=i386-unknown
178                 os=-linux
179                 ;;
180         i386v4*)
181                 basic_machine=i386-unknown
182                 os=-sysv4
183                 ;;
184         i486v4*)
185                 basic_machine=i486-unknown
186                 os=-sysv4
187                 ;;
188         i386v)
189                 basic_machine=i386-unknown
190                 os=-sysv
191                 ;;
192         i486v)
193                 basic_machine=i486-unknown
194                 os=-sysv
195                 ;;
196         386bsd)
197                 basic_machine=i386-unknown
198                 os=-bsd
199                 ;;
200         spur)
201                 basic_machine=spur-unknown
202                 ;;
203         alliant)
204                 basic_machine=alliant-alliant
205                 ;;
206         convex-c1)
207                 basic_machine=c1-convex
208                 os=-sysv
209                 ;;
210         convex-c2)
211                 basic_machine=c2-convex
212                 os=-sysv
213                 ;;
214         convex-c32)
215                 basic_machine=c32-convex
216                 os=-sysv
217                 ;;
218         convex-c34)
219                 basic_machine=c34-convex
220                 os=-sysv
221                 ;;
222         convex-c38)
223                 basic_machine=c38-convex
224                 os=-sysv
225                 ;;
226         m88k-omron*)
227                 basic_machine=m88k-omron
228                 ;;
229         merlin)
230                 basic_machine=ns32k-utek
231                 os=-sysv
232                 ;;
233         crds | unos)
234                 basic_machine=m68k-crds
235                 ;;
236         encore | umax | mmax)
237                 basic_machine=ns32k-encore
238                 os=-sysv
239                 ;;
240         genix)
241                 basic_machine=ns32k-ns
242                 ;;
243         iris | iris3 | iris4d)
244                 basic_machine=mips-sgi
245                 os=-irix3
246                 ;;
247         iris4)
248                 basic_machine=mips-sgi
249                 os=-irix4
250                 ;;
251         news | news700 | news800 | news900)
252                 basic_machine=m68k-sony
253                 os=-newsos
254                 ;;
255         3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
256                 basic_machine=m68k-att
257                 ;;
258         3b* | we32k* )
259                 basic_machine=we32k-att
260                 os=-sysv
261                 ;;
262         delta | 3300 | motorola-3300 | motorola-delta \
263               | 3300-motorola | delta-motorola)
264                 basic_machine=m68k-motorola
265                 ;;
266         balance)
267                 basic_machine=ns32k-sequent
268                 os=-dynix
269                 ;;
270         pc532)
271                 basic_machine=ns32k-pc532
272                 ;;
273         symmetry)
274                 basic_machine=i386-sequent
275                 os=-dynix
276                 ;;
277         sun2)
278                 basic_machine=m68000-sun
279                 ;;
280         sun2os3)
281                 basic_machine=m68000-sun
282                 os=-sunos3
283                 ;;
284         sun2os4)
285                 basic_machine=m68000-sun
286                 os=-sunos4
287                 ;;
288         sun3os3)
289                 basic_machine=m68k-sun
290                 os=-sunos3
291                 ;;
292         sun3os4)
293                 basic_machine=m68k-sun
294                 os=-sunos4
295                 ;;
296         sun4os3)
297                 basic_machine=sparc-sun
298                 os=-sunos3
299                 ;;
300         sun4os4)
301                 basic_machine=sparc-sun
302                 os=-sunos4
303                 ;;
304         sun4sol2)
305                 basic_machine=sparc-sun
306                 os=-solaris2
307                 ;;
308         z8ksim)
309                 basic_machine=z8k-unknown
310                 os=-sim
311                 ;;
312         sun3)
313                 basic_machine=m68k-sun
314                 ;;
315         sun4)
316                 basic_machine=sparc-sun
317                 ;;
318         msdos)
319                 basic_machine=i386-unknown      
320                 os=-msdos
321                 ;;
322         pbd)
323                 basic_machine=sparc-unicom
324                 ;;
325         sun386 | sun386i | roadrunner)
326                 basic_machine=i386-sun
327                 ;;
328         ps2)
329                 basic_machine=i386-ibm
330                 ;;
331         next)
332                 basic_machine=m68k-next
333                 os=-bsd
334                 ;;
335         hp9k3[2-9][0-9])
336                 basic_machine=m68k-hp
337                 ;;
338         hp9k31[0-9] | hp9k2[0-9][0-9])
339                 basic_machine=m68000-hp
340                 ;;
341         hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
342                 basic_machine=hppa1.1-hp
343                 ;;
344         hp9k8[0-9][0-9] | hp8[0-9][0-9])
345                 basic_machine=hppa1.0-hp
346                 ;;
347         isi68 | isi)
348                 basic_machine=m68k-isi
349                 os=-sysv
350                 ;;
351         apollo68)
352                 basic_machine=m68k-apollo
353                 os=-sysv
354                 ;;
355         apollo68bsd)
356                 basic_machine=m68k-apollo
357                 os=-bsd
358                 ;;
359         altos | altos3068)
360                 basic_machine=m68k-altos
361                 ;;
362         miniframe)
363                 basic_machine=m68000-convergent
364                 ;;
365         tower | tower-32)
366                 basic_machine=m68k-ncr
367                 ;;
368         news-3600 | risc-news)
369                 basic_machine=mips-sony
370                 os=-newsos
371                 ;;
372         st2000)
373                 basic_machine=m68k-tandem
374                 ;;
375         decstation-dec | decstation | decstation-3100 | pmax | pmin | dec3100 | decstatn)
376                 basic_machine=mips-dec
377                 ;;
378         magnum | m3230)
379                 basic_machine=mips-mips
380                 os=-sysv
381                 ;;
382         gmicro)
383                 basic_machine=tron-gmicro
384                 os=-sysv
385                 ;;
386         rtpc | rtpc-*)
387                 basic_machine=romp-ibm
388                 ;;
389         am29k)
390                 basic_machine=a29k-none
391                 os=-bsd
392                 ;;
393         amdahl)
394                 basic_machine=580-amdahl
395                 os=-sysv
396                 ;;
397         amigados)
398                 basic_machine=m68k-cbm
399                 os=-amigados
400                 ;;
401         amigaunix | amix)
402                 basic_machine=m68k-cbm
403                 os=-sysv4
404                 ;;
405         stratus)
406                 basic_machine=i860-stratus
407                 os=-sysv4
408                 ;;
409         cray | ymp)
410                 basic_machine=ymp-cray
411                 os=-unicos
412                 ;;
413         cray2)
414                 basic_machine=cray2-cray
415                 os=-unicos
416                 ;;
417         xmp)
418                 basic_machine=xmp-cray
419                 os=-unicos
420                 ;;
421         delta88)
422                 basic_machine=m88k-motorola
423                 os=-m88kbcs
424                 ;;
425         dpx2)
426                 basic_machine=m68k-bull
427                 os=-sysv
428                 ;;
429         ebmon29k)
430                 basic_machine=a29k-amd
431                 os=-ebmon
432                 ;;
433
434         h8300hms)
435                 basic_machine=h8300-hitachi
436                 os=-hms
437                 ;;
438         udi29k)
439                 basic_machine=a29k-amd
440                 os=-udi
441                 ;;
442         a29khif)
443                 basic_machine=a29k-amd
444                 os=-udi
445                 ;;
446         sa29200)
447                 basic_machine=a29k-amd
448                 os=-udi
449                 ;;
450         h8300xray)
451                 basic_machine=h8300-hitachi
452                 os=-xray
453                 ;;
454         harris)
455                 basic_machine=m88k-harris
456                 os=-m88kbcs
457                 ;;
458         hp300bsd)
459                 basic_machine=m68k-hp
460                 os=-bsd
461                 ;;
462         hp300hpux)
463                 basic_machine=m68k-hp
464                 os=-hpux
465                 ;;
466         hp9k2[0-9][0-9] | hp9k31[0-9])
467                 basic_machine=m68000-hp
468                 os=-hpux
469                 ;;
470         hp9k3[2-9][0-9])
471                 basic_machine=m68k-hp
472                 os=-hpux
473                 ;;
474         hppabsd)
475                 basic_machine=hppa-hp
476                 os=-bsd
477                 ;;
478         hppahpux)
479                 basic_machine=hppa-hp
480                 os=-hpux
481                 ;;
482         ncr3000)
483                 basic_machine=i486-ncr
484                 os=-sysv4
485                 ;;
486         necv70)
487                 basic_machine=v70-nec
488                 os=-sysv
489                 ;;
490         news1000)
491                 basic_machine=m68030-sony
492                 os=-newsos
493                 ;;
494         nindy960)
495                 basic_machine=i960-intel
496                 os=-nindy
497                 ;;
498         pn)
499                 basic_machine=pn-gould
500                 os=-sysv
501                 ;;
502         np1)
503                 basic_machine=np1-gould
504                 os=-sysv
505                 ;;
506         ultra3)
507                 basic_machine=a29k-nyu
508                 os=-sym1
509                 ;;
510         vxworks960)
511                 basic_machine=i960-wrs
512                 os=-vxworks
513                 ;;
514         vxworks68)
515                 basic_machine=m68k-wrs
516                 os=-vxworks
517                 ;;
518         es1800 | OSE68k | ose68k)
519                 basic_machine=m68k-ericsson
520                 os=-ose
521                 ;;
522         OSE68000 | ose68000)
523                 basic_machine=m68000-ericsson
524                 os=-ose
525                 ;;
526         os68k)
527                 basic_machine=m68k-none
528                 os=-os68k
529                 ;;
530         sparclite)
531                 basic_machine=sparclite-fujitsu
532                 os=-none
533                 ;;
534         sparclite-wrs)
535                 basic_machine=sparclite-wrs
536                 os=-vxworks
537                 ;;
538         sparcfrw)
539                 basic_machine=sparcfrw-sun
540                 os=-sunos4
541                 ;;
542         sparcfrwcompat)
543                 basic_machine=sparcfrwcompat-sun
544                 os=-sunos4
545                 ;;
546         sparclitefrw)
547                 basic_machine=sparclitefrw-fujitsu
548                 os=-none
549                 ;;
550         sparclitefrwcompat)
551                 basic_machine=sparclitefrwcompat-fujitsu
552                 os=-none
553                 ;;
554         adobe68k)
555                 basic_machine=m68010-adobe
556                 os=-scout
557                 ;;
558
559         none)
560                 basic_machine=none-none
561                 os=-none
562                 ;;
563
564 # Here we handle the default manufacturer of certain CPU types.  It is in
565 # some cases the only manufacturer, in others, it is the most popular.
566         mips)
567                 basic_machine=mips-mips
568                 ;;
569         romp)
570                 basic_machine=romp-ibm
571                 ;;
572         rs6000)
573                 basic_machine=rs6000-ibm
574                 ;;
575         vax)
576                 basic_machine=vax-dec
577                 ;;
578         sparc)
579                 basic_machine=sparc-sun
580                 ;;
581         fx2800)
582                 basic_machine=i860-alliant
583                 ;;
584         *)
585                 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
586                 exit 1
587                 ;;
588 esac
589
590 # Decode manufacturer-specific aliases for certain operating systems.
591
592 if [ "$os" ]
593 then
594 case $os in
595         # First accept the basic system types.
596         # The portable systems comes first.
597         # Each alternative must end in a *, to match a version number.
598         -bsd* | -sysv* | -mach* | -minix* | -genix* | -ultrix* \
599               | -aout | -coff | -elf \
600               | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos* | -hpux* \
601               | -unos* | -osf* | -v88r* | -luna* | -dgux* | -solaris* | -sym* \
602               | -newsos | -amigados* | -msdos* | -none* | -os68k* | -irix* \
603               | -nindy* | -vxworks* | -ebmon* | -udi | -hms* | -xray \
604               | -m88kbcs* | -go32 | -linux* | -sim | -es1800*)
605         ;;
606 # start-sanitize-v9
607         -v7 | -v9 | -hal32 | -hal64) ;;
608 # end-sanitize-v9
609
610 # Note that readline checks for newsos
611 #       -newsos*)
612 #               os=-bsd
613 #               ;;
614         -osfrose*)
615                 os=-osf
616                 ;;
617         -osf*)
618                 os=-bsd
619                 ;;
620         -dynix*)
621                 os=-bsd
622                 ;;
623         -aos*)
624                 os=-bsd
625                 ;;
626         -386bsd)
627                 os=-bsd
628                 ;;
629         -ctix* | -uts*)
630                 os=-sysv
631                 ;;
632         -svr4)
633                 os=-sysv4
634                 ;;
635         -svr3)
636                 os=-sysv3
637                 ;;
638         -ose*)
639                 os=-ose
640                 ;;
641         -es1800*)
642                 os=-ose
643                 ;;
644         *)
645                 # Get rid of the `-' at the beginning of $os.
646                 os=`echo $1 | sed 's/[^-]*-//'`
647                 echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
648                 exit 1
649                 ;;
650 esac
651 else
652
653 # Here we handle the default operating systems that come with various machines.
654 # The value should be what the vendor currently ships out the door with their
655 # machine or put another way, the most popular os provided with the machine.
656 case $basic_machine in
657         *-dec | vax-*)
658                 os=-ultrix42
659                 ;;
660         i386-sun)
661                 os=-sunos402
662                 ;;
663         m68000-sun)
664                 os=-sunos3
665                 # This also exists in the configure program, but was not the
666                 # default.
667                 # os=-sunos4
668                 ;;
669         sparc-* | *-sun)
670                 os=-sunos411
671                 ;;
672         romp-*)
673                 os=-bsd
674                 ;;
675         *-ibm)
676                 os=-aix
677                 ;;
678         *-hp)
679                 os=-hpux
680                 ;;
681         *-sgi | i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
682                 os=-sysv
683                 ;;
684         *-dg)
685                 os=-dgux
686                 ;;
687         m88k-omron*)
688                 os=-luna
689                 ;;
690         *-crds)
691                 os=-unos
692                 ;;
693         *-ns)
694                 os=-genix
695                 ;;
696         i386-*)
697                 os=-scosysv322
698                 ;;
699         *)
700                 os=-none
701                 ;;
702 esac
703 fi
704
705 # Here we handle the case where we know the os, and the CPU type, but not the
706 # manufacturer.  We pick the logical manufacturer.
707 vendor=unknown
708 case $basic_machine in
709         *-unknown)
710                 case $os in
711                         -sunos*)
712                                 vendor=sun
713                                 ;;
714                         -aix*)
715                                 vendor=ibm
716                                 ;;
717                         -hpux*)
718                                 vendor=hp
719                                 ;;
720                         -unos*)
721                                 vendor=crds
722                                 ;;
723                         -dgux*)
724                                 vendor=dg
725                                 ;;
726                         -luna*)
727                                 vendor=omron
728                                 ;;
729                         -genix*)
730                                 vendor=ns
731                                 ;;
732                         -vxworks*)
733                                 vendor=wrs
734                                 ;;
735                 esac
736                 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
737                 ;;
738 esac
739
740 echo $basic_machine$os