Annotation of ircnowd/config.sub, Revision 1.1.1.1
1.1 tomglok 1: #! /bin/sh
2: # Configuration validation subroutine script.
3: # Copyright 1992-2020 Free Software Foundation, Inc.
4:
5: timestamp='2020-12-22'
6:
7: # 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: # (at your option) any later version.
11: #
12: # 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: #
17: # You should have received a copy of the GNU General Public License
18: # along with this program; if not, see <https://www.gnu.org/licenses/>.
19: #
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: # 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:
27:
28: # Please send patches to <config-patches@gnu.org>.
29: #
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: # You can get the latest version of this script from:
36: # https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
37:
38: # 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: me=$(echo "$0" | sed -e 's,.*/,,')
54:
55: usage="\
56: Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57:
58: Canonicalize a configuration name.
59:
60: Options:
61: -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: Copyright 1992-2020 Free Software Foundation, Inc.
71:
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: echo "$me: invalid option $1$help" >&2
93: exit 1 ;;
94:
95: *local*)
96: # First pass through any local machine types.
97: echo "$1"
98: 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: # Split fields of configuration type
114: # shellcheck disable=SC2162
115: IFS="-" read field1 field2 field3 field4 <<EOF
116: $1
117: EOF
118:
119: # 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: ;;
125: *-*-*-*)
126: basic_machine=$field1-$field2
127: basic_os=$field3-$field4
128: ;;
129: *-*-*)
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: ;;
151: *-*)
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: ;;
187: *)
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: ;;
641: esac
642:
643: # Decode 1-component or ad-hoc basic machines
644: case $basic_machine in
645: # 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: ;;
651: op50n)
652: cpu=hppa1.1
653: vendor=oki
654: ;;
655: op60c)
656: cpu=hppa1.1
657: vendor=oki
658: ;;
659: ibm*)
660: cpu=i370
661: vendor=ibm
662: ;;
663: orion105)
664: cpu=clipper
665: vendor=highlevel
666: ;;
667: mac | mpw | mac-mpw)
668: cpu=m68k
669: vendor=apple
670: ;;
671: pmac | pmac-mpw)
672: cpu=powerpc
673: vendor=apple
674: ;;
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: cpu=m68000
680: vendor=att
681: ;;
682: 3b*)
683: cpu=we32k
684: vendor=att
685: ;;
686: bluegene*)
687: cpu=powerpc
688: vendor=ibm
689: basic_os=cnk
690: ;;
691: decsystem10* | dec10*)
692: cpu=pdp10
693: vendor=dec
694: basic_os=tops10
695: ;;
696: decsystem20* | dec20*)
697: cpu=pdp10
698: vendor=dec
699: basic_os=tops20
700: ;;
701: delta | 3300 | motorola-3300 | motorola-delta \
702: | 3300-motorola | delta-motorola)
703: cpu=m68k
704: vendor=motorola
705: ;;
706: dpx2*)
707: cpu=m68k
708: vendor=bull
709: basic_os=sysv3
710: ;;
711: encore | umax | mmax)
712: cpu=ns32k
713: vendor=encore
714: ;;
715: elxsi)
716: cpu=elxsi
717: vendor=elxsi
718: basic_os=${basic_os:-bsd}
719: ;;
720: fx2800)
721: cpu=i860
722: vendor=alliant
723: ;;
724: genix)
725: cpu=ns32k
726: vendor=ns
727: ;;
728: h3050r* | hiux*)
729: cpu=hppa1.1
730: vendor=hitachi
731: basic_os=hiuxwe2
732: ;;
733: hp3k9[0-9][0-9] | hp9[0-9][0-9])
734: cpu=hppa1.0
735: vendor=hp
736: ;;
737: hp9k2[0-9][0-9] | hp9k31[0-9])
738: cpu=m68000
739: vendor=hp
740: ;;
741: hp9k3[2-9][0-9])
742: cpu=m68k
743: vendor=hp
744: ;;
745: hp9k6[0-9][0-9] | hp6[0-9][0-9])
746: cpu=hppa1.0
747: vendor=hp
748: ;;
749: hp9k7[0-79][0-9] | hp7[0-79][0-9])
750: cpu=hppa1.1
751: vendor=hp
752: ;;
753: hp9k78[0-9] | hp78[0-9])
754: # FIXME: really hppa2.0-hp
755: cpu=hppa1.1
756: vendor=hp
757: ;;
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: cpu=hppa1.1
761: vendor=hp
762: ;;
763: hp9k8[0-9][13679] | hp8[0-9][13679])
764: cpu=hppa1.1
765: vendor=hp
766: ;;
767: hp9k8[0-9][0-9] | hp8[0-9][0-9])
768: cpu=hppa1.0
769: vendor=hp
770: ;;
771: i*86v32)
772: cpu=$(echo "$1" | sed -e 's/86.*/86/')
773: vendor=pc
774: basic_os=sysv32
775: ;;
776: i*86v4*)
777: cpu=$(echo "$1" | sed -e 's/86.*/86/')
778: vendor=pc
779: basic_os=sysv4
780: ;;
781: i*86v)
782: cpu=$(echo "$1" | sed -e 's/86.*/86/')
783: vendor=pc
784: basic_os=sysv
785: ;;
786: i*86sol2)
787: cpu=$(echo "$1" | sed -e 's/86.*/86/')
788: vendor=pc
789: basic_os=solaris2
790: ;;
791: j90 | j90-cray)
792: cpu=j90
793: vendor=cray
794: basic_os=${basic_os:-unicos}
795: ;;
796: iris | iris4d)
797: cpu=mips
798: vendor=sgi
799: case $basic_os in
800: irix*)
801: ;;
802: *)
803: basic_os=irix4
804: ;;
805: esac
806: ;;
807: miniframe)
808: cpu=m68000
809: vendor=convergent
810: ;;
811: *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
812: cpu=m68k
813: vendor=atari
814: basic_os=mint
815: ;;
816: news-3600 | risc-news)
817: cpu=mips
818: vendor=sony
819: basic_os=newsos
820: ;;
821: next | m*-next)
822: cpu=m68k
823: vendor=next
824: case $basic_os in
825: openstep*)
826: ;;
827: nextstep*)
828: ;;
829: ns2*)
830: basic_os=nextstep2
831: ;;
832: *)
833: basic_os=nextstep3
834: ;;
835: esac
836: ;;
837: np1)
838: cpu=np1
839: vendor=gould
840: ;;
841: op50n-* | op60c-*)
842: cpu=hppa1.1
843: vendor=oki
844: basic_os=proelf
845: ;;
846: pa-hitachi)
847: cpu=hppa1.1
848: vendor=hitachi
849: basic_os=hiuxwe2
850: ;;
851: pbd)
852: cpu=sparc
853: vendor=tti
854: ;;
855: pbb)
856: cpu=m68k
857: vendor=tti
858: ;;
859: pc532)
860: cpu=ns32k
861: vendor=pc532
862: ;;
863: pn)
864: cpu=pn
865: vendor=gould
866: ;;
867: power)
868: cpu=power
869: vendor=ibm
870: ;;
871: ps2)
872: cpu=i386
873: vendor=ibm
874: ;;
875: rm[46]00)
876: cpu=mips
877: vendor=siemens
878: ;;
879: rtpc | rtpc-*)
880: cpu=romp
881: vendor=ibm
882: ;;
883: sde)
884: cpu=mipsisa32
885: vendor=sde
886: basic_os=${basic_os:-elf}
887: ;;
888: simso-wrs)
889: cpu=sparclite
890: vendor=wrs
891: basic_os=vxworks
892: ;;
893: tower | tower-32)
894: cpu=m68k
895: vendor=ncr
896: ;;
897: vpp*|vx|vx-*)
898: cpu=f301
899: vendor=fujitsu
900: ;;
901: w65)
902: cpu=w65
903: vendor=wdc
904: ;;
905: w89k-*)
906: cpu=hppa1.1
907: vendor=winbond
908: basic_os=proelf
909: ;;
910: none)
911: cpu=none
912: vendor=none
913: ;;
914: leon|leon[3-9])
915: cpu=sparc
916: vendor=$basic_machine
917: ;;
918: leon-*|leon[3-9]-*)
919: cpu=sparc
920: vendor=$(echo "$basic_machine" | sed 's/-.*//')
921: ;;
922:
923: *-*)
924: # shellcheck disable=SC2162
925: IFS="-" read cpu vendor <<EOF
926: $basic_machine
927: EOF
928: ;;
929: # 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: ;;
936: # 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: ;;
942: x64 | amd64)
943: cpu=x86_64
944: vendor=pc
945: ;;
946: # Recognize the basic CPU types without company name.
947: *)
948: cpu=$basic_machine
949: vendor=unknown
950: ;;
951: 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: ;;
963: c90-unknown | c90-cray)
964: vendor=cray
965: basic_os=${Basic_os:-unicos}
966: ;;
967: fx80-unknown)
968: vendor=alliant
969: ;;
970: romp-unknown)
971: vendor=ibm
972: ;;
973: mmix-unknown)
974: vendor=knuth
975: ;;
976: microblaze-unknown | microblazeel-unknown)
977: vendor=xilinx
978: ;;
979: rs6000-unknown)
980: vendor=ibm
981: ;;
982: vax-unknown)
983: vendor=dec
984: ;;
985: pdp11-unknown)
986: vendor=dec
987: ;;
988: we32k-unknown)
989: vendor=att
990: ;;
991: cydra-unknown)
992: vendor=cydrome
993: ;;
994: i370-ibm*)
995: vendor=ibm
996: ;;
997: orion-unknown)
998: vendor=highlevel
999: ;;
1000: xps-unknown | xps100-unknown)
1001: cpu=xps100
1002: vendor=honeywell
1003: ;;
1004:
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: ;;
1011:
1012: # Here we normalize CPU types irrespective of the vendor
1013: amd64-*)
1014: cpu=x86_64
1015: ;;
1016: blackfin-*)
1017: cpu=bfin
1018: basic_os=linux
1019: ;;
1020: c54x-*)
1021: cpu=tic54x
1022: ;;
1023: c55x-*)
1024: cpu=tic55x
1025: ;;
1026: c6x-*)
1027: cpu=tic6x
1028: ;;
1029: e500v[12]-*)
1030: cpu=powerpc
1031: basic_os=${basic_os}"spe"
1032: ;;
1033: mips3*-*)
1034: cpu=mips64
1035: ;;
1036: ms1-*)
1037: cpu=mt
1038: ;;
1039: m68knommu-*)
1040: cpu=m68k
1041: basic_os=linux
1042: ;;
1043: m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1044: cpu=s12z
1045: ;;
1046: openrisc-*)
1047: cpu=or32
1048: ;;
1049: parisc-*)
1050: cpu=hppa
1051: basic_os=linux
1052: ;;
1053: pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1054: cpu=i586
1055: ;;
1056: pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
1057: cpu=i686
1058: ;;
1059: pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1060: cpu=i686
1061: ;;
1062: pentium4-*)
1063: cpu=i786
1064: ;;
1065: pc98-*)
1066: cpu=i386
1067: ;;
1068: ppc-* | ppcbe-*)
1069: cpu=powerpc
1070: ;;
1071: ppcle-* | powerpclittle-*)
1072: cpu=powerpcle
1073: ;;
1074: ppc64-*)
1075: cpu=powerpc64
1076: ;;
1077: ppc64le-* | powerpc64little-*)
1078: cpu=powerpc64le
1079: ;;
1080: sb1-*)
1081: cpu=mipsisa64sb1
1082: ;;
1083: sb1el-*)
1084: cpu=mipsisa64sb1el
1085: ;;
1086: sh5e[lb]-*)
1087: cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
1088: ;;
1089: spur-*)
1090: cpu=spur
1091: ;;
1092: strongarm-* | thumb-*)
1093: cpu=arm
1094: ;;
1095: tx39-*)
1096: cpu=mipstx39
1097: ;;
1098: tx39el-*)
1099: cpu=mipstx39el
1100: ;;
1101: x64-*)
1102: cpu=x86_64
1103: ;;
1104: xscale-* | xscalee[bl]-*)
1105: cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
1106: ;;
1107: arm64-*)
1108: cpu=aarch64
1109: ;;
1110:
1111: # 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: ;;
1116: crisv32-* | etraxfs*-*)
1117: cpu=crisv32
1118: vendor=axis
1119: ;;
1120: cris-* | etrax*-*)
1121: cpu=cris
1122: vendor=axis
1123: ;;
1124: crx-*)
1125: basic_os=${basic_os:-elf}
1126: ;;
1127: neo-tandem)
1128: cpu=neo
1129: vendor=tandem
1130: ;;
1131: nse-tandem)
1132: cpu=nse
1133: vendor=tandem
1134: ;;
1135: nsr-tandem)
1136: cpu=nsr
1137: vendor=tandem
1138: ;;
1139: nsv-tandem)
1140: cpu=nsv
1141: vendor=tandem
1142: ;;
1143: nsx-tandem)
1144: cpu=nsx
1145: vendor=tandem
1146: ;;
1147: mipsallegrexel-sony)
1148: cpu=mipsallegrexel
1149: vendor=sony
1150: ;;
1151: tile*-*)
1152: basic_os=${basic_os:-linux-gnu}
1153: ;;
1154:
1155: *)
1156: # 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: | loongarch32 | loongarch64 | loongarchx32 \
1189: | 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: | thumbv7* \
1246: | 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: ;;
1267: esac
1268:
1269: # Here we canonicalize certain aliases for manufacturers.
1270: case $vendor in
1271: digital*)
1272: vendor=dec
1273: ;;
1274: commodore*)
1275: vendor=cbm
1276: ;;
1277: *)
1278: ;;
1279: esac
1280:
1281: # Decode manufacturer-specific aliases for certain operating systems.
1282:
1283: if test x$basic_os != x
1284: then
1285:
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: case $os in
1325: # First match some system type aliases that might get confused
1326: # with valid system types.
1327: # solaris* is a basic system type, with this one exception.
1328: auroraux)
1329: os=auroraux
1330: ;;
1331: bluegene*)
1332: os=cnk
1333: ;;
1334: solaris1 | solaris1.*)
1335: os=$(echo $os | sed -e 's|solaris1|sunos4|')
1336: ;;
1337: solaris)
1338: os=solaris2
1339: ;;
1340: unixware*)
1341: os=sysv4.2uw
1342: ;;
1343: # es1800 is here to avoid being matched by es* (a different OS)
1344: es1800*)
1345: os=ose
1346: ;;
1347: # Some version numbers need modification
1348: chorusos*)
1349: os=chorusos
1350: ;;
1351: isc)
1352: os=isc2.2
1353: ;;
1354: sco6)
1355: os=sco5v6
1356: ;;
1357: sco5)
1358: os=sco3.2v5
1359: ;;
1360: sco4)
1361: os=sco3.2v4
1362: ;;
1363: sco3.2.[4-9]*)
1364: os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
1365: ;;
1366: sco*v* | scout)
1367: # Don't match below
1368: ;;
1369: sco*)
1370: os=sco3.2v2
1371: ;;
1372: psos*)
1373: os=psos
1374: ;;
1375: qnx*)
1376: os=qnx
1377: ;;
1378: hiux*)
1379: os=hiuxwe2
1380: ;;
1381: lynx*178)
1382: os=lynxos178
1383: ;;
1384: lynx*5)
1385: os=lynxos5
1386: ;;
1387: lynxos*)
1388: # don't get caught up in next wildcard
1389: ;;
1390: lynx*)
1391: os=lynxos
1392: ;;
1393: mac[0-9]*)
1394: os=$(echo "$os" | sed -e 's|mac|macos|')
1395: ;;
1396: opened*)
1397: os=openedition
1398: ;;
1399: os400*)
1400: os=os400
1401: ;;
1402: sunos5*)
1403: os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
1404: ;;
1405: sunos6*)
1406: os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
1407: ;;
1408: wince*)
1409: os=wince
1410: ;;
1411: utek*)
1412: os=bsd
1413: ;;
1414: dynix*)
1415: os=bsd
1416: ;;
1417: acis*)
1418: os=aos
1419: ;;
1420: atheos*)
1421: os=atheos
1422: ;;
1423: syllable*)
1424: os=syllable
1425: ;;
1426: 386bsd)
1427: os=bsd
1428: ;;
1429: ctix* | uts*)
1430: os=sysv
1431: ;;
1432: nova*)
1433: os=rtmk-nova
1434: ;;
1435: ns2)
1436: os=nextstep2
1437: ;;
1438: # Preserve the version number of sinix5.
1439: sinix5.*)
1440: os=$(echo $os | sed -e 's|sinix|sysv|')
1441: ;;
1442: sinix*)
1443: os=sysv4
1444: ;;
1445: tpf*)
1446: os=tpf
1447: ;;
1448: triton*)
1449: os=sysv3
1450: ;;
1451: oss*)
1452: os=sysv3
1453: ;;
1454: svr4*)
1455: os=sysv4
1456: ;;
1457: 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: # Until real need of OS specific support for
1474: # particular features comes up, bare metal
1475: # configurations are quite functional.
1476: case $cpu in
1477: arm*)
1478: os=eabi
1479: ;;
1480: *)
1481: os=elf
1482: ;;
1483: esac
1484: ;;
1485: *)
1486: # No normalization, but not necessarily accepted, that comes below.
1487: ;;
1488: esac
1489:
1490: 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: kernel=
1503: case $cpu-$vendor in
1504: score-*)
1505: os=elf
1506: ;;
1507: spu-*)
1508: os=elf
1509: ;;
1510: *-acorn)
1511: os=riscix1.2
1512: ;;
1513: arm*-rebel)
1514: kernel=linux
1515: os=gnu
1516: ;;
1517: arm*-semi)
1518: os=aout
1519: ;;
1520: c4x-* | tic4x-*)
1521: os=coff
1522: ;;
1523: c8051-*)
1524: os=elf
1525: ;;
1526: clipper-intergraph)
1527: os=clix
1528: ;;
1529: hexagon-*)
1530: os=elf
1531: ;;
1532: tic54x-*)
1533: os=coff
1534: ;;
1535: tic55x-*)
1536: os=coff
1537: ;;
1538: tic6x-*)
1539: os=coff
1540: ;;
1541: # This must come before the *-dec entry.
1542: pdp10-*)
1543: os=tops20
1544: ;;
1545: pdp11-*)
1546: os=none
1547: ;;
1548: *-dec | vax-*)
1549: os=ultrix4.2
1550: ;;
1551: m68*-apollo)
1552: os=domain
1553: ;;
1554: i386-sun)
1555: os=sunos4.0.2
1556: ;;
1557: m68000-sun)
1558: os=sunos3
1559: ;;
1560: m68*-cisco)
1561: os=aout
1562: ;;
1563: mep-*)
1564: os=elf
1565: ;;
1566: mips*-cisco)
1567: os=elf
1568: ;;
1569: mips*-*)
1570: os=elf
1571: ;;
1572: or32-*)
1573: os=coff
1574: ;;
1575: *-tti) # must be before sparc entry or we get the wrong os.
1576: os=sysv3
1577: ;;
1578: sparc-* | *-sun)
1579: os=sunos4.1.1
1580: ;;
1581: pru-*)
1582: os=elf
1583: ;;
1584: *-be)
1585: os=beos
1586: ;;
1587: *-ibm)
1588: os=aix
1589: ;;
1590: *-knuth)
1591: os=mmixware
1592: ;;
1593: *-wec)
1594: os=proelf
1595: ;;
1596: *-winbond)
1597: os=proelf
1598: ;;
1599: *-oki)
1600: os=proelf
1601: ;;
1602: *-hp)
1603: os=hpux
1604: ;;
1605: *-hitachi)
1606: os=hiux
1607: ;;
1608: i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1609: os=sysv
1610: ;;
1611: *-cbm)
1612: os=amigaos
1613: ;;
1614: *-dg)
1615: os=dgux
1616: ;;
1617: *-dolphin)
1618: os=sysv3
1619: ;;
1620: m68k-ccur)
1621: os=rtu
1622: ;;
1623: m88k-omron*)
1624: os=luna
1625: ;;
1626: *-next)
1627: os=nextstep
1628: ;;
1629: *-sequent)
1630: os=ptx
1631: ;;
1632: *-crds)
1633: os=unos
1634: ;;
1635: *-ns)
1636: os=genix
1637: ;;
1638: i370-*)
1639: os=mvs
1640: ;;
1641: *-gould)
1642: os=sysv
1643: ;;
1644: *-highlevel)
1645: os=bsd
1646: ;;
1647: *-encore)
1648: os=bsd
1649: ;;
1650: *-sgi)
1651: os=irix
1652: ;;
1653: *-siemens)
1654: os=sysv4
1655: ;;
1656: *-masscomp)
1657: os=rtu
1658: ;;
1659: f30[01]-fujitsu | f700-fujitsu)
1660: os=uxpv
1661: ;;
1662: *-rom68k)
1663: os=coff
1664: ;;
1665: *-*bug)
1666: os=coff
1667: ;;
1668: *-apple)
1669: os=macos
1670: ;;
1671: *-atari*)
1672: os=mint
1673: ;;
1674: *-wrs)
1675: os=vxworks
1676: ;;
1677: *)
1678: os=none
1679: ;;
1680: esac
1681:
1682: fi
1683:
1684: # 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: # 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: case $vendor in
1772: unknown)
1773: case $cpu-$os in
1774: *-riscix*)
1775: vendor=acorn
1776: ;;
1777: *-sunos*)
1778: vendor=sun
1779: ;;
1780: *-cnk* | *-aix*)
1781: vendor=ibm
1782: ;;
1783: *-beos*)
1784: vendor=be
1785: ;;
1786: *-hpux*)
1787: vendor=hp
1788: ;;
1789: *-mpeix*)
1790: vendor=hp
1791: ;;
1792: *-hiux*)
1793: vendor=hitachi
1794: ;;
1795: *-unos*)
1796: vendor=crds
1797: ;;
1798: *-dgux*)
1799: vendor=dg
1800: ;;
1801: *-luna*)
1802: vendor=omron
1803: ;;
1804: *-genix*)
1805: vendor=ns
1806: ;;
1807: *-clix*)
1808: vendor=intergraph
1809: ;;
1810: *-mvs* | *-opened*)
1811: vendor=ibm
1812: ;;
1813: *-os400*)
1814: vendor=ibm
1815: ;;
1816: s390-* | s390x-*)
1817: vendor=ibm
1818: ;;
1819: *-ptx*)
1820: vendor=sequent
1821: ;;
1822: *-tpf*)
1823: vendor=ibm
1824: ;;
1825: *-vxsim* | *-vxworks* | *-windiss*)
1826: vendor=wrs
1827: ;;
1828: *-aux*)
1829: vendor=apple
1830: ;;
1831: *-hms*)
1832: vendor=hitachi
1833: ;;
1834: *-mpw* | *-macos*)
1835: vendor=apple
1836: ;;
1837: *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
1838: vendor=atari
1839: ;;
1840: *-vos*)
1841: vendor=stratus
1842: ;;
1843: esac
1844: ;;
1845: esac
1846:
1847: echo "$cpu-$vendor-${kernel:+$kernel-}$os"
1848: exit
1849:
1850: # Local variables:
1851: # eval: (add-hook 'before-save-hook 'time-stamp)
1852: # time-stamp-start: "timestamp='"
1853: # time-stamp-format: "%:y-%02m-%02d"
1854: # time-stamp-end: "'"
1855: # End:
CVSweb