18c9fbc29Smrg#! /bin/sh
28c9fbc29Smrg# Configuration validation subroutine script.
39ab56c27Smrg#   Copyright 1992-2022 Free Software Foundation, Inc.
48c9fbc29Smrg
554cef2ddSmrg# shellcheck disable=SC2006,SC2268 # see below for rationale
654cef2ddSmrg
79ab56c27Smrgtimestamp='2022-09-17'
88c9fbc29Smrg
970728a38Smrg# This file is free software; you can redistribute it and/or modify it
1070728a38Smrg# under the terms of the GNU General Public License as published by
119ab56c27Smrg# the Free Software Foundation, either version 3 of the License, or
128c9fbc29Smrg# (at your option) any later version.
138c9fbc29Smrg#
1470728a38Smrg# This program is distributed in the hope that it will be useful, but
1570728a38Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
1670728a38Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1770728a38Smrg# General Public License for more details.
188c9fbc29Smrg#
198c9fbc29Smrg# You should have received a copy of the GNU General Public License
2054044362Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
218c9fbc29Smrg#
228c9fbc29Smrg# As a special exception to the GNU General Public License, if you
238c9fbc29Smrg# distribute this file as part of a program that contains a
248c9fbc29Smrg# configuration script generated by Autoconf, you may include it under
2570728a38Smrg# the same distribution terms that you use for the rest of that
2670728a38Smrg# program.  This Exception is an additional permission under section 7
2770728a38Smrg# of the GNU General Public License, version 3 ("GPLv3").
288c9fbc29Smrg
298c9fbc29Smrg
3070728a38Smrg# Please send patches to <config-patches@gnu.org>.
318c9fbc29Smrg#
328c9fbc29Smrg# Configuration subroutine to validate and canonicalize a configuration type.
338c9fbc29Smrg# Supply the specified configuration type as an argument.
348c9fbc29Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
358c9fbc29Smrg# Otherwise, we print the canonical config type on stdout and succeed.
368c9fbc29Smrg
374cd6a3aeSmrg# You can get the latest version of this script from:
3854cef2ddSmrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
394cd6a3aeSmrg
408c9fbc29Smrg# This file is supposed to be the same for all GNU packages
418c9fbc29Smrg# and recognize all the CPU types, system types and aliases
428c9fbc29Smrg# that are meaningful with *any* GNU software.
438c9fbc29Smrg# Each package is responsible for reporting which valid configurations
448c9fbc29Smrg# it does not support.  The user should be able to distinguish
458c9fbc29Smrg# a failure to support a valid configuration from a meaningless
468c9fbc29Smrg# configuration.
478c9fbc29Smrg
488c9fbc29Smrg# The goal of this file is to map all the various variations of a given
498c9fbc29Smrg# machine specification into a single specification in the form:
508c9fbc29Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
518c9fbc29Smrg# or in some cases, the newer four-part form:
528c9fbc29Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
538c9fbc29Smrg# It is wrong to echo any other type of specification.
548c9fbc29Smrg
5554cef2ddSmrg# The "shellcheck disable" line above the timestamp inhibits complaints
5654cef2ddSmrg# about features and limitations of the classic Bourne shell that were
5754cef2ddSmrg# superseded or lifted in POSIX.  However, this script identifies a wide
5854cef2ddSmrg# variety of pre-POSIX systems that do not have POSIX shells at all, and
5954cef2ddSmrg# even some reasonably current systems (Solaris 10 as case-in-point) still
6054cef2ddSmrg# have a pre-POSIX /bin/sh.
6154cef2ddSmrg
628c9fbc29Smrgme=`echo "$0" | sed -e 's,.*/,,'`
638c9fbc29Smrg
648c9fbc29Smrgusage="\
6554044362SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
668c9fbc29Smrg
678c9fbc29SmrgCanonicalize a configuration name.
688c9fbc29Smrg
6954044362SmrgOptions:
708c9fbc29Smrg  -h, --help         print this help, then exit
718c9fbc29Smrg  -t, --time-stamp   print date of last modification, then exit
728c9fbc29Smrg  -v, --version      print version number, then exit
738c9fbc29Smrg
748c9fbc29SmrgReport bugs and patches to <config-patches@gnu.org>."
758c9fbc29Smrg
768c9fbc29Smrgversion="\
778c9fbc29SmrgGNU config.sub ($timestamp)
788c9fbc29Smrg
799ab56c27SmrgCopyright 1992-2022 Free Software Foundation, Inc.
808c9fbc29Smrg
818c9fbc29SmrgThis is free software; see the source for copying conditions.  There is NO
828c9fbc29Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
838c9fbc29Smrg
848c9fbc29Smrghelp="
858c9fbc29SmrgTry \`$me --help' for more information."
868c9fbc29Smrg
878c9fbc29Smrg# Parse command line
888c9fbc29Smrgwhile test $# -gt 0 ; do
898c9fbc29Smrg  case $1 in
908c9fbc29Smrg    --time-stamp | --time* | -t )
918c9fbc29Smrg       echo "$timestamp" ; exit ;;
928c9fbc29Smrg    --version | -v )
938c9fbc29Smrg       echo "$version" ; exit ;;
948c9fbc29Smrg    --help | --h* | -h )
958c9fbc29Smrg       echo "$usage"; exit ;;
968c9fbc29Smrg    -- )     # Stop option processing
978c9fbc29Smrg       shift; break ;;
988c9fbc29Smrg    - )	# Use stdin as input.
998c9fbc29Smrg       break ;;
1008c9fbc29Smrg    -* )
10154cef2ddSmrg       echo "$me: invalid option $1$help" >&2
1028c9fbc29Smrg       exit 1 ;;
1038c9fbc29Smrg
1048c9fbc29Smrg    *local*)
1058c9fbc29Smrg       # First pass through any local machine types.
10654044362Smrg       echo "$1"
1078c9fbc29Smrg       exit ;;
1088c9fbc29Smrg
1098c9fbc29Smrg    * )
1108c9fbc29Smrg       break ;;
1118c9fbc29Smrg  esac
1128c9fbc29Smrgdone
1138c9fbc29Smrg
1148c9fbc29Smrgcase $# in
1158c9fbc29Smrg 0) echo "$me: missing argument$help" >&2
1168c9fbc29Smrg    exit 1;;
1178c9fbc29Smrg 1) ;;
1188c9fbc29Smrg *) echo "$me: too many arguments$help" >&2
1198c9fbc29Smrg    exit 1;;
1208c9fbc29Smrgesac
1218c9fbc29Smrg
12254cef2ddSmrg# Split fields of configuration type
12354cef2ddSmrg# shellcheck disable=SC2162
12454cef2ddSmrgsaved_IFS=$IFS
12554cef2ddSmrgIFS="-" read field1 field2 field3 field4 <<EOF
12654cef2ddSmrg$1
12754cef2ddSmrgEOF
12854cef2ddSmrgIFS=$saved_IFS
1298c9fbc29Smrg
13054cef2ddSmrg# Separate into logical components for further validation
13154cef2ddSmrgcase $1 in
13254cef2ddSmrg	*-*-*-*-*)
13354cef2ddSmrg		echo Invalid configuration \`"$1"\': more than four components >&2
13454cef2ddSmrg		exit 1
13570728a38Smrg		;;
13654cef2ddSmrg	*-*-*-*)
13754cef2ddSmrg		basic_machine=$field1-$field2
13854cef2ddSmrg		basic_os=$field3-$field4
1398c9fbc29Smrg		;;
14054cef2ddSmrg	*-*-*)
14154cef2ddSmrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
14254cef2ddSmrg		# parts
14354cef2ddSmrg		maybe_os=$field2-$field3
14454cef2ddSmrg		case $maybe_os in
14554cef2ddSmrg			nto-qnx* | linux-* | uclinux-uclibc* \
14654cef2ddSmrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
14754cef2ddSmrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
1489ab56c27Smrg			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
14954cef2ddSmrg				basic_machine=$field1
15054cef2ddSmrg				basic_os=$maybe_os
15154cef2ddSmrg				;;
15254cef2ddSmrg			android-linux)
15354cef2ddSmrg				basic_machine=$field1-unknown
15454cef2ddSmrg				basic_os=linux-android
15554cef2ddSmrg				;;
15654cef2ddSmrg			*)
15754cef2ddSmrg				basic_machine=$field1-$field2
15854cef2ddSmrg				basic_os=$field3
15954cef2ddSmrg				;;
16054cef2ddSmrg		esac
1618c9fbc29Smrg		;;
16254cef2ddSmrg	*-*)
16354cef2ddSmrg		# A lone config we happen to match not fitting any pattern
16454cef2ddSmrg		case $field1-$field2 in
16554cef2ddSmrg			decstation-3100)
16654cef2ddSmrg				basic_machine=mips-dec
16754cef2ddSmrg				basic_os=
16854cef2ddSmrg				;;
16954cef2ddSmrg			*-*)
17054cef2ddSmrg				# Second component is usually, but not always the OS
17154cef2ddSmrg				case $field2 in
17254cef2ddSmrg					# Prevent following clause from handling this valid os
17354cef2ddSmrg					sun*os*)
17454cef2ddSmrg						basic_machine=$field1
17554cef2ddSmrg						basic_os=$field2
17654cef2ddSmrg						;;
17754cef2ddSmrg					zephyr*)
17854cef2ddSmrg						basic_machine=$field1-unknown
17954cef2ddSmrg						basic_os=$field2
18054cef2ddSmrg						;;
18154cef2ddSmrg					# Manufacturers
18254cef2ddSmrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
18354cef2ddSmrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
18454cef2ddSmrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
18554cef2ddSmrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
18654cef2ddSmrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
18754cef2ddSmrg					| ultra | tti* | harris | dolphin | highlevel | gould \
18854cef2ddSmrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
18954cef2ddSmrg					| microblaze* | sim | cisco \
19054cef2ddSmrg					| oki | wec | wrs | winbond)
19154cef2ddSmrg						basic_machine=$field1-$field2
19254cef2ddSmrg						basic_os=
19354cef2ddSmrg						;;
19454cef2ddSmrg					*)
19554cef2ddSmrg						basic_machine=$field1
19654cef2ddSmrg						basic_os=$field2
19754cef2ddSmrg						;;
19854cef2ddSmrg				esac
19954cef2ddSmrg			;;
20054cef2ddSmrg		esac
2018c9fbc29Smrg		;;
20254cef2ddSmrg	*)
20354cef2ddSmrg		# Convert single-component short-hands not valid as part of
20454cef2ddSmrg		# multi-component configurations.
20554cef2ddSmrg		case $field1 in
20654cef2ddSmrg			386bsd)
20754cef2ddSmrg				basic_machine=i386-pc
20854cef2ddSmrg				basic_os=bsd
20954cef2ddSmrg				;;
21054cef2ddSmrg			a29khif)
21154cef2ddSmrg				basic_machine=a29k-amd
21254cef2ddSmrg				basic_os=udi
21354cef2ddSmrg				;;
21454cef2ddSmrg			adobe68k)
21554cef2ddSmrg				basic_machine=m68010-adobe
21654cef2ddSmrg				basic_os=scout
21754cef2ddSmrg				;;
21854cef2ddSmrg			alliant)
21954cef2ddSmrg				basic_machine=fx80-alliant
22054cef2ddSmrg				basic_os=
22154cef2ddSmrg				;;
22254cef2ddSmrg			altos | altos3068)
22354cef2ddSmrg				basic_machine=m68k-altos
22454cef2ddSmrg				basic_os=
22554cef2ddSmrg				;;
22654cef2ddSmrg			am29k)
22754cef2ddSmrg				basic_machine=a29k-none
22854cef2ddSmrg				basic_os=bsd
22954cef2ddSmrg				;;
23054cef2ddSmrg			amdahl)
23154cef2ddSmrg				basic_machine=580-amdahl
23254cef2ddSmrg				basic_os=sysv
23354cef2ddSmrg				;;
23454cef2ddSmrg			amiga)
23554cef2ddSmrg				basic_machine=m68k-unknown
23654cef2ddSmrg				basic_os=
23754cef2ddSmrg				;;
23854cef2ddSmrg			amigaos | amigados)
23954cef2ddSmrg				basic_machine=m68k-unknown
24054cef2ddSmrg				basic_os=amigaos
24154cef2ddSmrg				;;
24254cef2ddSmrg			amigaunix | amix)
24354cef2ddSmrg				basic_machine=m68k-unknown
24454cef2ddSmrg				basic_os=sysv4
24554cef2ddSmrg				;;
24654cef2ddSmrg			apollo68)
24754cef2ddSmrg				basic_machine=m68k-apollo
24854cef2ddSmrg				basic_os=sysv
24954cef2ddSmrg				;;
25054cef2ddSmrg			apollo68bsd)
25154cef2ddSmrg				basic_machine=m68k-apollo
25254cef2ddSmrg				basic_os=bsd
25354cef2ddSmrg				;;
25454cef2ddSmrg			aros)
25554cef2ddSmrg				basic_machine=i386-pc
25654cef2ddSmrg				basic_os=aros
25754cef2ddSmrg				;;
25854cef2ddSmrg			aux)
25954cef2ddSmrg				basic_machine=m68k-apple
26054cef2ddSmrg				basic_os=aux
26154cef2ddSmrg				;;
26254cef2ddSmrg			balance)
26354cef2ddSmrg				basic_machine=ns32k-sequent
26454cef2ddSmrg				basic_os=dynix
26554cef2ddSmrg				;;
26654cef2ddSmrg			blackfin)
26754cef2ddSmrg				basic_machine=bfin-unknown
26854cef2ddSmrg				basic_os=linux
26954cef2ddSmrg				;;
27054cef2ddSmrg			cegcc)
27154cef2ddSmrg				basic_machine=arm-unknown
27254cef2ddSmrg				basic_os=cegcc
27354cef2ddSmrg				;;
27454cef2ddSmrg			convex-c1)
27554cef2ddSmrg				basic_machine=c1-convex
27654cef2ddSmrg				basic_os=bsd
27754cef2ddSmrg				;;
27854cef2ddSmrg			convex-c2)
27954cef2ddSmrg				basic_machine=c2-convex
28054cef2ddSmrg				basic_os=bsd
28154cef2ddSmrg				;;
28254cef2ddSmrg			convex-c32)
28354cef2ddSmrg				basic_machine=c32-convex
28454cef2ddSmrg				basic_os=bsd
28554cef2ddSmrg				;;
28654cef2ddSmrg			convex-c34)
28754cef2ddSmrg				basic_machine=c34-convex
28854cef2ddSmrg				basic_os=bsd
28954cef2ddSmrg				;;
29054cef2ddSmrg			convex-c38)
29154cef2ddSmrg				basic_machine=c38-convex
29254cef2ddSmrg				basic_os=bsd
29354cef2ddSmrg				;;
29454cef2ddSmrg			cray)
29554cef2ddSmrg				basic_machine=j90-cray
29654cef2ddSmrg				basic_os=unicos
29754cef2ddSmrg				;;
29854cef2ddSmrg			crds | unos)
29954cef2ddSmrg				basic_machine=m68k-crds
30054cef2ddSmrg				basic_os=
30154cef2ddSmrg				;;
30254cef2ddSmrg			da30)
30354cef2ddSmrg				basic_machine=m68k-da30
30454cef2ddSmrg				basic_os=
30554cef2ddSmrg				;;
30654cef2ddSmrg			decstation | pmax | pmin | dec3100 | decstatn)
30754cef2ddSmrg				basic_machine=mips-dec
30854cef2ddSmrg				basic_os=
30954cef2ddSmrg				;;
31054cef2ddSmrg			delta88)
31154cef2ddSmrg				basic_machine=m88k-motorola
31254cef2ddSmrg				basic_os=sysv3
31354cef2ddSmrg				;;
31454cef2ddSmrg			dicos)
31554cef2ddSmrg				basic_machine=i686-pc
31654cef2ddSmrg				basic_os=dicos
31754cef2ddSmrg				;;
31854cef2ddSmrg			djgpp)
31954cef2ddSmrg				basic_machine=i586-pc
32054cef2ddSmrg				basic_os=msdosdjgpp
32154cef2ddSmrg				;;
32254cef2ddSmrg			ebmon29k)
32354cef2ddSmrg				basic_machine=a29k-amd
32454cef2ddSmrg				basic_os=ebmon
32554cef2ddSmrg				;;
32654cef2ddSmrg			es1800 | OSE68k | ose68k | ose | OSE)
32754cef2ddSmrg				basic_machine=m68k-ericsson
32854cef2ddSmrg				basic_os=ose
32954cef2ddSmrg				;;
33054cef2ddSmrg			gmicro)
33154cef2ddSmrg				basic_machine=tron-gmicro
33254cef2ddSmrg				basic_os=sysv
33354cef2ddSmrg				;;
33454cef2ddSmrg			go32)
33554cef2ddSmrg				basic_machine=i386-pc
33654cef2ddSmrg				basic_os=go32
33754cef2ddSmrg				;;
33854cef2ddSmrg			h8300hms)
33954cef2ddSmrg				basic_machine=h8300-hitachi
34054cef2ddSmrg				basic_os=hms
34154cef2ddSmrg				;;
34254cef2ddSmrg			h8300xray)
34354cef2ddSmrg				basic_machine=h8300-hitachi
34454cef2ddSmrg				basic_os=xray
34554cef2ddSmrg				;;
34654cef2ddSmrg			h8500hms)
34754cef2ddSmrg				basic_machine=h8500-hitachi
34854cef2ddSmrg				basic_os=hms
34954cef2ddSmrg				;;
35054cef2ddSmrg			harris)
35154cef2ddSmrg				basic_machine=m88k-harris
35254cef2ddSmrg				basic_os=sysv3
35354cef2ddSmrg				;;
35454cef2ddSmrg			hp300 | hp300hpux)
35554cef2ddSmrg				basic_machine=m68k-hp
35654cef2ddSmrg				basic_os=hpux
35754cef2ddSmrg				;;
35854cef2ddSmrg			hp300bsd)
35954cef2ddSmrg				basic_machine=m68k-hp
36054cef2ddSmrg				basic_os=bsd
36154cef2ddSmrg				;;
36254cef2ddSmrg			hppaosf)
36354cef2ddSmrg				basic_machine=hppa1.1-hp
36454cef2ddSmrg				basic_os=osf
36554cef2ddSmrg				;;
36654cef2ddSmrg			hppro)
36754cef2ddSmrg				basic_machine=hppa1.1-hp
36854cef2ddSmrg				basic_os=proelf
36954cef2ddSmrg				;;
37054cef2ddSmrg			i386mach)
37154cef2ddSmrg				basic_machine=i386-mach
37254cef2ddSmrg				basic_os=mach
37354cef2ddSmrg				;;
37454cef2ddSmrg			isi68 | isi)
37554cef2ddSmrg				basic_machine=m68k-isi
37654cef2ddSmrg				basic_os=sysv
37754cef2ddSmrg				;;
37854cef2ddSmrg			m68knommu)
37954cef2ddSmrg				basic_machine=m68k-unknown
38054cef2ddSmrg				basic_os=linux
38154cef2ddSmrg				;;
38254cef2ddSmrg			magnum | m3230)
38354cef2ddSmrg				basic_machine=mips-mips
38454cef2ddSmrg				basic_os=sysv
38554cef2ddSmrg				;;
38654cef2ddSmrg			merlin)
38754cef2ddSmrg				basic_machine=ns32k-utek
38854cef2ddSmrg				basic_os=sysv
38954cef2ddSmrg				;;
39054cef2ddSmrg			mingw64)
39154cef2ddSmrg				basic_machine=x86_64-pc
39254cef2ddSmrg				basic_os=mingw64
39354cef2ddSmrg				;;
39454cef2ddSmrg			mingw32)
39554cef2ddSmrg				basic_machine=i686-pc
39654cef2ddSmrg				basic_os=mingw32
39754cef2ddSmrg				;;
39854cef2ddSmrg			mingw32ce)
39954cef2ddSmrg				basic_machine=arm-unknown
40054cef2ddSmrg				basic_os=mingw32ce
40154cef2ddSmrg				;;
40254cef2ddSmrg			monitor)
40354cef2ddSmrg				basic_machine=m68k-rom68k
40454cef2ddSmrg				basic_os=coff
40554cef2ddSmrg				;;
40654cef2ddSmrg			morphos)
40754cef2ddSmrg				basic_machine=powerpc-unknown
40854cef2ddSmrg				basic_os=morphos
40954cef2ddSmrg				;;
41054cef2ddSmrg			moxiebox)
41154cef2ddSmrg				basic_machine=moxie-unknown
41254cef2ddSmrg				basic_os=moxiebox
41354cef2ddSmrg				;;
41454cef2ddSmrg			msdos)
41554cef2ddSmrg				basic_machine=i386-pc
41654cef2ddSmrg				basic_os=msdos
41754cef2ddSmrg				;;
41854cef2ddSmrg			msys)
41954cef2ddSmrg				basic_machine=i686-pc
42054cef2ddSmrg				basic_os=msys
42154cef2ddSmrg				;;
42254cef2ddSmrg			mvs)
42354cef2ddSmrg				basic_machine=i370-ibm
42454cef2ddSmrg				basic_os=mvs
42554cef2ddSmrg				;;
42654cef2ddSmrg			nacl)
42754cef2ddSmrg				basic_machine=le32-unknown
42854cef2ddSmrg				basic_os=nacl
42954cef2ddSmrg				;;
43054cef2ddSmrg			ncr3000)
43154cef2ddSmrg				basic_machine=i486-ncr
43254cef2ddSmrg				basic_os=sysv4
43354cef2ddSmrg				;;
43454cef2ddSmrg			netbsd386)
43554cef2ddSmrg				basic_machine=i386-pc
43654cef2ddSmrg				basic_os=netbsd
43754cef2ddSmrg				;;
43854cef2ddSmrg			netwinder)
43954cef2ddSmrg				basic_machine=armv4l-rebel
44054cef2ddSmrg				basic_os=linux
44154cef2ddSmrg				;;
44254cef2ddSmrg			news | news700 | news800 | news900)
44354cef2ddSmrg				basic_machine=m68k-sony
44454cef2ddSmrg				basic_os=newsos
44554cef2ddSmrg				;;
44654cef2ddSmrg			news1000)
44754cef2ddSmrg				basic_machine=m68030-sony
44854cef2ddSmrg				basic_os=newsos
44954cef2ddSmrg				;;
45054cef2ddSmrg			necv70)
45154cef2ddSmrg				basic_machine=v70-nec
45254cef2ddSmrg				basic_os=sysv
45354cef2ddSmrg				;;
45454cef2ddSmrg			nh3000)
45554cef2ddSmrg				basic_machine=m68k-harris
45654cef2ddSmrg				basic_os=cxux
45754cef2ddSmrg				;;
45854cef2ddSmrg			nh[45]000)
45954cef2ddSmrg				basic_machine=m88k-harris
46054cef2ddSmrg				basic_os=cxux
46154cef2ddSmrg				;;
46254cef2ddSmrg			nindy960)
46354cef2ddSmrg				basic_machine=i960-intel
46454cef2ddSmrg				basic_os=nindy
46554cef2ddSmrg				;;
46654cef2ddSmrg			mon960)
46754cef2ddSmrg				basic_machine=i960-intel
46854cef2ddSmrg				basic_os=mon960
46954cef2ddSmrg				;;
47054cef2ddSmrg			nonstopux)
47154cef2ddSmrg				basic_machine=mips-compaq
47254cef2ddSmrg				basic_os=nonstopux
47354cef2ddSmrg				;;
47454cef2ddSmrg			os400)
47554cef2ddSmrg				basic_machine=powerpc-ibm
47654cef2ddSmrg				basic_os=os400
47754cef2ddSmrg				;;
47854cef2ddSmrg			OSE68000 | ose68000)
47954cef2ddSmrg				basic_machine=m68000-ericsson
48054cef2ddSmrg				basic_os=ose
48154cef2ddSmrg				;;
48254cef2ddSmrg			os68k)
48354cef2ddSmrg				basic_machine=m68k-none
48454cef2ddSmrg				basic_os=os68k
48554cef2ddSmrg				;;
48654cef2ddSmrg			paragon)
48754cef2ddSmrg				basic_machine=i860-intel
48854cef2ddSmrg				basic_os=osf
48954cef2ddSmrg				;;
49054cef2ddSmrg			parisc)
49154cef2ddSmrg				basic_machine=hppa-unknown
49254cef2ddSmrg				basic_os=linux
49354cef2ddSmrg				;;
49454cef2ddSmrg			psp)
49554cef2ddSmrg				basic_machine=mipsallegrexel-sony
49654cef2ddSmrg				basic_os=psp
49754cef2ddSmrg				;;
49854cef2ddSmrg			pw32)
49954cef2ddSmrg				basic_machine=i586-unknown
50054cef2ddSmrg				basic_os=pw32
50154cef2ddSmrg				;;
50254cef2ddSmrg			rdos | rdos64)
50354cef2ddSmrg				basic_machine=x86_64-pc
50454cef2ddSmrg				basic_os=rdos
50554cef2ddSmrg				;;
50654cef2ddSmrg			rdos32)
50754cef2ddSmrg				basic_machine=i386-pc
50854cef2ddSmrg				basic_os=rdos
50954cef2ddSmrg				;;
51054cef2ddSmrg			rom68k)
51154cef2ddSmrg				basic_machine=m68k-rom68k
51254cef2ddSmrg				basic_os=coff
51354cef2ddSmrg				;;
51454cef2ddSmrg			sa29200)
51554cef2ddSmrg				basic_machine=a29k-amd
51654cef2ddSmrg				basic_os=udi
51754cef2ddSmrg				;;
51854cef2ddSmrg			sei)
51954cef2ddSmrg				basic_machine=mips-sei
52054cef2ddSmrg				basic_os=seiux
52154cef2ddSmrg				;;
52254cef2ddSmrg			sequent)
52354cef2ddSmrg				basic_machine=i386-sequent
52454cef2ddSmrg				basic_os=
52554cef2ddSmrg				;;
52654cef2ddSmrg			sps7)
52754cef2ddSmrg				basic_machine=m68k-bull
52854cef2ddSmrg				basic_os=sysv2
52954cef2ddSmrg				;;
53054cef2ddSmrg			st2000)
53154cef2ddSmrg				basic_machine=m68k-tandem
53254cef2ddSmrg				basic_os=
53354cef2ddSmrg				;;
53454cef2ddSmrg			stratus)
53554cef2ddSmrg				basic_machine=i860-stratus
53654cef2ddSmrg				basic_os=sysv4
53754cef2ddSmrg				;;
53854cef2ddSmrg			sun2)
53954cef2ddSmrg				basic_machine=m68000-sun
54054cef2ddSmrg				basic_os=
54154cef2ddSmrg				;;
54254cef2ddSmrg			sun2os3)
54354cef2ddSmrg				basic_machine=m68000-sun
54454cef2ddSmrg				basic_os=sunos3
54554cef2ddSmrg				;;
54654cef2ddSmrg			sun2os4)
54754cef2ddSmrg				basic_machine=m68000-sun
54854cef2ddSmrg				basic_os=sunos4
54954cef2ddSmrg				;;
55054cef2ddSmrg			sun3)
55154cef2ddSmrg				basic_machine=m68k-sun
55254cef2ddSmrg				basic_os=
55354cef2ddSmrg				;;
55454cef2ddSmrg			sun3os3)
55554cef2ddSmrg				basic_machine=m68k-sun
55654cef2ddSmrg				basic_os=sunos3
55754cef2ddSmrg				;;
55854cef2ddSmrg			sun3os4)
55954cef2ddSmrg				basic_machine=m68k-sun
56054cef2ddSmrg				basic_os=sunos4
56154cef2ddSmrg				;;
56254cef2ddSmrg			sun4)
56354cef2ddSmrg				basic_machine=sparc-sun
56454cef2ddSmrg				basic_os=
56554cef2ddSmrg				;;
56654cef2ddSmrg			sun4os3)
56754cef2ddSmrg				basic_machine=sparc-sun
56854cef2ddSmrg				basic_os=sunos3
56954cef2ddSmrg				;;
57054cef2ddSmrg			sun4os4)
57154cef2ddSmrg				basic_machine=sparc-sun
57254cef2ddSmrg				basic_os=sunos4
57354cef2ddSmrg				;;
57454cef2ddSmrg			sun4sol2)
57554cef2ddSmrg				basic_machine=sparc-sun
57654cef2ddSmrg				basic_os=solaris2
57754cef2ddSmrg				;;
57854cef2ddSmrg			sun386 | sun386i | roadrunner)
57954cef2ddSmrg				basic_machine=i386-sun
58054cef2ddSmrg				basic_os=
58154cef2ddSmrg				;;
58254cef2ddSmrg			sv1)
58354cef2ddSmrg				basic_machine=sv1-cray
58454cef2ddSmrg				basic_os=unicos
58554cef2ddSmrg				;;
58654cef2ddSmrg			symmetry)
58754cef2ddSmrg				basic_machine=i386-sequent
58854cef2ddSmrg				basic_os=dynix
58954cef2ddSmrg				;;
59054cef2ddSmrg			t3e)
59154cef2ddSmrg				basic_machine=alphaev5-cray
59254cef2ddSmrg				basic_os=unicos
59354cef2ddSmrg				;;
59454cef2ddSmrg			t90)
59554cef2ddSmrg				basic_machine=t90-cray
59654cef2ddSmrg				basic_os=unicos
59754cef2ddSmrg				;;
59854cef2ddSmrg			toad1)
59954cef2ddSmrg				basic_machine=pdp10-xkl
60054cef2ddSmrg				basic_os=tops20
60154cef2ddSmrg				;;
60254cef2ddSmrg			tpf)
60354cef2ddSmrg				basic_machine=s390x-ibm
60454cef2ddSmrg				basic_os=tpf
60554cef2ddSmrg				;;
60654cef2ddSmrg			udi29k)
60754cef2ddSmrg				basic_machine=a29k-amd
60854cef2ddSmrg				basic_os=udi
60954cef2ddSmrg				;;
61054cef2ddSmrg			ultra3)
61154cef2ddSmrg				basic_machine=a29k-nyu
61254cef2ddSmrg				basic_os=sym1
61354cef2ddSmrg				;;
61454cef2ddSmrg			v810 | necv810)
61554cef2ddSmrg				basic_machine=v810-nec
61654cef2ddSmrg				basic_os=none
61754cef2ddSmrg				;;
61854cef2ddSmrg			vaxv)
61954cef2ddSmrg				basic_machine=vax-dec
62054cef2ddSmrg				basic_os=sysv
62154cef2ddSmrg				;;
62254cef2ddSmrg			vms)
62354cef2ddSmrg				basic_machine=vax-dec
62454cef2ddSmrg				basic_os=vms
62554cef2ddSmrg				;;
62654cef2ddSmrg			vsta)
62754cef2ddSmrg				basic_machine=i386-pc
62854cef2ddSmrg				basic_os=vsta
62954cef2ddSmrg				;;
63054cef2ddSmrg			vxworks960)
63154cef2ddSmrg				basic_machine=i960-wrs
63254cef2ddSmrg				basic_os=vxworks
63354cef2ddSmrg				;;
63454cef2ddSmrg			vxworks68)
63554cef2ddSmrg				basic_machine=m68k-wrs
63654cef2ddSmrg				basic_os=vxworks
63754cef2ddSmrg				;;
63854cef2ddSmrg			vxworks29k)
63954cef2ddSmrg				basic_machine=a29k-wrs
64054cef2ddSmrg				basic_os=vxworks
64154cef2ddSmrg				;;
64254cef2ddSmrg			xbox)
64354cef2ddSmrg				basic_machine=i686-pc
64454cef2ddSmrg				basic_os=mingw32
64554cef2ddSmrg				;;
64654cef2ddSmrg			ymp)
64754cef2ddSmrg				basic_machine=ymp-cray
64854cef2ddSmrg				basic_os=unicos
64954cef2ddSmrg				;;
65054cef2ddSmrg			*)
65154cef2ddSmrg				basic_machine=$1
65254cef2ddSmrg				basic_os=
65354cef2ddSmrg				;;
65454cef2ddSmrg		esac
6558c9fbc29Smrg		;;
6568c9fbc29Smrgesac
6578c9fbc29Smrg
65854cef2ddSmrg# Decode 1-component or ad-hoc basic machines
6598c9fbc29Smrgcase $basic_machine in
66054cef2ddSmrg	# Here we handle the default manufacturer of certain CPU types.  It is in
66154cef2ddSmrg	# some cases the only manufacturer, in others, it is the most popular.
66254cef2ddSmrg	w89k)
66354cef2ddSmrg		cpu=hppa1.1
66454cef2ddSmrg		vendor=winbond
66570728a38Smrg		;;
66654cef2ddSmrg	op50n)
66754cef2ddSmrg		cpu=hppa1.1
66854cef2ddSmrg		vendor=oki
6698c9fbc29Smrg		;;
67054cef2ddSmrg	op60c)
67154cef2ddSmrg		cpu=hppa1.1
67254cef2ddSmrg		vendor=oki
6738c9fbc29Smrg		;;
67454cef2ddSmrg	ibm*)
67554cef2ddSmrg		cpu=i370
67654cef2ddSmrg		vendor=ibm
6778c9fbc29Smrg		;;
67854cef2ddSmrg	orion105)
67954cef2ddSmrg		cpu=clipper
68054cef2ddSmrg		vendor=highlevel
68170728a38Smrg		;;
68254cef2ddSmrg	mac | mpw | mac-mpw)
68354cef2ddSmrg		cpu=m68k
68454cef2ddSmrg		vendor=apple
68570728a38Smrg		;;
68654cef2ddSmrg	pmac | pmac-mpw)
68754cef2ddSmrg		cpu=powerpc
68854cef2ddSmrg		vendor=apple
68970728a38Smrg		;;
69070728a38Smrg
6918c9fbc29Smrg	# Recognize the various machine names and aliases which stand
6928c9fbc29Smrg	# for a CPU type and a company and sometimes even an OS.
6938c9fbc29Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
69454cef2ddSmrg		cpu=m68000
69554cef2ddSmrg		vendor=att
6968c9fbc29Smrg		;;
6978c9fbc29Smrg	3b*)
69854cef2ddSmrg		cpu=we32k
69954cef2ddSmrg		vendor=att
7004e411241Smrg		;;
7014cd6a3aeSmrg	bluegene*)
70254cef2ddSmrg		cpu=powerpc
70354cef2ddSmrg		vendor=ibm
70454cef2ddSmrg		basic_os=cnk
7058c9fbc29Smrg		;;
7068c9fbc29Smrg	decsystem10* | dec10*)
70754cef2ddSmrg		cpu=pdp10
70854cef2ddSmrg		vendor=dec
70954cef2ddSmrg		basic_os=tops10
7108c9fbc29Smrg		;;
7118c9fbc29Smrg	decsystem20* | dec20*)
71254cef2ddSmrg		cpu=pdp10
71354cef2ddSmrg		vendor=dec
71454cef2ddSmrg		basic_os=tops20
7158c9fbc29Smrg		;;
7168c9fbc29Smrg	delta | 3300 | motorola-3300 | motorola-delta \
7178c9fbc29Smrg	      | 3300-motorola | delta-motorola)
71854cef2ddSmrg		cpu=m68k
71954cef2ddSmrg		vendor=motorola
7208c9fbc29Smrg		;;
72154044362Smrg	dpx2*)
72254cef2ddSmrg		cpu=m68k
72354cef2ddSmrg		vendor=bull
72454cef2ddSmrg		basic_os=sysv3
7258c9fbc29Smrg		;;
7268c9fbc29Smrg	encore | umax | mmax)
72754cef2ddSmrg		cpu=ns32k
72854cef2ddSmrg		vendor=encore
7298c9fbc29Smrg		;;
73054cef2ddSmrg	elxsi)
73154cef2ddSmrg		cpu=elxsi
73254cef2ddSmrg		vendor=elxsi
73354cef2ddSmrg		basic_os=${basic_os:-bsd}
7348c9fbc29Smrg		;;
7358c9fbc29Smrg	fx2800)
73654cef2ddSmrg		cpu=i860
73754cef2ddSmrg		vendor=alliant
7388c9fbc29Smrg		;;
7398c9fbc29Smrg	genix)
74054cef2ddSmrg		cpu=ns32k
74154cef2ddSmrg		vendor=ns
7428c9fbc29Smrg		;;
7438c9fbc29Smrg	h3050r* | hiux*)
74454cef2ddSmrg		cpu=hppa1.1
74554cef2ddSmrg		vendor=hitachi
74654cef2ddSmrg		basic_os=hiuxwe2
7478c9fbc29Smrg		;;
7488c9fbc29Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
74954cef2ddSmrg		cpu=hppa1.0
75054cef2ddSmrg		vendor=hp
7518c9fbc29Smrg		;;
7528c9fbc29Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
75354cef2ddSmrg		cpu=m68000
75454cef2ddSmrg		vendor=hp
7558c9fbc29Smrg		;;
7568c9fbc29Smrg	hp9k3[2-9][0-9])
75754cef2ddSmrg		cpu=m68k
75854cef2ddSmrg		vendor=hp
7598c9fbc29Smrg		;;
7608c9fbc29Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
76154cef2ddSmrg		cpu=hppa1.0
76254cef2ddSmrg		vendor=hp
7638c9fbc29Smrg		;;
7648c9fbc29Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
76554cef2ddSmrg		cpu=hppa1.1
76654cef2ddSmrg		vendor=hp
7678c9fbc29Smrg		;;
7688c9fbc29Smrg	hp9k78[0-9] | hp78[0-9])
7698c9fbc29Smrg		# FIXME: really hppa2.0-hp
77054cef2ddSmrg		cpu=hppa1.1
77154cef2ddSmrg		vendor=hp
7728c9fbc29Smrg		;;
7738c9fbc29Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
7748c9fbc29Smrg		# FIXME: really hppa2.0-hp
77554cef2ddSmrg		cpu=hppa1.1
77654cef2ddSmrg		vendor=hp
7778c9fbc29Smrg		;;
7788c9fbc29Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
77954cef2ddSmrg		cpu=hppa1.1
78054cef2ddSmrg		vendor=hp
7818c9fbc29Smrg		;;
7828c9fbc29Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
78354cef2ddSmrg		cpu=hppa1.0
78454cef2ddSmrg		vendor=hp
7858c9fbc29Smrg		;;
7868c9fbc29Smrg	i*86v32)
78754cef2ddSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
78854cef2ddSmrg		vendor=pc
78954cef2ddSmrg		basic_os=sysv32
7908c9fbc29Smrg		;;
7918c9fbc29Smrg	i*86v4*)
79254cef2ddSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
79354cef2ddSmrg		vendor=pc
79454cef2ddSmrg		basic_os=sysv4
7958c9fbc29Smrg		;;
7968c9fbc29Smrg	i*86v)
79754cef2ddSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
79854cef2ddSmrg		vendor=pc
79954cef2ddSmrg		basic_os=sysv
8008c9fbc29Smrg		;;
8018c9fbc29Smrg	i*86sol2)
80254cef2ddSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
80354cef2ddSmrg		vendor=pc
80454cef2ddSmrg		basic_os=solaris2
8058c9fbc29Smrg		;;
80654cef2ddSmrg	j90 | j90-cray)
80754cef2ddSmrg		cpu=j90
80854cef2ddSmrg		vendor=cray
80954cef2ddSmrg		basic_os=${basic_os:-unicos}
8108c9fbc29Smrg		;;
8118c9fbc29Smrg	iris | iris4d)
81254cef2ddSmrg		cpu=mips
81354cef2ddSmrg		vendor=sgi
81454cef2ddSmrg		case $basic_os in
81554cef2ddSmrg		    irix*)
8168c9fbc29Smrg			;;
8178c9fbc29Smrg		    *)
81854cef2ddSmrg			basic_os=irix4
8198c9fbc29Smrg			;;
8208c9fbc29Smrg		esac
8218c9fbc29Smrg		;;
8228c9fbc29Smrg	miniframe)
82354cef2ddSmrg		cpu=m68000
82454cef2ddSmrg		vendor=convergent
8258c9fbc29Smrg		;;
82654cef2ddSmrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
82754cef2ddSmrg		cpu=m68k
82854cef2ddSmrg		vendor=atari
82954cef2ddSmrg		basic_os=mint
8308c9fbc29Smrg		;;
8318c9fbc29Smrg	news-3600 | risc-news)
83254cef2ddSmrg		cpu=mips
83354cef2ddSmrg		vendor=sony
83454cef2ddSmrg		basic_os=newsos
8358c9fbc29Smrg		;;
83654044362Smrg	next | m*-next)
83754cef2ddSmrg		cpu=m68k
83854cef2ddSmrg		vendor=next
83954cef2ddSmrg		case $basic_os in
84054cef2ddSmrg		    openstep*)
84154cef2ddSmrg		        ;;
84254cef2ddSmrg		    nextstep*)
8438c9fbc29Smrg			;;
84454cef2ddSmrg		    ns2*)
84554cef2ddSmrg		      basic_os=nextstep2
8468c9fbc29Smrg			;;
8478c9fbc29Smrg		    *)
84854cef2ddSmrg		      basic_os=nextstep3
8498c9fbc29Smrg			;;
8508c9fbc29Smrg		esac
8518c9fbc29Smrg		;;
8528c9fbc29Smrg	np1)
85354cef2ddSmrg		cpu=np1
85454cef2ddSmrg		vendor=gould
85554044362Smrg		;;
8568c9fbc29Smrg	op50n-* | op60c-*)
85754cef2ddSmrg		cpu=hppa1.1
85854cef2ddSmrg		vendor=oki
85954cef2ddSmrg		basic_os=proelf
8608c9fbc29Smrg		;;
8618c9fbc29Smrg	pa-hitachi)
86254cef2ddSmrg		cpu=hppa1.1
86354cef2ddSmrg		vendor=hitachi
86454cef2ddSmrg		basic_os=hiuxwe2
8654e411241Smrg		;;
8668c9fbc29Smrg	pbd)
86754cef2ddSmrg		cpu=sparc
86854cef2ddSmrg		vendor=tti
8698c9fbc29Smrg		;;
8708c9fbc29Smrg	pbb)
87154cef2ddSmrg		cpu=m68k
87254cef2ddSmrg		vendor=tti
8738c9fbc29Smrg		;;
87454cef2ddSmrg	pc532)
87554cef2ddSmrg		cpu=ns32k
87654cef2ddSmrg		vendor=pc532
8778c9fbc29Smrg		;;
8788c9fbc29Smrg	pn)
87954cef2ddSmrg		cpu=pn
88054cef2ddSmrg		vendor=gould
8818c9fbc29Smrg		;;
88254cef2ddSmrg	power)
88354cef2ddSmrg		cpu=power
88454cef2ddSmrg		vendor=ibm
8858c9fbc29Smrg		;;
88654cef2ddSmrg	ps2)
88754cef2ddSmrg		cpu=i386
88854cef2ddSmrg		vendor=ibm
8898c9fbc29Smrg		;;
89054cef2ddSmrg	rm[46]00)
89154cef2ddSmrg		cpu=mips
89254cef2ddSmrg		vendor=siemens
8938c9fbc29Smrg		;;
89454cef2ddSmrg	rtpc | rtpc-*)
89554cef2ddSmrg		cpu=romp
89654cef2ddSmrg		vendor=ibm
8978c9fbc29Smrg		;;
89854cef2ddSmrg	sde)
89954cef2ddSmrg		cpu=mipsisa32
90054cef2ddSmrg		vendor=sde
90154cef2ddSmrg		basic_os=${basic_os:-elf}
9028c9fbc29Smrg		;;
90354cef2ddSmrg	simso-wrs)
90454cef2ddSmrg		cpu=sparclite
90554cef2ddSmrg		vendor=wrs
90654cef2ddSmrg		basic_os=vxworks
9078c9fbc29Smrg		;;
90854cef2ddSmrg	tower | tower-32)
90954cef2ddSmrg		cpu=m68k
91054cef2ddSmrg		vendor=ncr
9118c9fbc29Smrg		;;
91254cef2ddSmrg	vpp*|vx|vx-*)
91354cef2ddSmrg		cpu=f301
91454cef2ddSmrg		vendor=fujitsu
91570728a38Smrg		;;
91654cef2ddSmrg	w65)
91754cef2ddSmrg		cpu=w65
91854cef2ddSmrg		vendor=wdc
9198c9fbc29Smrg		;;
92054cef2ddSmrg	w89k-*)
92154cef2ddSmrg		cpu=hppa1.1
92254cef2ddSmrg		vendor=winbond
92354cef2ddSmrg		basic_os=proelf
9248c9fbc29Smrg		;;
92554cef2ddSmrg	none)
92654cef2ddSmrg		cpu=none
92754cef2ddSmrg		vendor=none
9288c9fbc29Smrg		;;
92954cef2ddSmrg	leon|leon[3-9])
93054cef2ddSmrg		cpu=sparc
93154cef2ddSmrg		vendor=$basic_machine
9328c9fbc29Smrg		;;
93354cef2ddSmrg	leon-*|leon[3-9]-*)
93454cef2ddSmrg		cpu=sparc
93554cef2ddSmrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
9368c9fbc29Smrg		;;
93754cef2ddSmrg
93854cef2ddSmrg	*-*)
93954cef2ddSmrg		# shellcheck disable=SC2162
94054cef2ddSmrg		saved_IFS=$IFS
94154cef2ddSmrg		IFS="-" read cpu vendor <<EOF
94254cef2ddSmrg$basic_machine
94354cef2ddSmrgEOF
94454cef2ddSmrg		IFS=$saved_IFS
9458c9fbc29Smrg		;;
94654cef2ddSmrg	# We use `pc' rather than `unknown'
94754cef2ddSmrg	# because (1) that's what they normally are, and
94854cef2ddSmrg	# (2) the word "unknown" tends to confuse beginning users.
94954cef2ddSmrg	i*86 | x86_64)
95054cef2ddSmrg		cpu=$basic_machine
95154cef2ddSmrg		vendor=pc
9528c9fbc29Smrg		;;
95354cef2ddSmrg	# These rules are duplicated from below for sake of the special case above;
95454cef2ddSmrg	# i.e. things that normalized to x86 arches should also default to "pc"
95554cef2ddSmrg	pc98)
95654cef2ddSmrg		cpu=i386
95754cef2ddSmrg		vendor=pc
9588c9fbc29Smrg		;;
95954cef2ddSmrg	x64 | amd64)
96054cef2ddSmrg		cpu=x86_64
96154cef2ddSmrg		vendor=pc
9628c9fbc29Smrg		;;
96354cef2ddSmrg	# Recognize the basic CPU types without company name.
96454cef2ddSmrg	*)
96554cef2ddSmrg		cpu=$basic_machine
96654cef2ddSmrg		vendor=unknown
9674e411241Smrg		;;
96854cef2ddSmrgesac
96954cef2ddSmrg
97054cef2ddSmrgunset -v basic_machine
97154cef2ddSmrg
97254cef2ddSmrg# Decode basic machines in the full and proper CPU-Company form.
97354cef2ddSmrgcase $cpu-$vendor in
97454cef2ddSmrg	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
97554cef2ddSmrg	# some cases the only manufacturer, in others, it is the most popular.
97654cef2ddSmrg	craynv-unknown)
97754cef2ddSmrg		vendor=cray
97854cef2ddSmrg		basic_os=${basic_os:-unicosmp}
9798c9fbc29Smrg		;;
98054cef2ddSmrg	c90-unknown | c90-cray)
98154cef2ddSmrg		vendor=cray
98254cef2ddSmrg		basic_os=${Basic_os:-unicos}
9838c9fbc29Smrg		;;
98454cef2ddSmrg	fx80-unknown)
98554cef2ddSmrg		vendor=alliant
9864e411241Smrg		;;
98754cef2ddSmrg	romp-unknown)
98854cef2ddSmrg		vendor=ibm
9898c9fbc29Smrg		;;
99054cef2ddSmrg	mmix-unknown)
99154cef2ddSmrg		vendor=knuth
9928c9fbc29Smrg		;;
99354cef2ddSmrg	microblaze-unknown | microblazeel-unknown)
99454cef2ddSmrg		vendor=xilinx
9958c9fbc29Smrg		;;
99654cef2ddSmrg	rs6000-unknown)
99754cef2ddSmrg		vendor=ibm
9988c9fbc29Smrg		;;
99954cef2ddSmrg	vax-unknown)
100054cef2ddSmrg		vendor=dec
10018c9fbc29Smrg		;;
100254cef2ddSmrg	pdp11-unknown)
100354cef2ddSmrg		vendor=dec
100470728a38Smrg		;;
100554cef2ddSmrg	we32k-unknown)
100654cef2ddSmrg		vendor=att
10078c9fbc29Smrg		;;
100854cef2ddSmrg	cydra-unknown)
100954cef2ddSmrg		vendor=cydrome
10108c9fbc29Smrg		;;
101154cef2ddSmrg	i370-ibm*)
101254cef2ddSmrg		vendor=ibm
10138c9fbc29Smrg		;;
101454cef2ddSmrg	orion-unknown)
101554cef2ddSmrg		vendor=highlevel
10168c9fbc29Smrg		;;
101754cef2ddSmrg	xps-unknown | xps100-unknown)
101854cef2ddSmrg		cpu=xps100
101954cef2ddSmrg		vendor=honeywell
10208c9fbc29Smrg		;;
102154cef2ddSmrg
102254cef2ddSmrg	# Here we normalize CPU types with a missing or matching vendor
10239ab56c27Smrg	armh-unknown | armh-alt)
10249ab56c27Smrg		cpu=armv7l
10259ab56c27Smrg		vendor=alt
10269ab56c27Smrg		basic_os=${basic_os:-linux-gnueabihf}
10279ab56c27Smrg		;;
102854cef2ddSmrg	dpx20-unknown | dpx20-bull)
102954cef2ddSmrg		cpu=rs6000
103054cef2ddSmrg		vendor=bull
103154cef2ddSmrg		basic_os=${basic_os:-bosx}
10328c9fbc29Smrg		;;
103354cef2ddSmrg
103454cef2ddSmrg	# Here we normalize CPU types irrespective of the vendor
103554cef2ddSmrg	amd64-*)
103654cef2ddSmrg		cpu=x86_64
10378c9fbc29Smrg		;;
103854cef2ddSmrg	blackfin-*)
103954cef2ddSmrg		cpu=bfin
104054cef2ddSmrg		basic_os=linux
10418c9fbc29Smrg		;;
104254cef2ddSmrg	c54x-*)
104354cef2ddSmrg		cpu=tic54x
10448c9fbc29Smrg		;;
104554cef2ddSmrg	c55x-*)
104654cef2ddSmrg		cpu=tic55x
10478c9fbc29Smrg		;;
104854cef2ddSmrg	c6x-*)
104954cef2ddSmrg		cpu=tic6x
10508c9fbc29Smrg		;;
105154cef2ddSmrg	e500v[12]-*)
105254cef2ddSmrg		cpu=powerpc
105354cef2ddSmrg		basic_os=${basic_os}"spe"
10548c9fbc29Smrg		;;
105554cef2ddSmrg	mips3*-*)
105654cef2ddSmrg		cpu=mips64
10578c9fbc29Smrg		;;
105854cef2ddSmrg	ms1-*)
105954cef2ddSmrg		cpu=mt
10608c9fbc29Smrg		;;
106154cef2ddSmrg	m68knommu-*)
106254cef2ddSmrg		cpu=m68k
106354cef2ddSmrg		basic_os=linux
10648c9fbc29Smrg		;;
106554cef2ddSmrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
106654cef2ddSmrg		cpu=s12z
10674e411241Smrg		;;
106854cef2ddSmrg	openrisc-*)
106954cef2ddSmrg		cpu=or32
10708c9fbc29Smrg		;;
107154cef2ddSmrg	parisc-*)
107254cef2ddSmrg		cpu=hppa
107354cef2ddSmrg		basic_os=linux
10748c9fbc29Smrg		;;
107554cef2ddSmrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
107654cef2ddSmrg		cpu=i586
10778c9fbc29Smrg		;;
107854cef2ddSmrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
107954cef2ddSmrg		cpu=i686
10808c9fbc29Smrg		;;
108154cef2ddSmrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
108254cef2ddSmrg		cpu=i686
10838c9fbc29Smrg		;;
108454cef2ddSmrg	pentium4-*)
108554cef2ddSmrg		cpu=i786
10868c9fbc29Smrg		;;
108754cef2ddSmrg	pc98-*)
108854cef2ddSmrg		cpu=i386
10898c9fbc29Smrg		;;
109054cef2ddSmrg	ppc-* | ppcbe-*)
109154cef2ddSmrg		cpu=powerpc
10928c9fbc29Smrg		;;
109354cef2ddSmrg	ppcle-* | powerpclittle-*)
109454cef2ddSmrg		cpu=powerpcle
10958c9fbc29Smrg		;;
109654cef2ddSmrg	ppc64-*)
109754cef2ddSmrg		cpu=powerpc64
10988c9fbc29Smrg		;;
109954cef2ddSmrg	ppc64le-* | powerpc64little-*)
110054cef2ddSmrg		cpu=powerpc64le
11018c9fbc29Smrg		;;
110254cef2ddSmrg	sb1-*)
110354cef2ddSmrg		cpu=mipsisa64sb1
11048c9fbc29Smrg		;;
110554cef2ddSmrg	sb1el-*)
110654cef2ddSmrg		cpu=mipsisa64sb1el
11078c9fbc29Smrg		;;
110854cef2ddSmrg	sh5e[lb]-*)
110954cef2ddSmrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
11108c9fbc29Smrg		;;
111154cef2ddSmrg	spur-*)
111254cef2ddSmrg		cpu=spur
11138c9fbc29Smrg		;;
111454cef2ddSmrg	strongarm-* | thumb-*)
111554cef2ddSmrg		cpu=arm
11168c9fbc29Smrg		;;
111754cef2ddSmrg	tx39-*)
111854cef2ddSmrg		cpu=mipstx39
111954044362Smrg		;;
112054cef2ddSmrg	tx39el-*)
112154cef2ddSmrg		cpu=mipstx39el
11228c9fbc29Smrg		;;
112354cef2ddSmrg	x64-*)
112454cef2ddSmrg		cpu=x86_64
11258c9fbc29Smrg		;;
112670728a38Smrg	xscale-* | xscalee[bl]-*)
112754cef2ddSmrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
11288c9fbc29Smrg		;;
11299ab56c27Smrg	arm64-* | aarch64le-*)
113054cef2ddSmrg		cpu=aarch64
11318c9fbc29Smrg		;;
11328c9fbc29Smrg
113354cef2ddSmrg	# Recognize the canonical CPU Types that limit and/or modify the
113454cef2ddSmrg	# company names they are paired with.
113554cef2ddSmrg	cr16-*)
113654cef2ddSmrg		basic_os=${basic_os:-elf}
11378c9fbc29Smrg		;;
113854cef2ddSmrg	crisv32-* | etraxfs*-*)
113954cef2ddSmrg		cpu=crisv32
114054cef2ddSmrg		vendor=axis
11418c9fbc29Smrg		;;
114254cef2ddSmrg	cris-* | etrax*-*)
114354cef2ddSmrg		cpu=cris
114454cef2ddSmrg		vendor=axis
11458c9fbc29Smrg		;;
114654cef2ddSmrg	crx-*)
114754cef2ddSmrg		basic_os=${basic_os:-elf}
11488c9fbc29Smrg		;;
114954cef2ddSmrg	neo-tandem)
115054cef2ddSmrg		cpu=neo
115154cef2ddSmrg		vendor=tandem
11528c9fbc29Smrg		;;
115354cef2ddSmrg	nse-tandem)
115454cef2ddSmrg		cpu=nse
115554cef2ddSmrg		vendor=tandem
11568c9fbc29Smrg		;;
115754cef2ddSmrg	nsr-tandem)
115854cef2ddSmrg		cpu=nsr
115954cef2ddSmrg		vendor=tandem
11608c9fbc29Smrg		;;
116154cef2ddSmrg	nsv-tandem)
116254cef2ddSmrg		cpu=nsv
116354cef2ddSmrg		vendor=tandem
11648c9fbc29Smrg		;;
116554cef2ddSmrg	nsx-tandem)
116654cef2ddSmrg		cpu=nsx
116754cef2ddSmrg		vendor=tandem
11688c9fbc29Smrg		;;
116954cef2ddSmrg	mipsallegrexel-sony)
117054cef2ddSmrg		cpu=mipsallegrexel
117154cef2ddSmrg		vendor=sony
11728c9fbc29Smrg		;;
117354cef2ddSmrg	tile*-*)
117454cef2ddSmrg		basic_os=${basic_os:-linux-gnu}
11758c9fbc29Smrg		;;
117654cef2ddSmrg
11778c9fbc29Smrg	*)
117854cef2ddSmrg		# Recognize the canonical CPU types that are allowed with any
117954cef2ddSmrg		# company name.
118054cef2ddSmrg		case $cpu in
118154cef2ddSmrg			1750a | 580 \
118254cef2ddSmrg			| a29k \
118354cef2ddSmrg			| aarch64 | aarch64_be \
118454cef2ddSmrg			| abacus \
118554cef2ddSmrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
118654cef2ddSmrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
118754cef2ddSmrg			| alphapca5[67] | alpha64pca5[67] \
118854cef2ddSmrg			| am33_2.0 \
118954cef2ddSmrg			| amdgcn \
119054cef2ddSmrg			| arc | arceb | arc32 | arc64 \
119154cef2ddSmrg			| arm | arm[lb]e | arme[lb] | armv* \
119254cef2ddSmrg			| avr | avr32 \
119354cef2ddSmrg			| asmjs \
119454cef2ddSmrg			| ba \
119554cef2ddSmrg			| be32 | be64 \
119654cef2ddSmrg			| bfin | bpf | bs2000 \
119754cef2ddSmrg			| c[123]* | c30 | [cjt]90 | c4x \
119854cef2ddSmrg			| c8051 | clipper | craynv | csky | cydra \
119954cef2ddSmrg			| d10v | d30v | dlx | dsp16xx \
120054cef2ddSmrg			| e2k | elxsi | epiphany \
120154cef2ddSmrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
120254cef2ddSmrg			| h8300 | h8500 \
120354cef2ddSmrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
120454cef2ddSmrg			| hexagon \
120554cef2ddSmrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
120654cef2ddSmrg			| ip2k | iq2000 \
120754cef2ddSmrg			| k1om \
120854cef2ddSmrg			| le32 | le64 \
120954cef2ddSmrg			| lm32 \
12109ab56c27Smrg			| loongarch32 | loongarch64 \
121154cef2ddSmrg			| m32c | m32r | m32rle \
121254cef2ddSmrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
121354cef2ddSmrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
121454cef2ddSmrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
121554cef2ddSmrg			| microblaze | microblazeel \
121654cef2ddSmrg			| mips | mipsbe | mipseb | mipsel | mipsle \
121754cef2ddSmrg			| mips16 \
121854cef2ddSmrg			| mips64 | mips64eb | mips64el \
121954cef2ddSmrg			| mips64octeon | mips64octeonel \
122054cef2ddSmrg			| mips64orion | mips64orionel \
122154cef2ddSmrg			| mips64r5900 | mips64r5900el \
122254cef2ddSmrg			| mips64vr | mips64vrel \
122354cef2ddSmrg			| mips64vr4100 | mips64vr4100el \
122454cef2ddSmrg			| mips64vr4300 | mips64vr4300el \
122554cef2ddSmrg			| mips64vr5000 | mips64vr5000el \
122654cef2ddSmrg			| mips64vr5900 | mips64vr5900el \
122754cef2ddSmrg			| mipsisa32 | mipsisa32el \
122854cef2ddSmrg			| mipsisa32r2 | mipsisa32r2el \
122954cef2ddSmrg			| mipsisa32r3 | mipsisa32r3el \
123054cef2ddSmrg			| mipsisa32r5 | mipsisa32r5el \
123154cef2ddSmrg			| mipsisa32r6 | mipsisa32r6el \
123254cef2ddSmrg			| mipsisa64 | mipsisa64el \
123354cef2ddSmrg			| mipsisa64r2 | mipsisa64r2el \
123454cef2ddSmrg			| mipsisa64r3 | mipsisa64r3el \
123554cef2ddSmrg			| mipsisa64r5 | mipsisa64r5el \
123654cef2ddSmrg			| mipsisa64r6 | mipsisa64r6el \
123754cef2ddSmrg			| mipsisa64sb1 | mipsisa64sb1el \
123854cef2ddSmrg			| mipsisa64sr71k | mipsisa64sr71kel \
123954cef2ddSmrg			| mipsr5900 | mipsr5900el \
124054cef2ddSmrg			| mipstx39 | mipstx39el \
124154cef2ddSmrg			| mmix \
124254cef2ddSmrg			| mn10200 | mn10300 \
124354cef2ddSmrg			| moxie \
124454cef2ddSmrg			| mt \
124554cef2ddSmrg			| msp430 \
124654cef2ddSmrg			| nds32 | nds32le | nds32be \
124754cef2ddSmrg			| nfp \
124854cef2ddSmrg			| nios | nios2 | nios2eb | nios2el \
124954cef2ddSmrg			| none | np1 | ns16k | ns32k | nvptx \
125054cef2ddSmrg			| open8 \
125154cef2ddSmrg			| or1k* \
125254cef2ddSmrg			| or32 \
125354cef2ddSmrg			| orion \
125454cef2ddSmrg			| picochip \
125554cef2ddSmrg			| pdp10 | pdp11 | pj | pjl | pn | power \
125654cef2ddSmrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
125754cef2ddSmrg			| pru \
125854cef2ddSmrg			| pyramid \
125954cef2ddSmrg			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
126054cef2ddSmrg			| rl78 | romp | rs6000 | rx \
126154cef2ddSmrg			| s390 | s390x \
126254cef2ddSmrg			| score \
126354cef2ddSmrg			| sh | shl \
126454cef2ddSmrg			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
126554cef2ddSmrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
126654cef2ddSmrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
126754cef2ddSmrg			| sparclite \
126854cef2ddSmrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
126954cef2ddSmrg			| spu \
127054cef2ddSmrg			| tahoe \
127154cef2ddSmrg			| thumbv7* \
127254cef2ddSmrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
127354cef2ddSmrg			| tron \
127454cef2ddSmrg			| ubicom32 \
127554cef2ddSmrg			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
127654cef2ddSmrg			| vax \
127754cef2ddSmrg			| visium \
127854cef2ddSmrg			| w65 \
127954cef2ddSmrg			| wasm32 | wasm64 \
128054cef2ddSmrg			| we32k \
128154cef2ddSmrg			| x86 | x86_64 | xc16x | xgate | xps100 \
128254cef2ddSmrg			| xstormy16 | xtensa* \
128354cef2ddSmrg			| ymp \
128454cef2ddSmrg			| z8k | z80)
128554cef2ddSmrg				;;
128654cef2ddSmrg
128754cef2ddSmrg			*)
128854cef2ddSmrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
128954cef2ddSmrg				exit 1
129054cef2ddSmrg				;;
129154cef2ddSmrg		esac
12928c9fbc29Smrg		;;
12938c9fbc29Smrgesac
12948c9fbc29Smrg
12958c9fbc29Smrg# Here we canonicalize certain aliases for manufacturers.
129654cef2ddSmrgcase $vendor in
129754cef2ddSmrg	digital*)
129854cef2ddSmrg		vendor=dec
12998c9fbc29Smrg		;;
130054cef2ddSmrg	commodore*)
130154cef2ddSmrg		vendor=cbm
13028c9fbc29Smrg		;;
13038c9fbc29Smrg	*)
13048c9fbc29Smrg		;;
13058c9fbc29Smrgesac
13068c9fbc29Smrg
13078c9fbc29Smrg# Decode manufacturer-specific aliases for certain operating systems.
13088c9fbc29Smrg
130954cef2ddSmrgif test x$basic_os != x
13108c9fbc29Smrgthen
131154cef2ddSmrg
13129ab56c27Smrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
131354cef2ddSmrg# set os.
131454cef2ddSmrgcase $basic_os in
131554cef2ddSmrg	gnu/linux*)
131654cef2ddSmrg		kernel=linux
131754cef2ddSmrg		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
131854cef2ddSmrg		;;
131954cef2ddSmrg	os2-emx)
132054cef2ddSmrg		kernel=os2
132154cef2ddSmrg		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
132254cef2ddSmrg		;;
132354cef2ddSmrg	nto-qnx*)
132454cef2ddSmrg		kernel=nto
132554cef2ddSmrg		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
132654cef2ddSmrg		;;
132754cef2ddSmrg	*-*)
132854cef2ddSmrg		# shellcheck disable=SC2162
132954cef2ddSmrg		saved_IFS=$IFS
133054cef2ddSmrg		IFS="-" read kernel os <<EOF
133154cef2ddSmrg$basic_os
133254cef2ddSmrgEOF
133354cef2ddSmrg		IFS=$saved_IFS
133454cef2ddSmrg		;;
133554cef2ddSmrg	# Default OS when just kernel was specified
133654cef2ddSmrg	nto*)
133754cef2ddSmrg		kernel=nto
133854cef2ddSmrg		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
133954cef2ddSmrg		;;
134054cef2ddSmrg	linux*)
134154cef2ddSmrg		kernel=linux
134254cef2ddSmrg		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
134354cef2ddSmrg		;;
13449ab56c27Smrg	managarm*)
13459ab56c27Smrg		kernel=managarm
13469ab56c27Smrg		os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
13479ab56c27Smrg		;;
134854cef2ddSmrg	*)
134954cef2ddSmrg		kernel=
135054cef2ddSmrg		os=$basic_os
135154cef2ddSmrg		;;
135254cef2ddSmrgesac
135354cef2ddSmrg
135454cef2ddSmrg# Now, normalize the OS (knowing we just have one component, it's not a kernel,
135554cef2ddSmrg# etc.)
13568c9fbc29Smrgcase $os in
135754044362Smrg	# First match some system type aliases that might get confused
135854044362Smrg	# with valid system types.
135954cef2ddSmrg	# solaris* is a basic system type, with this one exception.
136054cef2ddSmrg	auroraux)
136154cef2ddSmrg		os=auroraux
13624cd6a3aeSmrg		;;
136354cef2ddSmrg	bluegene*)
136454cef2ddSmrg		os=cnk
13658c9fbc29Smrg		;;
136654cef2ddSmrg	solaris1 | solaris1.*)
136754cef2ddSmrg		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
13688c9fbc29Smrg		;;
136954cef2ddSmrg	solaris)
137054cef2ddSmrg		os=solaris2
13718c9fbc29Smrg		;;
137254cef2ddSmrg	unixware*)
137354cef2ddSmrg		os=sysv4.2uw
13748c9fbc29Smrg		;;
137554044362Smrg	# es1800 is here to avoid being matched by es* (a different OS)
137654cef2ddSmrg	es1800*)
137754cef2ddSmrg		os=ose
137854044362Smrg		;;
137954cef2ddSmrg	# Some version numbers need modification
138054cef2ddSmrg	chorusos*)
138154cef2ddSmrg		os=chorusos
13828c9fbc29Smrg		;;
138354cef2ddSmrg	isc)
138454cef2ddSmrg		os=isc2.2
13858c9fbc29Smrg		;;
138654cef2ddSmrg	sco6)
138754cef2ddSmrg		os=sco5v6
13888c9fbc29Smrg		;;
138954cef2ddSmrg	sco5)
139054cef2ddSmrg		os=sco3.2v5
13918c9fbc29Smrg		;;
139254cef2ddSmrg	sco4)
139354cef2ddSmrg		os=sco3.2v4
13948c9fbc29Smrg		;;
139554cef2ddSmrg	sco3.2.[4-9]*)
139654cef2ddSmrg		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
13978c9fbc29Smrg		;;
139854cef2ddSmrg	sco*v* | scout)
139954cef2ddSmrg		# Don't match below
14008c9fbc29Smrg		;;
140154cef2ddSmrg	sco*)
140254cef2ddSmrg		os=sco3.2v2
14038c9fbc29Smrg		;;
140454cef2ddSmrg	psos*)
140554cef2ddSmrg		os=psos
14068c9fbc29Smrg		;;
140754cef2ddSmrg	qnx*)
140854cef2ddSmrg		os=qnx
14098c9fbc29Smrg		;;
141054cef2ddSmrg	hiux*)
141154cef2ddSmrg		os=hiuxwe2
14128c9fbc29Smrg		;;
141354cef2ddSmrg	lynx*178)
141454cef2ddSmrg		os=lynxos178
14158c9fbc29Smrg		;;
141654cef2ddSmrg	lynx*5)
141754cef2ddSmrg		os=lynxos5
14188c9fbc29Smrg		;;
141954cef2ddSmrg	lynxos*)
142054cef2ddSmrg		# don't get caught up in next wildcard
14218c9fbc29Smrg		;;
142254cef2ddSmrg	lynx*)
142354cef2ddSmrg		os=lynxos
14248c9fbc29Smrg		;;
142554cef2ddSmrg	mac[0-9]*)
142654cef2ddSmrg		os=`echo "$os" | sed -e 's|mac|macos|'`
14278c9fbc29Smrg		;;
142854cef2ddSmrg	opened*)
142954cef2ddSmrg		os=openedition
14308c9fbc29Smrg		;;
143154cef2ddSmrg	os400*)
143254cef2ddSmrg		os=os400
14338c9fbc29Smrg		;;
143454cef2ddSmrg	sunos5*)
143554cef2ddSmrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14368c9fbc29Smrg		;;
143754cef2ddSmrg	sunos6*)
143854cef2ddSmrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14398c9fbc29Smrg		;;
144054cef2ddSmrg	wince*)
144154cef2ddSmrg		os=wince
14428c9fbc29Smrg		;;
144354cef2ddSmrg	utek*)
144454cef2ddSmrg		os=bsd
14458c9fbc29Smrg		;;
144654cef2ddSmrg	dynix*)
144754cef2ddSmrg		os=bsd
14488c9fbc29Smrg		;;
144954cef2ddSmrg	acis*)
145054cef2ddSmrg		os=aos
14518c9fbc29Smrg		;;
145254cef2ddSmrg	atheos*)
145354cef2ddSmrg		os=atheos
14548c9fbc29Smrg		;;
145554cef2ddSmrg	syllable*)
145654cef2ddSmrg		os=syllable
145754cef2ddSmrg		;;
145854cef2ddSmrg	386bsd)
145954cef2ddSmrg		os=bsd
146054cef2ddSmrg		;;
146154cef2ddSmrg	ctix* | uts*)
146254cef2ddSmrg		os=sysv
146354cef2ddSmrg		;;
146454cef2ddSmrg	nova*)
146554cef2ddSmrg		os=rtmk-nova
146654cef2ddSmrg		;;
146754cef2ddSmrg	ns2)
146854cef2ddSmrg		os=nextstep2
146954cef2ddSmrg		;;
147054cef2ddSmrg	# Preserve the version number of sinix5.
147154cef2ddSmrg	sinix5.*)
147254cef2ddSmrg		os=`echo "$os" | sed -e 's|sinix|sysv|'`
14738c9fbc29Smrg		;;
147454cef2ddSmrg	sinix*)
147554cef2ddSmrg		os=sysv4
14768c9fbc29Smrg		;;
147754cef2ddSmrg	tpf*)
147854cef2ddSmrg		os=tpf
14798c9fbc29Smrg		;;
148054cef2ddSmrg	triton*)
148154cef2ddSmrg		os=sysv3
14828c9fbc29Smrg		;;
148354cef2ddSmrg	oss*)
148454cef2ddSmrg		os=sysv3
14858c9fbc29Smrg		;;
148654cef2ddSmrg	svr4*)
148754cef2ddSmrg		os=sysv4
14888c9fbc29Smrg		;;
148954cef2ddSmrg	svr3)
149054cef2ddSmrg		os=sysv3
14918c9fbc29Smrg		;;
149254cef2ddSmrg	sysvr4)
149354cef2ddSmrg		os=sysv4
14948c9fbc29Smrg		;;
149554cef2ddSmrg	ose*)
149654cef2ddSmrg		os=ose
14978c9fbc29Smrg		;;
149854cef2ddSmrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
149954cef2ddSmrg		os=mint
15004cd6a3aeSmrg		;;
150154cef2ddSmrg	dicos*)
150254cef2ddSmrg		os=dicos
150354cef2ddSmrg		;;
150454cef2ddSmrg	pikeos*)
150554044362Smrg		# Until real need of OS specific support for
150654044362Smrg		# particular features comes up, bare metal
150754044362Smrg		# configurations are quite functional.
150854cef2ddSmrg		case $cpu in
150954044362Smrg		    arm*)
151054cef2ddSmrg			os=eabi
151154044362Smrg			;;
151254044362Smrg		    *)
151354cef2ddSmrg			os=elf
151454044362Smrg			;;
151554044362Smrg		esac
151654044362Smrg		;;
15178c9fbc29Smrg	*)
151854cef2ddSmrg		# No normalization, but not necessarily accepted, that comes below.
15198c9fbc29Smrg		;;
15208c9fbc29Smrgesac
152154cef2ddSmrg
15228c9fbc29Smrgelse
15238c9fbc29Smrg
15248c9fbc29Smrg# Here we handle the default operating systems that come with various machines.
15258c9fbc29Smrg# The value should be what the vendor currently ships out the door with their
15268c9fbc29Smrg# machine or put another way, the most popular os provided with the machine.
15278c9fbc29Smrg
15288c9fbc29Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
15298c9fbc29Smrg# "-sun"), then you have to tell the case statement up towards the top
15308c9fbc29Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
15318c9fbc29Smrg# will signal an error saying that MANUFACTURER isn't an operating
15328c9fbc29Smrg# system, and we'll never get to this point.
15338c9fbc29Smrg
153454cef2ddSmrgkernel=
153554cef2ddSmrgcase $cpu-$vendor in
153670728a38Smrg	score-*)
153754cef2ddSmrg		os=elf
15384e411241Smrg		;;
153970728a38Smrg	spu-*)
154054cef2ddSmrg		os=elf
15414e411241Smrg		;;
15428c9fbc29Smrg	*-acorn)
154354cef2ddSmrg		os=riscix1.2
15448c9fbc29Smrg		;;
15458c9fbc29Smrg	arm*-rebel)
154654cef2ddSmrg		kernel=linux
154754cef2ddSmrg		os=gnu
15488c9fbc29Smrg		;;
15498c9fbc29Smrg	arm*-semi)
155054cef2ddSmrg		os=aout
15518c9fbc29Smrg		;;
155270728a38Smrg	c4x-* | tic4x-*)
155354cef2ddSmrg		os=coff
155470728a38Smrg		;;
155570728a38Smrg	c8051-*)
155654cef2ddSmrg		os=elf
155754cef2ddSmrg		;;
155854cef2ddSmrg	clipper-intergraph)
155954cef2ddSmrg		os=clix
156070728a38Smrg		;;
156170728a38Smrg	hexagon-*)
156254cef2ddSmrg		os=elf
15634e411241Smrg		;;
15644cd6a3aeSmrg	tic54x-*)
156554cef2ddSmrg		os=coff
15664cd6a3aeSmrg		;;
15674cd6a3aeSmrg	tic55x-*)
156854cef2ddSmrg		os=coff
15694cd6a3aeSmrg		;;
15704cd6a3aeSmrg	tic6x-*)
157154cef2ddSmrg		os=coff
15724cd6a3aeSmrg		;;
15738c9fbc29Smrg	# This must come before the *-dec entry.
15748c9fbc29Smrg	pdp10-*)
157554cef2ddSmrg		os=tops20
15768c9fbc29Smrg		;;
15778c9fbc29Smrg	pdp11-*)
157854cef2ddSmrg		os=none
15798c9fbc29Smrg		;;
15808c9fbc29Smrg	*-dec | vax-*)
158154cef2ddSmrg		os=ultrix4.2
15828c9fbc29Smrg		;;
15838c9fbc29Smrg	m68*-apollo)
158454cef2ddSmrg		os=domain
15858c9fbc29Smrg		;;
15868c9fbc29Smrg	i386-sun)
158754cef2ddSmrg		os=sunos4.0.2
15888c9fbc29Smrg		;;
15898c9fbc29Smrg	m68000-sun)
159054cef2ddSmrg		os=sunos3
15918c9fbc29Smrg		;;
15928c9fbc29Smrg	m68*-cisco)
159354cef2ddSmrg		os=aout
15948c9fbc29Smrg		;;
159570728a38Smrg	mep-*)
159654cef2ddSmrg		os=elf
15974e411241Smrg		;;
15988c9fbc29Smrg	mips*-cisco)
159954cef2ddSmrg		os=elf
16008c9fbc29Smrg		;;
16018c9fbc29Smrg	mips*-*)
160254cef2ddSmrg		os=elf
16038c9fbc29Smrg		;;
16048c9fbc29Smrg	or32-*)
160554cef2ddSmrg		os=coff
16068c9fbc29Smrg		;;
16078c9fbc29Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
160854cef2ddSmrg		os=sysv3
16098c9fbc29Smrg		;;
16108c9fbc29Smrg	sparc-* | *-sun)
161154cef2ddSmrg		os=sunos4.1.1
16128c9fbc29Smrg		;;
161354044362Smrg	pru-*)
161454cef2ddSmrg		os=elf
161554044362Smrg		;;
16168c9fbc29Smrg	*-be)
161754cef2ddSmrg		os=beos
16188c9fbc29Smrg		;;
16198c9fbc29Smrg	*-ibm)
162054cef2ddSmrg		os=aix
16218c9fbc29Smrg		;;
162270728a38Smrg	*-knuth)
162354cef2ddSmrg		os=mmixware
16248c9fbc29Smrg		;;
16258c9fbc29Smrg	*-wec)
162654cef2ddSmrg		os=proelf
16278c9fbc29Smrg		;;
16288c9fbc29Smrg	*-winbond)
162954cef2ddSmrg		os=proelf
16308c9fbc29Smrg		;;
16318c9fbc29Smrg	*-oki)
163254cef2ddSmrg		os=proelf
16338c9fbc29Smrg		;;
16348c9fbc29Smrg	*-hp)
163554cef2ddSmrg		os=hpux
16368c9fbc29Smrg		;;
16378c9fbc29Smrg	*-hitachi)
163854cef2ddSmrg		os=hiux
16398c9fbc29Smrg		;;
16408c9fbc29Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
164154cef2ddSmrg		os=sysv
16428c9fbc29Smrg		;;
16438c9fbc29Smrg	*-cbm)
164454cef2ddSmrg		os=amigaos
16458c9fbc29Smrg		;;
16468c9fbc29Smrg	*-dg)
164754cef2ddSmrg		os=dgux
16488c9fbc29Smrg		;;
16498c9fbc29Smrg	*-dolphin)
165054cef2ddSmrg		os=sysv3
16518c9fbc29Smrg		;;
16528c9fbc29Smrg	m68k-ccur)
165354cef2ddSmrg		os=rtu
16548c9fbc29Smrg		;;
16558c9fbc29Smrg	m88k-omron*)
165654cef2ddSmrg		os=luna
16578c9fbc29Smrg		;;
165854044362Smrg	*-next)
165954cef2ddSmrg		os=nextstep
16608c9fbc29Smrg		;;
16618c9fbc29Smrg	*-sequent)
166254cef2ddSmrg		os=ptx
16638c9fbc29Smrg		;;
16648c9fbc29Smrg	*-crds)
166554cef2ddSmrg		os=unos
16668c9fbc29Smrg		;;
16678c9fbc29Smrg	*-ns)
166854cef2ddSmrg		os=genix
16698c9fbc29Smrg		;;
16708c9fbc29Smrg	i370-*)
167154cef2ddSmrg		os=mvs
16728c9fbc29Smrg		;;
16738c9fbc29Smrg	*-gould)
167454cef2ddSmrg		os=sysv
16758c9fbc29Smrg		;;
16768c9fbc29Smrg	*-highlevel)
167754cef2ddSmrg		os=bsd
16788c9fbc29Smrg		;;
16798c9fbc29Smrg	*-encore)
168054cef2ddSmrg		os=bsd
16818c9fbc29Smrg		;;
16828c9fbc29Smrg	*-sgi)
168354cef2ddSmrg		os=irix
16848c9fbc29Smrg		;;
16858c9fbc29Smrg	*-siemens)
168654cef2ddSmrg		os=sysv4
16878c9fbc29Smrg		;;
16888c9fbc29Smrg	*-masscomp)
168954cef2ddSmrg		os=rtu
16908c9fbc29Smrg		;;
16918c9fbc29Smrg	f30[01]-fujitsu | f700-fujitsu)
169254cef2ddSmrg		os=uxpv
16938c9fbc29Smrg		;;
16948c9fbc29Smrg	*-rom68k)
169554cef2ddSmrg		os=coff
16968c9fbc29Smrg		;;
16978c9fbc29Smrg	*-*bug)
169854cef2ddSmrg		os=coff
16998c9fbc29Smrg		;;
17008c9fbc29Smrg	*-apple)
170154cef2ddSmrg		os=macos
17028c9fbc29Smrg		;;
17038c9fbc29Smrg	*-atari*)
170454cef2ddSmrg		os=mint
170554cef2ddSmrg		;;
170654cef2ddSmrg	*-wrs)
170754cef2ddSmrg		os=vxworks
17088c9fbc29Smrg		;;
17098c9fbc29Smrg	*)
171054cef2ddSmrg		os=none
17118c9fbc29Smrg		;;
17128c9fbc29Smrgesac
171354cef2ddSmrg
17148c9fbc29Smrgfi
17158c9fbc29Smrg
171654cef2ddSmrg# Now, validate our (potentially fixed-up) OS.
171754cef2ddSmrgcase $os in
171854cef2ddSmrg	# Sometimes we do "kernel-libc", so those need to count as OSes.
171954cef2ddSmrg	musl* | newlib* | relibc* | uclibc*)
172054cef2ddSmrg		;;
172154cef2ddSmrg	# Likewise for "kernel-abi"
172254cef2ddSmrg	eabi* | gnueabi*)
172354cef2ddSmrg		;;
172454cef2ddSmrg	# VxWorks passes extra cpu info in the 4th filed.
172554cef2ddSmrg	simlinux | simwindows | spe)
172654cef2ddSmrg		;;
172754cef2ddSmrg	# Now accept the basic system types.
172854cef2ddSmrg	# The portable systems comes first.
172954cef2ddSmrg	# Each alternative MUST end in a * to match a version number.
173054cef2ddSmrg	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
173154cef2ddSmrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
173254cef2ddSmrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
173354cef2ddSmrg	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
173454cef2ddSmrg	     | hiux* | abug | nacl* | netware* | windows* \
173554cef2ddSmrg	     | os9* | macos* | osx* | ios* \
173654cef2ddSmrg	     | mpw* | magic* | mmixware* | mon960* | lnews* \
173754cef2ddSmrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
173854cef2ddSmrg	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
173954cef2ddSmrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
174054cef2ddSmrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
174154cef2ddSmrg	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
174254cef2ddSmrg	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
174354cef2ddSmrg	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
174454cef2ddSmrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
174554cef2ddSmrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
174654cef2ddSmrg	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
174754cef2ddSmrg	     | chorusrdb* | cegcc* | glidix* | serenity* \
174854cef2ddSmrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
174954cef2ddSmrg	     | midipix* | mingw32* | mingw64* | mint* \
175054cef2ddSmrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
175154cef2ddSmrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
175254cef2ddSmrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
175354cef2ddSmrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
175454cef2ddSmrg	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
175554cef2ddSmrg	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
175654cef2ddSmrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
175754cef2ddSmrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
175854cef2ddSmrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
175954cef2ddSmrg	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
17609ab56c27Smrg	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
17619ab56c27Smrg	     | fiwix* | mlibc* )
176254cef2ddSmrg		;;
176354cef2ddSmrg	# This one is extra strict with allowed versions
176454cef2ddSmrg	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
176554cef2ddSmrg		# Don't forget version if it is 3.2v4 or newer.
176654cef2ddSmrg		;;
176754cef2ddSmrg	none)
176854cef2ddSmrg		;;
17699ab56c27Smrg	kernel* )
17709ab56c27Smrg		# Restricted further below
17719ab56c27Smrg		;;
177254cef2ddSmrg	*)
177354cef2ddSmrg		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
177454cef2ddSmrg		exit 1
177554cef2ddSmrg		;;
177654cef2ddSmrgesac
177754cef2ddSmrg
177854cef2ddSmrg# As a final step for OS-related things, validate the OS-kernel combination
177954cef2ddSmrg# (given a valid OS), if there is a kernel.
178054cef2ddSmrgcase $kernel-$os in
178154cef2ddSmrg	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
17829ab56c27Smrg		   | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
178354cef2ddSmrg		;;
178454cef2ddSmrg	uclinux-uclibc* )
178554cef2ddSmrg		;;
17869ab56c27Smrg	managarm-mlibc* | managarm-kernel* )
17879ab56c27Smrg		;;
17889ab56c27Smrg	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
178954cef2ddSmrg		# These are just libc implementations, not actual OSes, and thus
179054cef2ddSmrg		# require a kernel.
179154cef2ddSmrg		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
179254cef2ddSmrg		exit 1
179354cef2ddSmrg		;;
17949ab56c27Smrg	-kernel* )
17959ab56c27Smrg		echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
17969ab56c27Smrg		exit 1
17979ab56c27Smrg		;;
17989ab56c27Smrg	*-kernel* )
17999ab56c27Smrg		echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
18009ab56c27Smrg		exit 1
18019ab56c27Smrg		;;
180254cef2ddSmrg	kfreebsd*-gnu* | kopensolaris*-gnu*)
180354cef2ddSmrg		;;
180454cef2ddSmrg	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
180554cef2ddSmrg		;;
180654cef2ddSmrg	nto-qnx*)
180754cef2ddSmrg		;;
180854cef2ddSmrg	os2-emx)
180954cef2ddSmrg		;;
181054cef2ddSmrg	*-eabi* | *-gnueabi*)
181154cef2ddSmrg		;;
181254cef2ddSmrg	-*)
181354cef2ddSmrg		# Blank kernel with real OS is always fine.
181454cef2ddSmrg		;;
181554cef2ddSmrg	*-*)
181654cef2ddSmrg		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
181754cef2ddSmrg		exit 1
181854cef2ddSmrg		;;
181954cef2ddSmrgesac
182054cef2ddSmrg
18218c9fbc29Smrg# Here we handle the case where we know the os, and the CPU type, but not the
18228c9fbc29Smrg# manufacturer.  We pick the logical manufacturer.
182354cef2ddSmrgcase $vendor in
182454cef2ddSmrg	unknown)
182554cef2ddSmrg		case $cpu-$os in
182654cef2ddSmrg			*-riscix*)
18278c9fbc29Smrg				vendor=acorn
18288c9fbc29Smrg				;;
182954cef2ddSmrg			*-sunos*)
18308c9fbc29Smrg				vendor=sun
18318c9fbc29Smrg				;;
183254cef2ddSmrg			*-cnk* | *-aix*)
18338c9fbc29Smrg				vendor=ibm
18348c9fbc29Smrg				;;
183554cef2ddSmrg			*-beos*)
18368c9fbc29Smrg				vendor=be
18378c9fbc29Smrg				;;
183854cef2ddSmrg			*-hpux*)
18398c9fbc29Smrg				vendor=hp
18408c9fbc29Smrg				;;
184154cef2ddSmrg			*-mpeix*)
18428c9fbc29Smrg				vendor=hp
18438c9fbc29Smrg				;;
184454cef2ddSmrg			*-hiux*)
18458c9fbc29Smrg				vendor=hitachi
18468c9fbc29Smrg				;;
184754cef2ddSmrg			*-unos*)
18488c9fbc29Smrg				vendor=crds
18498c9fbc29Smrg				;;
185054cef2ddSmrg			*-dgux*)
18518c9fbc29Smrg				vendor=dg
18528c9fbc29Smrg				;;
185354cef2ddSmrg			*-luna*)
18548c9fbc29Smrg				vendor=omron
18558c9fbc29Smrg				;;
185654cef2ddSmrg			*-genix*)
18578c9fbc29Smrg				vendor=ns
18588c9fbc29Smrg				;;
185954cef2ddSmrg			*-clix*)
186054cef2ddSmrg				vendor=intergraph
186154cef2ddSmrg				;;
186254cef2ddSmrg			*-mvs* | *-opened*)
186354cef2ddSmrg				vendor=ibm
186454cef2ddSmrg				;;
186554cef2ddSmrg			*-os400*)
18668c9fbc29Smrg				vendor=ibm
18678c9fbc29Smrg				;;
186854cef2ddSmrg			s390-* | s390x-*)
18698c9fbc29Smrg				vendor=ibm
18708c9fbc29Smrg				;;
187154cef2ddSmrg			*-ptx*)
18728c9fbc29Smrg				vendor=sequent
18738c9fbc29Smrg				;;
187454cef2ddSmrg			*-tpf*)
18758c9fbc29Smrg				vendor=ibm
18768c9fbc29Smrg				;;
187754cef2ddSmrg			*-vxsim* | *-vxworks* | *-windiss*)
18788c9fbc29Smrg				vendor=wrs
18798c9fbc29Smrg				;;
188054cef2ddSmrg			*-aux*)
18818c9fbc29Smrg				vendor=apple
18828c9fbc29Smrg				;;
188354cef2ddSmrg			*-hms*)
18848c9fbc29Smrg				vendor=hitachi
18858c9fbc29Smrg				;;
188654cef2ddSmrg			*-mpw* | *-macos*)
18878c9fbc29Smrg				vendor=apple
18888c9fbc29Smrg				;;
188954cef2ddSmrg			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
18908c9fbc29Smrg				vendor=atari
18918c9fbc29Smrg				;;
189254cef2ddSmrg			*-vos*)
18938c9fbc29Smrg				vendor=stratus
18948c9fbc29Smrg				;;
18958c9fbc29Smrg		esac
18968c9fbc29Smrg		;;
18978c9fbc29Smrgesac
18988c9fbc29Smrg
189954cef2ddSmrgecho "$cpu-$vendor-${kernel:+$kernel-}$os"
19008c9fbc29Smrgexit
19018c9fbc29Smrg
19028c9fbc29Smrg# Local variables:
190354cef2ddSmrg# eval: (add-hook 'before-save-hook 'time-stamp)
19048c9fbc29Smrg# time-stamp-start: "timestamp='"
19058c9fbc29Smrg# time-stamp-format: "%:y-%02m-%02d"
19068c9fbc29Smrg# time-stamp-end: "'"
19078c9fbc29Smrg# End:
1908