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