binutils-gdb/ld/config.sub
K. Richard Pixley d7b6b186ba Initial revision
1991-08-22 06:21:42 +00:00

277 lines
5.3 KiB
Bash
Executable File

#!/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
echo ${basic_machine}${os}