diff options
Diffstat (limited to 'gas/config.sub')
-rwxr-xr-x | gas/config.sub | 279 |
1 files changed, 279 insertions, 0 deletions
diff --git a/gas/config.sub b/gas/config.sub new file mode 100755 index 0000000..02b4a35 --- /dev/null +++ b/gas/config.sub @@ -0,0 +1,279 @@ +#!/bin/sh + +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# Separate what the user gave into CPU:company and OS (if any). +basic_machine=`echo $1 | sed 's/-[^-]*$//'` +if [ $basic_machine != $1 ] +then os=`echo $1 | sed 's/[^-]*-/-/'` +else os=; fi + +# Decode aliases for certain machine:company combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + vax | tahoe | i386 | i860 | m68k | m68000 | m88k | sparc | ns32k \ + | alliant | arm | c1 | c2 | mips | pyramid | tron | a29k \ + | rtpc | rs6000 | i960 | none) + ;; + # Recognize the basic CPU types with company name. + vax:* | tahoe:* | i386:* | i860:* | m68k:* | m68000:* | m88k:* \ + | sparc:* | ns32k:* | alliant:* | arm:* | c1:* | c2:* \ + | mips:* | pyramid:* | tron:* | a29k:* | rtpc:* \ + | rs6000:* | i960:*) + ;; + # Recognize the machine names + # which stand for a CPU time and a company. + nindy960) + basic_machine=i960:intel + os=-nindy + ;; + vxworks68) + basic_machine=m68k:wrs + os=-vxworks + ;; + vxworks960) + basic_machine=i960:wrs + os=-vxworks + ;; + am29k) + basic_machine=a29k:unknown + os=-bsd + ;; + umax) + basic_machine=ns32k:umax + os=-sysv # maybe? + ;; + pn) + basic_machine=pn:gould + os=-sysv # maybe? + ;; + np1) + basic_machine=np1:gould + os=-sysv # maybe? + ;; + merlin) + basic_machine=merlin:utek + os=-sysv # maybe? + ;; + iris | iris4d) + basic_machine=mips:sgi + os=-sysv # maybe? + ;; + news1000) + basic_machine=m68030:sony + os=-sysv # maybe? + ;; + news | news700 | news800 | news900) + basic_machine=m68k:sony + os=-sysv # maybe? + ;; + unixpc | safari | pc7300 | 3b1 | 7300 | 7300:att | att-7300) + basic_machine=m68k:att + os=-sysv # maybe? + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300:motorola | delta:motorola) + basic_machine=m68k:motorola + os=-sysv # maybe? + ;; + vax:dec) + basic_machine=vax + os=-ultrix # maybe? + ;; + balance) + basic_machine=ns32k:sequent + os=-dynix + ;; + mmax) + basic_machine=ns32k:encore + os=-sysv # maybe? + ;; + symmetry) + basic_machine=i386:sequent + os=-dynix + ;; + sun2) + basic_machine=m68000:sun + os=-sunos4 + ;; + sun2os3) + basic_machine=m68000:sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000:sun + os=-sunos4 + ;; + sun3) + basic_machine=m68k:sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k:sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k:sun + os=-sunos4 + ;; + sun4) + basic_machine=sparc:sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc:sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc:sun + os=-sunos4 + ;; + pbd) + basic_machine=sparc:unicom + os=-sysv + ;; + roadrunner | sun386 | sun386i) + basic_machine=i386:sun + os=-sunos + ;; + ps2) + basic_machine=i386:ibm + os=-sysv # maybe? + ;; + i386sco) + basic_machine=i386:sco + os=-sysv # maybe? + ;; + i386v) + basic_machine=i386:unknown + os=-sysv + ;; + i386v32) + basic_machine=i386:unknown + os=-sysv32 + ;; + next) + basic_machine=m68k:next + os=-sysv # maybe? + ;; + hp300bsd) + basic_machine=m68k:hp + os=-bsd + ;; + hp300hpux | hpux | hp9k3[2-9][0-9]) + basic_machine=m68k:hp + os=-hpux + ;; + hp9k31[0-9] | hp9k2[0-9][0-9]) + basic_machine=m68000:hp + os=-hpux + ;; + isi | isi68) + basic_machine=m68k:isi + os=-sysv # maybe? + ;; + apollo68) + basic_machine=m68k:apollo + os=-sysv # maybe? + ;; + altos | altos3068) + basic_machine=m68k:altos + os=-sysv # maybe? + ;; + altosgas) + basic_machine=m68k:altos + os=-gas + ;; + miniframe) + basic_machine=m68000:convergent + os=-sysv # maybe? + ;; + tower | tower-32) + basic_machine=m68k:ncr + os=-sysv # maybe? + ;; + bigmips | news-3600 | risc-news) + basic_machine=mips:sony + os=-newsos # maybe? + ;; + littlemips) + basic_machine=mips:little + os=-bsd + ;; + dec3100 | decstatn | decstation | decstation-3100 | pmax) + basic_machine=mips:dec + os=-ultrix + ;; + magnum | m3230) + basic_machine=mips:mips + os=-sysv # maybe? + ;; + gmicro) + basic_machine=tron + os=-sysv # maybe? + ;; + convex-c1) + basic_machine=c1:convex + os=-sysv # maybe? + ;; + convex-c2) + basic_machine=c2:convex + os=-sysv # maybe? + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +case $os in + # First accept the basic system types. + # The portable systems comes first. + -bsd* | -sysv* | -mach* \ + | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos* | -hpux* \ + | -unos* | -osf* | -v88r* | -aout | -coff | -bout \ + | -nindy | -vxworks) + ;; + -newsos*) + os=-bsd + ;; + -ultrix*) + os=-bsd + ;; + -osfrose*) + os=-osf + ;; + -osf*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -ctix*) + os=-sysv + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $1 | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac + +cpu=`echo $basic_machine | sed 's/:.*$//'` +vendor=`echo $basic_machine | sed 's/^.*://'` + +echo ${cpu}-${vendor}${os} |