--- /dev/null
+#!/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}