# 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.
+# configuration (e.g. a typo).
-# 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
+# Please email any bugs, comments, and/or additions to this file to:
+# configure@cygnus.com
-# 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
+# decode aliases into canonical names
+
+case "$1" in
+# cpu alone is a valid alias for cpu-none-none.
+vax | tahoe | i386 | i860 | m68k | m68000 | m88k | sparc | ns32k \
+ | alliant | arm | c1 | c2 | mips | pyramid | tron | a29k \
+ | romp | rs6000 | i960 | h8300)
+ cpu=$1
+ vendor=none
+ os=none
+ ;;
+altos | altos3068)
+ cpu=m68k
+ vendor=altos
+ os=sysv # maybe?
+ ;;
+altosgas)
+ cpu=m68k
+ vendor=altos
+ os=gas
+ ;;
+am29k)
+ cpu=a29k
+ vendor=none
+ os=bsd
+ ;;
+amdahl)
+ cpu=580
+ vendor=amdahl
+ os=uts
+ ;;
+amigados)
+ cpu=m68k
+ vendor=cbm
+ os=amigados # Native AmigaDOS
+ ;;
+amigaunix | amix)
+ cpu=m68k
+ vendor=cbm
+ os=svr4 # System V Release 4 (svr4 is an industry recognized acronym)
+ ;;
+apollo68)
+ cpu=m68k
+ vendor=apollo
+ os=sysv # maybe?
+ ;;
+balance)
+ cpu=ns32k
+ vendor=sequent
+ os=dynix
+ ;;
+convex-c1)
+ cpu=c1
+ vendor=convex
+ os=sysv # maybe?
+ ;;
+convex-c2)
+ cpu=c2
+ vendor=convex
+ os=sysv # maybe?
+ ;;
+cray | ymp)
+ cpu=ymp
+ vendor=cray
+ os=unicos
+ ;;
+cray2)
+ cpu=cray2
+ vendor=cray
+ os=unicos
+ ;;
+dec3100 | decstatn | decstation | decstation-3100 | pmax | pmin)
+ cpu=mips
+ vendor=dec
+ os=ultrix
+ ;;
+delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ cpu=m68k
+ vendor=motorola
+ os=sysv # maybe?
+ ;;
+
+delta88)
+ cpu=m88k
+ vendor=motorola
+ os=m88kbcs
+ ;;
+
+gmicro)
+ cpu=tron
+ vendor=gmicro
+ os=sysv # maybe?
+ ;;
+
+h8300hds)
+ cpu=h8300
+ vendor=hitachi
+ os=hds
+ ;;
+
+# start-sanitize-v9
+hal-32 | hal32)
+ cpu=sparc64
+ vendor=hal
+ os=hal32
+ ;;
+hal-64 | hal64)
+ cpu=sparc64
+ vendor=hal
+ os=hal64
+ ;;
+sparc64)
+ cpu=sparc64
+ vendor=sun
+ os=v9
+ ;;
+sparc64-v7 | sparc64v7)
+ cpu=sparc64
+ vendor=sun
+ os=v7
+ ;;
+# end-sanitize-v9
+hp300bsd)
+ cpu=m68k
+ vendor=hp
+ os=bsd
+ ;;
+hp300hpux | hpux | hp9k3[2-9][0-9])
+ cpu=m68k
+ vendor=hp
+ os=hpux
+ ;;
+hp9k31[0-9] | hp9k2[0-9][0-9])
+ cpu=m68000
+ vendor=hp
+ os=hpux
+ ;;
+i386sco)
+ cpu=i386
+ vendor=sco
+ os=sysv # maybe?
+ ;;
+i386v)
+ cpu=i386
+ vendor=none
+ os=sysv
+ ;;
+i386v32)
+ cpu=i386
+ vendor=none
+ os=sysv32
+ ;;
+iris | iris4d)
+ cpu=mips
+ vendor=sgi
+ os=irix # maybe?
+ ;;
+
+dpx2)
+ vendor=bull
+ cpu=m68k
+ os=sysv
+ ;;
+isi | isi68)
+ cpu=m68k
+ vendor=isi
+ os=sysv # maybe?
+ ;;
+littlemips)
+ cpu=mips
+ vendor=little
+ os=bsd
+ ;;
+magnum | m3230)
+ cpu=mips
+ vendor=mips
+ os=sysv # maybe?
+ ;;
+merlin)
+ cpu=ns32k
+ vendor=utek
+ os=sysv # maybe?
+ ;;
+miniframe)
+ cpu=m68000
+ vendor=convergent
+ os=sysv # maybe?
+ ;;
+mmax)
+ cpu=ns32k
+ vendor=encore
+ os=sysv # maybe?
+ ;;
+news | news700 | news800 | news900)
+ cpu=m68k
+ vendor=sony
+ os=newsos3 # Based on bsd-4.3
+ ;;
+news1000)
+ cpu=m68030
+ vendor=sony
+ os=newsos3 # ?
+ ;;
+news-3600 | bigmips | risc-news)
+ cpu=mips
+ vendor=sony
+ os=newsos4 # Presumably?
+ ;;
+next)
+ cpu=m68k
+ vendor=next
+ os=sysv # maybe?
+ ;;
+nindy960)
+ cpu=i960
+ vendor=intel
+ os=nindy
+ ;;
+none)
+ cpu=none
+ vendor=none
+ os=none
+ ;;
+np1)
+ cpu=np1
+ vendor=gould
+ os=sysv # maybe?
+ ;;
+rtpc)
+ cpu=romp
+ vendor=ibm
+ os=aix # maybe?
+ ;;
+pbd)
+ cpu=sparc
+ vendor=unicom
+ os=sysv
+ ;;
+pn)
+ cpu=pn
+ vendor=gould
+ os=sysv # maybe?
+ ;;
+ps2)
+ cpu=i386
+ vendor=ibm
+ os=sysv # maybe?
+ ;;
+sun2)
+ cpu=m68000
+ vendor=sun
+ os=sunos4
+ ;;
+sun2os3)
+ cpu=m68000
+ vendor=sun
+ os=sunos3
+ ;;
+sun2os4)
+ cpu=m68000
+ vendor=sun
+ os=sunos4
+ ;;
+sun3)
+ cpu=m68k
+ vendor=sun
+ os=sunos4
+ ;;
+sun3os3)
+ cpu=m68k
+ vendor=sun
+ os=sunos3
+ ;;
+sun3os4)
+ cpu=m68k
+ vendor=sun
+ os=sunos4
+ ;;
+sun386 | roadrunner | sun386i)
+ cpu=i386
+ vendor=sun
+ os=sunos
+ ;;
+sun4)
+ cpu=sparc
+ vendor=sun
+ os=sunos4
+ ;;
+sun4os3)
+ cpu=sparc
+ vendor=sun
+ os=sunos3
+ ;;
+sun4os4)
+ cpu=sparc
+ vendor=sun
+ os=sunos4
+ ;;
+symmetry)
+ cpu=i386
+ vendor=sequent
+ os=dynix
+ ;;
+tower | tower-32)
+ cpu=m68k
+ vendor=ncr
+ os=sysv # maybe?
+ ;;
+ultra3)
+ cpu=a29k
+ vendor=nyu
+ os=sym1
+ ;;
+umax)
+ cpu=ns32k
+ vendor=encore
+ os=sysv # maybe?
+ ;;
+unixpc | safari | pc7300 | 3b1 | 7300 | 7300-att | att-7300)
+ cpu=m68k
+ vendor=att
+ os=sysv # maybe?
+ ;;
+vax-dec)
+ cpu=vax
+ vendor=dec
+ os=ultrix # maybe?
+ ;;
+vxworks68)
+ cpu=m68k
+ vendor=wrs
+ os=vxworks
+ ;;
+vxworks960)
+ cpu=i960
+ vendor=wrs
+ os=vxworks
+ ;;
+xmp)
+ cpu=xmp
+ vendor=cray
+ os=unicos
+ ;;
+# not an alias. parse what we expect to be a canonical name.
+*)
+ cpu=`echo $1 | sed 's/-.*$//'`
+
+ if [ "${cpu}" = "$1" ] ; then
+ # no vendor so this is an invalid name.
+ echo '***' No vendor: configuration \`$1\' not recognized 1>&2
exit 1
- ;;
+ else
+ # parse out vendor
+ rest=`echo $1 | sed "s/${cpu}-//"`
+ vendor=`echo ${rest} | sed 's/-.*$//'`
+
+ if [ "${vendor}" = "${rest}" ] ; then
+ # a missing os is acceptable
+ os=none
+ else
+ os=`echo ${rest} | sed "s/${vendor}-//"`
+ fi
+ fi
+ ;;
esac
-# Decode manufacturer-specific aliases for certain operating systems.
+# At this point we should have three parts of a canonical name in cpu,
+# vendor, and os.
-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
- ;;
+# verify that the cpu is known.
+
+case "${cpu}" in
+none | vax | tahoe | i386 | i860 | m68k | m68000 | m88k | sparc \
+ | ns32k | alliant | arm | c1 | c2 | mips | pyramid | tron \
+ | a29k | romp | rs6000 | i960 | xmp | ymp | cray2 | 580 | h8300)
+ ;;
+
+# start-sanitize-v9
+sparc64) ;;
+# end-sanitize-v9
+
+*)
+ echo '***' Invalid cpu \`${cpu}\': configuration \`$1\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# verify that the vendor is known.
+
+case "${vendor}" in
+ altos | amdahl | aout | apollo | att | bcs | bout |\
+ cbm | convergent | convex | coff | cray | dec | encore |\
+ gould | hitachi | intel | isi | hp | ibm | little | mips | motorola |\
+ ncr | next | none | nyu | sco | sequent | sgi | sony | sun |\
+ unicom | utek | wrs | bull ) ;;
+
+# start-sanitize-v9
+hal) ;;
+# end-sanitize-v9
+
+*)
+ echo '***' Invalid vendor \`${vendor}\': configuration \`$1\' not recognized 1>&2
+ exit 1
+ ;;
esac
-cpu=`echo $basic_machine | sed 's/:.*$//'`
-vendor=`echo $basic_machine | sed 's/^.*://'`
+# verify that the os is known, if it exists.
+
+case "${os}" in
+aix* | aout | bout | bsd* | coff | ctix* | dynix* | esix* | hpux* \
+ | hds | irix* | isc* | kern | mach* | newsos* | nindy* | none \
+ | osf* | sco* | sunos* | sysv* | ultrix* | unos* | v88r* \
+ | vms* | vxworks* | sym[1-9]* | unicos* | uts | svr4 \
+ | amigados)
+ ;;
+
+# start-sanitize-v9
+hal32 | hal64 | v7 | v9) ;;
+# end-sanitize-v9
+
+*)
+ echo '***' Invalid os \`${os}\': configuration \`$1\' not recognized 1>&2
+ exit 1
+ ;;
+esac
-echo ${cpu}-${vendor}${os}
+echo ${cpu}-${vendor}-${os}