autoconf/config.sub
Jim Blandy efeeca5e76 Fri Nov 20 05:24:16 1992 Jim Blandy (jimb@totoro.cs.oberlin.edu)
* config.sub: Added machines and operating systems for Emacs
	ports, since Emacs now uses config.sub for its configuration.
	New manufacturers recognized not to be operating systems: High
	Level Hardware (highlevel, defaults to using BSD), Gould
	(gould, defaults to System V), Commodore (cbm, defaults to
	amigados), National Semiconductor (ns, defaults to Genix), and
	Masscomp (masscomp, defaults to RTU).
	Recognize the NS1600 (ns16k) and the Clipper (clipper) as
	processors.
	Recognize these processors with default manufacturers: the
	Cydra (cydra) from Cydrome (cydrome), the XPS100 (xps100) from
	Honeywell (honeywell), and the Orion (orion) and Orion 1/05
	(orion105) from High Level Hardware (highlevel).
	If the ISC operating system is given with a version number,
	don't kill it and set it to 2.2; just have it default to 2.2
	if omitted.
	Make Irix SGI's default operating system, not SYSV.
	Make BSD Encore's default, so it applies for all Encore
	machines, not just the umax and mmax abbreviations.
	All of Encore's machines use BSD, not just the ns32k-based
	ones.  Make it the manufacturer's default.
	Make it possible to specify an operating system for a Gould
	machine.  Make sysv the manufacturer's default, so it applies
	when we specify the manufacturer as well as when we omit it.
	Add Uniplus (uniplus), Iris (iris), Xenix (xenix), and RTU
	(rtu) as recognized operating system names.
1992-11-20 17:14:50 +00:00

660 lines
13 KiB
Bash
Executable File

