xref: /freebsd/contrib/byacc/config.sub (revision 822ca3276345b4a67ccbc9b54616d8b205fd37f2)
198e903e7SBaptiste Daroussin#! /bin/sh
298e903e7SBaptiste Daroussin# Configuration validation subroutine script.
3*822ca327SBaptiste Daroussin#   Copyright 1992-2023 Free Software Foundation, Inc.
498e903e7SBaptiste Daroussin
58e022d3cSDag-Erling Smørgrav# shellcheck disable=SC2006,SC2268 # see below for rationale
68e022d3cSDag-Erling Smørgrav
7*822ca327SBaptiste Daroussintimestamp='2023-09-15'
898e903e7SBaptiste Daroussin
95b91e83fSBaptiste Daroussin# This file is free software; you can redistribute it and/or modify it
105b91e83fSBaptiste Daroussin# under the terms of the GNU General Public License as published by
118e022d3cSDag-Erling Smørgrav# the Free Software Foundation, either version 3 of the License, or
1298e903e7SBaptiste Daroussin# (at your option) any later version.
1398e903e7SBaptiste Daroussin#
145b91e83fSBaptiste Daroussin# This program is distributed in the hope that it will be useful, but
155b91e83fSBaptiste Daroussin# WITHOUT ANY WARRANTY; without even the implied warranty of
165b91e83fSBaptiste Daroussin# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
175b91e83fSBaptiste Daroussin# General Public License for more details.
1898e903e7SBaptiste Daroussin#
1998e903e7SBaptiste Daroussin# You should have received a copy of the GNU General Public License
20b53bb29fSJung-uk Kim# along with this program; if not, see <https://www.gnu.org/licenses/>.
2198e903e7SBaptiste Daroussin#
2298e903e7SBaptiste Daroussin# As a special exception to the GNU General Public License, if you
2398e903e7SBaptiste Daroussin# distribute this file as part of a program that contains a
2498e903e7SBaptiste Daroussin# configuration script generated by Autoconf, you may include it under
255b91e83fSBaptiste Daroussin# the same distribution terms that you use for the rest of that
265b91e83fSBaptiste Daroussin# program.  This Exception is an additional permission under section 7
275b91e83fSBaptiste Daroussin# of the GNU General Public License, version 3 ("GPLv3").
2898e903e7SBaptiste Daroussin
2998e903e7SBaptiste Daroussin
300f86d14eSJung-uk Kim# Please send patches to <config-patches@gnu.org>.
3198e903e7SBaptiste Daroussin#
3298e903e7SBaptiste Daroussin# Configuration subroutine to validate and canonicalize a configuration type.
3398e903e7SBaptiste Daroussin# Supply the specified configuration type as an argument.
3498e903e7SBaptiste Daroussin# If it is invalid, we print an error message on stderr and exit with code 1.
3598e903e7SBaptiste Daroussin# Otherwise, we print the canonical config type on stdout and succeed.
3698e903e7SBaptiste Daroussin
3798e903e7SBaptiste Daroussin# You can get the latest version of this script from:
388e022d3cSDag-Erling Smørgrav# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
3998e903e7SBaptiste Daroussin
4098e903e7SBaptiste Daroussin# This file is supposed to be the same for all GNU packages
4198e903e7SBaptiste Daroussin# and recognize all the CPU types, system types and aliases
4298e903e7SBaptiste Daroussin# that are meaningful with *any* GNU software.
4398e903e7SBaptiste Daroussin# Each package is responsible for reporting which valid configurations
4498e903e7SBaptiste Daroussin# it does not support.  The user should be able to distinguish
4598e903e7SBaptiste Daroussin# a failure to support a valid configuration from a meaningless
4698e903e7SBaptiste Daroussin# configuration.
4798e903e7SBaptiste Daroussin
4898e903e7SBaptiste Daroussin# The goal of this file is to map all the various variations of a given
4998e903e7SBaptiste Daroussin# machine specification into a single specification in the form:
5098e903e7SBaptiste Daroussin#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
5198e903e7SBaptiste Daroussin# or in some cases, the newer four-part form:
5298e903e7SBaptiste Daroussin#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
5398e903e7SBaptiste Daroussin# It is wrong to echo any other type of specification.
5498e903e7SBaptiste Daroussin
558e022d3cSDag-Erling Smørgrav# The "shellcheck disable" line above the timestamp inhibits complaints
568e022d3cSDag-Erling Smørgrav# about features and limitations of the classic Bourne shell that were
578e022d3cSDag-Erling Smørgrav# superseded or lifted in POSIX.  However, this script identifies a wide
588e022d3cSDag-Erling Smørgrav# variety of pre-POSIX systems that do not have POSIX shells at all, and
598e022d3cSDag-Erling Smørgrav# even some reasonably current systems (Solaris 10 as case-in-point) still
608e022d3cSDag-Erling Smørgrav# have a pre-POSIX /bin/sh.
618e022d3cSDag-Erling Smørgrav
6298e903e7SBaptiste Daroussinme=`echo "$0" | sed -e 's,.*/,,'`
6398e903e7SBaptiste Daroussin
6498e903e7SBaptiste Daroussinusage="\
6520afc491SJung-uk KimUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
6698e903e7SBaptiste Daroussin
6798e903e7SBaptiste DaroussinCanonicalize a configuration name.
6898e903e7SBaptiste Daroussin
69b53bb29fSJung-uk KimOptions:
7098e903e7SBaptiste Daroussin  -h, --help         print this help, then exit
7198e903e7SBaptiste Daroussin  -t, --time-stamp   print date of last modification, then exit
7298e903e7SBaptiste Daroussin  -v, --version      print version number, then exit
7398e903e7SBaptiste Daroussin
7498e903e7SBaptiste DaroussinReport bugs and patches to <config-patches@gnu.org>."
7598e903e7SBaptiste Daroussin
7698e903e7SBaptiste Daroussinversion="\
7798e903e7SBaptiste DaroussinGNU config.sub ($timestamp)
7898e903e7SBaptiste Daroussin
79*822ca327SBaptiste DaroussinCopyright 1992-2023 Free Software Foundation, Inc.
8098e903e7SBaptiste Daroussin
8198e903e7SBaptiste DaroussinThis is free software; see the source for copying conditions.  There is NO
8298e903e7SBaptiste Daroussinwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
8398e903e7SBaptiste Daroussin
8498e903e7SBaptiste Daroussinhelp="
85*822ca327SBaptiste DaroussinTry '$me --help' for more information."
8698e903e7SBaptiste Daroussin
8798e903e7SBaptiste Daroussin# Parse command line
8898e903e7SBaptiste Daroussinwhile test $# -gt 0 ; do
8998e903e7SBaptiste Daroussin  case $1 in
9098e903e7SBaptiste Daroussin    --time-stamp | --time* | -t )
9198e903e7SBaptiste Daroussin       echo "$timestamp" ; exit ;;
9298e903e7SBaptiste Daroussin    --version | -v )
9398e903e7SBaptiste Daroussin       echo "$version" ; exit ;;
9498e903e7SBaptiste Daroussin    --help | --h* | -h )
9598e903e7SBaptiste Daroussin       echo "$usage"; exit ;;
9698e903e7SBaptiste Daroussin    -- )     # Stop option processing
9798e903e7SBaptiste Daroussin       shift; break ;;
9898e903e7SBaptiste Daroussin    - )	# Use stdin as input.
9998e903e7SBaptiste Daroussin       break ;;
10098e903e7SBaptiste Daroussin    -* )
101b53bb29fSJung-uk Kim       echo "$me: invalid option $1$help" >&2
10298e903e7SBaptiste Daroussin       exit 1 ;;
10398e903e7SBaptiste Daroussin
10498e903e7SBaptiste Daroussin    *local*)
10598e903e7SBaptiste Daroussin       # First pass through any local machine types.
106b53bb29fSJung-uk Kim       echo "$1"
10798e903e7SBaptiste Daroussin       exit ;;
10898e903e7SBaptiste Daroussin
10998e903e7SBaptiste Daroussin    * )
11098e903e7SBaptiste Daroussin       break ;;
11198e903e7SBaptiste Daroussin  esac
11298e903e7SBaptiste Daroussindone
11398e903e7SBaptiste Daroussin
11498e903e7SBaptiste Daroussincase $# in
11598e903e7SBaptiste Daroussin 0) echo "$me: missing argument$help" >&2
11698e903e7SBaptiste Daroussin    exit 1;;
11798e903e7SBaptiste Daroussin 1) ;;
11898e903e7SBaptiste Daroussin *) echo "$me: too many arguments$help" >&2
11998e903e7SBaptiste Daroussin    exit 1;;
12098e903e7SBaptiste Daroussinesac
12198e903e7SBaptiste Daroussin
122b53bb29fSJung-uk Kim# Split fields of configuration type
123b53bb29fSJung-uk Kim# shellcheck disable=SC2162
1248e022d3cSDag-Erling Smørgravsaved_IFS=$IFS
125b53bb29fSJung-uk KimIFS="-" read field1 field2 field3 field4 <<EOF
126b53bb29fSJung-uk Kim$1
127b53bb29fSJung-uk KimEOF
1288e022d3cSDag-Erling SmørgravIFS=$saved_IFS
129b53bb29fSJung-uk Kim
130b53bb29fSJung-uk Kim# Separate into logical components for further validation
131b53bb29fSJung-uk Kimcase $1 in
132b53bb29fSJung-uk Kim	*-*-*-*-*)
133*822ca327SBaptiste Daroussin		echo "Invalid configuration '$1': more than four components" >&2
134b53bb29fSJung-uk Kim		exit 1
135b53bb29fSJung-uk Kim		;;
136b53bb29fSJung-uk Kim	*-*-*-*)
137b53bb29fSJung-uk Kim		basic_machine=$field1-$field2
1388e022d3cSDag-Erling Smørgrav		basic_os=$field3-$field4
139b53bb29fSJung-uk Kim		;;
140b53bb29fSJung-uk Kim	*-*-*)
141b53bb29fSJung-uk Kim		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
142b53bb29fSJung-uk Kim		# parts
143b53bb29fSJung-uk Kim		maybe_os=$field2-$field3
14498e903e7SBaptiste Daroussin		case $maybe_os in
1458e022d3cSDag-Erling Smørgrav			nto-qnx* | linux-* | uclinux-uclibc* \
146b53bb29fSJung-uk Kim			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
147b53bb29fSJung-uk Kim			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
148*822ca327SBaptiste Daroussin			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
149*822ca327SBaptiste Daroussin			| windows-* )
150b53bb29fSJung-uk Kim				basic_machine=$field1
1518e022d3cSDag-Erling Smørgrav				basic_os=$maybe_os
15298e903e7SBaptiste Daroussin				;;
1535b91e83fSBaptiste Daroussin			android-linux)
154b53bb29fSJung-uk Kim				basic_machine=$field1-unknown
1558e022d3cSDag-Erling Smørgrav				basic_os=linux-android
1565b91e83fSBaptiste Daroussin				;;
15798e903e7SBaptiste Daroussin			*)
158b53bb29fSJung-uk Kim				basic_machine=$field1-$field2
1598e022d3cSDag-Erling Smørgrav				basic_os=$field3
160b53bb29fSJung-uk Kim				;;
161b53bb29fSJung-uk Kim		esac
162b53bb29fSJung-uk Kim		;;
163b53bb29fSJung-uk Kim	*-*)
164b53bb29fSJung-uk Kim		# A lone config we happen to match not fitting any pattern
165b53bb29fSJung-uk Kim		case $field1-$field2 in
166b53bb29fSJung-uk Kim			decstation-3100)
167b53bb29fSJung-uk Kim				basic_machine=mips-dec
1688e022d3cSDag-Erling Smørgrav				basic_os=
169b53bb29fSJung-uk Kim				;;
170b53bb29fSJung-uk Kim			*-*)
171b53bb29fSJung-uk Kim				# Second component is usually, but not always the OS
172b53bb29fSJung-uk Kim				case $field2 in
173b53bb29fSJung-uk Kim					# Prevent following clause from handling this valid os
174b53bb29fSJung-uk Kim					sun*os*)
175b53bb29fSJung-uk Kim						basic_machine=$field1
1768e022d3cSDag-Erling Smørgrav						basic_os=$field2
1778e022d3cSDag-Erling Smørgrav						;;
1788e022d3cSDag-Erling Smørgrav					zephyr*)
1798e022d3cSDag-Erling Smørgrav						basic_machine=$field1-unknown
1808e022d3cSDag-Erling Smørgrav						basic_os=$field2
181b53bb29fSJung-uk Kim						;;
182b53bb29fSJung-uk Kim					# Manufacturers
183b53bb29fSJung-uk Kim					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
184b53bb29fSJung-uk Kim					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
185b53bb29fSJung-uk Kim					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
186b53bb29fSJung-uk Kim					| convergent* | ncr* | news | 32* | 3600* | 3100* \
187b53bb29fSJung-uk Kim					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
188b53bb29fSJung-uk Kim					| ultra | tti* | harris | dolphin | highlevel | gould \
189b53bb29fSJung-uk Kim					| cbm | ns | masscomp | apple | axis | knuth | cray \
190b53bb29fSJung-uk Kim					| microblaze* | sim | cisco \
191b53bb29fSJung-uk Kim					| oki | wec | wrs | winbond)
192b53bb29fSJung-uk Kim						basic_machine=$field1-$field2
1938e022d3cSDag-Erling Smørgrav						basic_os=
194b53bb29fSJung-uk Kim						;;
195b53bb29fSJung-uk Kim					*)
196b53bb29fSJung-uk Kim						basic_machine=$field1
1978e022d3cSDag-Erling Smørgrav						basic_os=$field2
198b53bb29fSJung-uk Kim						;;
199b53bb29fSJung-uk Kim				esac
200b53bb29fSJung-uk Kim			;;
201b53bb29fSJung-uk Kim		esac
202b53bb29fSJung-uk Kim		;;
203b53bb29fSJung-uk Kim	*)
204b53bb29fSJung-uk Kim		# Convert single-component short-hands not valid as part of
205b53bb29fSJung-uk Kim		# multi-component configurations.
206b53bb29fSJung-uk Kim		case $field1 in
207b53bb29fSJung-uk Kim			386bsd)
208b53bb29fSJung-uk Kim				basic_machine=i386-pc
2098e022d3cSDag-Erling Smørgrav				basic_os=bsd
210b53bb29fSJung-uk Kim				;;
211b53bb29fSJung-uk Kim			a29khif)
212b53bb29fSJung-uk Kim				basic_machine=a29k-amd
2138e022d3cSDag-Erling Smørgrav				basic_os=udi
214b53bb29fSJung-uk Kim				;;
215b53bb29fSJung-uk Kim			adobe68k)
216b53bb29fSJung-uk Kim				basic_machine=m68010-adobe
2178e022d3cSDag-Erling Smørgrav				basic_os=scout
218b53bb29fSJung-uk Kim				;;
219b53bb29fSJung-uk Kim			alliant)
220b53bb29fSJung-uk Kim				basic_machine=fx80-alliant
2218e022d3cSDag-Erling Smørgrav				basic_os=
222b53bb29fSJung-uk Kim				;;
223b53bb29fSJung-uk Kim			altos | altos3068)
224b53bb29fSJung-uk Kim				basic_machine=m68k-altos
2258e022d3cSDag-Erling Smørgrav				basic_os=
226b53bb29fSJung-uk Kim				;;
227b53bb29fSJung-uk Kim			am29k)
228b53bb29fSJung-uk Kim				basic_machine=a29k-none
2298e022d3cSDag-Erling Smørgrav				basic_os=bsd
230b53bb29fSJung-uk Kim				;;
231b53bb29fSJung-uk Kim			amdahl)
232b53bb29fSJung-uk Kim				basic_machine=580-amdahl
2338e022d3cSDag-Erling Smørgrav				basic_os=sysv
234b53bb29fSJung-uk Kim				;;
235b53bb29fSJung-uk Kim			amiga)
236b53bb29fSJung-uk Kim				basic_machine=m68k-unknown
2378e022d3cSDag-Erling Smørgrav				basic_os=
238b53bb29fSJung-uk Kim				;;
239b53bb29fSJung-uk Kim			amigaos | amigados)
240b53bb29fSJung-uk Kim				basic_machine=m68k-unknown
2418e022d3cSDag-Erling Smørgrav				basic_os=amigaos
242b53bb29fSJung-uk Kim				;;
243b53bb29fSJung-uk Kim			amigaunix | amix)
244b53bb29fSJung-uk Kim				basic_machine=m68k-unknown
2458e022d3cSDag-Erling Smørgrav				basic_os=sysv4
246b53bb29fSJung-uk Kim				;;
247b53bb29fSJung-uk Kim			apollo68)
248b53bb29fSJung-uk Kim				basic_machine=m68k-apollo
2498e022d3cSDag-Erling Smørgrav				basic_os=sysv
250b53bb29fSJung-uk Kim				;;
251b53bb29fSJung-uk Kim			apollo68bsd)
252b53bb29fSJung-uk Kim				basic_machine=m68k-apollo
2538e022d3cSDag-Erling Smørgrav				basic_os=bsd
254b53bb29fSJung-uk Kim				;;
255b53bb29fSJung-uk Kim			aros)
256b53bb29fSJung-uk Kim				basic_machine=i386-pc
2578e022d3cSDag-Erling Smørgrav				basic_os=aros
258b53bb29fSJung-uk Kim				;;
259b53bb29fSJung-uk Kim			aux)
260b53bb29fSJung-uk Kim				basic_machine=m68k-apple
2618e022d3cSDag-Erling Smørgrav				basic_os=aux
262b53bb29fSJung-uk Kim				;;
263b53bb29fSJung-uk Kim			balance)
264b53bb29fSJung-uk Kim				basic_machine=ns32k-sequent
2658e022d3cSDag-Erling Smørgrav				basic_os=dynix
266b53bb29fSJung-uk Kim				;;
267b53bb29fSJung-uk Kim			blackfin)
268b53bb29fSJung-uk Kim				basic_machine=bfin-unknown
2698e022d3cSDag-Erling Smørgrav				basic_os=linux
270b53bb29fSJung-uk Kim				;;
271b53bb29fSJung-uk Kim			cegcc)
272b53bb29fSJung-uk Kim				basic_machine=arm-unknown
2738e022d3cSDag-Erling Smørgrav				basic_os=cegcc
274b53bb29fSJung-uk Kim				;;
275b53bb29fSJung-uk Kim			convex-c1)
276b53bb29fSJung-uk Kim				basic_machine=c1-convex
2778e022d3cSDag-Erling Smørgrav				basic_os=bsd
278b53bb29fSJung-uk Kim				;;
279b53bb29fSJung-uk Kim			convex-c2)
280b53bb29fSJung-uk Kim				basic_machine=c2-convex
2818e022d3cSDag-Erling Smørgrav				basic_os=bsd
282b53bb29fSJung-uk Kim				;;
283b53bb29fSJung-uk Kim			convex-c32)
284b53bb29fSJung-uk Kim				basic_machine=c32-convex
2858e022d3cSDag-Erling Smørgrav				basic_os=bsd
286b53bb29fSJung-uk Kim				;;
287b53bb29fSJung-uk Kim			convex-c34)
288b53bb29fSJung-uk Kim				basic_machine=c34-convex
2898e022d3cSDag-Erling Smørgrav				basic_os=bsd
290b53bb29fSJung-uk Kim				;;
291b53bb29fSJung-uk Kim			convex-c38)
292b53bb29fSJung-uk Kim				basic_machine=c38-convex
2938e022d3cSDag-Erling Smørgrav				basic_os=bsd
294b53bb29fSJung-uk Kim				;;
295b53bb29fSJung-uk Kim			cray)
296b53bb29fSJung-uk Kim				basic_machine=j90-cray
2978e022d3cSDag-Erling Smørgrav				basic_os=unicos
298b53bb29fSJung-uk Kim				;;
299b53bb29fSJung-uk Kim			crds | unos)
300b53bb29fSJung-uk Kim				basic_machine=m68k-crds
3018e022d3cSDag-Erling Smørgrav				basic_os=
302b53bb29fSJung-uk Kim				;;
303b53bb29fSJung-uk Kim			da30)
304b53bb29fSJung-uk Kim				basic_machine=m68k-da30
3058e022d3cSDag-Erling Smørgrav				basic_os=
306b53bb29fSJung-uk Kim				;;
307b53bb29fSJung-uk Kim			decstation | pmax | pmin | dec3100 | decstatn)
308b53bb29fSJung-uk Kim				basic_machine=mips-dec
3098e022d3cSDag-Erling Smørgrav				basic_os=
310b53bb29fSJung-uk Kim				;;
311b53bb29fSJung-uk Kim			delta88)
312b53bb29fSJung-uk Kim				basic_machine=m88k-motorola
3138e022d3cSDag-Erling Smørgrav				basic_os=sysv3
314b53bb29fSJung-uk Kim				;;
315b53bb29fSJung-uk Kim			dicos)
316b53bb29fSJung-uk Kim				basic_machine=i686-pc
3178e022d3cSDag-Erling Smørgrav				basic_os=dicos
318b53bb29fSJung-uk Kim				;;
319b53bb29fSJung-uk Kim			djgpp)
320b53bb29fSJung-uk Kim				basic_machine=i586-pc
3218e022d3cSDag-Erling Smørgrav				basic_os=msdosdjgpp
322b53bb29fSJung-uk Kim				;;
323b53bb29fSJung-uk Kim			ebmon29k)
324b53bb29fSJung-uk Kim				basic_machine=a29k-amd
3258e022d3cSDag-Erling Smørgrav				basic_os=ebmon
326b53bb29fSJung-uk Kim				;;
327b53bb29fSJung-uk Kim			es1800 | OSE68k | ose68k | ose | OSE)
328b53bb29fSJung-uk Kim				basic_machine=m68k-ericsson
3298e022d3cSDag-Erling Smørgrav				basic_os=ose
330b53bb29fSJung-uk Kim				;;
331b53bb29fSJung-uk Kim			gmicro)
332b53bb29fSJung-uk Kim				basic_machine=tron-gmicro
3338e022d3cSDag-Erling Smørgrav				basic_os=sysv
334b53bb29fSJung-uk Kim				;;
335b53bb29fSJung-uk Kim			go32)
336b53bb29fSJung-uk Kim				basic_machine=i386-pc
3378e022d3cSDag-Erling Smørgrav				basic_os=go32
338b53bb29fSJung-uk Kim				;;
339b53bb29fSJung-uk Kim			h8300hms)
340b53bb29fSJung-uk Kim				basic_machine=h8300-hitachi
3418e022d3cSDag-Erling Smørgrav				basic_os=hms
342b53bb29fSJung-uk Kim				;;
343b53bb29fSJung-uk Kim			h8300xray)
344b53bb29fSJung-uk Kim				basic_machine=h8300-hitachi
3458e022d3cSDag-Erling Smørgrav				basic_os=xray
346b53bb29fSJung-uk Kim				;;
347b53bb29fSJung-uk Kim			h8500hms)
348b53bb29fSJung-uk Kim				basic_machine=h8500-hitachi
3498e022d3cSDag-Erling Smørgrav				basic_os=hms
350b53bb29fSJung-uk Kim				;;
351b53bb29fSJung-uk Kim			harris)
352b53bb29fSJung-uk Kim				basic_machine=m88k-harris
3538e022d3cSDag-Erling Smørgrav				basic_os=sysv3
354b53bb29fSJung-uk Kim				;;
355b53bb29fSJung-uk Kim			hp300 | hp300hpux)
356b53bb29fSJung-uk Kim				basic_machine=m68k-hp
3578e022d3cSDag-Erling Smørgrav				basic_os=hpux
358b53bb29fSJung-uk Kim				;;
359b53bb29fSJung-uk Kim			hp300bsd)
360b53bb29fSJung-uk Kim				basic_machine=m68k-hp
3618e022d3cSDag-Erling Smørgrav				basic_os=bsd
362b53bb29fSJung-uk Kim				;;
363b53bb29fSJung-uk Kim			hppaosf)
364b53bb29fSJung-uk Kim				basic_machine=hppa1.1-hp
3658e022d3cSDag-Erling Smørgrav				basic_os=osf
366b53bb29fSJung-uk Kim				;;
367b53bb29fSJung-uk Kim			hppro)
368b53bb29fSJung-uk Kim				basic_machine=hppa1.1-hp
3698e022d3cSDag-Erling Smørgrav				basic_os=proelf
370b53bb29fSJung-uk Kim				;;
371b53bb29fSJung-uk Kim			i386mach)
372b53bb29fSJung-uk Kim				basic_machine=i386-mach
3738e022d3cSDag-Erling Smørgrav				basic_os=mach
374b53bb29fSJung-uk Kim				;;
375b53bb29fSJung-uk Kim			isi68 | isi)
376b53bb29fSJung-uk Kim				basic_machine=m68k-isi
3778e022d3cSDag-Erling Smørgrav				basic_os=sysv
378b53bb29fSJung-uk Kim				;;
379b53bb29fSJung-uk Kim			m68knommu)
380b53bb29fSJung-uk Kim				basic_machine=m68k-unknown
3818e022d3cSDag-Erling Smørgrav				basic_os=linux
382b53bb29fSJung-uk Kim				;;
383b53bb29fSJung-uk Kim			magnum | m3230)
384b53bb29fSJung-uk Kim				basic_machine=mips-mips
3858e022d3cSDag-Erling Smørgrav				basic_os=sysv
386b53bb29fSJung-uk Kim				;;
387b53bb29fSJung-uk Kim			merlin)
388b53bb29fSJung-uk Kim				basic_machine=ns32k-utek
3898e022d3cSDag-Erling Smørgrav				basic_os=sysv
390b53bb29fSJung-uk Kim				;;
391b53bb29fSJung-uk Kim			mingw64)
392b53bb29fSJung-uk Kim				basic_machine=x86_64-pc
3938e022d3cSDag-Erling Smørgrav				basic_os=mingw64
394b53bb29fSJung-uk Kim				;;
395b53bb29fSJung-uk Kim			mingw32)
396b53bb29fSJung-uk Kim				basic_machine=i686-pc
3978e022d3cSDag-Erling Smørgrav				basic_os=mingw32
398b53bb29fSJung-uk Kim				;;
399b53bb29fSJung-uk Kim			mingw32ce)
400b53bb29fSJung-uk Kim				basic_machine=arm-unknown
4018e022d3cSDag-Erling Smørgrav				basic_os=mingw32ce
402b53bb29fSJung-uk Kim				;;
403b53bb29fSJung-uk Kim			monitor)
404b53bb29fSJung-uk Kim				basic_machine=m68k-rom68k
4058e022d3cSDag-Erling Smørgrav				basic_os=coff
406b53bb29fSJung-uk Kim				;;
407b53bb29fSJung-uk Kim			morphos)
408b53bb29fSJung-uk Kim				basic_machine=powerpc-unknown
4098e022d3cSDag-Erling Smørgrav				basic_os=morphos
410b53bb29fSJung-uk Kim				;;
411b53bb29fSJung-uk Kim			moxiebox)
412b53bb29fSJung-uk Kim				basic_machine=moxie-unknown
4138e022d3cSDag-Erling Smørgrav				basic_os=moxiebox
414b53bb29fSJung-uk Kim				;;
415b53bb29fSJung-uk Kim			msdos)
416b53bb29fSJung-uk Kim				basic_machine=i386-pc
4178e022d3cSDag-Erling Smørgrav				basic_os=msdos
418b53bb29fSJung-uk Kim				;;
419b53bb29fSJung-uk Kim			msys)
420b53bb29fSJung-uk Kim				basic_machine=i686-pc
4218e022d3cSDag-Erling Smørgrav				basic_os=msys
422b53bb29fSJung-uk Kim				;;
423b53bb29fSJung-uk Kim			mvs)
424b53bb29fSJung-uk Kim				basic_machine=i370-ibm
4258e022d3cSDag-Erling Smørgrav				basic_os=mvs
426b53bb29fSJung-uk Kim				;;
427b53bb29fSJung-uk Kim			nacl)
428b53bb29fSJung-uk Kim				basic_machine=le32-unknown
4298e022d3cSDag-Erling Smørgrav				basic_os=nacl
430b53bb29fSJung-uk Kim				;;
431b53bb29fSJung-uk Kim			ncr3000)
432b53bb29fSJung-uk Kim				basic_machine=i486-ncr
4338e022d3cSDag-Erling Smørgrav				basic_os=sysv4
434b53bb29fSJung-uk Kim				;;
435b53bb29fSJung-uk Kim			netbsd386)
436b53bb29fSJung-uk Kim				basic_machine=i386-pc
4378e022d3cSDag-Erling Smørgrav				basic_os=netbsd
438b53bb29fSJung-uk Kim				;;
439b53bb29fSJung-uk Kim			netwinder)
440b53bb29fSJung-uk Kim				basic_machine=armv4l-rebel
4418e022d3cSDag-Erling Smørgrav				basic_os=linux
442b53bb29fSJung-uk Kim				;;
443b53bb29fSJung-uk Kim			news | news700 | news800 | news900)
444b53bb29fSJung-uk Kim				basic_machine=m68k-sony
4458e022d3cSDag-Erling Smørgrav				basic_os=newsos
446b53bb29fSJung-uk Kim				;;
447b53bb29fSJung-uk Kim			news1000)
448b53bb29fSJung-uk Kim				basic_machine=m68030-sony
4498e022d3cSDag-Erling Smørgrav				basic_os=newsos
450b53bb29fSJung-uk Kim				;;
451b53bb29fSJung-uk Kim			necv70)
452b53bb29fSJung-uk Kim				basic_machine=v70-nec
4538e022d3cSDag-Erling Smørgrav				basic_os=sysv
454b53bb29fSJung-uk Kim				;;
455b53bb29fSJung-uk Kim			nh3000)
456b53bb29fSJung-uk Kim				basic_machine=m68k-harris
4578e022d3cSDag-Erling Smørgrav				basic_os=cxux
458b53bb29fSJung-uk Kim				;;
459b53bb29fSJung-uk Kim			nh[45]000)
460b53bb29fSJung-uk Kim				basic_machine=m88k-harris
4618e022d3cSDag-Erling Smørgrav				basic_os=cxux
462b53bb29fSJung-uk Kim				;;
463b53bb29fSJung-uk Kim			nindy960)
464b53bb29fSJung-uk Kim				basic_machine=i960-intel
4658e022d3cSDag-Erling Smørgrav				basic_os=nindy
466b53bb29fSJung-uk Kim				;;
467b53bb29fSJung-uk Kim			mon960)
468b53bb29fSJung-uk Kim				basic_machine=i960-intel
4698e022d3cSDag-Erling Smørgrav				basic_os=mon960
470b53bb29fSJung-uk Kim				;;
471b53bb29fSJung-uk Kim			nonstopux)
472b53bb29fSJung-uk Kim				basic_machine=mips-compaq
4738e022d3cSDag-Erling Smørgrav				basic_os=nonstopux
474b53bb29fSJung-uk Kim				;;
475b53bb29fSJung-uk Kim			os400)
476b53bb29fSJung-uk Kim				basic_machine=powerpc-ibm
4778e022d3cSDag-Erling Smørgrav				basic_os=os400
478b53bb29fSJung-uk Kim				;;
479b53bb29fSJung-uk Kim			OSE68000 | ose68000)
480b53bb29fSJung-uk Kim				basic_machine=m68000-ericsson
4818e022d3cSDag-Erling Smørgrav				basic_os=ose
482b53bb29fSJung-uk Kim				;;
483b53bb29fSJung-uk Kim			os68k)
484b53bb29fSJung-uk Kim				basic_machine=m68k-none
4858e022d3cSDag-Erling Smørgrav				basic_os=os68k
486b53bb29fSJung-uk Kim				;;
487b53bb29fSJung-uk Kim			paragon)
488b53bb29fSJung-uk Kim				basic_machine=i860-intel
4898e022d3cSDag-Erling Smørgrav				basic_os=osf
490b53bb29fSJung-uk Kim				;;
491b53bb29fSJung-uk Kim			parisc)
492b53bb29fSJung-uk Kim				basic_machine=hppa-unknown
4938e022d3cSDag-Erling Smørgrav				basic_os=linux
4948e022d3cSDag-Erling Smørgrav				;;
4958e022d3cSDag-Erling Smørgrav			psp)
4968e022d3cSDag-Erling Smørgrav				basic_machine=mipsallegrexel-sony
4978e022d3cSDag-Erling Smørgrav				basic_os=psp
498b53bb29fSJung-uk Kim				;;
499b53bb29fSJung-uk Kim			pw32)
500b53bb29fSJung-uk Kim				basic_machine=i586-unknown
5018e022d3cSDag-Erling Smørgrav				basic_os=pw32
502b53bb29fSJung-uk Kim				;;
503b53bb29fSJung-uk Kim			rdos | rdos64)
504b53bb29fSJung-uk Kim				basic_machine=x86_64-pc
5058e022d3cSDag-Erling Smørgrav				basic_os=rdos
506b53bb29fSJung-uk Kim				;;
507b53bb29fSJung-uk Kim			rdos32)
508b53bb29fSJung-uk Kim				basic_machine=i386-pc
5098e022d3cSDag-Erling Smørgrav				basic_os=rdos
510b53bb29fSJung-uk Kim				;;
511b53bb29fSJung-uk Kim			rom68k)
512b53bb29fSJung-uk Kim				basic_machine=m68k-rom68k
5138e022d3cSDag-Erling Smørgrav				basic_os=coff
514b53bb29fSJung-uk Kim				;;
515b53bb29fSJung-uk Kim			sa29200)
516b53bb29fSJung-uk Kim				basic_machine=a29k-amd
5178e022d3cSDag-Erling Smørgrav				basic_os=udi
518b53bb29fSJung-uk Kim				;;
519b53bb29fSJung-uk Kim			sei)
520b53bb29fSJung-uk Kim				basic_machine=mips-sei
5218e022d3cSDag-Erling Smørgrav				basic_os=seiux
522b53bb29fSJung-uk Kim				;;
523b53bb29fSJung-uk Kim			sequent)
524b53bb29fSJung-uk Kim				basic_machine=i386-sequent
5258e022d3cSDag-Erling Smørgrav				basic_os=
526b53bb29fSJung-uk Kim				;;
527b53bb29fSJung-uk Kim			sps7)
528b53bb29fSJung-uk Kim				basic_machine=m68k-bull
5298e022d3cSDag-Erling Smørgrav				basic_os=sysv2
530b53bb29fSJung-uk Kim				;;
531b53bb29fSJung-uk Kim			st2000)
532b53bb29fSJung-uk Kim				basic_machine=m68k-tandem
5338e022d3cSDag-Erling Smørgrav				basic_os=
534b53bb29fSJung-uk Kim				;;
535b53bb29fSJung-uk Kim			stratus)
536b53bb29fSJung-uk Kim				basic_machine=i860-stratus
5378e022d3cSDag-Erling Smørgrav				basic_os=sysv4
538b53bb29fSJung-uk Kim				;;
539b53bb29fSJung-uk Kim			sun2)
540b53bb29fSJung-uk Kim				basic_machine=m68000-sun
5418e022d3cSDag-Erling Smørgrav				basic_os=
542b53bb29fSJung-uk Kim				;;
543b53bb29fSJung-uk Kim			sun2os3)
544b53bb29fSJung-uk Kim				basic_machine=m68000-sun
5458e022d3cSDag-Erling Smørgrav				basic_os=sunos3
546b53bb29fSJung-uk Kim				;;
547b53bb29fSJung-uk Kim			sun2os4)
548b53bb29fSJung-uk Kim				basic_machine=m68000-sun
5498e022d3cSDag-Erling Smørgrav				basic_os=sunos4
550b53bb29fSJung-uk Kim				;;
551b53bb29fSJung-uk Kim			sun3)
552b53bb29fSJung-uk Kim				basic_machine=m68k-sun
5538e022d3cSDag-Erling Smørgrav				basic_os=
554b53bb29fSJung-uk Kim				;;
555b53bb29fSJung-uk Kim			sun3os3)
556b53bb29fSJung-uk Kim				basic_machine=m68k-sun
5578e022d3cSDag-Erling Smørgrav				basic_os=sunos3
558b53bb29fSJung-uk Kim				;;
559b53bb29fSJung-uk Kim			sun3os4)
560b53bb29fSJung-uk Kim				basic_machine=m68k-sun
5618e022d3cSDag-Erling Smørgrav				basic_os=sunos4
562b53bb29fSJung-uk Kim				;;
563b53bb29fSJung-uk Kim			sun4)
564b53bb29fSJung-uk Kim				basic_machine=sparc-sun
5658e022d3cSDag-Erling Smørgrav				basic_os=
566b53bb29fSJung-uk Kim				;;
567b53bb29fSJung-uk Kim			sun4os3)
568b53bb29fSJung-uk Kim				basic_machine=sparc-sun
5698e022d3cSDag-Erling Smørgrav				basic_os=sunos3
570b53bb29fSJung-uk Kim				;;
571b53bb29fSJung-uk Kim			sun4os4)
572b53bb29fSJung-uk Kim				basic_machine=sparc-sun
5738e022d3cSDag-Erling Smørgrav				basic_os=sunos4
574b53bb29fSJung-uk Kim				;;
575b53bb29fSJung-uk Kim			sun4sol2)
576b53bb29fSJung-uk Kim				basic_machine=sparc-sun
5778e022d3cSDag-Erling Smørgrav				basic_os=solaris2
578b53bb29fSJung-uk Kim				;;
579b53bb29fSJung-uk Kim			sun386 | sun386i | roadrunner)
580b53bb29fSJung-uk Kim				basic_machine=i386-sun
5818e022d3cSDag-Erling Smørgrav				basic_os=
582b53bb29fSJung-uk Kim				;;
583b53bb29fSJung-uk Kim			sv1)
584b53bb29fSJung-uk Kim				basic_machine=sv1-cray
5858e022d3cSDag-Erling Smørgrav				basic_os=unicos
586b53bb29fSJung-uk Kim				;;
587b53bb29fSJung-uk Kim			symmetry)
588b53bb29fSJung-uk Kim				basic_machine=i386-sequent
5898e022d3cSDag-Erling Smørgrav				basic_os=dynix
590b53bb29fSJung-uk Kim				;;
591b53bb29fSJung-uk Kim			t3e)
592b53bb29fSJung-uk Kim				basic_machine=alphaev5-cray
5938e022d3cSDag-Erling Smørgrav				basic_os=unicos
594b53bb29fSJung-uk Kim				;;
595b53bb29fSJung-uk Kim			t90)
596b53bb29fSJung-uk Kim				basic_machine=t90-cray
5978e022d3cSDag-Erling Smørgrav				basic_os=unicos
598b53bb29fSJung-uk Kim				;;
599b53bb29fSJung-uk Kim			toad1)
600b53bb29fSJung-uk Kim				basic_machine=pdp10-xkl
6018e022d3cSDag-Erling Smørgrav				basic_os=tops20
602b53bb29fSJung-uk Kim				;;
603b53bb29fSJung-uk Kim			tpf)
604b53bb29fSJung-uk Kim				basic_machine=s390x-ibm
6058e022d3cSDag-Erling Smørgrav				basic_os=tpf
606b53bb29fSJung-uk Kim				;;
607b53bb29fSJung-uk Kim			udi29k)
608b53bb29fSJung-uk Kim				basic_machine=a29k-amd
6098e022d3cSDag-Erling Smørgrav				basic_os=udi
610b53bb29fSJung-uk Kim				;;
611b53bb29fSJung-uk Kim			ultra3)
612b53bb29fSJung-uk Kim				basic_machine=a29k-nyu
6138e022d3cSDag-Erling Smørgrav				basic_os=sym1
614b53bb29fSJung-uk Kim				;;
615b53bb29fSJung-uk Kim			v810 | necv810)
616b53bb29fSJung-uk Kim				basic_machine=v810-nec
6178e022d3cSDag-Erling Smørgrav				basic_os=none
618b53bb29fSJung-uk Kim				;;
619b53bb29fSJung-uk Kim			vaxv)
620b53bb29fSJung-uk Kim				basic_machine=vax-dec
6218e022d3cSDag-Erling Smørgrav				basic_os=sysv
622b53bb29fSJung-uk Kim				;;
623b53bb29fSJung-uk Kim			vms)
624b53bb29fSJung-uk Kim				basic_machine=vax-dec
6258e022d3cSDag-Erling Smørgrav				basic_os=vms
626b53bb29fSJung-uk Kim				;;
627b53bb29fSJung-uk Kim			vsta)
628b53bb29fSJung-uk Kim				basic_machine=i386-pc
6298e022d3cSDag-Erling Smørgrav				basic_os=vsta
630b53bb29fSJung-uk Kim				;;
631b53bb29fSJung-uk Kim			vxworks960)
632b53bb29fSJung-uk Kim				basic_machine=i960-wrs
6338e022d3cSDag-Erling Smørgrav				basic_os=vxworks
634b53bb29fSJung-uk Kim				;;
635b53bb29fSJung-uk Kim			vxworks68)
636b53bb29fSJung-uk Kim				basic_machine=m68k-wrs
6378e022d3cSDag-Erling Smørgrav				basic_os=vxworks
638b53bb29fSJung-uk Kim				;;
639b53bb29fSJung-uk Kim			vxworks29k)
640b53bb29fSJung-uk Kim				basic_machine=a29k-wrs
6418e022d3cSDag-Erling Smørgrav				basic_os=vxworks
642b53bb29fSJung-uk Kim				;;
643b53bb29fSJung-uk Kim			xbox)
644b53bb29fSJung-uk Kim				basic_machine=i686-pc
6458e022d3cSDag-Erling Smørgrav				basic_os=mingw32
646b53bb29fSJung-uk Kim				;;
647b53bb29fSJung-uk Kim			ymp)
648b53bb29fSJung-uk Kim				basic_machine=ymp-cray
6498e022d3cSDag-Erling Smørgrav				basic_os=unicos
650b53bb29fSJung-uk Kim				;;
651b53bb29fSJung-uk Kim			*)
652b53bb29fSJung-uk Kim				basic_machine=$1
6538e022d3cSDag-Erling Smørgrav				basic_os=
654b53bb29fSJung-uk Kim				;;
655b53bb29fSJung-uk Kim		esac
65698e903e7SBaptiste Daroussin		;;
65798e903e7SBaptiste Daroussinesac
65898e903e7SBaptiste Daroussin
659b53bb29fSJung-uk Kim# Decode 1-component or ad-hoc basic machines
66098e903e7SBaptiste Daroussincase $basic_machine in
661b53bb29fSJung-uk Kim	# Here we handle the default manufacturer of certain CPU types.  It is in
662b53bb29fSJung-uk Kim	# some cases the only manufacturer, in others, it is the most popular.
663b53bb29fSJung-uk Kim	w89k)
664b53bb29fSJung-uk Kim		cpu=hppa1.1
665b53bb29fSJung-uk Kim		vendor=winbond
666b53bb29fSJung-uk Kim		;;
667b53bb29fSJung-uk Kim	op50n)
668b53bb29fSJung-uk Kim		cpu=hppa1.1
669b53bb29fSJung-uk Kim		vendor=oki
670b53bb29fSJung-uk Kim		;;
671b53bb29fSJung-uk Kim	op60c)
672b53bb29fSJung-uk Kim		cpu=hppa1.1
673b53bb29fSJung-uk Kim		vendor=oki
674b53bb29fSJung-uk Kim		;;
675b53bb29fSJung-uk Kim	ibm*)
676b53bb29fSJung-uk Kim		cpu=i370
677b53bb29fSJung-uk Kim		vendor=ibm
678b53bb29fSJung-uk Kim		;;
679b53bb29fSJung-uk Kim	orion105)
680b53bb29fSJung-uk Kim		cpu=clipper
681b53bb29fSJung-uk Kim		vendor=highlevel
682b53bb29fSJung-uk Kim		;;
683b53bb29fSJung-uk Kim	mac | mpw | mac-mpw)
684b53bb29fSJung-uk Kim		cpu=m68k
685b53bb29fSJung-uk Kim		vendor=apple
686b53bb29fSJung-uk Kim		;;
687b53bb29fSJung-uk Kim	pmac | pmac-mpw)
688b53bb29fSJung-uk Kim		cpu=powerpc
689b53bb29fSJung-uk Kim		vendor=apple
690b53bb29fSJung-uk Kim		;;
691b53bb29fSJung-uk Kim
692b53bb29fSJung-uk Kim	# Recognize the various machine names and aliases which stand
693b53bb29fSJung-uk Kim	# for a CPU type and a company and sometimes even an OS.
694b53bb29fSJung-uk Kim	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
695b53bb29fSJung-uk Kim		cpu=m68000
696b53bb29fSJung-uk Kim		vendor=att
697b53bb29fSJung-uk Kim		;;
698b53bb29fSJung-uk Kim	3b*)
699b53bb29fSJung-uk Kim		cpu=we32k
700b53bb29fSJung-uk Kim		vendor=att
701b53bb29fSJung-uk Kim		;;
702b53bb29fSJung-uk Kim	bluegene*)
703b53bb29fSJung-uk Kim		cpu=powerpc
704b53bb29fSJung-uk Kim		vendor=ibm
7058e022d3cSDag-Erling Smørgrav		basic_os=cnk
706b53bb29fSJung-uk Kim		;;
707b53bb29fSJung-uk Kim	decsystem10* | dec10*)
708b53bb29fSJung-uk Kim		cpu=pdp10
709b53bb29fSJung-uk Kim		vendor=dec
7108e022d3cSDag-Erling Smørgrav		basic_os=tops10
711b53bb29fSJung-uk Kim		;;
712b53bb29fSJung-uk Kim	decsystem20* | dec20*)
713b53bb29fSJung-uk Kim		cpu=pdp10
714b53bb29fSJung-uk Kim		vendor=dec
7158e022d3cSDag-Erling Smørgrav		basic_os=tops20
716b53bb29fSJung-uk Kim		;;
717b53bb29fSJung-uk Kim	delta | 3300 | motorola-3300 | motorola-delta \
718b53bb29fSJung-uk Kim	      | 3300-motorola | delta-motorola)
719b53bb29fSJung-uk Kim		cpu=m68k
720b53bb29fSJung-uk Kim		vendor=motorola
721b53bb29fSJung-uk Kim		;;
722b53bb29fSJung-uk Kim	dpx2*)
723b53bb29fSJung-uk Kim		cpu=m68k
724b53bb29fSJung-uk Kim		vendor=bull
7258e022d3cSDag-Erling Smørgrav		basic_os=sysv3
726b53bb29fSJung-uk Kim		;;
727b53bb29fSJung-uk Kim	encore | umax | mmax)
728b53bb29fSJung-uk Kim		cpu=ns32k
729b53bb29fSJung-uk Kim		vendor=encore
730b53bb29fSJung-uk Kim		;;
731b53bb29fSJung-uk Kim	elxsi)
732b53bb29fSJung-uk Kim		cpu=elxsi
733b53bb29fSJung-uk Kim		vendor=elxsi
7348e022d3cSDag-Erling Smørgrav		basic_os=${basic_os:-bsd}
735b53bb29fSJung-uk Kim		;;
736b53bb29fSJung-uk Kim	fx2800)
737b53bb29fSJung-uk Kim		cpu=i860
738b53bb29fSJung-uk Kim		vendor=alliant
739b53bb29fSJung-uk Kim		;;
740b53bb29fSJung-uk Kim	genix)
741b53bb29fSJung-uk Kim		cpu=ns32k
742b53bb29fSJung-uk Kim		vendor=ns
743b53bb29fSJung-uk Kim		;;
744b53bb29fSJung-uk Kim	h3050r* | hiux*)
745b53bb29fSJung-uk Kim		cpu=hppa1.1
746b53bb29fSJung-uk Kim		vendor=hitachi
7478e022d3cSDag-Erling Smørgrav		basic_os=hiuxwe2
748b53bb29fSJung-uk Kim		;;
749b53bb29fSJung-uk Kim	hp3k9[0-9][0-9] | hp9[0-9][0-9])
750b53bb29fSJung-uk Kim		cpu=hppa1.0
751b53bb29fSJung-uk Kim		vendor=hp
752b53bb29fSJung-uk Kim		;;
753b53bb29fSJung-uk Kim	hp9k2[0-9][0-9] | hp9k31[0-9])
754b53bb29fSJung-uk Kim		cpu=m68000
755b53bb29fSJung-uk Kim		vendor=hp
756b53bb29fSJung-uk Kim		;;
757b53bb29fSJung-uk Kim	hp9k3[2-9][0-9])
758b53bb29fSJung-uk Kim		cpu=m68k
759b53bb29fSJung-uk Kim		vendor=hp
760b53bb29fSJung-uk Kim		;;
761b53bb29fSJung-uk Kim	hp9k6[0-9][0-9] | hp6[0-9][0-9])
762b53bb29fSJung-uk Kim		cpu=hppa1.0
763b53bb29fSJung-uk Kim		vendor=hp
764b53bb29fSJung-uk Kim		;;
765b53bb29fSJung-uk Kim	hp9k7[0-79][0-9] | hp7[0-79][0-9])
766b53bb29fSJung-uk Kim		cpu=hppa1.1
767b53bb29fSJung-uk Kim		vendor=hp
768b53bb29fSJung-uk Kim		;;
769b53bb29fSJung-uk Kim	hp9k78[0-9] | hp78[0-9])
770b53bb29fSJung-uk Kim		# FIXME: really hppa2.0-hp
771b53bb29fSJung-uk Kim		cpu=hppa1.1
772b53bb29fSJung-uk Kim		vendor=hp
773b53bb29fSJung-uk Kim		;;
774b53bb29fSJung-uk Kim	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
775b53bb29fSJung-uk Kim		# FIXME: really hppa2.0-hp
776b53bb29fSJung-uk Kim		cpu=hppa1.1
777b53bb29fSJung-uk Kim		vendor=hp
778b53bb29fSJung-uk Kim		;;
779b53bb29fSJung-uk Kim	hp9k8[0-9][13679] | hp8[0-9][13679])
780b53bb29fSJung-uk Kim		cpu=hppa1.1
781b53bb29fSJung-uk Kim		vendor=hp
782b53bb29fSJung-uk Kim		;;
783b53bb29fSJung-uk Kim	hp9k8[0-9][0-9] | hp8[0-9][0-9])
784b53bb29fSJung-uk Kim		cpu=hppa1.0
785b53bb29fSJung-uk Kim		vendor=hp
786b53bb29fSJung-uk Kim		;;
787b53bb29fSJung-uk Kim	i*86v32)
788b53bb29fSJung-uk Kim		cpu=`echo "$1" | sed -e 's/86.*/86/'`
789b53bb29fSJung-uk Kim		vendor=pc
7908e022d3cSDag-Erling Smørgrav		basic_os=sysv32
791b53bb29fSJung-uk Kim		;;
792b53bb29fSJung-uk Kim	i*86v4*)
793b53bb29fSJung-uk Kim		cpu=`echo "$1" | sed -e 's/86.*/86/'`
794b53bb29fSJung-uk Kim		vendor=pc
7958e022d3cSDag-Erling Smørgrav		basic_os=sysv4
796b53bb29fSJung-uk Kim		;;
797b53bb29fSJung-uk Kim	i*86v)
798b53bb29fSJung-uk Kim		cpu=`echo "$1" | sed -e 's/86.*/86/'`
799b53bb29fSJung-uk Kim		vendor=pc
8008e022d3cSDag-Erling Smørgrav		basic_os=sysv
801b53bb29fSJung-uk Kim		;;
802b53bb29fSJung-uk Kim	i*86sol2)
803b53bb29fSJung-uk Kim		cpu=`echo "$1" | sed -e 's/86.*/86/'`
804b53bb29fSJung-uk Kim		vendor=pc
8058e022d3cSDag-Erling Smørgrav		basic_os=solaris2
806b53bb29fSJung-uk Kim		;;
807b53bb29fSJung-uk Kim	j90 | j90-cray)
808b53bb29fSJung-uk Kim		cpu=j90
809b53bb29fSJung-uk Kim		vendor=cray
8108e022d3cSDag-Erling Smørgrav		basic_os=${basic_os:-unicos}
811b53bb29fSJung-uk Kim		;;
812b53bb29fSJung-uk Kim	iris | iris4d)
813b53bb29fSJung-uk Kim		cpu=mips
814b53bb29fSJung-uk Kim		vendor=sgi
8158e022d3cSDag-Erling Smørgrav		case $basic_os in
816b53bb29fSJung-uk Kim		    irix*)
817b53bb29fSJung-uk Kim			;;
818b53bb29fSJung-uk Kim		    *)
8198e022d3cSDag-Erling Smørgrav			basic_os=irix4
820b53bb29fSJung-uk Kim			;;
821b53bb29fSJung-uk Kim		esac
822b53bb29fSJung-uk Kim		;;
823b53bb29fSJung-uk Kim	miniframe)
824b53bb29fSJung-uk Kim		cpu=m68000
825b53bb29fSJung-uk Kim		vendor=convergent
826b53bb29fSJung-uk Kim		;;
827b53bb29fSJung-uk Kim	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
828b53bb29fSJung-uk Kim		cpu=m68k
829b53bb29fSJung-uk Kim		vendor=atari
8308e022d3cSDag-Erling Smørgrav		basic_os=mint
831b53bb29fSJung-uk Kim		;;
832b53bb29fSJung-uk Kim	news-3600 | risc-news)
833b53bb29fSJung-uk Kim		cpu=mips
834b53bb29fSJung-uk Kim		vendor=sony
8358e022d3cSDag-Erling Smørgrav		basic_os=newsos
836b53bb29fSJung-uk Kim		;;
837b53bb29fSJung-uk Kim	next | m*-next)
838b53bb29fSJung-uk Kim		cpu=m68k
839b53bb29fSJung-uk Kim		vendor=next
8408e022d3cSDag-Erling Smørgrav		case $basic_os in
841b53bb29fSJung-uk Kim		    openstep*)
842b53bb29fSJung-uk Kim		        ;;
843b53bb29fSJung-uk Kim		    nextstep*)
844b53bb29fSJung-uk Kim			;;
845b53bb29fSJung-uk Kim		    ns2*)
8468e022d3cSDag-Erling Smørgrav		      basic_os=nextstep2
847b53bb29fSJung-uk Kim			;;
848b53bb29fSJung-uk Kim		    *)
8498e022d3cSDag-Erling Smørgrav		      basic_os=nextstep3
850b53bb29fSJung-uk Kim			;;
851b53bb29fSJung-uk Kim		esac
852b53bb29fSJung-uk Kim		;;
853b53bb29fSJung-uk Kim	np1)
854b53bb29fSJung-uk Kim		cpu=np1
855b53bb29fSJung-uk Kim		vendor=gould
856b53bb29fSJung-uk Kim		;;
857b53bb29fSJung-uk Kim	op50n-* | op60c-*)
858b53bb29fSJung-uk Kim		cpu=hppa1.1
859b53bb29fSJung-uk Kim		vendor=oki
8608e022d3cSDag-Erling Smørgrav		basic_os=proelf
861b53bb29fSJung-uk Kim		;;
862b53bb29fSJung-uk Kim	pa-hitachi)
863b53bb29fSJung-uk Kim		cpu=hppa1.1
864b53bb29fSJung-uk Kim		vendor=hitachi
8658e022d3cSDag-Erling Smørgrav		basic_os=hiuxwe2
866b53bb29fSJung-uk Kim		;;
867b53bb29fSJung-uk Kim	pbd)
868b53bb29fSJung-uk Kim		cpu=sparc
869b53bb29fSJung-uk Kim		vendor=tti
870b53bb29fSJung-uk Kim		;;
871b53bb29fSJung-uk Kim	pbb)
872b53bb29fSJung-uk Kim		cpu=m68k
873b53bb29fSJung-uk Kim		vendor=tti
874b53bb29fSJung-uk Kim		;;
875b53bb29fSJung-uk Kim	pc532)
876b53bb29fSJung-uk Kim		cpu=ns32k
877b53bb29fSJung-uk Kim		vendor=pc532
878b53bb29fSJung-uk Kim		;;
879b53bb29fSJung-uk Kim	pn)
880b53bb29fSJung-uk Kim		cpu=pn
881b53bb29fSJung-uk Kim		vendor=gould
882b53bb29fSJung-uk Kim		;;
883b53bb29fSJung-uk Kim	power)
884b53bb29fSJung-uk Kim		cpu=power
885b53bb29fSJung-uk Kim		vendor=ibm
886b53bb29fSJung-uk Kim		;;
887b53bb29fSJung-uk Kim	ps2)
888b53bb29fSJung-uk Kim		cpu=i386
889b53bb29fSJung-uk Kim		vendor=ibm
890b53bb29fSJung-uk Kim		;;
891b53bb29fSJung-uk Kim	rm[46]00)
892b53bb29fSJung-uk Kim		cpu=mips
893b53bb29fSJung-uk Kim		vendor=siemens
894b53bb29fSJung-uk Kim		;;
895b53bb29fSJung-uk Kim	rtpc | rtpc-*)
896b53bb29fSJung-uk Kim		cpu=romp
897b53bb29fSJung-uk Kim		vendor=ibm
898b53bb29fSJung-uk Kim		;;
899b53bb29fSJung-uk Kim	sde)
900b53bb29fSJung-uk Kim		cpu=mipsisa32
901b53bb29fSJung-uk Kim		vendor=sde
9028e022d3cSDag-Erling Smørgrav		basic_os=${basic_os:-elf}
903b53bb29fSJung-uk Kim		;;
904b53bb29fSJung-uk Kim	simso-wrs)
905b53bb29fSJung-uk Kim		cpu=sparclite
906b53bb29fSJung-uk Kim		vendor=wrs
9078e022d3cSDag-Erling Smørgrav		basic_os=vxworks
908b53bb29fSJung-uk Kim		;;
909b53bb29fSJung-uk Kim	tower | tower-32)
910b53bb29fSJung-uk Kim		cpu=m68k
911b53bb29fSJung-uk Kim		vendor=ncr
912b53bb29fSJung-uk Kim		;;
913b53bb29fSJung-uk Kim	vpp*|vx|vx-*)
914b53bb29fSJung-uk Kim		cpu=f301
915b53bb29fSJung-uk Kim		vendor=fujitsu
916b53bb29fSJung-uk Kim		;;
917b53bb29fSJung-uk Kim	w65)
918b53bb29fSJung-uk Kim		cpu=w65
919b53bb29fSJung-uk Kim		vendor=wdc
920b53bb29fSJung-uk Kim		;;
921b53bb29fSJung-uk Kim	w89k-*)
922b53bb29fSJung-uk Kim		cpu=hppa1.1
923b53bb29fSJung-uk Kim		vendor=winbond
9248e022d3cSDag-Erling Smørgrav		basic_os=proelf
925b53bb29fSJung-uk Kim		;;
926b53bb29fSJung-uk Kim	none)
927b53bb29fSJung-uk Kim		cpu=none
928b53bb29fSJung-uk Kim		vendor=none
929b53bb29fSJung-uk Kim		;;
930b53bb29fSJung-uk Kim	leon|leon[3-9])
931b53bb29fSJung-uk Kim		cpu=sparc
932b53bb29fSJung-uk Kim		vendor=$basic_machine
933b53bb29fSJung-uk Kim		;;
934b53bb29fSJung-uk Kim	leon-*|leon[3-9]-*)
935b53bb29fSJung-uk Kim		cpu=sparc
936b53bb29fSJung-uk Kim		vendor=`echo "$basic_machine" | sed 's/-.*//'`
937b53bb29fSJung-uk Kim		;;
938b53bb29fSJung-uk Kim
939b53bb29fSJung-uk Kim	*-*)
940b53bb29fSJung-uk Kim		# shellcheck disable=SC2162
9418e022d3cSDag-Erling Smørgrav		saved_IFS=$IFS
942b53bb29fSJung-uk Kim		IFS="-" read cpu vendor <<EOF
943b53bb29fSJung-uk Kim$basic_machine
944b53bb29fSJung-uk KimEOF
9458e022d3cSDag-Erling Smørgrav		IFS=$saved_IFS
946b53bb29fSJung-uk Kim		;;
947*822ca327SBaptiste Daroussin	# We use 'pc' rather than 'unknown'
948b53bb29fSJung-uk Kim	# because (1) that's what they normally are, and
949b53bb29fSJung-uk Kim	# (2) the word "unknown" tends to confuse beginning users.
950b53bb29fSJung-uk Kim	i*86 | x86_64)
951b53bb29fSJung-uk Kim		cpu=$basic_machine
952b53bb29fSJung-uk Kim		vendor=pc
953b53bb29fSJung-uk Kim		;;
954b53bb29fSJung-uk Kim	# These rules are duplicated from below for sake of the special case above;
955b53bb29fSJung-uk Kim	# i.e. things that normalized to x86 arches should also default to "pc"
956b53bb29fSJung-uk Kim	pc98)
957b53bb29fSJung-uk Kim		cpu=i386
958b53bb29fSJung-uk Kim		vendor=pc
959b53bb29fSJung-uk Kim		;;
960b53bb29fSJung-uk Kim	x64 | amd64)
961b53bb29fSJung-uk Kim		cpu=x86_64
962b53bb29fSJung-uk Kim		vendor=pc
963b53bb29fSJung-uk Kim		;;
96498e903e7SBaptiste Daroussin	# Recognize the basic CPU types without company name.
965b53bb29fSJung-uk Kim	*)
966b53bb29fSJung-uk Kim		cpu=$basic_machine
967b53bb29fSJung-uk Kim		vendor=unknown
968b53bb29fSJung-uk Kim		;;
969b53bb29fSJung-uk Kimesac
970b53bb29fSJung-uk Kim
971b53bb29fSJung-uk Kimunset -v basic_machine
972b53bb29fSJung-uk Kim
973b53bb29fSJung-uk Kim# Decode basic machines in the full and proper CPU-Company form.
974b53bb29fSJung-uk Kimcase $cpu-$vendor in
975b53bb29fSJung-uk Kim	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
976b53bb29fSJung-uk Kim	# some cases the only manufacturer, in others, it is the most popular.
977b53bb29fSJung-uk Kim	craynv-unknown)
978b53bb29fSJung-uk Kim		vendor=cray
9798e022d3cSDag-Erling Smørgrav		basic_os=${basic_os:-unicosmp}
980b53bb29fSJung-uk Kim		;;
981b53bb29fSJung-uk Kim	c90-unknown | c90-cray)
982b53bb29fSJung-uk Kim		vendor=cray
9838e022d3cSDag-Erling Smørgrav		basic_os=${Basic_os:-unicos}
984b53bb29fSJung-uk Kim		;;
985b53bb29fSJung-uk Kim	fx80-unknown)
986b53bb29fSJung-uk Kim		vendor=alliant
987b53bb29fSJung-uk Kim		;;
988b53bb29fSJung-uk Kim	romp-unknown)
989b53bb29fSJung-uk Kim		vendor=ibm
990b53bb29fSJung-uk Kim		;;
991b53bb29fSJung-uk Kim	mmix-unknown)
992b53bb29fSJung-uk Kim		vendor=knuth
993b53bb29fSJung-uk Kim		;;
994b53bb29fSJung-uk Kim	microblaze-unknown | microblazeel-unknown)
995b53bb29fSJung-uk Kim		vendor=xilinx
996b53bb29fSJung-uk Kim		;;
997b53bb29fSJung-uk Kim	rs6000-unknown)
998b53bb29fSJung-uk Kim		vendor=ibm
999b53bb29fSJung-uk Kim		;;
1000b53bb29fSJung-uk Kim	vax-unknown)
1001b53bb29fSJung-uk Kim		vendor=dec
1002b53bb29fSJung-uk Kim		;;
1003b53bb29fSJung-uk Kim	pdp11-unknown)
1004b53bb29fSJung-uk Kim		vendor=dec
1005b53bb29fSJung-uk Kim		;;
1006b53bb29fSJung-uk Kim	we32k-unknown)
1007b53bb29fSJung-uk Kim		vendor=att
1008b53bb29fSJung-uk Kim		;;
1009b53bb29fSJung-uk Kim	cydra-unknown)
1010b53bb29fSJung-uk Kim		vendor=cydrome
1011b53bb29fSJung-uk Kim		;;
1012b53bb29fSJung-uk Kim	i370-ibm*)
1013b53bb29fSJung-uk Kim		vendor=ibm
1014b53bb29fSJung-uk Kim		;;
1015b53bb29fSJung-uk Kim	orion-unknown)
1016b53bb29fSJung-uk Kim		vendor=highlevel
1017b53bb29fSJung-uk Kim		;;
1018b53bb29fSJung-uk Kim	xps-unknown | xps100-unknown)
1019b53bb29fSJung-uk Kim		cpu=xps100
1020b53bb29fSJung-uk Kim		vendor=honeywell
1021b53bb29fSJung-uk Kim		;;
1022b53bb29fSJung-uk Kim
1023b53bb29fSJung-uk Kim	# Here we normalize CPU types with a missing or matching vendor
10248e022d3cSDag-Erling Smørgrav	armh-unknown | armh-alt)
10258e022d3cSDag-Erling Smørgrav		cpu=armv7l
10268e022d3cSDag-Erling Smørgrav		vendor=alt
10278e022d3cSDag-Erling Smørgrav		basic_os=${basic_os:-linux-gnueabihf}
10288e022d3cSDag-Erling Smørgrav		;;
1029b53bb29fSJung-uk Kim	dpx20-unknown | dpx20-bull)
1030b53bb29fSJung-uk Kim		cpu=rs6000
1031b53bb29fSJung-uk Kim		vendor=bull
10328e022d3cSDag-Erling Smørgrav		basic_os=${basic_os:-bosx}
1033b53bb29fSJung-uk Kim		;;
1034b53bb29fSJung-uk Kim
1035b53bb29fSJung-uk Kim	# Here we normalize CPU types irrespective of the vendor
1036b53bb29fSJung-uk Kim	amd64-*)
1037b53bb29fSJung-uk Kim		cpu=x86_64
1038b53bb29fSJung-uk Kim		;;
1039b53bb29fSJung-uk Kim	blackfin-*)
1040b53bb29fSJung-uk Kim		cpu=bfin
10418e022d3cSDag-Erling Smørgrav		basic_os=linux
1042b53bb29fSJung-uk Kim		;;
1043b53bb29fSJung-uk Kim	c54x-*)
1044b53bb29fSJung-uk Kim		cpu=tic54x
1045b53bb29fSJung-uk Kim		;;
1046b53bb29fSJung-uk Kim	c55x-*)
1047b53bb29fSJung-uk Kim		cpu=tic55x
1048b53bb29fSJung-uk Kim		;;
1049b53bb29fSJung-uk Kim	c6x-*)
1050b53bb29fSJung-uk Kim		cpu=tic6x
1051b53bb29fSJung-uk Kim		;;
1052b53bb29fSJung-uk Kim	e500v[12]-*)
1053b53bb29fSJung-uk Kim		cpu=powerpc
10548e022d3cSDag-Erling Smørgrav		basic_os=${basic_os}"spe"
1055b53bb29fSJung-uk Kim		;;
1056b53bb29fSJung-uk Kim	mips3*-*)
1057b53bb29fSJung-uk Kim		cpu=mips64
1058b53bb29fSJung-uk Kim		;;
1059b53bb29fSJung-uk Kim	ms1-*)
1060b53bb29fSJung-uk Kim		cpu=mt
1061b53bb29fSJung-uk Kim		;;
1062b53bb29fSJung-uk Kim	m68knommu-*)
1063b53bb29fSJung-uk Kim		cpu=m68k
10648e022d3cSDag-Erling Smørgrav		basic_os=linux
1065b53bb29fSJung-uk Kim		;;
1066b53bb29fSJung-uk Kim	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1067b53bb29fSJung-uk Kim		cpu=s12z
1068b53bb29fSJung-uk Kim		;;
1069b53bb29fSJung-uk Kim	openrisc-*)
1070b53bb29fSJung-uk Kim		cpu=or32
1071b53bb29fSJung-uk Kim		;;
1072b53bb29fSJung-uk Kim	parisc-*)
1073b53bb29fSJung-uk Kim		cpu=hppa
10748e022d3cSDag-Erling Smørgrav		basic_os=linux
1075b53bb29fSJung-uk Kim		;;
1076b53bb29fSJung-uk Kim	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1077b53bb29fSJung-uk Kim		cpu=i586
1078b53bb29fSJung-uk Kim		;;
1079*822ca327SBaptiste Daroussin	pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
1080b53bb29fSJung-uk Kim		cpu=i686
1081b53bb29fSJung-uk Kim		;;
1082b53bb29fSJung-uk Kim	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1083b53bb29fSJung-uk Kim		cpu=i686
1084b53bb29fSJung-uk Kim		;;
1085b53bb29fSJung-uk Kim	pentium4-*)
1086b53bb29fSJung-uk Kim		cpu=i786
1087b53bb29fSJung-uk Kim		;;
1088b53bb29fSJung-uk Kim	pc98-*)
1089b53bb29fSJung-uk Kim		cpu=i386
1090b53bb29fSJung-uk Kim		;;
1091b53bb29fSJung-uk Kim	ppc-* | ppcbe-*)
1092b53bb29fSJung-uk Kim		cpu=powerpc
1093b53bb29fSJung-uk Kim		;;
1094b53bb29fSJung-uk Kim	ppcle-* | powerpclittle-*)
1095b53bb29fSJung-uk Kim		cpu=powerpcle
1096b53bb29fSJung-uk Kim		;;
1097b53bb29fSJung-uk Kim	ppc64-*)
1098b53bb29fSJung-uk Kim		cpu=powerpc64
1099b53bb29fSJung-uk Kim		;;
1100b53bb29fSJung-uk Kim	ppc64le-* | powerpc64little-*)
1101b53bb29fSJung-uk Kim		cpu=powerpc64le
1102b53bb29fSJung-uk Kim		;;
1103b53bb29fSJung-uk Kim	sb1-*)
1104b53bb29fSJung-uk Kim		cpu=mipsisa64sb1
1105b53bb29fSJung-uk Kim		;;
1106b53bb29fSJung-uk Kim	sb1el-*)
1107b53bb29fSJung-uk Kim		cpu=mipsisa64sb1el
1108b53bb29fSJung-uk Kim		;;
1109b53bb29fSJung-uk Kim	sh5e[lb]-*)
1110b53bb29fSJung-uk Kim		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1111b53bb29fSJung-uk Kim		;;
1112b53bb29fSJung-uk Kim	spur-*)
1113b53bb29fSJung-uk Kim		cpu=spur
1114b53bb29fSJung-uk Kim		;;
1115b53bb29fSJung-uk Kim	strongarm-* | thumb-*)
1116b53bb29fSJung-uk Kim		cpu=arm
1117b53bb29fSJung-uk Kim		;;
1118b53bb29fSJung-uk Kim	tx39-*)
1119b53bb29fSJung-uk Kim		cpu=mipstx39
1120b53bb29fSJung-uk Kim		;;
1121b53bb29fSJung-uk Kim	tx39el-*)
1122b53bb29fSJung-uk Kim		cpu=mipstx39el
1123b53bb29fSJung-uk Kim		;;
1124b53bb29fSJung-uk Kim	x64-*)
1125b53bb29fSJung-uk Kim		cpu=x86_64
1126b53bb29fSJung-uk Kim		;;
1127b53bb29fSJung-uk Kim	xscale-* | xscalee[bl]-*)
1128b53bb29fSJung-uk Kim		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1129b53bb29fSJung-uk Kim		;;
11308e022d3cSDag-Erling Smørgrav	arm64-* | aarch64le-*)
11318e022d3cSDag-Erling Smørgrav		cpu=aarch64
11328e022d3cSDag-Erling Smørgrav		;;
1133b53bb29fSJung-uk Kim
1134b53bb29fSJung-uk Kim	# Recognize the canonical CPU Types that limit and/or modify the
1135b53bb29fSJung-uk Kim	# company names they are paired with.
1136b53bb29fSJung-uk Kim	cr16-*)
11378e022d3cSDag-Erling Smørgrav		basic_os=${basic_os:-elf}
1138b53bb29fSJung-uk Kim		;;
1139b53bb29fSJung-uk Kim	crisv32-* | etraxfs*-*)
1140b53bb29fSJung-uk Kim		cpu=crisv32
1141b53bb29fSJung-uk Kim		vendor=axis
1142b53bb29fSJung-uk Kim		;;
1143b53bb29fSJung-uk Kim	cris-* | etrax*-*)
1144b53bb29fSJung-uk Kim		cpu=cris
1145b53bb29fSJung-uk Kim		vendor=axis
1146b53bb29fSJung-uk Kim		;;
1147b53bb29fSJung-uk Kim	crx-*)
11488e022d3cSDag-Erling Smørgrav		basic_os=${basic_os:-elf}
1149b53bb29fSJung-uk Kim		;;
1150b53bb29fSJung-uk Kim	neo-tandem)
1151b53bb29fSJung-uk Kim		cpu=neo
1152b53bb29fSJung-uk Kim		vendor=tandem
1153b53bb29fSJung-uk Kim		;;
1154b53bb29fSJung-uk Kim	nse-tandem)
1155b53bb29fSJung-uk Kim		cpu=nse
1156b53bb29fSJung-uk Kim		vendor=tandem
1157b53bb29fSJung-uk Kim		;;
1158b53bb29fSJung-uk Kim	nsr-tandem)
1159b53bb29fSJung-uk Kim		cpu=nsr
1160b53bb29fSJung-uk Kim		vendor=tandem
1161b53bb29fSJung-uk Kim		;;
1162b53bb29fSJung-uk Kim	nsv-tandem)
1163b53bb29fSJung-uk Kim		cpu=nsv
1164b53bb29fSJung-uk Kim		vendor=tandem
1165b53bb29fSJung-uk Kim		;;
1166b53bb29fSJung-uk Kim	nsx-tandem)
1167b53bb29fSJung-uk Kim		cpu=nsx
1168b53bb29fSJung-uk Kim		vendor=tandem
1169b53bb29fSJung-uk Kim		;;
11708e022d3cSDag-Erling Smørgrav	mipsallegrexel-sony)
11718e022d3cSDag-Erling Smørgrav		cpu=mipsallegrexel
11728e022d3cSDag-Erling Smørgrav		vendor=sony
1173b53bb29fSJung-uk Kim		;;
1174b53bb29fSJung-uk Kim	tile*-*)
11758e022d3cSDag-Erling Smørgrav		basic_os=${basic_os:-linux-gnu}
1176b53bb29fSJung-uk Kim		;;
1177b53bb29fSJung-uk Kim
1178b53bb29fSJung-uk Kim	*)
1179b53bb29fSJung-uk Kim		# Recognize the canonical CPU types that are allowed with any
1180b53bb29fSJung-uk Kim		# company name.
1181b53bb29fSJung-uk Kim		case $cpu in
118298e903e7SBaptiste Daroussin			1750a | 580 \
118398e903e7SBaptiste Daroussin			| a29k \
1184*822ca327SBaptiste Daroussin			| aarch64 | aarch64_be | aarch64c | arm64ec \
1185b53bb29fSJung-uk Kim			| abacus \
1186b53bb29fSJung-uk Kim			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1187b53bb29fSJung-uk Kim			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1188b53bb29fSJung-uk Kim			| alphapca5[67] | alpha64pca5[67] \
118998e903e7SBaptiste Daroussin			| am33_2.0 \
1190b53bb29fSJung-uk Kim			| amdgcn \
11918e022d3cSDag-Erling Smørgrav			| arc | arceb | arc32 | arc64 \
1192b53bb29fSJung-uk Kim			| arm | arm[lb]e | arme[lb] | armv* \
11935b91e83fSBaptiste Daroussin			| avr | avr32 \
1194b53bb29fSJung-uk Kim			| asmjs \
119520afc491SJung-uk Kim			| ba \
11965b91e83fSBaptiste Daroussin			| be32 | be64 \
1197b53bb29fSJung-uk Kim			| bfin | bpf | bs2000 \
1198b53bb29fSJung-uk Kim			| c[123]* | c30 | [cjt]90 | c4x \
1199b53bb29fSJung-uk Kim			| c8051 | clipper | craynv | csky | cydra \
120098e903e7SBaptiste Daroussin			| d10v | d30v | dlx | dsp16xx \
1201b53bb29fSJung-uk Kim			| e2k | elxsi | epiphany \
1202b53bb29fSJung-uk Kim			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1203*822ca327SBaptiste Daroussin			| javascript \
1204b53bb29fSJung-uk Kim			| h8300 | h8500 \
1205b53bb29fSJung-uk Kim			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
12065b91e83fSBaptiste Daroussin			| hexagon \
1207b53bb29fSJung-uk Kim			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
120898e903e7SBaptiste Daroussin			| ip2k | iq2000 \
12094b4a8fcaSBaptiste Daroussin			| k1om \
1210*822ca327SBaptiste Daroussin			| kvx \
12115b91e83fSBaptiste Daroussin			| le32 | le64 \
121298e903e7SBaptiste Daroussin			| lm32 \
12138e022d3cSDag-Erling Smørgrav			| loongarch32 | loongarch64 \
1214b53bb29fSJung-uk Kim			| m32c | m32r | m32rle \
1215b53bb29fSJung-uk Kim			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
1216b53bb29fSJung-uk Kim			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
1217b53bb29fSJung-uk Kim			| m88110 | m88k | maxq | mb | mcore | mep | metag \
1218b53bb29fSJung-uk Kim			| microblaze | microblazeel \
1219*822ca327SBaptiste Daroussin			| mips* \
1220b53bb29fSJung-uk Kim			| mmix \
122198e903e7SBaptiste Daroussin			| mn10200 | mn10300 \
122298e903e7SBaptiste Daroussin			| moxie \
122398e903e7SBaptiste Daroussin			| mt \
122498e903e7SBaptiste Daroussin			| msp430 \
122598e903e7SBaptiste Daroussin			| nds32 | nds32le | nds32be \
1226b53bb29fSJung-uk Kim			| nfp \
12275b91e83fSBaptiste Daroussin			| nios | nios2 | nios2eb | nios2el \
1228b53bb29fSJung-uk Kim			| none | np1 | ns16k | ns32k | nvptx \
1229b53bb29fSJung-uk Kim			| open8 \
1230b53bb29fSJung-uk Kim			| or1k* \
1231b53bb29fSJung-uk Kim			| or32 \
1232b53bb29fSJung-uk Kim			| orion \
1233b53bb29fSJung-uk Kim			| picochip \
1234b53bb29fSJung-uk Kim			| pdp10 | pdp11 | pj | pjl | pn | power \
1235b53bb29fSJung-uk Kim			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
12362aca18c7SJung-uk Kim			| pru \
123798e903e7SBaptiste Daroussin			| pyramid \
12388e022d3cSDag-Erling Smørgrav			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
1239b53bb29fSJung-uk Kim			| rl78 | romp | rs6000 | rx \
12408e022d3cSDag-Erling Smørgrav			| s390 | s390x \
124198e903e7SBaptiste Daroussin			| score \
1242b53bb29fSJung-uk Kim			| sh | shl \
1243b53bb29fSJung-uk Kim			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1244b53bb29fSJung-uk Kim			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1245b53bb29fSJung-uk Kim			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1246b53bb29fSJung-uk Kim			| sparclite \
1247b53bb29fSJung-uk Kim			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
124898e903e7SBaptiste Daroussin			| spu \
1249b53bb29fSJung-uk Kim			| tahoe \
12508e022d3cSDag-Erling Smørgrav			| thumbv7* \
1251b53bb29fSJung-uk Kim			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1252b53bb29fSJung-uk Kim			| tron \
125398e903e7SBaptiste Daroussin			| ubicom32 \
1254b53bb29fSJung-uk Kim			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1255b53bb29fSJung-uk Kim			| vax \
12560f86d14eSJung-uk Kim			| visium \
1257b53bb29fSJung-uk Kim			| w65 \
1258b53bb29fSJung-uk Kim			| wasm32 | wasm64 \
125998e903e7SBaptiste Daroussin			| we32k \
1260b53bb29fSJung-uk Kim			| x86 | x86_64 | xc16x | xgate | xps100 \
1261b53bb29fSJung-uk Kim			| xstormy16 | xtensa* \
1262b53bb29fSJung-uk Kim			| ymp \
126398e903e7SBaptiste Daroussin			| z8k | z80)
126498e903e7SBaptiste Daroussin				;;
12655b91e83fSBaptiste Daroussin
1266b53bb29fSJung-uk Kim			*)
1267*822ca327SBaptiste Daroussin				echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
126898e903e7SBaptiste Daroussin				exit 1
126998e903e7SBaptiste Daroussin				;;
127098e903e7SBaptiste Daroussin		esac
127198e903e7SBaptiste Daroussin		;;
127298e903e7SBaptiste Daroussinesac
127398e903e7SBaptiste Daroussin
127498e903e7SBaptiste Daroussin# Here we canonicalize certain aliases for manufacturers.
1275b53bb29fSJung-uk Kimcase $vendor in
1276b53bb29fSJung-uk Kim	digital*)
1277b53bb29fSJung-uk Kim		vendor=dec
127898e903e7SBaptiste Daroussin		;;
1279b53bb29fSJung-uk Kim	commodore*)
1280b53bb29fSJung-uk Kim		vendor=cbm
128198e903e7SBaptiste Daroussin		;;
128298e903e7SBaptiste Daroussin	*)
128398e903e7SBaptiste Daroussin		;;
128498e903e7SBaptiste Daroussinesac
128598e903e7SBaptiste Daroussin
128698e903e7SBaptiste Daroussin# Decode manufacturer-specific aliases for certain operating systems.
128798e903e7SBaptiste Daroussin
1288*822ca327SBaptiste Daroussinif test x"$basic_os" != x
128998e903e7SBaptiste Daroussinthen
12908e022d3cSDag-Erling Smørgrav
12918e022d3cSDag-Erling Smørgrav# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
12928e022d3cSDag-Erling Smørgrav# set os.
1293*822ca327SBaptiste Daroussinobj=
12948e022d3cSDag-Erling Smørgravcase $basic_os in
12958e022d3cSDag-Erling Smørgrav	gnu/linux*)
12968e022d3cSDag-Erling Smørgrav		kernel=linux
12978e022d3cSDag-Erling Smørgrav		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
12988e022d3cSDag-Erling Smørgrav		;;
12998e022d3cSDag-Erling Smørgrav	os2-emx)
13008e022d3cSDag-Erling Smørgrav		kernel=os2
13018e022d3cSDag-Erling Smørgrav		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
13028e022d3cSDag-Erling Smørgrav		;;
13038e022d3cSDag-Erling Smørgrav	nto-qnx*)
13048e022d3cSDag-Erling Smørgrav		kernel=nto
13058e022d3cSDag-Erling Smørgrav		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
13068e022d3cSDag-Erling Smørgrav		;;
13078e022d3cSDag-Erling Smørgrav	*-*)
13088e022d3cSDag-Erling Smørgrav		# shellcheck disable=SC2162
13098e022d3cSDag-Erling Smørgrav		saved_IFS=$IFS
13108e022d3cSDag-Erling Smørgrav		IFS="-" read kernel os <<EOF
13118e022d3cSDag-Erling Smørgrav$basic_os
13128e022d3cSDag-Erling SmørgravEOF
13138e022d3cSDag-Erling Smørgrav		IFS=$saved_IFS
13148e022d3cSDag-Erling Smørgrav		;;
13158e022d3cSDag-Erling Smørgrav	# Default OS when just kernel was specified
13168e022d3cSDag-Erling Smørgrav	nto*)
13178e022d3cSDag-Erling Smørgrav		kernel=nto
13188e022d3cSDag-Erling Smørgrav		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
13198e022d3cSDag-Erling Smørgrav		;;
13208e022d3cSDag-Erling Smørgrav	linux*)
13218e022d3cSDag-Erling Smørgrav		kernel=linux
13228e022d3cSDag-Erling Smørgrav		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
13238e022d3cSDag-Erling Smørgrav		;;
1324*822ca327SBaptiste Daroussin	managarm*)
1325*822ca327SBaptiste Daroussin		kernel=managarm
1326*822ca327SBaptiste Daroussin		os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
1327*822ca327SBaptiste Daroussin		;;
13288e022d3cSDag-Erling Smørgrav	*)
13298e022d3cSDag-Erling Smørgrav		kernel=
13308e022d3cSDag-Erling Smørgrav		os=$basic_os
13318e022d3cSDag-Erling Smørgrav		;;
13328e022d3cSDag-Erling Smørgravesac
13338e022d3cSDag-Erling Smørgrav
13348e022d3cSDag-Erling Smørgrav# Now, normalize the OS (knowing we just have one component, it's not a kernel,
13358e022d3cSDag-Erling Smørgrav# etc.)
133698e903e7SBaptiste Daroussincase $os in
1337b53bb29fSJung-uk Kim	# First match some system type aliases that might get confused
1338b53bb29fSJung-uk Kim	# with valid system types.
1339b53bb29fSJung-uk Kim	# solaris* is a basic system type, with this one exception.
1340b53bb29fSJung-uk Kim	auroraux)
1341b53bb29fSJung-uk Kim		os=auroraux
134298e903e7SBaptiste Daroussin		;;
1343b53bb29fSJung-uk Kim	bluegene*)
1344b53bb29fSJung-uk Kim		os=cnk
1345b53bb29fSJung-uk Kim		;;
1346b53bb29fSJung-uk Kim	solaris1 | solaris1.*)
13478e022d3cSDag-Erling Smørgrav		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
134898e903e7SBaptiste Daroussin		;;
1349b53bb29fSJung-uk Kim	solaris)
1350b53bb29fSJung-uk Kim		os=solaris2
135198e903e7SBaptiste Daroussin		;;
1352b53bb29fSJung-uk Kim	unixware*)
1353b53bb29fSJung-uk Kim		os=sysv4.2uw
135498e903e7SBaptiste Daroussin		;;
1355b53bb29fSJung-uk Kim	# es1800 is here to avoid being matched by es* (a different OS)
1356b53bb29fSJung-uk Kim	es1800*)
1357b53bb29fSJung-uk Kim		os=ose
1358b53bb29fSJung-uk Kim		;;
1359b53bb29fSJung-uk Kim	# Some version numbers need modification
1360b53bb29fSJung-uk Kim	chorusos*)
1361b53bb29fSJung-uk Kim		os=chorusos
1362b53bb29fSJung-uk Kim		;;
1363b53bb29fSJung-uk Kim	isc)
1364b53bb29fSJung-uk Kim		os=isc2.2
1365b53bb29fSJung-uk Kim		;;
1366b53bb29fSJung-uk Kim	sco6)
1367b53bb29fSJung-uk Kim		os=sco5v6
1368b53bb29fSJung-uk Kim		;;
1369b53bb29fSJung-uk Kim	sco5)
1370b53bb29fSJung-uk Kim		os=sco3.2v5
1371b53bb29fSJung-uk Kim		;;
1372b53bb29fSJung-uk Kim	sco4)
1373b53bb29fSJung-uk Kim		os=sco3.2v4
1374b53bb29fSJung-uk Kim		;;
1375b53bb29fSJung-uk Kim	sco3.2.[4-9]*)
13768e022d3cSDag-Erling Smørgrav		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
1377b53bb29fSJung-uk Kim		;;
13788e022d3cSDag-Erling Smørgrav	sco*v* | scout)
1379b53bb29fSJung-uk Kim		# Don't match below
1380b53bb29fSJung-uk Kim		;;
1381b53bb29fSJung-uk Kim	sco*)
1382b53bb29fSJung-uk Kim		os=sco3.2v2
1383b53bb29fSJung-uk Kim		;;
1384b53bb29fSJung-uk Kim	psos*)
1385b53bb29fSJung-uk Kim		os=psos
1386b53bb29fSJung-uk Kim		;;
1387b53bb29fSJung-uk Kim	qnx*)
13888e022d3cSDag-Erling Smørgrav		os=qnx
138998e903e7SBaptiste Daroussin		;;
1390b53bb29fSJung-uk Kim	hiux*)
1391b53bb29fSJung-uk Kim		os=hiuxwe2
139298e903e7SBaptiste Daroussin		;;
1393b53bb29fSJung-uk Kim	lynx*178)
1394b53bb29fSJung-uk Kim		os=lynxos178
139598e903e7SBaptiste Daroussin		;;
1396b53bb29fSJung-uk Kim	lynx*5)
1397b53bb29fSJung-uk Kim		os=lynxos5
139898e903e7SBaptiste Daroussin		;;
13998e022d3cSDag-Erling Smørgrav	lynxos*)
14008e022d3cSDag-Erling Smørgrav		# don't get caught up in next wildcard
14018e022d3cSDag-Erling Smørgrav		;;
1402b53bb29fSJung-uk Kim	lynx*)
1403b53bb29fSJung-uk Kim		os=lynxos
140498e903e7SBaptiste Daroussin		;;
14058e022d3cSDag-Erling Smørgrav	mac[0-9]*)
1406b53bb29fSJung-uk Kim		os=`echo "$os" | sed -e 's|mac|macos|'`
140798e903e7SBaptiste Daroussin		;;
1408b53bb29fSJung-uk Kim	opened*)
1409b53bb29fSJung-uk Kim		os=openedition
141098e903e7SBaptiste Daroussin		;;
1411b53bb29fSJung-uk Kim	os400*)
1412b53bb29fSJung-uk Kim		os=os400
141398e903e7SBaptiste Daroussin		;;
1414b53bb29fSJung-uk Kim	sunos5*)
1415b53bb29fSJung-uk Kim		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
141698e903e7SBaptiste Daroussin		;;
1417b53bb29fSJung-uk Kim	sunos6*)
1418b53bb29fSJung-uk Kim		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
141998e903e7SBaptiste Daroussin		;;
1420b53bb29fSJung-uk Kim	wince*)
1421b53bb29fSJung-uk Kim		os=wince
142298e903e7SBaptiste Daroussin		;;
1423b53bb29fSJung-uk Kim	utek*)
1424b53bb29fSJung-uk Kim		os=bsd
142598e903e7SBaptiste Daroussin		;;
1426b53bb29fSJung-uk Kim	dynix*)
1427b53bb29fSJung-uk Kim		os=bsd
142898e903e7SBaptiste Daroussin		;;
1429b53bb29fSJung-uk Kim	acis*)
1430b53bb29fSJung-uk Kim		os=aos
143198e903e7SBaptiste Daroussin		;;
1432b53bb29fSJung-uk Kim	atheos*)
1433b53bb29fSJung-uk Kim		os=atheos
143498e903e7SBaptiste Daroussin		;;
1435b53bb29fSJung-uk Kim	syllable*)
1436b53bb29fSJung-uk Kim		os=syllable
143798e903e7SBaptiste Daroussin		;;
1438b53bb29fSJung-uk Kim	386bsd)
1439b53bb29fSJung-uk Kim		os=bsd
144098e903e7SBaptiste Daroussin		;;
1441b53bb29fSJung-uk Kim	ctix* | uts*)
1442b53bb29fSJung-uk Kim		os=sysv
144398e903e7SBaptiste Daroussin		;;
1444b53bb29fSJung-uk Kim	nova*)
1445b53bb29fSJung-uk Kim		os=rtmk-nova
1446b53bb29fSJung-uk Kim		;;
1447b53bb29fSJung-uk Kim	ns2)
1448b53bb29fSJung-uk Kim		os=nextstep2
144998e903e7SBaptiste Daroussin		;;
145098e903e7SBaptiste Daroussin	# Preserve the version number of sinix5.
1451b53bb29fSJung-uk Kim	sinix5.*)
14528e022d3cSDag-Erling Smørgrav		os=`echo "$os" | sed -e 's|sinix|sysv|'`
145398e903e7SBaptiste Daroussin		;;
1454b53bb29fSJung-uk Kim	sinix*)
1455b53bb29fSJung-uk Kim		os=sysv4
145698e903e7SBaptiste Daroussin		;;
1457b53bb29fSJung-uk Kim	tpf*)
1458b53bb29fSJung-uk Kim		os=tpf
145998e903e7SBaptiste Daroussin		;;
1460b53bb29fSJung-uk Kim	triton*)
1461b53bb29fSJung-uk Kim		os=sysv3
146298e903e7SBaptiste Daroussin		;;
1463b53bb29fSJung-uk Kim	oss*)
1464b53bb29fSJung-uk Kim		os=sysv3
146598e903e7SBaptiste Daroussin		;;
1466b53bb29fSJung-uk Kim	svr4*)
1467b53bb29fSJung-uk Kim		os=sysv4
146898e903e7SBaptiste Daroussin		;;
1469b53bb29fSJung-uk Kim	svr3)
1470b53bb29fSJung-uk Kim		os=sysv3
147198e903e7SBaptiste Daroussin		;;
1472b53bb29fSJung-uk Kim	sysvr4)
1473b53bb29fSJung-uk Kim		os=sysv4
147498e903e7SBaptiste Daroussin		;;
1475b53bb29fSJung-uk Kim	ose*)
1476b53bb29fSJung-uk Kim		os=ose
147798e903e7SBaptiste Daroussin		;;
1478b53bb29fSJung-uk Kim	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1479b53bb29fSJung-uk Kim		os=mint
148098e903e7SBaptiste Daroussin		;;
1481b53bb29fSJung-uk Kim	dicos*)
1482b53bb29fSJung-uk Kim		os=dicos
148398e903e7SBaptiste Daroussin		;;
1484b53bb29fSJung-uk Kim	pikeos*)
1485b53bb29fSJung-uk Kim		# Until real need of OS specific support for
1486b53bb29fSJung-uk Kim		# particular features comes up, bare metal
1487b53bb29fSJung-uk Kim		# configurations are quite functional.
1488b53bb29fSJung-uk Kim		case $cpu in
1489b53bb29fSJung-uk Kim		    arm*)
1490b53bb29fSJung-uk Kim			os=eabi
149198e903e7SBaptiste Daroussin			;;
149298e903e7SBaptiste Daroussin		    *)
1493*822ca327SBaptiste Daroussin			os=
1494*822ca327SBaptiste Daroussin			obj=elf
1495b53bb29fSJung-uk Kim			;;
1496b53bb29fSJung-uk Kim		esac
1497b53bb29fSJung-uk Kim		;;
1498*822ca327SBaptiste Daroussin	aout* | coff* | elf* | pe*)
1499*822ca327SBaptiste Daroussin		# These are machine code file formats, not OSes
1500*822ca327SBaptiste Daroussin		obj=$os
1501*822ca327SBaptiste Daroussin		os=
1502*822ca327SBaptiste Daroussin		;;
1503b53bb29fSJung-uk Kim	*)
15048e022d3cSDag-Erling Smørgrav		# No normalization, but not necessarily accepted, that comes below.
150598e903e7SBaptiste Daroussin		;;
150698e903e7SBaptiste Daroussinesac
15078e022d3cSDag-Erling Smørgrav
150898e903e7SBaptiste Daroussinelse
150998e903e7SBaptiste Daroussin
151098e903e7SBaptiste Daroussin# Here we handle the default operating systems that come with various machines.
151198e903e7SBaptiste Daroussin# The value should be what the vendor currently ships out the door with their
151298e903e7SBaptiste Daroussin# machine or put another way, the most popular os provided with the machine.
151398e903e7SBaptiste Daroussin
151498e903e7SBaptiste Daroussin# Note that if you're going to try to match "-MANUFACTURER" here (say,
151598e903e7SBaptiste Daroussin# "-sun"), then you have to tell the case statement up towards the top
151698e903e7SBaptiste Daroussin# that MANUFACTURER isn't an operating system.  Otherwise, code above
151798e903e7SBaptiste Daroussin# will signal an error saying that MANUFACTURER isn't an operating
151898e903e7SBaptiste Daroussin# system, and we'll never get to this point.
151998e903e7SBaptiste Daroussin
15208e022d3cSDag-Erling Smørgravkernel=
1521*822ca327SBaptiste Daroussinobj=
1522b53bb29fSJung-uk Kimcase $cpu-$vendor in
152398e903e7SBaptiste Daroussin	score-*)
1524*822ca327SBaptiste Daroussin		os=
1525*822ca327SBaptiste Daroussin		obj=elf
152698e903e7SBaptiste Daroussin		;;
152798e903e7SBaptiste Daroussin	spu-*)
1528*822ca327SBaptiste Daroussin		os=
1529*822ca327SBaptiste Daroussin		obj=elf
153098e903e7SBaptiste Daroussin		;;
153198e903e7SBaptiste Daroussin	*-acorn)
1532b53bb29fSJung-uk Kim		os=riscix1.2
153398e903e7SBaptiste Daroussin		;;
153498e903e7SBaptiste Daroussin	arm*-rebel)
15358e022d3cSDag-Erling Smørgrav		kernel=linux
15368e022d3cSDag-Erling Smørgrav		os=gnu
153798e903e7SBaptiste Daroussin		;;
153898e903e7SBaptiste Daroussin	arm*-semi)
1539*822ca327SBaptiste Daroussin		os=
1540*822ca327SBaptiste Daroussin		obj=aout
154198e903e7SBaptiste Daroussin		;;
154298e903e7SBaptiste Daroussin	c4x-* | tic4x-*)
1543*822ca327SBaptiste Daroussin		os=
1544*822ca327SBaptiste Daroussin		obj=coff
154598e903e7SBaptiste Daroussin		;;
15467dde5df4SBaptiste Daroussin	c8051-*)
1547*822ca327SBaptiste Daroussin		os=
1548*822ca327SBaptiste Daroussin		obj=elf
1549b53bb29fSJung-uk Kim		;;
1550b53bb29fSJung-uk Kim	clipper-intergraph)
1551b53bb29fSJung-uk Kim		os=clix
15527dde5df4SBaptiste Daroussin		;;
15535b91e83fSBaptiste Daroussin	hexagon-*)
1554*822ca327SBaptiste Daroussin		os=
1555*822ca327SBaptiste Daroussin		obj=elf
15565b91e83fSBaptiste Daroussin		;;
155798e903e7SBaptiste Daroussin	tic54x-*)
1558*822ca327SBaptiste Daroussin		os=
1559*822ca327SBaptiste Daroussin		obj=coff
156098e903e7SBaptiste Daroussin		;;
156198e903e7SBaptiste Daroussin	tic55x-*)
1562*822ca327SBaptiste Daroussin		os=
1563*822ca327SBaptiste Daroussin		obj=coff
156498e903e7SBaptiste Daroussin		;;
156598e903e7SBaptiste Daroussin	tic6x-*)
1566*822ca327SBaptiste Daroussin		os=
1567*822ca327SBaptiste Daroussin		obj=coff
156898e903e7SBaptiste Daroussin		;;
156998e903e7SBaptiste Daroussin	# This must come before the *-dec entry.
157098e903e7SBaptiste Daroussin	pdp10-*)
1571b53bb29fSJung-uk Kim		os=tops20
157298e903e7SBaptiste Daroussin		;;
157398e903e7SBaptiste Daroussin	pdp11-*)
1574b53bb29fSJung-uk Kim		os=none
157598e903e7SBaptiste Daroussin		;;
157698e903e7SBaptiste Daroussin	*-dec | vax-*)
1577b53bb29fSJung-uk Kim		os=ultrix4.2
157898e903e7SBaptiste Daroussin		;;
157998e903e7SBaptiste Daroussin	m68*-apollo)
1580b53bb29fSJung-uk Kim		os=domain
158198e903e7SBaptiste Daroussin		;;
158298e903e7SBaptiste Daroussin	i386-sun)
1583b53bb29fSJung-uk Kim		os=sunos4.0.2
158498e903e7SBaptiste Daroussin		;;
158598e903e7SBaptiste Daroussin	m68000-sun)
1586b53bb29fSJung-uk Kim		os=sunos3
158798e903e7SBaptiste Daroussin		;;
158898e903e7SBaptiste Daroussin	m68*-cisco)
1589*822ca327SBaptiste Daroussin		os=
1590*822ca327SBaptiste Daroussin		obj=aout
159198e903e7SBaptiste Daroussin		;;
159298e903e7SBaptiste Daroussin	mep-*)
1593*822ca327SBaptiste Daroussin		os=
1594*822ca327SBaptiste Daroussin		obj=elf
159598e903e7SBaptiste Daroussin		;;
159698e903e7SBaptiste Daroussin	mips*-cisco)
1597*822ca327SBaptiste Daroussin		os=
1598*822ca327SBaptiste Daroussin		obj=elf
159998e903e7SBaptiste Daroussin		;;
160098e903e7SBaptiste Daroussin	mips*-*)
1601*822ca327SBaptiste Daroussin		os=
1602*822ca327SBaptiste Daroussin		obj=elf
160398e903e7SBaptiste Daroussin		;;
160498e903e7SBaptiste Daroussin	or32-*)
1605*822ca327SBaptiste Daroussin		os=
1606*822ca327SBaptiste Daroussin		obj=coff
160798e903e7SBaptiste Daroussin		;;
160898e903e7SBaptiste Daroussin	*-tti)	# must be before sparc entry or we get the wrong os.
1609b53bb29fSJung-uk Kim		os=sysv3
161098e903e7SBaptiste Daroussin		;;
161198e903e7SBaptiste Daroussin	sparc-* | *-sun)
1612b53bb29fSJung-uk Kim		os=sunos4.1.1
161398e903e7SBaptiste Daroussin		;;
16143e794565SJung-uk Kim	pru-*)
1615*822ca327SBaptiste Daroussin		os=
1616*822ca327SBaptiste Daroussin		obj=elf
16173e794565SJung-uk Kim		;;
161898e903e7SBaptiste Daroussin	*-be)
1619b53bb29fSJung-uk Kim		os=beos
162098e903e7SBaptiste Daroussin		;;
162198e903e7SBaptiste Daroussin	*-ibm)
1622b53bb29fSJung-uk Kim		os=aix
162398e903e7SBaptiste Daroussin		;;
162498e903e7SBaptiste Daroussin	*-knuth)
1625b53bb29fSJung-uk Kim		os=mmixware
162698e903e7SBaptiste Daroussin		;;
162798e903e7SBaptiste Daroussin	*-wec)
1628b53bb29fSJung-uk Kim		os=proelf
162998e903e7SBaptiste Daroussin		;;
163098e903e7SBaptiste Daroussin	*-winbond)
1631b53bb29fSJung-uk Kim		os=proelf
163298e903e7SBaptiste Daroussin		;;
163398e903e7SBaptiste Daroussin	*-oki)
1634b53bb29fSJung-uk Kim		os=proelf
163598e903e7SBaptiste Daroussin		;;
163698e903e7SBaptiste Daroussin	*-hp)
1637b53bb29fSJung-uk Kim		os=hpux
163898e903e7SBaptiste Daroussin		;;
163998e903e7SBaptiste Daroussin	*-hitachi)
1640b53bb29fSJung-uk Kim		os=hiux
164198e903e7SBaptiste Daroussin		;;
164298e903e7SBaptiste Daroussin	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1643b53bb29fSJung-uk Kim		os=sysv
164498e903e7SBaptiste Daroussin		;;
164598e903e7SBaptiste Daroussin	*-cbm)
1646b53bb29fSJung-uk Kim		os=amigaos
164798e903e7SBaptiste Daroussin		;;
164898e903e7SBaptiste Daroussin	*-dg)
1649b53bb29fSJung-uk Kim		os=dgux
165098e903e7SBaptiste Daroussin		;;
165198e903e7SBaptiste Daroussin	*-dolphin)
1652b53bb29fSJung-uk Kim		os=sysv3
165398e903e7SBaptiste Daroussin		;;
165498e903e7SBaptiste Daroussin	m68k-ccur)
1655b53bb29fSJung-uk Kim		os=rtu
165698e903e7SBaptiste Daroussin		;;
165798e903e7SBaptiste Daroussin	m88k-omron*)
1658b53bb29fSJung-uk Kim		os=luna
165998e903e7SBaptiste Daroussin		;;
166098e903e7SBaptiste Daroussin	*-next)
1661b53bb29fSJung-uk Kim		os=nextstep
166298e903e7SBaptiste Daroussin		;;
166398e903e7SBaptiste Daroussin	*-sequent)
1664b53bb29fSJung-uk Kim		os=ptx
166598e903e7SBaptiste Daroussin		;;
166698e903e7SBaptiste Daroussin	*-crds)
1667b53bb29fSJung-uk Kim		os=unos
166898e903e7SBaptiste Daroussin		;;
166998e903e7SBaptiste Daroussin	*-ns)
1670b53bb29fSJung-uk Kim		os=genix
167198e903e7SBaptiste Daroussin		;;
167298e903e7SBaptiste Daroussin	i370-*)
1673b53bb29fSJung-uk Kim		os=mvs
167498e903e7SBaptiste Daroussin		;;
167598e903e7SBaptiste Daroussin	*-gould)
1676b53bb29fSJung-uk Kim		os=sysv
167798e903e7SBaptiste Daroussin		;;
167898e903e7SBaptiste Daroussin	*-highlevel)
1679b53bb29fSJung-uk Kim		os=bsd
168098e903e7SBaptiste Daroussin		;;
168198e903e7SBaptiste Daroussin	*-encore)
1682b53bb29fSJung-uk Kim		os=bsd
168398e903e7SBaptiste Daroussin		;;
168498e903e7SBaptiste Daroussin	*-sgi)
1685b53bb29fSJung-uk Kim		os=irix
168698e903e7SBaptiste Daroussin		;;
168798e903e7SBaptiste Daroussin	*-siemens)
1688b53bb29fSJung-uk Kim		os=sysv4
168998e903e7SBaptiste Daroussin		;;
169098e903e7SBaptiste Daroussin	*-masscomp)
1691b53bb29fSJung-uk Kim		os=rtu
169298e903e7SBaptiste Daroussin		;;
169398e903e7SBaptiste Daroussin	f30[01]-fujitsu | f700-fujitsu)
1694b53bb29fSJung-uk Kim		os=uxpv
169598e903e7SBaptiste Daroussin		;;
169698e903e7SBaptiste Daroussin	*-rom68k)
1697*822ca327SBaptiste Daroussin		os=
1698*822ca327SBaptiste Daroussin		obj=coff
169998e903e7SBaptiste Daroussin		;;
170098e903e7SBaptiste Daroussin	*-*bug)
1701*822ca327SBaptiste Daroussin		os=
1702*822ca327SBaptiste Daroussin		obj=coff
170398e903e7SBaptiste Daroussin		;;
170498e903e7SBaptiste Daroussin	*-apple)
1705b53bb29fSJung-uk Kim		os=macos
170698e903e7SBaptiste Daroussin		;;
170798e903e7SBaptiste Daroussin	*-atari*)
1708b53bb29fSJung-uk Kim		os=mint
1709b53bb29fSJung-uk Kim		;;
1710b53bb29fSJung-uk Kim	*-wrs)
1711b53bb29fSJung-uk Kim		os=vxworks
171298e903e7SBaptiste Daroussin		;;
171398e903e7SBaptiste Daroussin	*)
1714b53bb29fSJung-uk Kim		os=none
171598e903e7SBaptiste Daroussin		;;
171698e903e7SBaptiste Daroussinesac
17178e022d3cSDag-Erling Smørgrav
171898e903e7SBaptiste Daroussinfi
171998e903e7SBaptiste Daroussin
1720*822ca327SBaptiste Daroussin# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
1721*822ca327SBaptiste Daroussin
17228e022d3cSDag-Erling Smørgravcase $os in
17238e022d3cSDag-Erling Smørgrav	# Sometimes we do "kernel-libc", so those need to count as OSes.
17248e022d3cSDag-Erling Smørgrav	musl* | newlib* | relibc* | uclibc*)
17258e022d3cSDag-Erling Smørgrav		;;
17268e022d3cSDag-Erling Smørgrav	# Likewise for "kernel-abi"
17278e022d3cSDag-Erling Smørgrav	eabi* | gnueabi*)
17288e022d3cSDag-Erling Smørgrav		;;
17298e022d3cSDag-Erling Smørgrav	# VxWorks passes extra cpu info in the 4th filed.
17308e022d3cSDag-Erling Smørgrav	simlinux | simwindows | spe)
17318e022d3cSDag-Erling Smørgrav		;;
1732*822ca327SBaptiste Daroussin	# See `case $cpu-$os` validation below
1733*822ca327SBaptiste Daroussin	ghcjs)
1734*822ca327SBaptiste Daroussin		;;
17358e022d3cSDag-Erling Smørgrav	# Now accept the basic system types.
17368e022d3cSDag-Erling Smørgrav	# The portable systems comes first.
17378e022d3cSDag-Erling Smørgrav	# Each alternative MUST end in a * to match a version number.
17388e022d3cSDag-Erling Smørgrav	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
17398e022d3cSDag-Erling Smørgrav	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
17408e022d3cSDag-Erling Smørgrav	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
17418e022d3cSDag-Erling Smørgrav	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
17428e022d3cSDag-Erling Smørgrav	     | hiux* | abug | nacl* | netware* | windows* \
1743*822ca327SBaptiste Daroussin	     | os9* | macos* | osx* | ios* | tvos* | watchos* \
17448e022d3cSDag-Erling Smørgrav	     | mpw* | magic* | mmixware* | mon960* | lnews* \
17458e022d3cSDag-Erling Smørgrav	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
17468e022d3cSDag-Erling Smørgrav	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
17478e022d3cSDag-Erling Smørgrav	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
17488e022d3cSDag-Erling Smørgrav	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
17498e022d3cSDag-Erling Smørgrav	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
17508e022d3cSDag-Erling Smørgrav	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
17518e022d3cSDag-Erling Smørgrav	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
1752*822ca327SBaptiste Daroussin	     | bosx* | nextstep* | cxux* | oabi* \
1753*822ca327SBaptiste Daroussin	     | ptx* | ecoff* | winnt* | domain* | vsta* \
17548e022d3cSDag-Erling Smørgrav	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
17558e022d3cSDag-Erling Smørgrav	     | chorusrdb* | cegcc* | glidix* | serenity* \
1756*822ca327SBaptiste Daroussin	     | cygwin* | msys* | moss* | proelf* | rtems* \
17578e022d3cSDag-Erling Smørgrav	     | midipix* | mingw32* | mingw64* | mint* \
17588e022d3cSDag-Erling Smørgrav	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
17598e022d3cSDag-Erling Smørgrav	     | interix* | uwin* | mks* | rhapsody* | darwin* \
17608e022d3cSDag-Erling Smørgrav	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
17618e022d3cSDag-Erling Smørgrav	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
17628e022d3cSDag-Erling Smørgrav	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
17638e022d3cSDag-Erling Smørgrav	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
17648e022d3cSDag-Erling Smørgrav	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
17658e022d3cSDag-Erling Smørgrav	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
17668e022d3cSDag-Erling Smørgrav	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
17678e022d3cSDag-Erling Smørgrav	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
17688e022d3cSDag-Erling Smørgrav	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
1769*822ca327SBaptiste Daroussin	     | fiwix* | mlibc* | cos* | mbr* )
17708e022d3cSDag-Erling Smørgrav		;;
17718e022d3cSDag-Erling Smørgrav	# This one is extra strict with allowed versions
17728e022d3cSDag-Erling Smørgrav	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
17738e022d3cSDag-Erling Smørgrav		# Don't forget version if it is 3.2v4 or newer.
17748e022d3cSDag-Erling Smørgrav		;;
17758e022d3cSDag-Erling Smørgrav	none)
17768e022d3cSDag-Erling Smørgrav		;;
1777*822ca327SBaptiste Daroussin	kernel* | msvc* )
1778*822ca327SBaptiste Daroussin		# Restricted further below
1779*822ca327SBaptiste Daroussin		;;
1780*822ca327SBaptiste Daroussin	'')
1781*822ca327SBaptiste Daroussin		if test x"$obj" = x
1782*822ca327SBaptiste Daroussin		then
1783*822ca327SBaptiste Daroussin			echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
1784*822ca327SBaptiste Daroussin		fi
1785*822ca327SBaptiste Daroussin		;;
17868e022d3cSDag-Erling Smørgrav	*)
1787*822ca327SBaptiste Daroussin		echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
1788*822ca327SBaptiste Daroussin		exit 1
1789*822ca327SBaptiste Daroussin		;;
1790*822ca327SBaptiste Daroussinesac
1791*822ca327SBaptiste Daroussin
1792*822ca327SBaptiste Daroussincase $obj in
1793*822ca327SBaptiste Daroussin	aout* | coff* | elf* | pe*)
1794*822ca327SBaptiste Daroussin		;;
1795*822ca327SBaptiste Daroussin	'')
1796*822ca327SBaptiste Daroussin		# empty is fine
1797*822ca327SBaptiste Daroussin		;;
1798*822ca327SBaptiste Daroussin	*)
1799*822ca327SBaptiste Daroussin		echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
1800*822ca327SBaptiste Daroussin		exit 1
1801*822ca327SBaptiste Daroussin		;;
1802*822ca327SBaptiste Daroussinesac
1803*822ca327SBaptiste Daroussin
1804*822ca327SBaptiste Daroussin# Here we handle the constraint that a (synthetic) cpu and os are
1805*822ca327SBaptiste Daroussin# valid only in combination with each other and nowhere else.
1806*822ca327SBaptiste Daroussincase $cpu-$os in
1807*822ca327SBaptiste Daroussin	# The "javascript-unknown-ghcjs" triple is used by GHC; we
1808*822ca327SBaptiste Daroussin	# accept it here in order to tolerate that, but reject any
1809*822ca327SBaptiste Daroussin	# variations.
1810*822ca327SBaptiste Daroussin	javascript-ghcjs)
1811*822ca327SBaptiste Daroussin		;;
1812*822ca327SBaptiste Daroussin	javascript-* | *-ghcjs)
1813*822ca327SBaptiste Daroussin		echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
18148e022d3cSDag-Erling Smørgrav		exit 1
18158e022d3cSDag-Erling Smørgrav		;;
18168e022d3cSDag-Erling Smørgravesac
18178e022d3cSDag-Erling Smørgrav
18188e022d3cSDag-Erling Smørgrav# As a final step for OS-related things, validate the OS-kernel combination
18198e022d3cSDag-Erling Smørgrav# (given a valid OS), if there is a kernel.
1820*822ca327SBaptiste Daroussincase $kernel-$os-$obj in
1821*822ca327SBaptiste Daroussin	linux-gnu*- | linux-dietlibc*- | linux-android*- | linux-newlib*- \
1822*822ca327SBaptiste Daroussin		   | linux-musl*- | linux-relibc*- | linux-uclibc*- | linux-mlibc*- )
18238e022d3cSDag-Erling Smørgrav		;;
1824*822ca327SBaptiste Daroussin	uclinux-uclibc*- )
18258e022d3cSDag-Erling Smørgrav		;;
1826*822ca327SBaptiste Daroussin	managarm-mlibc*- | managarm-kernel*- )
1827*822ca327SBaptiste Daroussin		;;
1828*822ca327SBaptiste Daroussin	windows*-gnu*- | windows*-msvc*-)
1829*822ca327SBaptiste Daroussin		;;
1830*822ca327SBaptiste Daroussin	-dietlibc*- | -newlib*- | -musl*- | -relibc*- | -uclibc*- | -mlibc*- )
18318e022d3cSDag-Erling Smørgrav		# These are just libc implementations, not actual OSes, and thus
18328e022d3cSDag-Erling Smørgrav		# require a kernel.
1833*822ca327SBaptiste Daroussin		echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
18348e022d3cSDag-Erling Smørgrav		exit 1
18358e022d3cSDag-Erling Smørgrav		;;
1836*822ca327SBaptiste Daroussin	-kernel*- )
1837*822ca327SBaptiste Daroussin		echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
1838*822ca327SBaptiste Daroussin		exit 1
18398e022d3cSDag-Erling Smørgrav		;;
1840*822ca327SBaptiste Daroussin	*-kernel*- )
1841*822ca327SBaptiste Daroussin		echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
1842*822ca327SBaptiste Daroussin		exit 1
18438e022d3cSDag-Erling Smørgrav		;;
1844*822ca327SBaptiste Daroussin	*-msvc*- )
1845*822ca327SBaptiste Daroussin		echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
1846*822ca327SBaptiste Daroussin		exit 1
18478e022d3cSDag-Erling Smørgrav		;;
1848*822ca327SBaptiste Daroussin	kfreebsd*-gnu*- | kopensolaris*-gnu*-)
18498e022d3cSDag-Erling Smørgrav		;;
1850*822ca327SBaptiste Daroussin	vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
18518e022d3cSDag-Erling Smørgrav		;;
1852*822ca327SBaptiste Daroussin	nto-qnx*-)
1853*822ca327SBaptiste Daroussin		;;
1854*822ca327SBaptiste Daroussin	os2-emx-)
1855*822ca327SBaptiste Daroussin		;;
1856*822ca327SBaptiste Daroussin	*-eabi*- | *-gnueabi*-)
1857*822ca327SBaptiste Daroussin		;;
1858*822ca327SBaptiste Daroussin	none--*)
1859*822ca327SBaptiste Daroussin		# None (no kernel, i.e. freestanding / bare metal),
1860*822ca327SBaptiste Daroussin		# can be paired with an machine code file format
1861*822ca327SBaptiste Daroussin		;;
1862*822ca327SBaptiste Daroussin	-*-)
18638e022d3cSDag-Erling Smørgrav		# Blank kernel with real OS is always fine.
18648e022d3cSDag-Erling Smørgrav		;;
1865*822ca327SBaptiste Daroussin	--*)
1866*822ca327SBaptiste Daroussin		# Blank kernel and OS with real machine code file format is always fine.
1867*822ca327SBaptiste Daroussin		;;
1868*822ca327SBaptiste Daroussin	*-*-*)
1869*822ca327SBaptiste Daroussin		echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
18708e022d3cSDag-Erling Smørgrav		exit 1
18718e022d3cSDag-Erling Smørgrav		;;
18728e022d3cSDag-Erling Smørgravesac
18738e022d3cSDag-Erling Smørgrav
187498e903e7SBaptiste Daroussin# Here we handle the case where we know the os, and the CPU type, but not the
187598e903e7SBaptiste Daroussin# manufacturer.  We pick the logical manufacturer.
1876b53bb29fSJung-uk Kimcase $vendor in
1877b53bb29fSJung-uk Kim	unknown)
18788e022d3cSDag-Erling Smørgrav		case $cpu-$os in
18798e022d3cSDag-Erling Smørgrav			*-riscix*)
188098e903e7SBaptiste Daroussin				vendor=acorn
188198e903e7SBaptiste Daroussin				;;
18828e022d3cSDag-Erling Smørgrav			*-sunos*)
188398e903e7SBaptiste Daroussin				vendor=sun
188498e903e7SBaptiste Daroussin				;;
18858e022d3cSDag-Erling Smørgrav			*-cnk* | *-aix*)
188698e903e7SBaptiste Daroussin				vendor=ibm
188798e903e7SBaptiste Daroussin				;;
18888e022d3cSDag-Erling Smørgrav			*-beos*)
188998e903e7SBaptiste Daroussin				vendor=be
189098e903e7SBaptiste Daroussin				;;
18918e022d3cSDag-Erling Smørgrav			*-hpux*)
189298e903e7SBaptiste Daroussin				vendor=hp
189398e903e7SBaptiste Daroussin				;;
18948e022d3cSDag-Erling Smørgrav			*-mpeix*)
189598e903e7SBaptiste Daroussin				vendor=hp
189698e903e7SBaptiste Daroussin				;;
18978e022d3cSDag-Erling Smørgrav			*-hiux*)
189898e903e7SBaptiste Daroussin				vendor=hitachi
189998e903e7SBaptiste Daroussin				;;
19008e022d3cSDag-Erling Smørgrav			*-unos*)
190198e903e7SBaptiste Daroussin				vendor=crds
190298e903e7SBaptiste Daroussin				;;
19038e022d3cSDag-Erling Smørgrav			*-dgux*)
190498e903e7SBaptiste Daroussin				vendor=dg
190598e903e7SBaptiste Daroussin				;;
19068e022d3cSDag-Erling Smørgrav			*-luna*)
190798e903e7SBaptiste Daroussin				vendor=omron
190898e903e7SBaptiste Daroussin				;;
19098e022d3cSDag-Erling Smørgrav			*-genix*)
191098e903e7SBaptiste Daroussin				vendor=ns
191198e903e7SBaptiste Daroussin				;;
19128e022d3cSDag-Erling Smørgrav			*-clix*)
1913b53bb29fSJung-uk Kim				vendor=intergraph
1914b53bb29fSJung-uk Kim				;;
19158e022d3cSDag-Erling Smørgrav			*-mvs* | *-opened*)
191698e903e7SBaptiste Daroussin				vendor=ibm
191798e903e7SBaptiste Daroussin				;;
19188e022d3cSDag-Erling Smørgrav			*-os400*)
191998e903e7SBaptiste Daroussin				vendor=ibm
192098e903e7SBaptiste Daroussin				;;
19218e022d3cSDag-Erling Smørgrav			s390-* | s390x-*)
19228e022d3cSDag-Erling Smørgrav				vendor=ibm
19238e022d3cSDag-Erling Smørgrav				;;
19248e022d3cSDag-Erling Smørgrav			*-ptx*)
192598e903e7SBaptiste Daroussin				vendor=sequent
192698e903e7SBaptiste Daroussin				;;
19278e022d3cSDag-Erling Smørgrav			*-tpf*)
192898e903e7SBaptiste Daroussin				vendor=ibm
192998e903e7SBaptiste Daroussin				;;
19308e022d3cSDag-Erling Smørgrav			*-vxsim* | *-vxworks* | *-windiss*)
193198e903e7SBaptiste Daroussin				vendor=wrs
193298e903e7SBaptiste Daroussin				;;
19338e022d3cSDag-Erling Smørgrav			*-aux*)
193498e903e7SBaptiste Daroussin				vendor=apple
193598e903e7SBaptiste Daroussin				;;
19368e022d3cSDag-Erling Smørgrav			*-hms*)
193798e903e7SBaptiste Daroussin				vendor=hitachi
193898e903e7SBaptiste Daroussin				;;
19398e022d3cSDag-Erling Smørgrav			*-mpw* | *-macos*)
194098e903e7SBaptiste Daroussin				vendor=apple
194198e903e7SBaptiste Daroussin				;;
19428e022d3cSDag-Erling Smørgrav			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
194398e903e7SBaptiste Daroussin				vendor=atari
194498e903e7SBaptiste Daroussin				;;
19458e022d3cSDag-Erling Smørgrav			*-vos*)
194698e903e7SBaptiste Daroussin				vendor=stratus
194798e903e7SBaptiste Daroussin				;;
194898e903e7SBaptiste Daroussin		esac
194998e903e7SBaptiste Daroussin		;;
195098e903e7SBaptiste Daroussinesac
195198e903e7SBaptiste Daroussin
1952*822ca327SBaptiste Daroussinecho "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
195398e903e7SBaptiste Daroussinexit
195498e903e7SBaptiste Daroussin
195598e903e7SBaptiste Daroussin# Local variables:
1956b53bb29fSJung-uk Kim# eval: (add-hook 'before-save-hook 'time-stamp)
195798e903e7SBaptiste Daroussin# time-stamp-start: "timestamp='"
195898e903e7SBaptiste Daroussin# time-stamp-format: "%:y-%02m-%02d"
195998e903e7SBaptiste Daroussin# time-stamp-end: "'"
196098e903e7SBaptiste Daroussin# End:
1961