1#! /bin/sh
2# Configuration validation subroutine script.
3#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
5#   2011, 2012 Free Software Foundation, Inc.
6
7timestamp='2012-07-31'
8
9# This file is (in principle) common to ALL GNU software.
10# The presence of a machine in this file suggests that SOME GNU software
11# can handle that machine.  It does not imply ALL GNU software can.
12#
13# This file is free software; you can redistribute it and/or modify
14# it under the terms of the GNU General Public License as published by
15# the Free Software Foundation; either version 2 of the License, or
16# (at your option) any later version.
17#
18# This program is distributed in the hope that it will be useful,
19# but WITHOUT ANY WARRANTY; without even the implied warranty of
20# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21# GNU General Public License for more details.
22#
23# You should have received a copy of the GNU General Public License
24# along with this program; if not, see <http://www.gnu.org/licenses/>.
25#
26# As a special exception to the GNU General Public License, if you
27# distribute this file as part of a program that contains a
28# configuration script generated by Autoconf, you may include it under
29# the same distribution terms that you use for the rest of that program.
30
31
32# Please send patches to <config-patches@gnu.org>.  Submit a context
33# diff and a properly formatted GNU ChangeLog entry.
34#
35# Configuration subroutine to validate and canonicalize a configuration type.
36# Supply the specified configuration type as an argument.
37# If it is invalid, we print an error message on stderr and exit with code 1.
38# Otherwise, we print the canonical config type on stdout and succeed.
39
40# You can get the latest version of this script from:
41# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
42
43# This file is supposed to be the same for all GNU packages
44# and recognize all the CPU types, system types and aliases
45# that are meaningful with *any* GNU software.
46# Each package is responsible for reporting which valid configurations
47# it does not support.  The user should be able to distinguish
48# a failure to support a valid configuration from a meaningless
49# configuration.
50
51# The goal of this file is to map all the various variations of a given
52# machine specification into a single specification in the form:
53#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
54# or in some cases, the newer four-part form:
55#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
56# It is wrong to echo any other type of specification.
57
58me=`echo "$0" | sed -e 's,.*/,,'`
59
60usage="\
61Usage: $0 [OPTION] CPU-MFR-OPSYS
62       $0 [OPTION] ALIAS
63
64Canonicalize a configuration name.
65
66Operation modes:
67  -h, --help         print this help, then exit
68  -t, --time-stamp   print date of last modification, then exit
69  -v, --version      print version number, then exit
70
71Report bugs and patches to <config-patches@gnu.org>."
72
73version="\
74GNU config.sub ($timestamp)
75
76Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
772001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
78Free Software Foundation, Inc.
79
80This is free software; see the source for copying conditions.  There is NO
81warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
82
83help="
84Try \`$me --help' for more information."
85
86# Parse command line
87while test $# -gt 0 ; do
88  case $1 in
89    --time-stamp | --time* | -t )
90       echo "$timestamp" ; exit ;;
91    --version | -v )
92       echo "$version" ; exit ;;
93    --help | --h* | -h )
94       echo "$usage"; exit ;;
95    -- )     # Stop option processing
96       shift; break ;;
97    - )	# Use stdin as input.
98       break ;;
99    -* )
100       echo "$me: invalid option $1$help"
101       exit 1 ;;
102
103    *local*)
104       # First pass through any local machine types.
105       echo $1
106       exit ;;
107
108    * )
109       break ;;
110  esac
111done
112
113case $# in
114 0) echo "$me: missing argument$help" >&2
115    exit 1;;
116 1) ;;
117 *) echo "$me: too many arguments$help" >&2
118    exit 1;;
119esac
120
121# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
122# Here we must recognize all the valid KERNEL-OS combinations.
123maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
124case $maybe_os in
125  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
126  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
127  knetbsd*-gnu* | netbsd*-gnu* | \
128  kopensolaris*-gnu* | \
129  storm-chaos* | os2-emx* | rtmk-nova*)
130    os=-$maybe_os
131    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
132    ;;
133  android-linux)
134    os=-linux-android
135    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
136    ;;
137  *)
138    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
139    if [ $basic_machine != $1 ]
140    then os=`echo $1 | sed 's/.*-/-/'`
141    else os=; fi
142    ;;
143esac
144
145### Let's recognize common machines as not being operating systems so
146### that things like config.sub decstation-3100 work.  We also
147### recognize some manufacturers as not being operating systems, so we
148### can provide default operating systems below.
149case $os in
150	-sun*os*)
151		# Prevent following clause from handling this invalid input.
152		;;
153	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
154	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
155	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
156	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
157	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
158	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
159	-apple | -axis | -knuth | -cray | -microblaze)
160		os=
161		basic_machine=$1
162		;;
163	-bluegene*)
164		os=-cnk
165		;;
166	-sim | -cisco | -oki | -wec | -winbond)
167		os=
168		basic_machine=$1
169		;;
170	-scout)
171		;;
172	-wrs)
173		os=-vxworks
174		basic_machine=$1
175		;;
176	-chorusos*)
177		os=-chorusos
178		basic_machine=$1
179		;;
180	-chorusrdb)
181		os=-chorusrdb
182		basic_machine=$1
183		;;
184	-hiux*)
185		os=-hiuxwe2
186		;;
187	-sco6)
188		os=-sco5v6
189		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
190		;;
191	-sco5)
192		os=-sco3.2v5
193		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
194		;;
195	-sco4)
196		os=-sco3.2v4
197		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
198		;;
199	-sco3.2.[4-9]*)
200		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
201		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
202		;;
203	-sco3.2v[4-9]*)
204		# Don't forget version if it is 3.2v4 or newer.
205		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
206		;;
207	-sco5v6*)
208		# Don't forget version if it is 3.2v4 or newer.
209		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
210		;;
211	-sco*)
212		os=-sco3.2v2
213		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
214		;;
215	-udk*)
216		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
217		;;
218	-isc)
219		os=-isc2.2
220		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
221		;;
222	-clix*)
223		basic_machine=clipper-intergraph
224		;;
225	-isc*)
226		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
227		;;
228	-lynx*178)
229		os=-lynxos178
230		;;
231	-lynx*5)
232		os=-lynxos5
233		;;
234	-lynx*)
235		os=-lynxos
236		;;
237	-ptx*)
238		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
239		;;
240	-windowsnt*)
241		os=`echo $os | sed -e 's/windowsnt/winnt/'`
242		;;
243	-psos*)
244		os=-psos
245		;;
246	-mint | -mint[0-9]*)
247		basic_machine=m68k-atari
248		os=-mint
249		;;
250esac
251
252# Decode aliases for certain CPU-COMPANY combinations.
253case $basic_machine in
254	# Recognize the basic CPU types without company name.
255	# Some are omitted here because they have special meanings below.
256	1750a | 580 \
257	| a29k \
258	| aarch64 | aarch64_be \
259	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
260	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
261	| am33_2.0 \
262	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
263        | be32 | be64 \
264	| bfin \
265	| c4x | clipper \
266	| d10v | d30v | dlx | dsp16xx \
267	| epiphany \
268	| fido | fr30 | frv \
269	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
270	| hexagon \
271	| i370 | i860 | i960 | ia64 \
272	| ip2k | iq2000 \
273	| le32 | le64 \
274	| lm32 \
275	| m32c | m32r | m32rle | m68000 | m68k | m88k \
276	| maxq | mb | microblaze | mcore | mep | metag \
277	| mips | mipsbe | mipseb | mipsel | mipsle \
278	| mips16 \
279	| mips64 | mips64el \
280	| mips64octeon | mips64octeonel \
281	| mips64orion | mips64orionel \
282	| mips64r5900 | mips64r5900el \
283	| mips64vr | mips64vrel \
284	| mips64vr4100 | mips64vr4100el \
285	| mips64vr4300 | mips64vr4300el \
286	| mips64vr5000 | mips64vr5000el \
287	| mips64vr5900 | mips64vr5900el \
288	| mipsisa32 | mipsisa32el \
289	| mipsisa32r2 | mipsisa32r2el \
290	| mipsisa64 | mipsisa64el \
291	| mipsisa64r2 | mipsisa64r2el \
292	| mipsisa64sb1 | mipsisa64sb1el \
293	| mipsisa64sr71k | mipsisa64sr71kel \
294	| mipstx39 | mipstx39el \
295	| mn10200 | mn10300 \
296	| moxie \
297	| mt \
298	| msp430 \
299	| nds32 | nds32le | nds32be \
300	| nios | nios2 \
301	| ns16k | ns32k \
302	| open8 \
303	| or32 \
304	| pdp10 | pdp11 | pj | pjl \
305	| powerpc | powerpc64 | powerpc64le | powerpcle \
306	| pyramid \
307	| rl78 | rx \
308	| score \
309	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
310	| sh64 | sh64le \
311	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
312	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
313	| spu \
314	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
315	| ubicom32 \
316	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
317	| we32k \
318	| x86 | xc16x | xstormy16 | xtensa \
319	| z8k | z80)
320		basic_machine=$basic_machine-unknown
321		;;
322	c54x)
323		basic_machine=tic54x-unknown
324		;;
325	c55x)
326		basic_machine=tic55x-unknown
327		;;
328	c6x)
329		basic_machine=tic6x-unknown
330		;;
331	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
332		basic_machine=$basic_machine-unknown
333		os=-none
334		;;
335	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
336		;;
337	ms1)
338		basic_machine=mt-unknown
339		;;
340
341	strongarm | thumb | xscale)
342		basic_machine=arm-unknown
343		;;
344	xgate)
345		basic_machine=$basic_machine-unknown
346		os=-none
347		;;
348	xscaleeb)
349		basic_machine=armeb-unknown
350		;;
351
352	xscaleel)
353		basic_machine=armel-unknown
354		;;
355
356	# We use `pc' rather than `unknown'
357	# because (1) that's what they normally are, and
358	# (2) the word "unknown" tends to confuse beginning users.
359	i*86 | x86_64)
360	  basic_machine=$basic_machine-pc
361	  ;;
362	# Object if more than one company name word.
363	*-*-*)
364		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
365		exit 1
366		;;
367	# Recognize the basic CPU types with company name.
368	580-* \
369	| a29k-* \
370	| aarch64-* | aarch64_be-* \
371	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
372	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
373	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
374	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
375	| avr-* | avr32-* \
376	| be32-* | be64-* \
377	| bfin-* | bs2000-* \
378	| c[123]* | c30-* | [cjt]90-* | c4x-* \
379	| clipper-* | craynv-* | cydra-* \
380	| d10v-* | d30v-* | dlx-* \
381	| elxsi-* \
382	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
383	| h8300-* | h8500-* \
384	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
385	| hexagon-* \
386	| i*86-* | i860-* | i960-* | ia64-* \
387	| ip2k-* | iq2000-* \
388	| le32-* | le64-* \
389	| lm32-* \
390	| m32c-* | m32r-* | m32rle-* \
391	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
392	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
393	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
394	| mips16-* \
395	| mips64-* | mips64el-* \
396	| mips64octeon-* | mips64octeonel-* \
397	| mips64orion-* | mips64orionel-* \
398	| mips64r5900-* | mips64r5900el-* \
399	| mips64vr-* | mips64vrel-* \
400	| mips64vr4100-* | mips64vr4100el-* \
401	| mips64vr4300-* | mips64vr4300el-* \
402	| mips64vr5000-* | mips64vr5000el-* \
403	| mips64vr5900-* | mips64vr5900el-* \
404	| mipsisa32-* | mipsisa32el-* \
405	| mipsisa32r2-* | mipsisa32r2el-* \
406	| mipsisa64-* | mipsisa64el-* \
407	| mipsisa64r2-* | mipsisa64r2el-* \
408	| mipsisa64sb1-* | mipsisa64sb1el-* \
409	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
410	| mipstx39-* | mipstx39el-* \
411	| mmix-* \
412	| mt-* \
413	| msp430-* \
414	| nds32-* | nds32le-* | nds32be-* \
415	| nios-* | nios2-* \
416	| none-* | np1-* | ns16k-* | ns32k-* \
417	| open8-* \
418	| orion-* \
419	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
420	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
421	| pyramid-* \
422	| rl78-* | romp-* | rs6000-* | rx-* \
423	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
424	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
425	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
426	| sparclite-* \
427	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
428	| tahoe-* \
429	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
430	| tile*-* \
431	| tron-* \
432	| ubicom32-* \
433	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
434	| vax-* \
435	| we32k-* \
436	| x86-* | x86_64-* | xc16x-* | xps100-* \
437	| xstormy16-* | xtensa*-* \
438	| ymp-* \
439	| z8k-* | z80-*)
440		;;
441	# Recognize the basic CPU types without company name, with glob match.
442	xtensa*)
443		basic_machine=$basic_machine-unknown
444		;;
445	# Recognize the various machine names and aliases which stand
446	# for a CPU type and a company and sometimes even an OS.
447	386bsd)
448		basic_machine=i386-unknown
449		os=-bsd
450		;;
451	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
452		basic_machine=m68000-att
453		;;
454	3b*)
455		basic_machine=we32k-att
456		;;
457	a29khif)
458		basic_machine=a29k-amd
459		os=-udi
460		;;
461	abacus)
462		basic_machine=abacus-unknown
463		;;
464	adobe68k)
465		basic_machine=m68010-adobe
466		os=-scout
467		;;
468	alliant | fx80)
469		basic_machine=fx80-alliant
470		;;
471	altos | altos3068)
472		basic_machine=m68k-altos
473		;;
474	am29k)
475		basic_machine=a29k-none
476		os=-bsd
477		;;
478	amd64)
479		basic_machine=x86_64-pc
480		;;
481	amd64-*)
482		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
483		;;
484	amdahl)
485		basic_machine=580-amdahl
486		os=-sysv
487		;;
488	amiga | amiga-*)
489		basic_machine=m68k-unknown
490		;;
491	amigaos | amigados)
492		basic_machine=m68k-unknown
493		os=-amigaos
494		;;
495	amigaunix | amix)
496		basic_machine=m68k-unknown
497		os=-sysv4
498		;;
499	apollo68)
500		basic_machine=m68k-apollo
501		os=-sysv
502		;;
503	apollo68bsd)
504		basic_machine=m68k-apollo
505		os=-bsd
506		;;
507	aros)
508		basic_machine=i386-pc
509		os=-aros
510		;;
511	aux)
512		basic_machine=m68k-apple
513		os=-aux
514		;;
515	balance)
516		basic_machine=ns32k-sequent
517		os=-dynix
518		;;
519	blackfin)
520		basic_machine=bfin-unknown
521		os=-linux
522		;;
523	blackfin-*)
524		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
525		os=-linux
526		;;
527	bluegene*)
528		basic_machine=powerpc-ibm
529		os=-cnk
530		;;
531	c54x-*)
532		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
533		;;
534	c55x-*)
535		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
536		;;
537	c6x-*)
538		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
539		;;
540	c90)
541		basic_machine=c90-cray
542		os=-unicos
543		;;
544	cegcc)
545		basic_machine=arm-unknown
546		os=-cegcc
547		;;
548	convex-c1)
549		basic_machine=c1-convex
550		os=-bsd
551		;;
552	convex-c2)
553		basic_machine=c2-convex
554		os=-bsd
555		;;
556	convex-c32)
557		basic_machine=c32-convex
558		os=-bsd
559		;;
560	convex-c34)
561		basic_machine=c34-convex
562		os=-bsd
563		;;
564	convex-c38)
565		basic_machine=c38-convex
566		os=-bsd
567		;;
568	cray | j90)
569		basic_machine=j90-cray
570		os=-unicos
571		;;
572	craynv)
573		basic_machine=craynv-cray
574		os=-unicosmp
575		;;
576	cr16 | cr16-*)
577		basic_machine=cr16-unknown
578		os=-elf
579		;;
580	crds | unos)
581		basic_machine=m68k-crds
582		;;
583	crisv32 | crisv32-* | etraxfs*)
584		basic_machine=crisv32-axis
585		;;
586	cris | cris-* | etrax*)
587		basic_machine=cris-axis
588		;;
589	crx)
590		basic_machine=crx-unknown
591		os=-elf
592		;;
593	da30 | da30-*)
594		basic_machine=m68k-da30
595		;;
596	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
597		basic_machine=mips-dec
598		;;
599	decsystem10* | dec10*)
600		basic_machine=pdp10-dec
601		os=-tops10
602		;;
603	decsystem20* | dec20*)
604		basic_machine=pdp10-dec
605		os=-tops20
606		;;
607	delta | 3300 | motorola-3300 | motorola-delta \
608	      | 3300-motorola | delta-motorola)
609		basic_machine=m68k-motorola
610		;;
611	delta88)
612		basic_machine=m88k-motorola
613		os=-sysv3
614		;;
615	dicos)
616		basic_machine=i686-pc
617		os=-dicos
618		;;
619	djgpp)
620		basic_machine=i586-pc
621		os=-msdosdjgpp
622		;;
623	dpx20 | dpx20-*)
624		basic_machine=rs6000-bull
625		os=-bosx
626		;;
627	dpx2* | dpx2*-bull)
628		basic_machine=m68k-bull
629		os=-sysv3
630		;;
631	ebmon29k)
632		basic_machine=a29k-amd
633		os=-ebmon
634		;;
635	elxsi)
636		basic_machine=elxsi-elxsi
637		os=-bsd
638		;;
639	encore | umax | mmax)
640		basic_machine=ns32k-encore
641		;;
642	es1800 | OSE68k | ose68k | ose | OSE)
643		basic_machine=m68k-ericsson
644		os=-ose
645		;;
646	fx2800)
647		basic_machine=i860-alliant
648		;;
649	genix)
650		basic_machine=ns32k-ns
651		;;
652	gmicro)
653		basic_machine=tron-gmicro
654		os=-sysv
655		;;
656	go32)
657		basic_machine=i386-pc
658		os=-go32
659		;;
660	h3050r* | hiux*)
661		basic_machine=hppa1.1-hitachi
662		os=-hiuxwe2
663		;;
664	h8300hms)
665		basic_machine=h8300-hitachi
666		os=-hms
667		;;
668	h8300xray)
669		basic_machine=h8300-hitachi
670		os=-xray
671		;;
672	h8500hms)
673		basic_machine=h8500-hitachi
674		os=-hms
675		;;
676	harris)
677		basic_machine=m88k-harris
678		os=-sysv3
679		;;
680	hp300-*)
681		basic_machine=m68k-hp
682		;;
683	hp300bsd)
684		basic_machine=m68k-hp
685		os=-bsd
686		;;
687	hp300hpux)
688		basic_machine=m68k-hp
689		os=-hpux
690		;;
691	hp3k9[0-9][0-9] | hp9[0-9][0-9])
692		basic_machine=hppa1.0-hp
693		;;
694	hp9k2[0-9][0-9] | hp9k31[0-9])
695		basic_machine=m68000-hp
696		;;
697	hp9k3[2-9][0-9])
698		basic_machine=m68k-hp
699		;;
700	hp9k6[0-9][0-9] | hp6[0-9][0-9])
701		basic_machine=hppa1.0-hp
702		;;
703	hp9k7[0-79][0-9] | hp7[0-79][0-9])
704		basic_machine=hppa1.1-hp
705		;;
706	hp9k78[0-9] | hp78[0-9])
707		# FIXME: really hppa2.0-hp
708		basic_machine=hppa1.1-hp
709		;;
710	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
711		# FIXME: really hppa2.0-hp
712		basic_machine=hppa1.1-hp
713		;;
714	hp9k8[0-9][13679] | hp8[0-9][13679])
715		basic_machine=hppa1.1-hp
716		;;
717	hp9k8[0-9][0-9] | hp8[0-9][0-9])
718		basic_machine=hppa1.0-hp
719		;;
720	hppa-next)
721		os=-nextstep3
722		;;
723	hppaosf)
724		basic_machine=hppa1.1-hp
725		os=-osf
726		;;
727	hppro)
728		basic_machine=hppa1.1-hp
729		os=-proelf
730		;;
731	i370-ibm* | ibm*)
732		basic_machine=i370-ibm
733		;;
734	i*86v32)
735		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
736		os=-sysv32
737		;;
738	i*86v4*)
739		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
740		os=-sysv4
741		;;
742	i*86v)
743		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
744		os=-sysv
745		;;
746	i*86sol2)
747		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
748		os=-solaris2
749		;;
750	i386mach)
751		basic_machine=i386-mach
752		os=-mach
753		;;
754	i386-vsta | vsta)
755		basic_machine=i386-unknown
756		os=-vsta
757		;;
758	iris | iris4d)
759		basic_machine=mips-sgi
760		case $os in
761		    -irix*)
762			;;
763		    *)
764			os=-irix4
765			;;
766		esac
767		;;
768	isi68 | isi)
769		basic_machine=m68k-isi
770		os=-sysv
771		;;
772	m68knommu)
773		basic_machine=m68k-unknown
774		os=-linux
775		;;
776	m68knommu-*)
777		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
778		os=-linux
779		;;
780	m88k-omron*)
781		basic_machine=m88k-omron
782		;;
783	magnum | m3230)
784		basic_machine=mips-mips
785		os=-sysv
786		;;
787	merlin)
788		basic_machine=ns32k-utek
789		os=-sysv
790		;;
791	microblaze)
792		basic_machine=microblaze-xilinx
793		;;
794	mingw64)
795		basic_machine=x86_64-pc
796		os=-mingw64
797		;;
798	mingw32)
799		basic_machine=i386-pc
800		os=-mingw32
801		;;
802	mingw32ce)
803		basic_machine=arm-unknown
804		os=-mingw32ce
805		;;
806	miniframe)
807		basic_machine=m68000-convergent
808		;;
809	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
810		basic_machine=m68k-atari
811		os=-mint
812		;;
813	mips3*-*)
814		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
815		;;
816	mips3*)
817		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
818		;;
819	monitor)
820		basic_machine=m68k-rom68k
821		os=-coff
822		;;
823	morphos)
824		basic_machine=powerpc-unknown
825		os=-morphos
826		;;
827	msdos)
828		basic_machine=i386-pc
829		os=-msdos
830		;;
831	ms1-*)
832		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
833		;;
834	msys)
835		basic_machine=i386-pc
836		os=-msys
837		;;
838	mvs)
839		basic_machine=i370-ibm
840		os=-mvs
841		;;
842	nacl)
843		basic_machine=le32-unknown
844		os=-nacl
845		;;
846	ncr3000)
847		basic_machine=i486-ncr
848		os=-sysv4
849		;;
850	netbsd386)
851		basic_machine=i386-unknown
852		os=-netbsd
853		;;
854	netwinder)
855		basic_machine=armv4l-rebel
856		os=-linux
857		;;
858	news | news700 | news800 | news900)
859		basic_machine=m68k-sony
860		os=-newsos
861		;;
862	news1000)
863		basic_machine=m68030-sony
864		os=-newsos
865		;;
866	news-3600 | risc-news)
867		basic_machine=mips-sony
868		os=-newsos
869		;;
870	necv70)
871		basic_machine=v70-nec
872		os=-sysv
873		;;
874	next | m*-next )
875		basic_machine=m68k-next
876		case $os in
877		    -nextstep* )
878			;;
879		    -ns2*)
880		      os=-nextstep2
881			;;
882		    *)
883		      os=-nextstep3
884			;;
885		esac
886		;;
887	nh3000)
888		basic_machine=m68k-harris
889		os=-cxux
890		;;
891	nh[45]000)
892		basic_machine=m88k-harris
893		os=-cxux
894		;;
895	nindy960)
896		basic_machine=i960-intel
897		os=-nindy
898		;;
899	mon960)
900		basic_machine=i960-intel
901		os=-mon960
902		;;
903	nonstopux)
904		basic_machine=mips-compaq
905		os=-nonstopux
906		;;
907	np1)
908		basic_machine=np1-gould
909		;;
910	neo-tandem)
911		basic_machine=neo-tandem
912		;;
913	nse-tandem)
914		basic_machine=nse-tandem
915		;;
916	nsr-tandem)
917		basic_machine=nsr-tandem
918		;;
919	op50n-* | op60c-*)
920		basic_machine=hppa1.1-oki
921		os=-proelf
922		;;
923	openrisc | openrisc-*)
924		basic_machine=or32-unknown
925		;;
926	os400)
927		basic_machine=powerpc-ibm
928		os=-os400
929		;;
930	OSE68000 | ose68000)
931		basic_machine=m68000-ericsson
932		os=-ose
933		;;
934	os68k)
935		basic_machine=m68k-none
936		os=-os68k
937		;;
938	pa-hitachi)
939		basic_machine=hppa1.1-hitachi
940		os=-hiuxwe2
941		;;
942	paragon)
943		basic_machine=i860-intel
944		os=-osf
945		;;
946	parisc)
947		basic_machine=hppa-unknown
948		os=-linux
949		;;
950	parisc-*)
951		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
952		os=-linux
953		;;
954	pbd)
955		basic_machine=sparc-tti
956		;;
957	pbb)
958		basic_machine=m68k-tti
959		;;
960	pc532 | pc532-*)
961		basic_machine=ns32k-pc532
962		;;
963	pc98)
964		basic_machine=i386-pc
965		;;
966	pc98-*)
967		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
968		;;
969	pentium | p5 | k5 | k6 | nexgen | viac3)
970		basic_machine=i586-pc
971		;;
972	pentiumpro | p6 | 6x86 | athlon | athlon_*)
973		basic_machine=i686-pc
974		;;
975	pentiumii | pentium2 | pentiumiii | pentium3)
976		basic_machine=i686-pc
977		;;
978	pentium4)
979		basic_machine=i786-pc
980		;;
981	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
982		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
983		;;
984	pentiumpro-* | p6-* | 6x86-* | athlon-*)
985		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
986		;;
987	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
988		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
989		;;
990	pentium4-*)
991		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
992		;;
993	pn)
994		basic_machine=pn-gould
995		;;
996	power)	basic_machine=power-ibm
997		;;
998	ppc | ppcbe)	basic_machine=powerpc-unknown
999		;;
1000	ppc-* | ppcbe-*)
1001		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1002		;;
1003	ppcle | powerpclittle | ppc-le | powerpc-little)
1004		basic_machine=powerpcle-unknown
1005		;;
1006	ppcle-* | powerpclittle-*)
1007		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
1008		;;
1009	ppc64)	basic_machine=powerpc64-unknown
1010		;;
1011	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1012		;;
1013	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
1014		basic_machine=powerpc64le-unknown
1015		;;
1016	ppc64le-* | powerpc64little-*)
1017		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1018		;;
1019	ps2)
1020		basic_machine=i386-ibm
1021		;;
1022	pw32)
1023		basic_machine=i586-unknown
1024		os=-pw32
1025		;;
1026	rdos)
1027		basic_machine=i386-pc
1028		os=-rdos
1029		;;
1030	rom68k)
1031		basic_machine=m68k-rom68k
1032		os=-coff
1033		;;
1034	rm[46]00)
1035		basic_machine=mips-siemens
1036		;;
1037	rtpc | rtpc-*)
1038		basic_machine=romp-ibm
1039		;;
1040	s390 | s390-*)
1041		basic_machine=s390-ibm
1042		;;
1043	s390x | s390x-*)
1044		basic_machine=s390x-ibm
1045		;;
1046	sa29200)
1047		basic_machine=a29k-amd
1048		os=-udi
1049		;;
1050	sb1)
1051		basic_machine=mipsisa64sb1-unknown
1052		;;
1053	sb1el)
1054		basic_machine=mipsisa64sb1el-unknown
1055		;;
1056	sde)
1057		basic_machine=mipsisa32-sde
1058		os=-elf
1059		;;
1060	sei)
1061		basic_machine=mips-sei
1062		os=-seiux
1063		;;
1064	sequent)
1065		basic_machine=i386-sequent
1066		;;
1067	sh)
1068		basic_machine=sh-hitachi
1069		os=-hms
1070		;;
1071	sh5el)
1072		basic_machine=sh5le-unknown
1073		;;
1074	sh64)
1075		basic_machine=sh64-unknown
1076		;;
1077	sparclite-wrs | simso-wrs)
1078		basic_machine=sparclite-wrs
1079		os=-vxworks
1080		;;
1081	sps7)
1082		basic_machine=m68k-bull
1083		os=-sysv2
1084		;;
1085	spur)
1086		basic_machine=spur-unknown
1087		;;
1088	st2000)
1089		basic_machine=m68k-tandem
1090		;;
1091	stratus)
1092		basic_machine=i860-stratus
1093		os=-sysv4
1094		;;
1095	strongarm-* | thumb-*)
1096		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1097		;;
1098	sun2)
1099		basic_machine=m68000-sun
1100		;;
1101	sun2os3)
1102		basic_machine=m68000-sun
1103		os=-sunos3
1104		;;
1105	sun2os4)
1106		basic_machine=m68000-sun
1107		os=-sunos4
1108		;;
1109	sun3os3)
1110		basic_machine=m68k-sun
1111		os=-sunos3
1112		;;
1113	sun3os4)
1114		basic_machine=m68k-sun
1115		os=-sunos4
1116		;;
1117	sun4os3)
1118		basic_machine=sparc-sun
1119		os=-sunos3
1120		;;
1121	sun4os4)
1122		basic_machine=sparc-sun
1123		os=-sunos4
1124		;;
1125	sun4sol2)
1126		basic_machine=sparc-sun
1127		os=-solaris2
1128		;;
1129	sun3 | sun3-*)
1130		basic_machine=m68k-sun
1131		;;
1132	sun4)
1133		basic_machine=sparc-sun
1134		;;
1135	sun386 | sun386i | roadrunner)
1136		basic_machine=i386-sun
1137		;;
1138	sv1)
1139		basic_machine=sv1-cray
1140		os=-unicos
1141		;;
1142	symmetry)
1143		basic_machine=i386-sequent
1144		os=-dynix
1145		;;
1146	t3e)
1147		basic_machine=alphaev5-cray
1148		os=-unicos
1149		;;
1150	t90)
1151		basic_machine=t90-cray
1152		os=-unicos
1153		;;
1154	tile*)
1155		basic_machine=$basic_machine-unknown
1156		os=-linux-gnu
1157		;;
1158	tx39)
1159		basic_machine=mipstx39-unknown
1160		;;
1161	tx39el)
1162		basic_machine=mipstx39el-unknown
1163		;;
1164	toad1)
1165		basic_machine=pdp10-xkl
1166		os=-tops20
1167		;;
1168	tower | tower-32)
1169		basic_machine=m68k-ncr
1170		;;
1171	tpf)
1172		basic_machine=s390x-ibm
1173		os=-tpf
1174		;;
1175	udi29k)
1176		basic_machine=a29k-amd
1177		os=-udi
1178		;;
1179	ultra3)
1180		basic_machine=a29k-nyu
1181		os=-sym1
1182		;;
1183	v810 | necv810)
1184		basic_machine=v810-nec
1185		os=-none
1186		;;
1187	vaxv)
1188		basic_machine=vax-dec
1189		os=-sysv
1190		;;
1191	vms)
1192		basic_machine=vax-dec
1193		os=-vms
1194		;;
1195	vpp*|vx|vx-*)
1196		basic_machine=f301-fujitsu
1197		;;
1198	vxworks960)
1199		basic_machine=i960-wrs
1200		os=-vxworks
1201		;;
1202	vxworks68)
1203		basic_machine=m68k-wrs
1204		os=-vxworks
1205		;;
1206	vxworks29k)
1207		basic_machine=a29k-wrs
1208		os=-vxworks
1209		;;
1210	w65*)
1211		basic_machine=w65-wdc
1212		os=-none
1213		;;
1214	w89k-*)
1215		basic_machine=hppa1.1-winbond
1216		os=-proelf
1217		;;
1218	xbox)
1219		basic_machine=i686-pc
1220		os=-mingw32
1221		;;
1222	xps | xps100)
1223		basic_machine=xps100-honeywell
1224		;;
1225	xscale-* | xscalee[bl]-*)
1226		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1227		;;
1228	ymp)
1229		basic_machine=ymp-cray
1230		os=-unicos
1231		;;
1232	z8k-*-coff)
1233		basic_machine=z8k-unknown
1234		os=-sim
1235		;;
1236	z80-*-coff)
1237		basic_machine=z80-unknown
1238		os=-sim
1239		;;
1240	none)
1241		basic_machine=none-none
1242		os=-none
1243		;;
1244
1245# Here we handle the default manufacturer of certain CPU types.  It is in
1246# some cases the only manufacturer, in others, it is the most popular.
1247	w89k)
1248		basic_machine=hppa1.1-winbond
1249		;;
1250	op50n)
1251		basic_machine=hppa1.1-oki
1252		;;
1253	op60c)
1254		basic_machine=hppa1.1-oki
1255		;;
1256	romp)
1257		basic_machine=romp-ibm
1258		;;
1259	mmix)
1260		basic_machine=mmix-knuth
1261		;;
1262	rs6000)
1263		basic_machine=rs6000-ibm
1264		;;
1265	vax)
1266		basic_machine=vax-dec
1267		;;
1268	pdp10)
1269		# there are many clones, so DEC is not a safe bet
1270		basic_machine=pdp10-unknown
1271		;;
1272	pdp11)
1273		basic_machine=pdp11-dec
1274		;;
1275	we32k)
1276		basic_machine=we32k-att
1277		;;
1278	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1279		basic_machine=sh-unknown
1280		;;
1281	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1282		basic_machine=sparc-sun
1283		;;
1284	cydra)
1285		basic_machine=cydra-cydrome
1286		;;
1287	orion)
1288		basic_machine=orion-highlevel
1289		;;
1290	orion105)
1291		basic_machine=clipper-highlevel
1292		;;
1293	mac | mpw | mac-mpw)
1294		basic_machine=m68k-apple
1295		;;
1296	pmac | pmac-mpw)
1297		basic_machine=powerpc-apple
1298		;;
1299	*-unknown)
1300		# Make sure to match an already-canonicalized machine name.
1301		;;
1302	*)
1303		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1304		exit 1
1305		;;
1306esac
1307
1308# Here we canonicalize certain aliases for manufacturers.
1309case $basic_machine in
1310	*-digital*)
1311		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1312		;;
1313	*-commodore*)
1314		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1315		;;
1316	*)
1317		;;
1318esac
1319
1320# Decode manufacturer-specific aliases for certain operating systems.
1321
1322if [ x"$os" != x"" ]
1323then
1324case $os in
1325	# First match some system type aliases
1326	# that might get confused with valid system types.
1327	# -solaris* is a basic system type, with this one exception.
1328	-auroraux)
1329		os=-auroraux
1330		;;
1331	-solaris1 | -solaris1.*)
1332		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1333		;;
1334	-solaris)
1335		os=-solaris2
1336		;;
1337	-svr4*)
1338		os=-sysv4
1339		;;
1340	-unixware*)
1341		os=-sysv4.2uw
1342		;;
1343	-gnu/linux*)
1344		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1345		;;
1346	# First accept the basic system types.
1347	# The portable systems comes first.
1348	# Each alternative MUST END IN A *, to match a version number.
1349	# -sysv* is not here because it comes later, after sysvr4.
1350	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1351	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1352	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1353	      | -sym* | -kopensolaris* \
1354	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1355	      | -aos* | -aros* \
1356	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1357	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1358	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1359	      | -bitrig* | -openbsd* | -solidbsd* \
1360	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1361	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1362	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1363	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1364	      | -chorusos* | -chorusrdb* | -cegcc* \
1365	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1366	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1367	      | -linux-newlib* | -linux-uclibc* \
1368	      | -uxpv* | -beos* | -mpeix* | -udk* \
1369	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1370	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1371	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1372	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1373	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1374	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1375	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1376	# Remember, each alternative MUST END IN *, to match a version number.
1377		;;
1378	-qnx*)
1379		case $basic_machine in
1380		    x86-* | i*86-*)
1381			;;
1382		    *)
1383			os=-nto$os
1384			;;
1385		esac
1386		;;
1387	-nto-qnx*)
1388		;;
1389	-nto*)
1390		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1391		;;
1392	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1393	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1394	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1395		;;
1396	-mac*)
1397		os=`echo $os | sed -e 's|mac|macos|'`
1398		;;
1399	-linux-dietlibc)
1400		os=-linux-dietlibc
1401		;;
1402	-linux*)
1403		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1404		;;
1405	-sunos5*)
1406		os=`echo $os | sed -e 's|sunos5|solaris2|'`
1407		;;
1408	-sunos6*)
1409		os=`echo $os | sed -e 's|sunos6|solaris3|'`
1410		;;
1411	-opened*)
1412		os=-openedition
1413		;;
1414	-os400*)
1415		os=-os400
1416		;;
1417	-wince*)
1418		os=-wince
1419		;;
1420	-osfrose*)
1421		os=-osfrose
1422		;;
1423	-osf*)
1424		os=-osf
1425		;;
1426	-utek*)
1427		os=-bsd
1428		;;
1429	-dynix*)
1430		os=-bsd
1431		;;
1432	-acis*)
1433		os=-aos
1434		;;
1435	-atheos*)
1436		os=-atheos
1437		;;
1438	-syllable*)
1439		os=-syllable
1440		;;
1441	-386bsd)
1442		os=-bsd
1443		;;
1444	-ctix* | -uts*)
1445		os=-sysv
1446		;;
1447	-nova*)
1448		os=-rtmk-nova
1449		;;
1450	-ns2 )
1451		os=-nextstep2
1452		;;
1453	-nsk*)
1454		os=-nsk
1455		;;
1456	# Preserve the version number of sinix5.
1457	-sinix5.*)
1458		os=`echo $os | sed -e 's|sinix|sysv|'`
1459		;;
1460	-sinix*)
1461		os=-sysv4
1462		;;
1463	-tpf*)
1464		os=-tpf
1465		;;
1466	-triton*)
1467		os=-sysv3
1468		;;
1469	-oss*)
1470		os=-sysv3
1471		;;
1472	-svr4)
1473		os=-sysv4
1474		;;
1475	-svr3)
1476		os=-sysv3
1477		;;
1478	-sysvr4)
1479		os=-sysv4
1480		;;
1481	# This must come after -sysvr4.
1482	-sysv*)
1483		;;
1484	-ose*)
1485		os=-ose
1486		;;
1487	-es1800*)
1488		os=-ose
1489		;;
1490	-xenix)
1491		os=-xenix
1492		;;
1493	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1494		os=-mint
1495		;;
1496	-aros*)
1497		os=-aros
1498		;;
1499	-kaos*)
1500		os=-kaos
1501		;;
1502	-zvmoe)
1503		os=-zvmoe
1504		;;
1505	-dicos*)
1506		os=-dicos
1507		;;
1508	-nacl*)
1509		;;
1510	-none)
1511		;;
1512	*)
1513		# Get rid of the `-' at the beginning of $os.
1514		os=`echo $os | sed 's/[^-]*-//'`
1515		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1516		exit 1
1517		;;
1518esac
1519else
1520
1521# Here we handle the default operating systems that come with various machines.
1522# The value should be what the vendor currently ships out the door with their
1523# machine or put another way, the most popular os provided with the machine.
1524
1525# Note that if you're going to try to match "-MANUFACTURER" here (say,
1526# "-sun"), then you have to tell the case statement up towards the top
1527# that MANUFACTURER isn't an operating system.  Otherwise, code above
1528# will signal an error saying that MANUFACTURER isn't an operating
1529# system, and we'll never get to this point.
1530
1531case $basic_machine in
1532	score-*)
1533		os=-elf
1534		;;
1535	spu-*)
1536		os=-elf
1537		;;
1538	*-acorn)
1539		os=-riscix1.2
1540		;;
1541	arm*-rebel)
1542		os=-linux
1543		;;
1544	arm*-semi)
1545		os=-aout
1546		;;
1547	c4x-* | tic4x-*)
1548		os=-coff
1549		;;
1550	hexagon-*)
1551		os=-elf
1552		;;
1553	tic54x-*)
1554		os=-coff
1555		;;
1556	tic55x-*)
1557		os=-coff
1558		;;
1559	tic6x-*)
1560		os=-coff
1561		;;
1562	# This must come before the *-dec entry.
1563	pdp10-*)
1564		os=-tops20
1565		;;
1566	pdp11-*)
1567		os=-none
1568		;;
1569	*-dec | vax-*)
1570		os=-ultrix4.2
1571		;;
1572	m68*-apollo)
1573		os=-domain
1574		;;
1575	i386-sun)
1576		os=-sunos4.0.2
1577		;;
1578	m68000-sun)
1579		os=-sunos3
1580		;;
1581	m68*-cisco)
1582		os=-aout
1583		;;
1584	mep-*)
1585		os=-elf
1586		;;
1587	mips*-cisco)
1588		os=-elf
1589		;;
1590	mips*-*)
1591		os=-elf
1592		;;
1593	or32-*)
1594		os=-coff
1595		;;
1596	*-tti)	# must be before sparc entry or we get the wrong os.
1597		os=-sysv3
1598		;;
1599	sparc-* | *-sun)
1600		os=-sunos4.1.1
1601		;;
1602	*-be)
1603		os=-beos
1604		;;
1605	*-haiku)
1606		os=-haiku
1607		;;
1608	*-ibm)
1609		os=-aix
1610		;;
1611	*-knuth)
1612		os=-mmixware
1613		;;
1614	*-wec)
1615		os=-proelf
1616		;;
1617	*-winbond)
1618		os=-proelf
1619		;;
1620	*-oki)
1621		os=-proelf
1622		;;
1623	*-hp)
1624		os=-hpux
1625		;;
1626	*-hitachi)
1627		os=-hiux
1628		;;
1629	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1630		os=-sysv
1631		;;
1632	*-cbm)
1633		os=-amigaos
1634		;;
1635	*-dg)
1636		os=-dgux
1637		;;
1638	*-dolphin)
1639		os=-sysv3
1640		;;
1641	m68k-ccur)
1642		os=-rtu
1643		;;
1644	m88k-omron*)
1645		os=-luna
1646		;;
1647	*-next )
1648		os=-nextstep
1649		;;
1650	*-sequent)
1651		os=-ptx
1652		;;
1653	*-crds)
1654		os=-unos
1655		;;
1656	*-ns)
1657		os=-genix
1658		;;
1659	i370-*)
1660		os=-mvs
1661		;;
1662	*-next)
1663		os=-nextstep3
1664		;;
1665	*-gould)
1666		os=-sysv
1667		;;
1668	*-highlevel)
1669		os=-bsd
1670		;;
1671	*-encore)
1672		os=-bsd
1673		;;
1674	*-sgi)
1675		os=-irix
1676		;;
1677	*-siemens)
1678		os=-sysv4
1679		;;
1680	*-masscomp)
1681		os=-rtu
1682		;;
1683	f30[01]-fujitsu | f700-fujitsu)
1684		os=-uxpv
1685		;;
1686	*-rom68k)
1687		os=-coff
1688		;;
1689	*-*bug)
1690		os=-coff
1691		;;
1692	*-apple)
1693		os=-macos
1694		;;
1695	*-atari*)
1696		os=-mint
1697		;;
1698	*)
1699		os=-none
1700		;;
1701esac
1702fi
1703
1704# Here we handle the case where we know the os, and the CPU type, but not the
1705# manufacturer.  We pick the logical manufacturer.
1706vendor=unknown
1707case $basic_machine in
1708	*-unknown)
1709		case $os in
1710			-riscix*)
1711				vendor=acorn
1712				;;
1713			-sunos*)
1714				vendor=sun
1715				;;
1716			-cnk*|-aix*)
1717				vendor=ibm
1718				;;
1719			-beos*)
1720				vendor=be
1721				;;
1722			-hpux*)
1723				vendor=hp
1724				;;
1725			-mpeix*)
1726				vendor=hp
1727				;;
1728			-hiux*)
1729				vendor=hitachi
1730				;;
1731			-unos*)
1732				vendor=crds
1733				;;
1734			-dgux*)
1735				vendor=dg
1736				;;
1737			-luna*)
1738				vendor=omron
1739				;;
1740			-genix*)
1741				vendor=ns
1742				;;
1743			-mvs* | -opened*)
1744				vendor=ibm
1745				;;
1746			-os400*)
1747				vendor=ibm
1748				;;
1749			-ptx*)
1750				vendor=sequent
1751				;;
1752			-tpf*)
1753				vendor=ibm
1754				;;
1755			-vxsim* | -vxworks* | -windiss*)
1756				vendor=wrs
1757				;;
1758			-aux*)
1759				vendor=apple
1760				;;
1761			-hms*)
1762				vendor=hitachi
1763				;;
1764			-mpw* | -macos*)
1765				vendor=apple
1766				;;
1767			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1768				vendor=atari
1769				;;
1770			-vos*)
1771				vendor=stratus
1772				;;
1773		esac
1774		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1775		;;
1776esac
1777
1778echo $basic_machine$os
1779exit
1780
1781# Local variables:
1782# eval: (add-hook 'write-file-hooks 'time-stamp)
1783# time-stamp-start: "timestamp='"
1784# time-stamp-format: "%:y-%02m-%02d"
1785# time-stamp-end: "'"
1786# End:
1787