ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/config.sub
Revision: 1.9
Committed: Thu May 13 14:36:29 2021 UTC (3 years ago) by sf-exg
Branch: MAIN
CVS Tags: rxvt-unicode-rel-9_26, rxvt-unicode-rel-9_25
Changes since 1.8: +1351 -1281 lines
Log Message:
Update config.{guess,sub}

File Contents

# User Rev Content
1 ayin 1.1 #! /bin/sh
2     # Configuration validation subroutine script.
3 sf-exg 1.9 # Copyright 1992-2021 Free Software Foundation, Inc.
4 sf-exg 1.8
5 sf-exg 1.9 timestamp='2021-04-30'
6 sf-exg 1.8
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 root 1.7 # the Free Software Foundation; either version 3 of the License, or
10 ayin 1.1 # (at your option) any later version.
11     #
12 sf-exg 1.8 # 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 ayin 1.1 #
17     # You should have received a copy of the GNU General Public License
18 sf-exg 1.9 # along with this program; if not, see <https://www.gnu.org/licenses/>.
19 ayin 1.1 #
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 sf-exg 1.8 # 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 ayin 1.1
27    
28 sf-exg 1.9 # Please send patches to <config-patches@gnu.org>.
29 ayin 1.1 #
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 sf-exg 1.3 # You can get the latest version of this script from:
36 sf-exg 1.9 # https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
37 sf-exg 1.3
38 ayin 1.1 # 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 sf-exg 1.9 me=$(echo "$0" | sed -e 's,.*/,,')
54 ayin 1.1
55     usage="\
56 sf-exg 1.9 Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57 ayin 1.1
58     Canonicalize a configuration name.
59    
60 sf-exg 1.9 Options:
61 ayin 1.1 -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 sf-exg 1.9 Copyright 1992-2021 Free Software Foundation, Inc.
71 ayin 1.1
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 sf-exg 1.9 echo "$me: invalid option $1$help" >&2
93 ayin 1.1 exit 1 ;;
94    
95     *local*)
96     # First pass through any local machine types.
97 sf-exg 1.9 echo "$1"
98 ayin 1.1 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 sf-exg 1.9 # 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 ayin 1.1 ;;
125 sf-exg 1.9 *-*-*-*)
126     basic_machine=$field1-$field2
127     basic_os=$field3-$field4
128 ayin 1.1 ;;
129 sf-exg 1.9 *-*-*)
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 ayin 1.1 ;;
151 sf-exg 1.9 *-*)
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 ayin 1.2 ;;
187 sf-exg 1.9 *)
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 ayin 1.1 ;;
641 sf-exg 1.9 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 ayin 1.1 ;;
651 sf-exg 1.9 op50n)
652     cpu=hppa1.1
653     vendor=oki
654 ayin 1.1 ;;
655 sf-exg 1.9 op60c)
656     cpu=hppa1.1
657     vendor=oki
658 ayin 1.1 ;;
659 sf-exg 1.9 ibm*)
660     cpu=i370
661     vendor=ibm
662 ayin 1.1 ;;
663 sf-exg 1.9 orion105)
664     cpu=clipper
665     vendor=highlevel
666 sf-exg 1.8 ;;
667 sf-exg 1.9 mac | mpw | mac-mpw)
668     cpu=m68k
669     vendor=apple
670 sf-exg 1.8 ;;
671 sf-exg 1.9 pmac | pmac-mpw)
672     cpu=powerpc
673     vendor=apple
674 sf-exg 1.4 ;;
675    
676 ayin 1.1 # 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 sf-exg 1.9 cpu=m68000
680     vendor=att
681 ayin 1.1 ;;
682     3b*)
683 sf-exg 1.9 cpu=we32k
684     vendor=att
685 sf-exg 1.3 ;;
686     bluegene*)
687 sf-exg 1.9 cpu=powerpc
688     vendor=ibm
689     basic_os=cnk
690 ayin 1.1 ;;
691     decsystem10* | dec10*)
692 sf-exg 1.9 cpu=pdp10
693     vendor=dec
694     basic_os=tops10
695 ayin 1.1 ;;
696     decsystem20* | dec20*)
697 sf-exg 1.9 cpu=pdp10
698     vendor=dec
699     basic_os=tops20
700 ayin 1.1 ;;
701     delta | 3300 | motorola-3300 | motorola-delta \
702     | 3300-motorola | delta-motorola)
703 sf-exg 1.9 cpu=m68k
704     vendor=motorola
705 ayin 1.1 ;;
706 sf-exg 1.9 dpx2*)
707     cpu=m68k
708     vendor=bull
709     basic_os=sysv3
710 ayin 1.1 ;;
711     encore | umax | mmax)
712 sf-exg 1.9 cpu=ns32k
713     vendor=encore
714 ayin 1.1 ;;
715 sf-exg 1.9 elxsi)
716     cpu=elxsi
717     vendor=elxsi
718     basic_os=${basic_os:-bsd}
719 ayin 1.1 ;;
720     fx2800)
721 sf-exg 1.9 cpu=i860
722     vendor=alliant
723 ayin 1.1 ;;
724     genix)
725 sf-exg 1.9 cpu=ns32k
726     vendor=ns
727 ayin 1.1 ;;
728     h3050r* | hiux*)
729 sf-exg 1.9 cpu=hppa1.1
730     vendor=hitachi
731     basic_os=hiuxwe2
732 ayin 1.1 ;;
733     hp3k9[0-9][0-9] | hp9[0-9][0-9])
734 sf-exg 1.9 cpu=hppa1.0
735     vendor=hp
736 ayin 1.1 ;;
737     hp9k2[0-9][0-9] | hp9k31[0-9])
738 sf-exg 1.9 cpu=m68000
739     vendor=hp
740 ayin 1.1 ;;
741     hp9k3[2-9][0-9])
742 sf-exg 1.9 cpu=m68k
743     vendor=hp
744 ayin 1.1 ;;
745     hp9k6[0-9][0-9] | hp6[0-9][0-9])
746 sf-exg 1.9 cpu=hppa1.0
747     vendor=hp
748 ayin 1.1 ;;
749     hp9k7[0-79][0-9] | hp7[0-79][0-9])
750 sf-exg 1.9 cpu=hppa1.1
751     vendor=hp
752 ayin 1.1 ;;
753     hp9k78[0-9] | hp78[0-9])
754     # FIXME: really hppa2.0-hp
755 sf-exg 1.9 cpu=hppa1.1
756     vendor=hp
757 ayin 1.1 ;;
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 sf-exg 1.9 cpu=hppa1.1
761     vendor=hp
762 ayin 1.1 ;;
763     hp9k8[0-9][13679] | hp8[0-9][13679])
764 sf-exg 1.9 cpu=hppa1.1
765     vendor=hp
766 ayin 1.1 ;;
767     hp9k8[0-9][0-9] | hp8[0-9][0-9])
768 sf-exg 1.9 cpu=hppa1.0
769     vendor=hp
770 ayin 1.1 ;;
771     i*86v32)
772 sf-exg 1.9 cpu=$(echo "$1" | sed -e 's/86.*/86/')
773     vendor=pc
774     basic_os=sysv32
775 ayin 1.1 ;;
776     i*86v4*)
777 sf-exg 1.9 cpu=$(echo "$1" | sed -e 's/86.*/86/')
778     vendor=pc
779     basic_os=sysv4
780 ayin 1.1 ;;
781     i*86v)
782 sf-exg 1.9 cpu=$(echo "$1" | sed -e 's/86.*/86/')
783     vendor=pc
784     basic_os=sysv
785 ayin 1.1 ;;
786     i*86sol2)
787 sf-exg 1.9 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 ayin 1.1 ;;
796     iris | iris4d)
797 sf-exg 1.9 cpu=mips
798     vendor=sgi
799     case $basic_os in
800     irix*)
801 ayin 1.1 ;;
802     *)
803 sf-exg 1.9 basic_os=irix4
804 ayin 1.1 ;;
805     esac
806     ;;
807     miniframe)
808 sf-exg 1.9 cpu=m68000
809     vendor=convergent
810 ayin 1.1 ;;
811 sf-exg 1.9 *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
812     cpu=m68k
813     vendor=atari
814     basic_os=mint
815 ayin 1.1 ;;
816     news-3600 | risc-news)
817 sf-exg 1.9 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 ayin 1.1 ;;
829 sf-exg 1.9 ns2*)
830     basic_os=nextstep2
831 ayin 1.1 ;;
832     *)
833 sf-exg 1.9 basic_os=nextstep3
834 ayin 1.1 ;;
835     esac
836     ;;
837     np1)
838 sf-exg 1.9 cpu=np1
839     vendor=gould
840 ayin 1.1 ;;
841     op50n-* | op60c-*)
842 sf-exg 1.9 cpu=hppa1.1
843     vendor=oki
844     basic_os=proelf
845 ayin 1.1 ;;
846     pa-hitachi)
847 sf-exg 1.9 cpu=hppa1.1
848     vendor=hitachi
849     basic_os=hiuxwe2
850 sf-exg 1.3 ;;
851 ayin 1.1 pbd)
852 sf-exg 1.9 cpu=sparc
853     vendor=tti
854 ayin 1.1 ;;
855     pbb)
856 sf-exg 1.9 cpu=m68k
857     vendor=tti
858 ayin 1.1 ;;
859 sf-exg 1.9 pc532)
860     cpu=ns32k
861     vendor=pc532
862 ayin 1.1 ;;
863 sf-exg 1.9 pn)
864     cpu=pn
865     vendor=gould
866 ayin 1.2 ;;
867 sf-exg 1.9 power)
868     cpu=power
869     vendor=ibm
870 ayin 1.2 ;;
871 sf-exg 1.9 ps2)
872     cpu=i386
873     vendor=ibm
874 ayin 1.1 ;;
875 sf-exg 1.9 rm[46]00)
876     cpu=mips
877     vendor=siemens
878 ayin 1.1 ;;
879 sf-exg 1.9 rtpc | rtpc-*)
880     cpu=romp
881     vendor=ibm
882 ayin 1.1 ;;
883 sf-exg 1.9 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 ayin 1.1 ;;
893 sf-exg 1.9 tower | tower-32)
894     cpu=m68k
895     vendor=ncr
896 ayin 1.1 ;;
897 sf-exg 1.9 vpp*|vx|vx-*)
898     cpu=f301
899     vendor=fujitsu
900 ayin 1.1 ;;
901 sf-exg 1.9 w65)
902     cpu=w65
903     vendor=wdc
904 ayin 1.1 ;;
905 sf-exg 1.9 w89k-*)
906     cpu=hppa1.1
907     vendor=winbond
908     basic_os=proelf
909 ayin 1.1 ;;
910 sf-exg 1.9 none)
911     cpu=none
912     vendor=none
913 ayin 1.1 ;;
914 sf-exg 1.9 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 ayin 1.1 ;;
929 sf-exg 1.9 # 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 ayin 1.1 ;;
936 sf-exg 1.9 # 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 ayin 1.1 ;;
942 sf-exg 1.9 x64 | amd64)
943     cpu=x86_64
944     vendor=pc
945 ayin 1.1 ;;
946 sf-exg 1.9 # Recognize the basic CPU types without company name.
947     *)
948     cpu=$basic_machine
949     vendor=unknown
950 ayin 1.1 ;;
951 sf-exg 1.9 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 ayin 1.1 ;;
963 sf-exg 1.9 c90-unknown | c90-cray)
964     vendor=cray
965     basic_os=${Basic_os:-unicos}
966 ayin 1.1 ;;
967 sf-exg 1.9 fx80-unknown)
968     vendor=alliant
969 ayin 1.1 ;;
970 sf-exg 1.9 romp-unknown)
971     vendor=ibm
972 ayin 1.1 ;;
973 sf-exg 1.9 mmix-unknown)
974     vendor=knuth
975 ayin 1.1 ;;
976 sf-exg 1.9 microblaze-unknown | microblazeel-unknown)
977     vendor=xilinx
978 ayin 1.1 ;;
979 sf-exg 1.9 rs6000-unknown)
980     vendor=ibm
981 ayin 1.1 ;;
982 sf-exg 1.9 vax-unknown)
983     vendor=dec
984 ayin 1.1 ;;
985 sf-exg 1.9 pdp11-unknown)
986     vendor=dec
987 ayin 1.1 ;;
988 sf-exg 1.9 we32k-unknown)
989     vendor=att
990 ayin 1.1 ;;
991 sf-exg 1.9 cydra-unknown)
992     vendor=cydrome
993 ayin 1.1 ;;
994 sf-exg 1.9 i370-ibm*)
995     vendor=ibm
996 ayin 1.1 ;;
997 sf-exg 1.9 orion-unknown)
998     vendor=highlevel
999 ayin 1.1 ;;
1000 sf-exg 1.9 xps-unknown | xps100-unknown)
1001     cpu=xps100
1002     vendor=honeywell
1003 ayin 1.2 ;;
1004 sf-exg 1.9
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 ayin 1.1 ;;
1011 sf-exg 1.9
1012     # Here we normalize CPU types irrespective of the vendor
1013     amd64-*)
1014     cpu=x86_64
1015 ayin 1.1 ;;
1016 sf-exg 1.9 blackfin-*)
1017     cpu=bfin
1018     basic_os=linux
1019 ayin 1.1 ;;
1020 sf-exg 1.9 c54x-*)
1021     cpu=tic54x
1022 ayin 1.2 ;;
1023 sf-exg 1.9 c55x-*)
1024     cpu=tic55x
1025 ayin 1.1 ;;
1026 sf-exg 1.9 c6x-*)
1027     cpu=tic6x
1028 ayin 1.1 ;;
1029 sf-exg 1.9 e500v[12]-*)
1030     cpu=powerpc
1031     basic_os=${basic_os}"spe"
1032 ayin 1.1 ;;
1033 sf-exg 1.9 mips3*-*)
1034     cpu=mips64
1035 ayin 1.1 ;;
1036 sf-exg 1.9 ms1-*)
1037     cpu=mt
1038 ayin 1.1 ;;
1039 sf-exg 1.9 m68knommu-*)
1040     cpu=m68k
1041     basic_os=linux
1042 ayin 1.1 ;;
1043 sf-exg 1.9 m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1044     cpu=s12z
1045 sf-exg 1.4 ;;
1046 sf-exg 1.9 openrisc-*)
1047     cpu=or32
1048 ayin 1.1 ;;
1049 sf-exg 1.9 parisc-*)
1050     cpu=hppa
1051     basic_os=linux
1052 ayin 1.1 ;;
1053 sf-exg 1.9 pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1054     cpu=i586
1055 ayin 1.1 ;;
1056 sf-exg 1.9 pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
1057     cpu=i686
1058 ayin 1.1 ;;
1059 sf-exg 1.9 pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1060     cpu=i686
1061 ayin 1.1 ;;
1062 sf-exg 1.9 pentium4-*)
1063     cpu=i786
1064 ayin 1.1 ;;
1065 sf-exg 1.9 pc98-*)
1066     cpu=i386
1067 ayin 1.1 ;;
1068 sf-exg 1.9 ppc-* | ppcbe-*)
1069     cpu=powerpc
1070 ayin 1.1 ;;
1071 sf-exg 1.9 ppcle-* | powerpclittle-*)
1072     cpu=powerpcle
1073 ayin 1.1 ;;
1074 sf-exg 1.9 ppc64-*)
1075     cpu=powerpc64
1076 ayin 1.1 ;;
1077 sf-exg 1.9 ppc64le-* | powerpc64little-*)
1078     cpu=powerpc64le
1079 ayin 1.1 ;;
1080 sf-exg 1.9 sb1-*)
1081     cpu=mipsisa64sb1
1082 ayin 1.1 ;;
1083 sf-exg 1.9 sb1el-*)
1084     cpu=mipsisa64sb1el
1085 ayin 1.1 ;;
1086 sf-exg 1.9 sh5e[lb]-*)
1087     cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
1088 ayin 1.1 ;;
1089 sf-exg 1.9 spur-*)
1090     cpu=spur
1091 ayin 1.1 ;;
1092 sf-exg 1.9 strongarm-* | thumb-*)
1093     cpu=arm
1094 ayin 1.1 ;;
1095 sf-exg 1.9 tx39-*)
1096     cpu=mipstx39
1097 ayin 1.1 ;;
1098 sf-exg 1.9 tx39el-*)
1099     cpu=mipstx39el
1100 ayin 1.1 ;;
1101 sf-exg 1.9 x64-*)
1102     cpu=x86_64
1103 ayin 1.1 ;;
1104 sf-exg 1.4 xscale-* | xscalee[bl]-*)
1105 sf-exg 1.9 cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
1106 sf-exg 1.3 ;;
1107 sf-exg 1.9 arm64-*)
1108     cpu=aarch64
1109 ayin 1.1 ;;
1110    
1111 sf-exg 1.9 # 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 ayin 1.1 ;;
1116 sf-exg 1.9 crisv32-* | etraxfs*-*)
1117     cpu=crisv32
1118     vendor=axis
1119 ayin 1.1 ;;
1120 sf-exg 1.9 cris-* | etrax*-*)
1121     cpu=cris
1122     vendor=axis
1123 ayin 1.1 ;;
1124 sf-exg 1.9 crx-*)
1125     basic_os=${basic_os:-elf}
1126 ayin 1.1 ;;
1127 sf-exg 1.9 neo-tandem)
1128     cpu=neo
1129     vendor=tandem
1130 ayin 1.1 ;;
1131 sf-exg 1.9 nse-tandem)
1132     cpu=nse
1133     vendor=tandem
1134 ayin 1.1 ;;
1135 sf-exg 1.9 nsr-tandem)
1136     cpu=nsr
1137     vendor=tandem
1138 ayin 1.1 ;;
1139 sf-exg 1.9 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 ayin 1.1 ;;
1151 sf-exg 1.9 tile*-*)
1152     basic_os=${basic_os:-linux-gnu}
1153 ayin 1.1 ;;
1154 sf-exg 1.9
1155 ayin 1.1 *)
1156 sf-exg 1.9 # 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 | arc64 \
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     | mipsisa32r3 | mipsisa32r3el \
1208     | mipsisa32r5 | mipsisa32r5el \
1209     | mipsisa32r6 | mipsisa32r6el \
1210     | mipsisa64 | mipsisa64el \
1211     | mipsisa64r2 | mipsisa64r2el \
1212     | mipsisa64r3 | mipsisa64r3el \
1213     | mipsisa64r5 | mipsisa64r5el \
1214     | mipsisa64r6 | mipsisa64r6el \
1215     | mipsisa64sb1 | mipsisa64sb1el \
1216     | mipsisa64sr71k | mipsisa64sr71kel \
1217     | mipsr5900 | mipsr5900el \
1218     | mipstx39 | mipstx39el \
1219     | mmix \
1220     | mn10200 | mn10300 \
1221     | moxie \
1222     | mt \
1223     | msp430 \
1224     | nds32 | nds32le | nds32be \
1225     | nfp \
1226     | nios | nios2 | nios2eb | nios2el \
1227     | none | np1 | ns16k | ns32k | nvptx \
1228     | open8 \
1229     | or1k* \
1230     | or32 \
1231     | orion \
1232     | picochip \
1233     | pdp10 | pdp11 | pj | pjl | pn | power \
1234     | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1235     | pru \
1236     | pyramid \
1237     | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
1238     | rl78 | romp | rs6000 | rx \
1239     | s390 | s390x \
1240     | score \
1241     | sh | shl \
1242     | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1243     | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1244     | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1245     | sparclite \
1246     | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1247     | spu \
1248     | tahoe \
1249     | thumbv7* \
1250     | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1251     | tron \
1252     | ubicom32 \
1253     | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1254     | vax \
1255     | visium \
1256     | w65 \
1257     | wasm32 | wasm64 \
1258     | we32k \
1259     | x86 | x86_64 | xc16x | xgate | xps100 \
1260     | xstormy16 | xtensa* \
1261     | ymp \
1262     | z8k | z80)
1263     ;;
1264    
1265     *)
1266     echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1267     exit 1
1268     ;;
1269     esac
1270 ayin 1.1 ;;
1271     esac
1272    
1273     # Here we canonicalize certain aliases for manufacturers.
1274 sf-exg 1.9 case $vendor in
1275     digital*)
1276     vendor=dec
1277 ayin 1.1 ;;
1278 sf-exg 1.9 commodore*)
1279     vendor=cbm
1280 ayin 1.1 ;;
1281     *)
1282     ;;
1283     esac
1284    
1285     # Decode manufacturer-specific aliases for certain operating systems.
1286    
1287 sf-exg 1.9 if test x$basic_os != x
1288 ayin 1.1 then
1289 sf-exg 1.9
1290     # First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
1291     # set os.
1292     case $basic_os in
1293     gnu/linux*)
1294     kernel=linux
1295     os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|')
1296     ;;
1297     os2-emx)
1298     kernel=os2
1299     os=$(echo $basic_os | sed -e 's|os2-emx|emx|')
1300     ;;
1301     nto-qnx*)
1302     kernel=nto
1303     os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|')
1304     ;;
1305     *-*)
1306     # shellcheck disable=SC2162
1307     IFS="-" read kernel os <<EOF
1308     $basic_os
1309     EOF
1310     ;;
1311     # Default OS when just kernel was specified
1312     nto*)
1313     kernel=nto
1314     os=$(echo $basic_os | sed -e 's|nto|qnx|')
1315     ;;
1316     linux*)
1317     kernel=linux
1318     os=$(echo $basic_os | sed -e 's|linux|gnu|')
1319     ;;
1320     *)
1321     kernel=
1322     os=$basic_os
1323     ;;
1324     esac
1325    
1326     # Now, normalize the OS (knowing we just have one component, it's not a kernel,
1327     # etc.)
1328 ayin 1.1 case $os in
1329 sf-exg 1.9 # First match some system type aliases that might get confused
1330     # with valid system types.
1331     # solaris* is a basic system type, with this one exception.
1332     auroraux)
1333     os=auroraux
1334 sf-exg 1.3 ;;
1335 sf-exg 1.9 bluegene*)
1336     os=cnk
1337 ayin 1.1 ;;
1338 sf-exg 1.9 solaris1 | solaris1.*)
1339     os=$(echo $os | sed -e 's|solaris1|sunos4|')
1340 ayin 1.1 ;;
1341 sf-exg 1.9 solaris)
1342     os=solaris2
1343 ayin 1.1 ;;
1344 sf-exg 1.9 unixware*)
1345     os=sysv4.2uw
1346 ayin 1.1 ;;
1347 sf-exg 1.9 # es1800 is here to avoid being matched by es* (a different OS)
1348     es1800*)
1349     os=ose
1350 ayin 1.1 ;;
1351 sf-exg 1.9 # Some version numbers need modification
1352     chorusos*)
1353     os=chorusos
1354 ayin 1.1 ;;
1355 sf-exg 1.9 isc)
1356     os=isc2.2
1357 ayin 1.1 ;;
1358 sf-exg 1.9 sco6)
1359     os=sco5v6
1360 ayin 1.1 ;;
1361 sf-exg 1.9 sco5)
1362     os=sco3.2v5
1363 ayin 1.1 ;;
1364 sf-exg 1.9 sco4)
1365     os=sco3.2v4
1366 ayin 1.1 ;;
1367 sf-exg 1.9 sco3.2.[4-9]*)
1368     os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
1369 ayin 1.1 ;;
1370 sf-exg 1.9 sco*v* | scout)
1371     # Don't match below
1372 ayin 1.1 ;;
1373 sf-exg 1.9 sco*)
1374     os=sco3.2v2
1375 ayin 1.1 ;;
1376 sf-exg 1.9 psos*)
1377     os=psos
1378 ayin 1.1 ;;
1379 sf-exg 1.9 qnx*)
1380     os=qnx
1381 ayin 1.1 ;;
1382 sf-exg 1.9 hiux*)
1383     os=hiuxwe2
1384 ayin 1.1 ;;
1385 sf-exg 1.9 lynx*178)
1386     os=lynxos178
1387 ayin 1.1 ;;
1388 sf-exg 1.9 lynx*5)
1389     os=lynxos5
1390 ayin 1.1 ;;
1391 sf-exg 1.9 lynxos*)
1392     # don't get caught up in next wildcard
1393 ayin 1.1 ;;
1394 sf-exg 1.9 lynx*)
1395     os=lynxos
1396 ayin 1.1 ;;
1397 sf-exg 1.9 mac[0-9]*)
1398     os=$(echo "$os" | sed -e 's|mac|macos|')
1399 ayin 1.1 ;;
1400 sf-exg 1.9 opened*)
1401     os=openedition
1402 ayin 1.1 ;;
1403 sf-exg 1.9 os400*)
1404     os=os400
1405 ayin 1.1 ;;
1406 sf-exg 1.9 sunos5*)
1407     os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
1408 ayin 1.1 ;;
1409 sf-exg 1.9 sunos6*)
1410     os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
1411 ayin 1.1 ;;
1412 sf-exg 1.9 wince*)
1413     os=wince
1414 ayin 1.1 ;;
1415 sf-exg 1.9 utek*)
1416     os=bsd
1417 ayin 1.1 ;;
1418 sf-exg 1.9 dynix*)
1419     os=bsd
1420 ayin 1.1 ;;
1421 sf-exg 1.9 acis*)
1422     os=aos
1423 ayin 1.1 ;;
1424 sf-exg 1.9 atheos*)
1425     os=atheos
1426 ayin 1.1 ;;
1427 sf-exg 1.9 syllable*)
1428     os=syllable
1429 ayin 1.1 ;;
1430 sf-exg 1.9 386bsd)
1431     os=bsd
1432 ayin 1.1 ;;
1433 sf-exg 1.9 ctix* | uts*)
1434     os=sysv
1435 ayin 1.1 ;;
1436 sf-exg 1.9 nova*)
1437     os=rtmk-nova
1438 ayin 1.1 ;;
1439 sf-exg 1.9 ns2)
1440     os=nextstep2
1441 ayin 1.1 ;;
1442 sf-exg 1.9 # Preserve the version number of sinix5.
1443     sinix5.*)
1444     os=$(echo $os | sed -e 's|sinix|sysv|')
1445 ayin 1.1 ;;
1446 sf-exg 1.9 sinix*)
1447     os=sysv4
1448 ayin 1.1 ;;
1449 sf-exg 1.9 tpf*)
1450     os=tpf
1451 ayin 1.1 ;;
1452 sf-exg 1.9 triton*)
1453     os=sysv3
1454 ayin 1.1 ;;
1455 sf-exg 1.9 oss*)
1456     os=sysv3
1457 ayin 1.1 ;;
1458 sf-exg 1.9 svr4*)
1459     os=sysv4
1460 ayin 1.1 ;;
1461 sf-exg 1.9 svr3)
1462     os=sysv3
1463 ayin 1.1 ;;
1464 sf-exg 1.9 sysvr4)
1465     os=sysv4
1466 ayin 1.1 ;;
1467 sf-exg 1.9 ose*)
1468     os=ose
1469 ayin 1.1 ;;
1470 sf-exg 1.9 *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1471     os=mint
1472 sf-exg 1.3 ;;
1473 sf-exg 1.9 dicos*)
1474     os=dicos
1475 sf-exg 1.4 ;;
1476 sf-exg 1.9 pikeos*)
1477     # Until real need of OS specific support for
1478     # particular features comes up, bare metal
1479     # configurations are quite functional.
1480     case $cpu in
1481     arm*)
1482     os=eabi
1483     ;;
1484     *)
1485     os=elf
1486     ;;
1487     esac
1488 ayin 1.1 ;;
1489     *)
1490 sf-exg 1.9 # No normalization, but not necessarily accepted, that comes below.
1491 ayin 1.1 ;;
1492     esac
1493 sf-exg 1.9
1494 ayin 1.1 else
1495    
1496     # Here we handle the default operating systems that come with various machines.
1497     # The value should be what the vendor currently ships out the door with their
1498     # machine or put another way, the most popular os provided with the machine.
1499    
1500     # Note that if you're going to try to match "-MANUFACTURER" here (say,
1501     # "-sun"), then you have to tell the case statement up towards the top
1502     # that MANUFACTURER isn't an operating system. Otherwise, code above
1503     # will signal an error saying that MANUFACTURER isn't an operating
1504     # system, and we'll never get to this point.
1505    
1506 sf-exg 1.9 kernel=
1507     case $cpu-$vendor in
1508 sf-exg 1.4 score-*)
1509 sf-exg 1.9 os=elf
1510 ayin 1.2 ;;
1511 sf-exg 1.4 spu-*)
1512 sf-exg 1.9 os=elf
1513 ayin 1.2 ;;
1514 ayin 1.1 *-acorn)
1515 sf-exg 1.9 os=riscix1.2
1516 ayin 1.1 ;;
1517     arm*-rebel)
1518 sf-exg 1.9 kernel=linux
1519     os=gnu
1520 ayin 1.1 ;;
1521     arm*-semi)
1522 sf-exg 1.9 os=aout
1523 ayin 1.1 ;;
1524 sf-exg 1.4 c4x-* | tic4x-*)
1525 sf-exg 1.9 os=coff
1526 sf-exg 1.4 ;;
1527 sf-exg 1.8 c8051-*)
1528 sf-exg 1.9 os=elf
1529     ;;
1530     clipper-intergraph)
1531     os=clix
1532 sf-exg 1.8 ;;
1533     hexagon-*)
1534 sf-exg 1.9 os=elf
1535 sf-exg 1.8 ;;
1536 sf-exg 1.4 tic54x-*)
1537 sf-exg 1.9 os=coff
1538 sf-exg 1.4 ;;
1539     tic55x-*)
1540 sf-exg 1.9 os=coff
1541 sf-exg 1.4 ;;
1542     tic6x-*)
1543 sf-exg 1.9 os=coff
1544 ayin 1.2 ;;
1545 ayin 1.1 # This must come before the *-dec entry.
1546     pdp10-*)
1547 sf-exg 1.9 os=tops20
1548 ayin 1.1 ;;
1549     pdp11-*)
1550 sf-exg 1.9 os=none
1551 ayin 1.1 ;;
1552     *-dec | vax-*)
1553 sf-exg 1.9 os=ultrix4.2
1554 ayin 1.1 ;;
1555     m68*-apollo)
1556 sf-exg 1.9 os=domain
1557 ayin 1.1 ;;
1558     i386-sun)
1559 sf-exg 1.9 os=sunos4.0.2
1560 ayin 1.1 ;;
1561     m68000-sun)
1562 sf-exg 1.9 os=sunos3
1563 ayin 1.1 ;;
1564     m68*-cisco)
1565 sf-exg 1.9 os=aout
1566 ayin 1.1 ;;
1567 sf-exg 1.4 mep-*)
1568 sf-exg 1.9 os=elf
1569 ayin 1.2 ;;
1570 ayin 1.1 mips*-cisco)
1571 sf-exg 1.9 os=elf
1572 ayin 1.1 ;;
1573     mips*-*)
1574 sf-exg 1.9 os=elf
1575 ayin 1.1 ;;
1576     or32-*)
1577 sf-exg 1.9 os=coff
1578 ayin 1.1 ;;
1579     *-tti) # must be before sparc entry or we get the wrong os.
1580 sf-exg 1.9 os=sysv3
1581 ayin 1.1 ;;
1582     sparc-* | *-sun)
1583 sf-exg 1.9 os=sunos4.1.1
1584     ;;
1585     pru-*)
1586     os=elf
1587 ayin 1.1 ;;
1588     *-be)
1589 sf-exg 1.9 os=beos
1590 ayin 1.1 ;;
1591     *-ibm)
1592 sf-exg 1.9 os=aix
1593 ayin 1.1 ;;
1594 sf-exg 1.4 *-knuth)
1595 sf-exg 1.9 os=mmixware
1596 ayin 1.1 ;;
1597     *-wec)
1598 sf-exg 1.9 os=proelf
1599 ayin 1.1 ;;
1600     *-winbond)
1601 sf-exg 1.9 os=proelf
1602 ayin 1.1 ;;
1603     *-oki)
1604 sf-exg 1.9 os=proelf
1605 ayin 1.1 ;;
1606     *-hp)
1607 sf-exg 1.9 os=hpux
1608 ayin 1.1 ;;
1609     *-hitachi)
1610 sf-exg 1.9 os=hiux
1611 ayin 1.1 ;;
1612     i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1613 sf-exg 1.9 os=sysv
1614 ayin 1.1 ;;
1615     *-cbm)
1616 sf-exg 1.9 os=amigaos
1617 ayin 1.1 ;;
1618     *-dg)
1619 sf-exg 1.9 os=dgux
1620 ayin 1.1 ;;
1621     *-dolphin)
1622 sf-exg 1.9 os=sysv3
1623 ayin 1.1 ;;
1624     m68k-ccur)
1625 sf-exg 1.9 os=rtu
1626 ayin 1.1 ;;
1627     m88k-omron*)
1628 sf-exg 1.9 os=luna
1629 ayin 1.1 ;;
1630 sf-exg 1.9 *-next)
1631     os=nextstep
1632 ayin 1.1 ;;
1633     *-sequent)
1634 sf-exg 1.9 os=ptx
1635 ayin 1.1 ;;
1636     *-crds)
1637 sf-exg 1.9 os=unos
1638 ayin 1.1 ;;
1639     *-ns)
1640 sf-exg 1.9 os=genix
1641 ayin 1.1 ;;
1642     i370-*)
1643 sf-exg 1.9 os=mvs
1644 ayin 1.1 ;;
1645     *-gould)
1646 sf-exg 1.9 os=sysv
1647 ayin 1.1 ;;
1648     *-highlevel)
1649 sf-exg 1.9 os=bsd
1650 ayin 1.1 ;;
1651     *-encore)
1652 sf-exg 1.9 os=bsd
1653 ayin 1.1 ;;
1654     *-sgi)
1655 sf-exg 1.9 os=irix
1656 ayin 1.1 ;;
1657     *-siemens)
1658 sf-exg 1.9 os=sysv4
1659 ayin 1.1 ;;
1660     *-masscomp)
1661 sf-exg 1.9 os=rtu
1662 ayin 1.1 ;;
1663     f30[01]-fujitsu | f700-fujitsu)
1664 sf-exg 1.9 os=uxpv
1665 ayin 1.1 ;;
1666     *-rom68k)
1667 sf-exg 1.9 os=coff
1668 ayin 1.1 ;;
1669     *-*bug)
1670 sf-exg 1.9 os=coff
1671 ayin 1.1 ;;
1672     *-apple)
1673 sf-exg 1.9 os=macos
1674 ayin 1.1 ;;
1675     *-atari*)
1676 sf-exg 1.9 os=mint
1677     ;;
1678     *-wrs)
1679     os=vxworks
1680 ayin 1.1 ;;
1681     *)
1682 sf-exg 1.9 os=none
1683 ayin 1.1 ;;
1684     esac
1685 sf-exg 1.9
1686 ayin 1.1 fi
1687    
1688 sf-exg 1.9 # Now, validate our (potentially fixed-up) OS.
1689     case $os in
1690     # Sometimes we do "kernel-libc", so those need to count as OSes.
1691     musl* | newlib* | uclibc*)
1692     ;;
1693     # Likewise for "kernel-abi"
1694     eabi* | gnueabi*)
1695     ;;
1696     # VxWorks passes extra cpu info in the 4th filed.
1697     simlinux | simwindows | spe)
1698     ;;
1699     # Now accept the basic system types.
1700     # The portable systems comes first.
1701     # Each alternative MUST end in a * to match a version number.
1702     gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1703     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
1704     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1705     | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
1706     | hiux* | abug | nacl* | netware* | windows* \
1707     | os9* | macos* | osx* | ios* \
1708     | mpw* | magic* | mmixware* | mon960* | lnews* \
1709     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1710     | aos* | aros* | cloudabi* | sortix* | twizzler* \
1711     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1712     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1713     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
1714     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
1715     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
1716     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1717     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1718     | udi* | lites* | ieee* | go32* | aux* | hcos* \
1719     | chorusrdb* | cegcc* | glidix* | serenity* \
1720     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1721     | midipix* | mingw32* | mingw64* | mint* \
1722     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1723     | interix* | uwin* | mks* | rhapsody* | darwin* \
1724     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1725     | storm-chaos* | tops10* | tenex* | tops20* | its* \
1726     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
1727     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
1728     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1729     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1730     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1731     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1732     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
1733     ;;
1734     # This one is extra strict with allowed versions
1735     sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
1736     # Don't forget version if it is 3.2v4 or newer.
1737     ;;
1738     none)
1739     ;;
1740     *)
1741     echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
1742     exit 1
1743     ;;
1744     esac
1745    
1746     # As a final step for OS-related things, validate the OS-kernel combination
1747     # (given a valid OS), if there is a kernel.
1748     case $kernel-$os in
1749     linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
1750     ;;
1751     uclinux-uclibc* )
1752     ;;
1753     -dietlibc* | -newlib* | -musl* | -uclibc* )
1754     # These are just libc implementations, not actual OSes, and thus
1755     # require a kernel.
1756     echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
1757     exit 1
1758     ;;
1759     kfreebsd*-gnu* | kopensolaris*-gnu*)
1760     ;;
1761     vxworks-simlinux | vxworks-simwindows | vxworks-spe)
1762     ;;
1763     nto-qnx*)
1764     ;;
1765     os2-emx)
1766     ;;
1767     *-eabi* | *-gnueabi*)
1768     ;;
1769     -*)
1770     # Blank kernel with real OS is always fine.
1771     ;;
1772     *-*)
1773     echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
1774     exit 1
1775     ;;
1776     esac
1777    
1778 ayin 1.1 # Here we handle the case where we know the os, and the CPU type, but not the
1779     # manufacturer. We pick the logical manufacturer.
1780 sf-exg 1.9 case $vendor in
1781     unknown)
1782     case $cpu-$os in
1783     *-riscix*)
1784 ayin 1.1 vendor=acorn
1785     ;;
1786 sf-exg 1.9 *-sunos*)
1787 ayin 1.1 vendor=sun
1788     ;;
1789 sf-exg 1.9 *-cnk* | *-aix*)
1790 ayin 1.1 vendor=ibm
1791     ;;
1792 sf-exg 1.9 *-beos*)
1793 ayin 1.1 vendor=be
1794     ;;
1795 sf-exg 1.9 *-hpux*)
1796 ayin 1.1 vendor=hp
1797     ;;
1798 sf-exg 1.9 *-mpeix*)
1799 ayin 1.1 vendor=hp
1800     ;;
1801 sf-exg 1.9 *-hiux*)
1802 ayin 1.1 vendor=hitachi
1803     ;;
1804 sf-exg 1.9 *-unos*)
1805 ayin 1.1 vendor=crds
1806     ;;
1807 sf-exg 1.9 *-dgux*)
1808 ayin 1.1 vendor=dg
1809     ;;
1810 sf-exg 1.9 *-luna*)
1811 ayin 1.1 vendor=omron
1812     ;;
1813 sf-exg 1.9 *-genix*)
1814 ayin 1.1 vendor=ns
1815     ;;
1816 sf-exg 1.9 *-clix*)
1817     vendor=intergraph
1818     ;;
1819     *-mvs* | *-opened*)
1820     vendor=ibm
1821     ;;
1822     *-os400*)
1823 ayin 1.1 vendor=ibm
1824     ;;
1825 sf-exg 1.9 s390-* | s390x-*)
1826 ayin 1.1 vendor=ibm
1827     ;;
1828 sf-exg 1.9 *-ptx*)
1829 ayin 1.1 vendor=sequent
1830     ;;
1831 sf-exg 1.9 *-tpf*)
1832 ayin 1.1 vendor=ibm
1833     ;;
1834 sf-exg 1.9 *-vxsim* | *-vxworks* | *-windiss*)
1835 ayin 1.1 vendor=wrs
1836     ;;
1837 sf-exg 1.9 *-aux*)
1838 ayin 1.1 vendor=apple
1839     ;;
1840 sf-exg 1.9 *-hms*)
1841 ayin 1.1 vendor=hitachi
1842     ;;
1843 sf-exg 1.9 *-mpw* | *-macos*)
1844 ayin 1.1 vendor=apple
1845     ;;
1846 sf-exg 1.9 *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
1847 ayin 1.1 vendor=atari
1848     ;;
1849 sf-exg 1.9 *-vos*)
1850 ayin 1.1 vendor=stratus
1851     ;;
1852     esac
1853     ;;
1854     esac
1855    
1856 sf-exg 1.9 echo "$cpu-$vendor-${kernel:+$kernel-}$os"
1857 ayin 1.1 exit
1858    
1859     # Local variables:
1860 sf-exg 1.9 # eval: (add-hook 'before-save-hook 'time-stamp)
1861 ayin 1.1 # time-stamp-start: "timestamp='"
1862     # time-stamp-format: "%:y-%02m-%02d"
1863     # time-stamp-end: "'"
1864     # End: