Initial revision
authorK. Richard Pixley <rich@cygnus>
Thu, 22 Aug 1991 06:21:42 +0000 (06:21 +0000)
committerK. Richard Pixley <rich@cygnus>
Thu, 22 Aug 1991 06:21:42 +0000 (06:21 +0000)
ld/config.sub [new file with mode: 0755]

diff --git a/ld/config.sub b/ld/config.sub
new file mode 100755 (executable)
index 0000000..58338df
--- /dev/null
@@ -0,0 +1,276 @@
+#!/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}