#!/bin/sh
# Configuration validation subroutine script, version 1.1.
# Copyright (C) 1991, 1992 Free Software Foundation, Inc.
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
# can handle that machine. It does not imply ALL GNU software can.
#This file is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
# 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.
# The goal of this file is to map all the various variations of a given
# machine specification into a single specification in the form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
# First pass through any local machine types.
case $1 in
*local*)
echo $1
exit 0
;;
*)
;;
esac
# 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
### Let's recognize common machines as not being operating systems so
### that things like config.sub decstation-3100 work. We also
### recognize some manufacturers as not being operating systems, so we
### can provide default operating systems below.
case $os in
-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-unicom* | -ibm* | -next* | -hp | -isi* | -apollo | -altos* | \
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | \
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp )
os=
basic_machine=$1
;;
-sco3.2v[4-9]*)
# Don't forget version if it is 3.2v4 or newer.
os=-sco3.2v4
basic_machine=i386-unknown
;;
-sco*)
os=-sco3.2v2
basic_machine=i386-unknown
;;
-isc)
os=-isc2.2
basic_machine=i386-unknown
;;
-isc*)
basic_machine=i386-unknown
;;
esac
# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
# Recognize the basic CPU types with without company name.
# Some are omitted here because they have special meanings below.
tahoe | i[34]86 | i860 | m68k | m68000 | m88k | ns32k | arm | pyramid \
| tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
| alpha | we32k | ns16k | clipper )
basic_machine=$basic_machine-unknown
;;
# Recognize the basic CPU types with with company name.
vax-* | tahoe-* | i[34]86-* | i860-* | m68k-* | m68000-* | m88k-* \
| sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
| none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
| hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
| pn-* | np1-* | xps100-* | clipper-* | orion-* )
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
vaxv)
basic_machine=vax-dec
os=-sysv
;;
vms)
basic_machine=vax-dec
os=-vms
;;
i386v32)
basic_machine=i386-unknown
os=-sysv32
;;
i386-sco* | i386sco | sco)
basic_machine=i386-unknown
os=-sco3.2v2
;;
i386-isc* | isc)
basic_machine=i386-unknown
os=-isc
;;
i486v32)
basic_machine=i486-unknown
os=-sysv32
;;
i486-sco* | i486sco | sco)
basic_machine=i486-unknown
os=-sco3.2v2
;;
i486-isc* | isc)
basic_machine=i486-unknown
os=-isc
;;
i386v4*)
basic_machine=i386-unknown
os=-sysv4
;;
i486v4*)
basic_machine=i486-unknown
os=-sysv4
;;
i386v)
basic_machine=i386-unknown
os=-sysv
;;
i486v)
basic_machine=i486-unknown
os=-sysv
;;
spur)
basic_machine=spur-unknown
;;
alliant | fx80)
basic_machine=fx80-alliant
;;
convex-c1)
basic_machine=c1-convex
os=-bsd
;;
convex-c2)
basic_machine=c2-convex
os=-bsd
;;
convex-c32)
basic_machine=c32-convex
os=-bsd
;;
convex-c34)
basic_machine=c34-convex
os=-bsd
;;
convex-c38)
basic_machine=c38-convex
os=-bsd
;;
m88k-omron*)
basic_machine=m88k-omron
;;
merlin)
basic_machine=ns32k-utek
os=-sysv
;;
crds | unos)
basic_machine=m68k-crds
;;
elxsi)
basic_machine=elxsi-elxsi
os=-bsd
;;
encore | umax | mmax)
basic_machine=ns32k-encore
;;
genix)
basic_machine=ns32k-ns
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
-irix*)
;;
*)
os=-irix4
;;
esac
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
os=-newsos
;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
basic_machine=m68000-att
;;
3b*)
basic_machine=we32k-att
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
basic_machine=m68k-motorola
;;
balance)
basic_machine=ns32k-sequent
os=-dynix
;;
pc532)
basic_machine=ns32k-pc532
;;
symmetry)
basic_machine=i386-sequent
os=-dynix
;;
sun2)
basic_machine=m68000-sun
;;
sun2os3)
basic_machine=m68000-sun
os=-sunos3
;;
sun2os4)
basic_machine=m68000-sun
os=-sunos4
;;
sun3os3)
basic_machine=m68k-sun
os=-sunos3
;;
sun3os4)
basic_machine=m68k-sun
os=-sunos4
;;
sun4os3)
basic_machine=sparc-sun
os=-sunos3
;;
sun4os4)
basic_machine=sparc-sun
os=-sunos4
;;
sun3)
basic_machine=m68k-sun
;;
sun4)
basic_machine=sparc-sun
;;
pbd)
basic_machine=sparc-tti
;;
pbb)
basic_machine=m68k-tti
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
ps2)
basic_machine=i386-ibm
;;
fx2800)
basic_machine=i860-alliant
;;
next)
basic_machine=m68k-next
os=-bsd
;;
amiga)
basic_machine=m68k-cbm
;;
amigados)
basic_machine=m68k-cbm
os=-amigados
;;
amigaunix | amix)
basic_machine=m68k-cbm
os=-sysv4
;;
hp9k3[2-9][0-9])
basic_machine=m68k-hp
;;
hp9k31[0-9] | hp9k2[0-9][0-9])
basic_machine=m68000-hp
;;
hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
basic_machine=hppa1.0-hp
;;
isi68 | isi)
basic_machine=m68k-isi
os=-sysv
;;
apollo68)
basic_machine=m68k-apollo
os=-sysv
;;
altos | altos3068)
basic_machine=m68k-altos
;;
miniframe)
basic_machine=m68000-convergent
;;
tower | tower-32)
basic_machine=m68k-ncr
;;
news-3600 | risc-news)
basic_machine=mips-sony
os=-newsos
;;
decstation | decstation-3100 | pmax | pmin | dec3100 | decstatn)
basic_machine=mips-dec
;;
magnum | m3230)
basic_machine=mips-mips
os=-sysv
;;
gmicro)
basic_machine=tron-gmicro
os=-sysv
;;
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
am29k)
basic_machine=a29k-none
os=-bsd
;;
amdahl)
basic_machine=580-amdahl
os=-sysv
;;
cray | ymp)
basic_machine=ymp-cray
os=-unicos
;;
cray2)
basic_machine=cray2-cray
os=-unicos
;;
xmp)
basic_machine=xmp-cray
os=-unicos
;;
delta88)
basic_machine=m88k-motorola
os=-m88kbcs
;;
dpx2)
basic_machine=m68k-bull
os=-sysv
;;
ebmon29k)
basic_machine=a29k-amd
os=-ebmon
;;
h8300hds)
basic_machine=h8300-hitachi
os=-hds
;;
harris)
basic_machine=m88k-harris
os=-m88kbcs
;;
hp300bsd)
basic_machine=m68k-hp
os=-bsd
;;
hp300hpux)
basic_machine=m68k-hp
os=-hpux
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
basic_machine=m68000-hp
os=-hpux
;;
hp9k3[2-9][0-9])
basic_machine=m68k-hp
os=-hpux
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
;;
news1000)
basic_machine=m68030-sony
os=-newsos
;;
nindy960)
basic_machine=i960-intel
os=-nindy
;;
pn)
basic_machine=pn-gould
;;
np1)
basic_machine=np1-gould
;;
ultra3)
basic_machine=a29k-nyu
os=-sym1
;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
;;
vxworks68)
basic_machine=m68k-wrs
os=-vxworks
;;
xps | xps100)
basic_machine=xps100-honeywell
;;
none)
basic_machine=none-none
os=-none
;;
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
mips)
basic_machine=mips-mips
;;
romp)
basic_machine=romp-ibm
;;
rs6000)
basic_machine=rs6000-ibm
;;
vax)
basic_machine=vax-dec
;;
we32k)
basic_machine=we32k-att
;;
sparc)
basic_machine=sparc-sun
;;
cydra)
basic_machine=cydra-cydrome
;;
orion)
basic_machine=orion-highlevel
;;
orion105)
basic_machine=clipper-highlevel
;;
*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
esac
# Here we canonicalize certain aliases for manufacturers.
case $basic_machine in
*-digital*)
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
;;
*-commodore*)
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
;;
*)
;;
esac
# Decode manufacturer-specific aliases for certain operating systems.
if [ "$os" ]
then
case $os in
# First accept the basic system types.
# The portable systems comes first.
# Each alternative must end in a *, to match a version number.
-bsd* | -sysv* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -vms* | -sco* | -esix* | -isc* | -aix* | -sunos* | -hpux* \
| -unos* | -osf* | -luna* | -dgux* | -solari* | -sym* \
| -amigados* | -msdos* | -newsos* | -unicos* | -aos* \
| -nindy* | -vxworks* | -ebmon* | -hds* | -m88kbcs* \
| -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* )
;;
-osfrose*)
os=-osfrose
;;
-osf*)
os=-osf
;;
-utek*)
os=-bsd
;;
-dynix*)
os=-bsd
;;
-acis*)
os=-aos
;;
-ctix* | -uts*)
os=-sysv
;;
-triton*)
os=-sysv3
;;
-oss*)
os=-sysv3
;;
-svr4)
os=-sysv4
;;
-svr3)
os=-sysv3
;;
-xenix)
os=-xenix
;;
-none)
;;
*)
# 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
else
# Here we handle the default operating systems that come with various machines.
# The value should be what the vendor currently ships out the door with their
# machine or put another way, the most popular os provided with the machine.
# Note that if you're going to try to match "-MANUFACTURER" here (say,
# "-sun"), then you have to tell the case statement up towards the top
# that MANUFACTURER isn't an operating system. Otherwise, code above
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
case $basic_machine in
*-dec | vax-*)
os=-ultrix4.2
;;
i386-sun)
os=-sunos4.0.2
;;
m68000-sun)
os=-sunos3
# This also exists in the configure program, but was not the
# default.
# os=-sunos4
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=-sysv3
;;
sparc-* | *-sun)
os=-sunos4.1.1
;;
*-ibm)
os=-aix
;;
*-hp)
os=-hpux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
os=-sysv
;;
*-cbm)
os=-amigados
;;
*-dg)
os=-dgux
;;
*-dolphin)
os=-sysv3
;;
m88k-omron*)
os=-luna
;;
*-crds)
os=-unos
;;
*-ns)
os=-genix
;;
i[34]86-*)
os=-sco3.2v2
;;
*-gould)
os=-sysv
;;
*-highlevel)
os=-bsd
;;
*-encore)
os=-bsd
;;
*-sgi)
os=-irix
;;
*-masscomp)
os=-rtu
;;
*)
os=-none
;;
esac
fi
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
vendor=unknown
case $basic_machine in
*-unknown)
case $os in
-sunos*)
vendor=sun
;;
-aix*)
vendor=ibm
;;
-hpux*)
vendor=hp
;;
-unos*)
vendor=crds
;;
-dgux*)
vendor=dg
;;
-luna*)
vendor=omron
;;
-genix*)
vendor=ns
;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
echo $basic_machine$os