aboutsummaryrefslogtreecommitdiff
path: root/gas/config.sub
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config.sub')
-rwxr-xr-xgas/config.sub279
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}