/[svn]/hopm/trunk/config.sub
ViewVC logotype

Annotation of /hopm/trunk/config.sub

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9863 - (hide annotations)
Sat Jan 2 18:39:36 2021 UTC (4 months ago) by michael
File size: 34262 byte(s)
- autoreconf

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

Properties

Name Value
svn:eol-style native
svn:executable
svn:keywords Id

svnadmin@ircd-hybrid.org
ViewVC Help
Powered by ViewVC 1.1.28