1 |
#! /bin/sh |
2 |
# Configuration validation subroutine script. |
3 |
# Copyright 1992-2021 Free Software Foundation, Inc. |
4 |
|
5 |
timestamp='2021-04-30' |
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-2021 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 | 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 |
;; |
1271 |
esac |
1272 |
|
1273 |
# Here we canonicalize certain aliases for manufacturers. |
1274 |
case $vendor in |
1275 |
digital*) |
1276 |
vendor=dec |
1277 |
;; |
1278 |
commodore*) |
1279 |
vendor=cbm |
1280 |
;; |
1281 |
*) |
1282 |
;; |
1283 |
esac |
1284 |
|
1285 |
# Decode manufacturer-specific aliases for certain operating systems. |
1286 |
|
1287 |
if test x$basic_os != x |
1288 |
then |
1289 |
|
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 |
case $os in |
1329 |
# 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 |
;; |
1335 |
bluegene*) |
1336 |
os=cnk |
1337 |
;; |
1338 |
solaris1 | solaris1.*) |
1339 |
os=$(echo $os | sed -e 's|solaris1|sunos4|') |
1340 |
;; |
1341 |
solaris) |
1342 |
os=solaris2 |
1343 |
;; |
1344 |
unixware*) |
1345 |
os=sysv4.2uw |
1346 |
;; |
1347 |
# es1800 is here to avoid being matched by es* (a different OS) |
1348 |
es1800*) |
1349 |
os=ose |
1350 |
;; |
1351 |
# Some version numbers need modification |
1352 |
chorusos*) |
1353 |
os=chorusos |
1354 |
;; |
1355 |
isc) |
1356 |
os=isc2.2 |
1357 |
;; |
1358 |
sco6) |
1359 |
os=sco5v6 |
1360 |
;; |
1361 |
sco5) |
1362 |
os=sco3.2v5 |
1363 |
;; |
1364 |
sco4) |
1365 |
os=sco3.2v4 |
1366 |
;; |
1367 |
sco3.2.[4-9]*) |
1368 |
os=$(echo $os | sed -e 's/sco3.2./sco3.2v/') |
1369 |
;; |
1370 |
sco*v* | scout) |
1371 |
# Don't match below |
1372 |
;; |
1373 |
sco*) |
1374 |
os=sco3.2v2 |
1375 |
;; |
1376 |
psos*) |
1377 |
os=psos |
1378 |
;; |
1379 |
qnx*) |
1380 |
os=qnx |
1381 |
;; |
1382 |
hiux*) |
1383 |
os=hiuxwe2 |
1384 |
;; |
1385 |
lynx*178) |
1386 |
os=lynxos178 |
1387 |
;; |
1388 |
lynx*5) |
1389 |
os=lynxos5 |
1390 |
;; |
1391 |
lynxos*) |
1392 |
# don't get caught up in next wildcard |
1393 |
;; |
1394 |
lynx*) |
1395 |
os=lynxos |
1396 |
;; |
1397 |
mac[0-9]*) |
1398 |
os=$(echo "$os" | sed -e 's|mac|macos|') |
1399 |
;; |
1400 |
opened*) |
1401 |
os=openedition |
1402 |
;; |
1403 |
os400*) |
1404 |
os=os400 |
1405 |
;; |
1406 |
sunos5*) |
1407 |
os=$(echo "$os" | sed -e 's|sunos5|solaris2|') |
1408 |
;; |
1409 |
sunos6*) |
1410 |
os=$(echo "$os" | sed -e 's|sunos6|solaris3|') |
1411 |
;; |
1412 |
wince*) |
1413 |
os=wince |
1414 |
;; |
1415 |
utek*) |
1416 |
os=bsd |
1417 |
;; |
1418 |
dynix*) |
1419 |
os=bsd |
1420 |
;; |
1421 |
acis*) |
1422 |
os=aos |
1423 |
;; |
1424 |
atheos*) |
1425 |
os=atheos |
1426 |
;; |
1427 |
syllable*) |
1428 |
os=syllable |
1429 |
;; |
1430 |
386bsd) |
1431 |
os=bsd |
1432 |
;; |
1433 |
ctix* | uts*) |
1434 |
os=sysv |
1435 |
;; |
1436 |
nova*) |
1437 |
os=rtmk-nova |
1438 |
;; |
1439 |
ns2) |
1440 |
os=nextstep2 |
1441 |
;; |
1442 |
# Preserve the version number of sinix5. |
1443 |
sinix5.*) |
1444 |
os=$(echo $os | sed -e 's|sinix|sysv|') |
1445 |
;; |
1446 |
sinix*) |
1447 |
os=sysv4 |
1448 |
;; |
1449 |
tpf*) |
1450 |
os=tpf |
1451 |
;; |
1452 |
triton*) |
1453 |
os=sysv3 |
1454 |
;; |
1455 |
oss*) |
1456 |
os=sysv3 |
1457 |
;; |
1458 |
svr4*) |
1459 |
os=sysv4 |
1460 |
;; |
1461 |
svr3) |
1462 |
os=sysv3 |
1463 |
;; |
1464 |
sysvr4) |
1465 |
os=sysv4 |
1466 |
;; |
1467 |
ose*) |
1468 |
os=ose |
1469 |
;; |
1470 |
*mint | mint[0-9]* | *MiNT | MiNT[0-9]*) |
1471 |
os=mint |
1472 |
;; |
1473 |
dicos*) |
1474 |
os=dicos |
1475 |
;; |
1476 |
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 |
;; |
1489 |
*) |
1490 |
# No normalization, but not necessarily accepted, that comes below. |
1491 |
;; |
1492 |
esac |
1493 |
|
1494 |
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 |
kernel= |
1507 |
case $cpu-$vendor in |
1508 |
score-*) |
1509 |
os=elf |
1510 |
;; |
1511 |
spu-*) |
1512 |
os=elf |
1513 |
;; |
1514 |
*-acorn) |
1515 |
os=riscix1.2 |
1516 |
;; |
1517 |
arm*-rebel) |
1518 |
kernel=linux |
1519 |
os=gnu |
1520 |
;; |
1521 |
arm*-semi) |
1522 |
os=aout |
1523 |
;; |
1524 |
c4x-* | tic4x-*) |
1525 |
os=coff |
1526 |
;; |
1527 |
c8051-*) |
1528 |
os=elf |
1529 |
;; |
1530 |
clipper-intergraph) |
1531 |
os=clix |
1532 |
;; |
1533 |
hexagon-*) |
1534 |
os=elf |
1535 |
;; |
1536 |
tic54x-*) |
1537 |
os=coff |
1538 |
;; |
1539 |
tic55x-*) |
1540 |
os=coff |
1541 |
;; |
1542 |
tic6x-*) |
1543 |
os=coff |
1544 |
;; |
1545 |
# This must come before the *-dec entry. |
1546 |
pdp10-*) |
1547 |
os=tops20 |
1548 |
;; |
1549 |
pdp11-*) |
1550 |
os=none |
1551 |
;; |
1552 |
*-dec | vax-*) |
1553 |
os=ultrix4.2 |
1554 |
;; |
1555 |
m68*-apollo) |
1556 |
os=domain |
1557 |
;; |
1558 |
i386-sun) |
1559 |
os=sunos4.0.2 |
1560 |
;; |
1561 |
m68000-sun) |
1562 |
os=sunos3 |
1563 |
;; |
1564 |
m68*-cisco) |
1565 |
os=aout |
1566 |
;; |
1567 |
mep-*) |
1568 |
os=elf |
1569 |
;; |
1570 |
mips*-cisco) |
1571 |
os=elf |
1572 |
;; |
1573 |
mips*-*) |
1574 |
os=elf |
1575 |
;; |
1576 |
or32-*) |
1577 |
os=coff |
1578 |
;; |
1579 |
*-tti) # must be before sparc entry or we get the wrong os. |
1580 |
os=sysv3 |
1581 |
;; |
1582 |
sparc-* | *-sun) |
1583 |
os=sunos4.1.1 |
1584 |
;; |
1585 |
pru-*) |
1586 |
os=elf |
1587 |
;; |
1588 |
*-be) |
1589 |
os=beos |
1590 |
;; |
1591 |
*-ibm) |
1592 |
os=aix |
1593 |
;; |
1594 |
*-knuth) |
1595 |
os=mmixware |
1596 |
;; |
1597 |
*-wec) |
1598 |
os=proelf |
1599 |
;; |
1600 |
*-winbond) |
1601 |
os=proelf |
1602 |
;; |
1603 |
*-oki) |
1604 |
os=proelf |
1605 |
;; |
1606 |
*-hp) |
1607 |
os=hpux |
1608 |
;; |
1609 |
*-hitachi) |
1610 |
os=hiux |
1611 |
;; |
1612 |
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) |
1613 |
os=sysv |
1614 |
;; |
1615 |
*-cbm) |
1616 |
os=amigaos |
1617 |
;; |
1618 |
*-dg) |
1619 |
os=dgux |
1620 |
;; |
1621 |
*-dolphin) |
1622 |
os=sysv3 |
1623 |
;; |
1624 |
m68k-ccur) |
1625 |
os=rtu |
1626 |
;; |
1627 |
m88k-omron*) |
1628 |
os=luna |
1629 |
;; |
1630 |
*-next) |
1631 |
os=nextstep |
1632 |
;; |
1633 |
*-sequent) |
1634 |
os=ptx |
1635 |
;; |
1636 |
*-crds) |
1637 |
os=unos |
1638 |
;; |
1639 |
*-ns) |
1640 |
os=genix |
1641 |
;; |
1642 |
i370-*) |
1643 |
os=mvs |
1644 |
;; |
1645 |
*-gould) |
1646 |
os=sysv |
1647 |
;; |
1648 |
*-highlevel) |
1649 |
os=bsd |
1650 |
;; |
1651 |
*-encore) |
1652 |
os=bsd |
1653 |
;; |
1654 |
*-sgi) |
1655 |
os=irix |
1656 |
;; |
1657 |
*-siemens) |
1658 |
os=sysv4 |
1659 |
;; |
1660 |
*-masscomp) |
1661 |
os=rtu |
1662 |
;; |
1663 |
f30[01]-fujitsu | f700-fujitsu) |
1664 |
os=uxpv |
1665 |
;; |
1666 |
*-rom68k) |
1667 |
os=coff |
1668 |
;; |
1669 |
*-*bug) |
1670 |
os=coff |
1671 |
;; |
1672 |
*-apple) |
1673 |
os=macos |
1674 |
;; |
1675 |
*-atari*) |
1676 |
os=mint |
1677 |
;; |
1678 |
*-wrs) |
1679 |
os=vxworks |
1680 |
;; |
1681 |
*) |
1682 |
os=none |
1683 |
;; |
1684 |
esac |
1685 |
|
1686 |
fi |
1687 |
|
1688 |
# 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 |
# 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 |
case $vendor in |
1781 |
unknown) |
1782 |
case $cpu-$os in |
1783 |
*-riscix*) |
1784 |
vendor=acorn |
1785 |
;; |
1786 |
*-sunos*) |
1787 |
vendor=sun |
1788 |
;; |
1789 |
*-cnk* | *-aix*) |
1790 |
vendor=ibm |
1791 |
;; |
1792 |
*-beos*) |
1793 |
vendor=be |
1794 |
;; |
1795 |
*-hpux*) |
1796 |
vendor=hp |
1797 |
;; |
1798 |
*-mpeix*) |
1799 |
vendor=hp |
1800 |
;; |
1801 |
*-hiux*) |
1802 |
vendor=hitachi |
1803 |
;; |
1804 |
*-unos*) |
1805 |
vendor=crds |
1806 |
;; |
1807 |
*-dgux*) |
1808 |
vendor=dg |
1809 |
;; |
1810 |
*-luna*) |
1811 |
vendor=omron |
1812 |
;; |
1813 |
*-genix*) |
1814 |
vendor=ns |
1815 |
;; |
1816 |
*-clix*) |
1817 |
vendor=intergraph |
1818 |
;; |
1819 |
*-mvs* | *-opened*) |
1820 |
vendor=ibm |
1821 |
;; |
1822 |
*-os400*) |
1823 |
vendor=ibm |
1824 |
;; |
1825 |
s390-* | s390x-*) |
1826 |
vendor=ibm |
1827 |
;; |
1828 |
*-ptx*) |
1829 |
vendor=sequent |
1830 |
;; |
1831 |
*-tpf*) |
1832 |
vendor=ibm |
1833 |
;; |
1834 |
*-vxsim* | *-vxworks* | *-windiss*) |
1835 |
vendor=wrs |
1836 |
;; |
1837 |
*-aux*) |
1838 |
vendor=apple |
1839 |
;; |
1840 |
*-hms*) |
1841 |
vendor=hitachi |
1842 |
;; |
1843 |
*-mpw* | *-macos*) |
1844 |
vendor=apple |
1845 |
;; |
1846 |
*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) |
1847 |
vendor=atari |
1848 |
;; |
1849 |
*-vos*) |
1850 |
vendor=stratus |
1851 |
;; |
1852 |
esac |
1853 |
;; |
1854 |
esac |
1855 |
|
1856 |
echo "$cpu-$vendor-${kernel:+$kernel-}$os" |
1857 |
exit |
1858 |
|
1859 |
# Local variables: |
1860 |
# eval: (add-hook 'before-save-hook 'time-stamp) |
1861 |
# time-stamp-start: "timestamp='" |
1862 |
# time-stamp-format: "%:y-%02m-%02d" |
1863 |
# time-stamp-end: "'" |
1864 |
# End: |