|
|
1.1 root 1: #!/bin/sh
1.1.1.3 root 2: # Configuration validation subroutine script, version 1.1.
3: # Copyright (C) 1991, 1992 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.
1.1 root 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
1.1.1.4 ! root 39: # It is wrong to echo any other type of specification.
1.1 root 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:
1.1.1.4 ! root 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.
1.1 root 61: case $os in
62: -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
63: -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
64: -unicom* | -ibm* | -next* | -hp | -isi* | -apollo | -altos* | \
1.1.1.3 root 65: -convergent* | -ncr* | -news | -32* | -3600* | -3100* | \
1.1 root 66: -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
1.1.1.4 ! root 67: -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp )
1.1 root 68: os=
69: basic_machine=$1
70: ;;
1.1.1.4 ! root 71: -sco3.2v[4-9]*)
! 72: # Don't forget version if it is 3.2v4 or newer.
! 73: os=-sco3.2v4
! 74: basic_machine=i386-unknown
! 75: ;;
1.1 root 76: -sco*)
1.1.1.3 root 77: os=-sco3.2v2
1.1 root 78: basic_machine=i386-unknown
79: ;;
1.1.1.4 ! root 80: -isc)
! 81: os=-isc2.2
! 82: basic_machine=i386-unknown
! 83: ;;
1.1 root 84: -isc*)
85: basic_machine=i386-unknown
86: ;;
87: esac
88:
89: # Decode aliases for certain CPU-COMPANY combinations.
90: case $basic_machine in
91: # Recognize the basic CPU types with without company name.
92: # Some are omitted here because they have special meanings below.
1.1.1.2 root 93: tahoe | i[34]86 | i860 | m68k | m68000 | m88k | ns32k | arm | pyramid \
1.1.1.4 ! root 94: | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
! 95: | alpha | we32k | ns16k | clipper )
1.1 root 96: basic_machine=$basic_machine-unknown
97: ;;
98: # Recognize the basic CPU types with with company name.
1.1.1.3 root 99: vax-* | tahoe-* | i[34]86-* | i860-* | m68k-* | m68000-* | m88k-* \
1.1 root 100: | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
101: | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
102: | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
1.1.1.4 ! root 103: | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
! 104: | pn-* | np1-* | xps100-* | clipper-* | orion-* )
1.1 root 105: ;;
106: # Recognize the various machine names and aliases which stand
107: # for a CPU type and a company and sometimes even an OS.
108: vaxv)
109: basic_machine=vax-dec
110: os=-sysv
111: ;;
112: vms)
113: basic_machine=vax-dec
114: os=-vms
115: ;;
116: i386v32)
117: basic_machine=i386-unknown
118: os=-sysv32
119: ;;
120: i386-sco* | i386sco | sco)
121: basic_machine=i386-unknown
1.1.1.3 root 122: os=-sco3.2v2
1.1 root 123: ;;
124: i386-isc* | isc)
125: basic_machine=i386-unknown
1.1.1.3 root 126: os=-isc
1.1 root 127: ;;
1.1.1.4 ! root 128: i486v32)
! 129: basic_machine=i486-unknown
! 130: os=-sysv32
! 131: ;;
! 132: i486-sco* | i486sco | sco)
! 133: basic_machine=i486-unknown
! 134: os=-sco3.2v2
! 135: ;;
! 136: i486-isc* | isc)
! 137: basic_machine=i486-unknown
! 138: os=-isc
! 139: ;;
1.1 root 140: i386v4*)
141: basic_machine=i386-unknown
142: os=-sysv4
143: ;;
1.1.1.3 root 144: i486v4*)
145: basic_machine=i486-unknown
146: os=-sysv4
147: ;;
1.1 root 148: i386v)
149: basic_machine=i386-unknown
150: os=-sysv
151: ;;
1.1.1.4 ! root 152: i486v)
! 153: basic_machine=i486-unknown
! 154: os=-sysv
! 155: ;;
1.1 root 156: spur)
157: basic_machine=spur-unknown
158: ;;
159: alliant | fx80)
160: basic_machine=fx80-alliant
161: ;;
162: convex-c1)
163: basic_machine=c1-convex
164: os=-bsd
165: ;;
166: convex-c2)
167: basic_machine=c2-convex
168: os=-bsd
169: ;;
170: convex-c32)
171: basic_machine=c32-convex
172: os=-bsd
173: ;;
174: convex-c34)
175: basic_machine=c34-convex
176: os=-bsd
177: ;;
178: convex-c38)
179: basic_machine=c38-convex
180: os=-bsd
181: ;;
182: m88k-omron*)
183: basic_machine=m88k-omron
184: ;;
185: merlin)
186: basic_machine=ns32k-utek
187: os=-sysv
188: ;;
189: crds | unos)
190: basic_machine=m68k-crds
191: ;;
1.1.1.4 ! root 192: elxsi)
! 193: basic_machine=elxsi-elxsi
! 194: os=-bsd
! 195: ;;
1.1 root 196: encore | umax | mmax)
197: basic_machine=ns32k-encore
198: ;;
199: genix)
200: basic_machine=ns32k-ns
201: ;;
202: iris | iris4d)
203: basic_machine=mips-sgi
1.1.1.3 root 204: case $os in
205: -irix*)
206: ;;
207: *)
208: os=-irix4
209: ;;
210: esac
1.1 root 211: ;;
212: news | news700 | news800 | news900)
213: basic_machine=m68k-sony
214: os=-newsos
215: ;;
216: 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
1.1.1.2 root 217: basic_machine=m68000-att
1.1 root 218: ;;
1.1.1.3 root 219: 3b*)
220: basic_machine=we32k-att
221: ;;
1.1 root 222: delta | 3300 | motorola-3300 | motorola-delta \
223: | 3300-motorola | delta-motorola)
224: basic_machine=m68k-motorola
225: ;;
226: balance)
227: basic_machine=ns32k-sequent
228: os=-dynix
229: ;;
230: pc532)
231: basic_machine=ns32k-pc532
232: ;;
233: symmetry)
234: basic_machine=i386-sequent
235: os=-dynix
236: ;;
237: sun2)
238: basic_machine=m68000-sun
239: ;;
240: sun2os3)
241: basic_machine=m68000-sun
242: os=-sunos3
243: ;;
244: sun2os4)
245: basic_machine=m68000-sun
246: os=-sunos4
247: ;;
248: sun3os3)
249: basic_machine=m68k-sun
250: os=-sunos3
251: ;;
252: sun3os4)
253: basic_machine=m68k-sun
254: os=-sunos4
255: ;;
256: sun4os3)
257: basic_machine=sparc-sun
258: os=-sunos3
259: ;;
260: sun4os4)
261: basic_machine=sparc-sun
262: os=-sunos4
263: ;;
264: sun3)
265: basic_machine=m68k-sun
266: ;;
267: sun4)
268: basic_machine=sparc-sun
269: ;;
270: pbd)
1.1.1.2 root 271: basic_machine=sparc-tti
272: ;;
273: pbb)
274: basic_machine=m68k-tti
1.1 root 275: ;;
276: sun386 | sun386i | roadrunner)
277: basic_machine=i386-sun
278: ;;
279: ps2)
280: basic_machine=i386-ibm
281: ;;
1.1.1.3 root 282: fx2800)
283: basic_machine=i860-alliant
284: ;;
1.1 root 285: next)
286: basic_machine=m68k-next
1.1.1.3 root 287: os=-bsd
1.1 root 288: ;;
289: amiga)
290: basic_machine=m68k-cbm
291: ;;
1.1.1.4 ! root 292: amigados)
! 293: basic_machine=m68k-cbm
! 294: os=-amigados
! 295: ;;
! 296: amigaunix | amix)
! 297: basic_machine=m68k-cbm
! 298: os=-sysv4
! 299: ;;
1.1 root 300: hp9k3[2-9][0-9])
301: basic_machine=m68k-hp
302: ;;
303: hp9k31[0-9] | hp9k2[0-9][0-9])
304: basic_machine=m68000-hp
305: ;;
1.1.1.3 root 306: hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
307: basic_machine=hppa1.1-hp
308: ;;
309: hp9k8[0-9][0-9] | hp8[0-9][0-9])
310: basic_machine=hppa1.0-hp
1.1 root 311: ;;
312: isi68 | isi)
313: basic_machine=m68k-isi
314: os=-sysv
315: ;;
316: apollo68)
317: basic_machine=m68k-apollo
318: os=-sysv
319: ;;
320: altos | altos3068)
321: basic_machine=m68k-altos
322: ;;
323: miniframe)
324: basic_machine=m68000-convergent
325: ;;
326: tower | tower-32)
327: basic_machine=m68k-ncr
328: ;;
329: news-3600 | risc-news)
330: basic_machine=mips-sony
331: os=-newsos
332: ;;
1.1.1.3 root 333: decstation | decstation-3100 | pmax | pmin | dec3100 | decstatn)
1.1 root 334: basic_machine=mips-dec
335: ;;
336: magnum | m3230)
337: basic_machine=mips-mips
338: os=-sysv
339: ;;
340: gmicro)
341: basic_machine=tron-gmicro
342: os=-sysv
343: ;;
344: rtpc | rtpc-*)
345: basic_machine=romp-ibm
346: ;;
347: am29k)
348: basic_machine=a29k-none
349: os=-bsd
350: ;;
351: amdahl)
352: basic_machine=580-amdahl
353: os=-sysv
354: ;;
355: cray | ymp)
356: basic_machine=ymp-cray
357: os=-unicos
358: ;;
359: cray2)
360: basic_machine=cray2-cray
361: os=-unicos
362: ;;
363: xmp)
364: basic_machine=xmp-cray
365: os=-unicos
366: ;;
367: delta88)
368: basic_machine=m88k-motorola
369: os=-m88kbcs
370: ;;
371: dpx2)
372: basic_machine=m68k-bull
373: os=-sysv
374: ;;
375: ebmon29k)
376: basic_machine=a29k-amd
377: os=-ebmon
378: ;;
379: h8300hds)
380: basic_machine=h8300-hitachi
381: os=-hds
382: ;;
383: harris)
384: basic_machine=m88k-harris
385: os=-m88kbcs
386: ;;
387: hp300bsd)
388: basic_machine=m68k-hp
389: os=-bsd
390: ;;
391: hp300hpux)
392: basic_machine=m68k-hp
393: os=-hpux
394: ;;
395: hp9k2[0-9][0-9] | hp9k31[0-9])
396: basic_machine=m68000-hp
397: os=-hpux
398: ;;
399: hp9k3[2-9][0-9])
400: basic_machine=m68k-hp
401: os=-hpux
402: ;;
403: ncr3000)
1.1.1.3 root 404: basic_machine=i486-ncr
1.1 root 405: os=-sysv4
406: ;;
407: news1000)
408: basic_machine=m68030-sony
409: os=-newsos
410: ;;
411: nindy960)
412: basic_machine=i960-intel
413: os=-nindy
414: ;;
415: pn)
416: basic_machine=pn-gould
417: ;;
418: np1)
419: basic_machine=np1-gould
420: ;;
421: ultra3)
422: basic_machine=a29k-nyu
423: os=-sym1
424: ;;
425: vxworks960)
426: basic_machine=i960-wrs
427: os=-vxworks
428: ;;
429: vxworks68)
430: basic_machine=m68k-wrs
431: os=-vxworks
432: ;;
1.1.1.4 ! root 433: xps | xps100)
! 434: basic_machine=xps100-honeywell
! 435: ;;
1.1 root 436: none)
437: basic_machine=none-none
438: os=-none
439: ;;
440:
441: # Here we handle the default manufacturer of certain CPU types. It is in
442: # some cases the only manufacturer, in others, it is the most popular.
443: mips)
444: basic_machine=mips-mips
445: ;;
446: romp)
447: basic_machine=romp-ibm
448: ;;
449: rs6000)
450: basic_machine=rs6000-ibm
451: ;;
452: vax)
453: basic_machine=vax-dec
454: ;;
1.1.1.3 root 455: we32k)
456: basic_machine=we32k-att
457: ;;
1.1 root 458: sparc)
459: basic_machine=sparc-sun
460: ;;
1.1.1.4 ! root 461: cydra)
! 462: basic_machine=cydra-cydrome
! 463: ;;
! 464: orion)
! 465: basic_machine=orion-highlevel
! 466: ;;
! 467: orion105)
! 468: basic_machine=clipper-highlevel
! 469: ;;
1.1 root 470: *)
471: echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
472: exit 1
473: ;;
474: esac
475:
476: # Here we canonicalize certain aliases for manufacturers.
477: case $basic_machine in
478: *-digital*)
479: basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
480: ;;
481: *-commodore*)
482: basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
483: ;;
484: *)
485: ;;
486: esac
487:
488: # Decode manufacturer-specific aliases for certain operating systems.
489:
490: if [ "$os" ]
491: then
492: case $os in
493: # First accept the basic system types.
494: # The portable systems comes first.
495: # Each alternative must end in a *, to match a version number.
496: -bsd* | -sysv* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
497: | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos* | -hpux* \
1.1.1.4 ! root 498: | -unos* | -osf* | -luna* | -dgux* | -solari* | -sym* \
1.1.1.3 root 499: | -amigados* | -msdos* | -newsos* | -unicos* | -aos* \
1.1.1.4 ! root 500: | -nindy* | -vxworks* | -ebmon* | -hds* | -m88kbcs* \
! 501: | -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* )
1.1 root 502: ;;
503: -osfrose*)
1.1.1.3 root 504: os=-osfrose
1.1 root 505: ;;
506: -osf*)
1.1.1.3 root 507: os=-osf
1.1 root 508: ;;
1.1.1.4 ! root 509: -utek*)
! 510: os=-bsd
! 511: ;;
1.1 root 512: -dynix*)
513: os=-bsd
514: ;;
1.1.1.2 root 515: -acis*)
516: os=-aos
1.1 root 517: ;;
518: -ctix* | -uts*)
519: os=-sysv
520: ;;
1.1.1.2 root 521: -triton*)
522: os=-sysv3
523: ;;
524: -oss*)
525: os=-sysv3
526: ;;
1.1 root 527: -svr4)
528: os=-sysv4
529: ;;
530: -svr3)
531: os=-sysv3
532: ;;
1.1.1.4 ! root 533: -xenix)
! 534: os=-xenix
! 535: ;;
1.1.1.3 root 536: -none)
537: ;;
1.1 root 538: *)
539: # Get rid of the `-' at the beginning of $os.
540: os=`echo $1 | sed 's/[^-]*-//'`
541: echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
542: exit 1
543: ;;
544: esac
545: else
546:
547: # Here we handle the default operating systems that come with various machines.
548: # The value should be what the vendor currently ships out the door with their
549: # machine or put another way, the most popular os provided with the machine.
1.1.1.4 ! root 550:
! 551: # Note that if you're going to try to match "-MANUFACTURER" here (say,
! 552: # "-sun"), then you have to tell the case statement up towards the top
! 553: # that MANUFACTURER isn't an operating system. Otherwise, code above
! 554: # will signal an error saying that MANUFACTURER isn't an operating
! 555: # system, and we'll never get to this point.
! 556:
1.1 root 557: case $basic_machine in
558: *-dec | vax-*)
1.1.1.3 root 559: os=-ultrix4.2
1.1 root 560: ;;
561: i386-sun)
1.1.1.3 root 562: os=-sunos4.0.2
1.1 root 563: ;;
564: m68000-sun)
565: os=-sunos3
566: # This also exists in the configure program, but was not the
567: # default.
568: # os=-sunos4
569: ;;
1.1.1.2 root 570: *-tti) # must be before sparc entry or we get the wrong os.
571: os=-sysv3
572: ;;
1.1 root 573: sparc-* | *-sun)
1.1.1.3 root 574: os=-sunos4.1.1
1.1 root 575: ;;
576: *-ibm)
577: os=-aix
578: ;;
579: *-hp)
580: os=-hpux
581: ;;
1.1.1.4 ! root 582: i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1.1 root 583: os=-sysv
584: ;;
585: *-cbm)
586: os=-amigados
587: ;;
588: *-dg)
589: os=-dgux
590: ;;
1.1.1.2 root 591: *-dolphin)
592: os=-sysv3
593: ;;
1.1 root 594: m88k-omron*)
595: os=-luna
596: ;;
597: *-crds)
598: os=-unos
599: ;;
600: *-ns)
601: os=-genix
602: ;;
1.1.1.4 ! root 603: i[34]86-*)
1.1.1.3 root 604: os=-sco3.2v2
1.1 root 605: ;;
1.1.1.4 ! root 606: *-gould)
! 607: os=-sysv
! 608: ;;
! 609: *-highlevel)
! 610: os=-bsd
! 611: ;;
! 612: *-encore)
! 613: os=-bsd
! 614: ;;
! 615: *-sgi)
! 616: os=-irix
! 617: ;;
! 618: *-masscomp)
! 619: os=-rtu
! 620: ;;
1.1 root 621: *)
622: os=-none
623: ;;
624: esac
625: fi
626:
627: # Here we handle the case where we know the os, and the CPU type, but not the
628: # manufacturer. We pick the logical manufacturer.
629: vendor=unknown
630: case $basic_machine in
631: *-unknown)
632: case $os in
633: -sunos*)
634: vendor=sun
635: ;;
636: -aix*)
637: vendor=ibm
638: ;;
639: -hpux*)
640: vendor=hp
641: ;;
642: -unos*)
643: vendor=crds
644: ;;
645: -dgux*)
646: vendor=dg
647: ;;
648: -luna*)
649: vendor=omron
650: ;;
651: -genix*)
652: vendor=ns
653: ;;
654: esac
655: basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
656: ;;
657: esac
658:
659: echo $basic_machine$os
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.