- config.guess, config.sub: upgraded from FSF.
[ginac.git] / config.sub
1 #! /bin/sh
2 # Configuration validation subroutine script, version 1.1.
3 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
4 #   Free Software Foundation, Inc.
5
6 version='2000-09-11'
7
8 # This file is (in principle) common to ALL GNU software.
9 # The presence of a machine in this file suggests that SOME GNU software
10 # can handle that machine.  It does not imply ALL GNU software can.
11 #
12 # This file is free software; you can redistribute it and/or modify
13 # it under the terms of the GNU General Public License as published by
14 # the Free Software Foundation; either version 2 of the License, or
15 # (at your option) any later version.
16 #
17 # This program is distributed in the hope that it will be useful,
18 # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 # GNU General Public License for more details.
21 #
22 # You should have received a copy of the GNU General Public License
23 # along with this program; if not, write to the Free Software
24 # Foundation, Inc., 59 Temple Place - Suite 330,
25 # Boston, MA 02111-1307, USA.
26
27 # As a special exception to the GNU General Public License, if you
28 # distribute this file as part of a program that contains a
29 # configuration script generated by Autoconf, you may include it under
30 # the same distribution terms that you use for the rest of that program.
31
32 # Please send patches to <config-patches@gnu.org>.
33 #
34 # Configuration subroutine to validate and canonicalize a configuration type.
35 # Supply the specified configuration type as an argument.
36 # If it is invalid, we print an error message on stderr and exit with code 1.
37 # Otherwise, we print the canonical config type on stdout and succeed.
38
39 # This file is supposed to be the same for all GNU packages
40 # and recognize all the CPU types, system types and aliases
41 # that are meaningful with *any* GNU software.
42 # Each package is responsible for reporting which valid configurations
43 # it does not support.  The user should be able to distinguish
44 # a failure to support a valid configuration from a meaningless
45 # configuration.
46
47 # The goal of this file is to map all the various variations of a given
48 # machine specification into a single specification in the form:
49 #       CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
50 # or in some cases, the newer four-part form:
51 #       CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
52 # It is wrong to echo any other type of specification.
53
54 me=`echo "$0" | sed -e 's,.*/,,'`
55
56 usage="\
57 Usage: $0 [OPTION] CPU-MFR-OPSYS
58        $0 [OPTION] ALIAS
59
60 Canonicalize a configuration name.
61
62 Operation modes:
63   -h, --help               print this help, then exit
64   -V, --version            print version number, then exit"
65
66 help="
67 Try \`$me --help' for more information."
68
69 # Parse command line
70 while test $# -gt 0 ; do
71   case "$1" in
72     --version | --vers* | -V )
73        echo "$version" ; exit 0 ;;
74     --help | --h* | -h )
75        echo "$usage"; exit 0 ;;
76     -- )     # Stop option processing
77        shift; break ;;
78     - ) # Use stdin as input.
79        break ;;
80     -* )
81        exec >&2
82        echo "$me: invalid option $1"
83        echo "$help"
84        exit 1 ;;
85
86     *local*)
87        # First pass through any local machine types.
88        echo $1
89        exit 0;;
90
91     * )
92        break ;;
93   esac
94 done
95
96 case $# in
97  0) echo "$me: missing argument$help" >&2
98     exit 1;;
99  1) ;;
100  *) echo "$me: too many arguments$help" >&2
101     exit 1;;
102 esac
103
104 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
105 # Here we must recognize all the valid KERNEL-OS combinations.
106 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
107 case $maybe_os in
108   nto-qnx* | linux-gnu*)
109     os=-$maybe_os
110     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
111     ;;
112   *)
113     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
114     if [ $basic_machine != $1 ]
115     then os=`echo $1 | sed 's/.*-/-/'`
116     else os=; fi
117     ;;
118 esac
119
120 ### Let's recognize common machines as not being operating systems so
121 ### that things like config.sub decstation-3100 work.  We also
122 ### recognize some manufacturers as not being operating systems, so we
123 ### can provide default operating systems below.
124 case $os in
125         -sun*os*)
126                 # Prevent following clause from handling this invalid input.
127                 ;;
128         -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
129         -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
130         -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
131         -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
132         -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
133         -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
134         -apple | -axis)
135                 os=
136                 basic_machine=$1
137                 ;;
138         -sim | -cisco | -oki | -wec | -winbond)
139                 os=
140                 basic_machine=$1
141                 ;;
142         -scout)
143                 ;;
144         -wrs)
145                 os=-vxworks
146                 basic_machine=$1
147                 ;;
148         -hiux*)
149                 os=-hiuxwe2
150                 ;;
151         -sco5)
152                 os=-sco3.2v5
153                 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
154                 ;;
155         -sco4)
156                 os=-sco3.2v4
157                 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
158                 ;;
159         -sco3.2.[4-9]*)
160                 os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
161                 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
162                 ;;
163         -sco3.2v[4-9]*)
164                 # Don't forget version if it is 3.2v4 or newer.
165                 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
166                 ;;
167         -sco*)
168                 os=-sco3.2v2
169                 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
170                 ;;
171         -udk*)
172                 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
173                 ;;
174         -isc)
175                 os=-isc2.2
176                 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
177                 ;;
178         -clix*)
179                 basic_machine=clipper-intergraph
180                 ;;
181         -isc*)
182                 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
183                 ;;
184         -lynx*)
185                 os=-lynxos
186                 ;;
187         -ptx*)
188                 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
189                 ;;
190         -windowsnt*)
191                 os=`echo $os | sed -e 's/windowsnt/winnt/'`
192                 ;;
193         -psos*)
194                 os=-psos
195                 ;;
196         -mint | -mint[0-9]*)
197                 basic_machine=m68k-atari
198                 os=-mint
199                 ;;
200 esac
201
202 # Decode aliases for certain CPU-COMPANY combinations.
203 case $basic_machine in
204         # Recognize the basic CPU types without company name.
205         # Some are omitted here because they have special meanings below.
206         tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
207                 | arme[lb] | armv[2345] | armv[345][lb] | pyramid | mn10200 | mn10300 | tron | a29k \
208                 | 580 | i960 | h8300 \
209                 | x86 | ppcbe | mipsbe | mipsle | shbe | shle | armbe | armle \
210                 | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
211                 | hppa64 \
212                 | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
213                 | alphaev6[78] \
214                 | we32k | ns16k | clipper | i370 | sh | sh[34] \
215                 | powerpc | powerpcle \
216                 | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
217                 | mips64orion | mips64orionel | mipstx39 | mipstx39el \
218                 | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
219                 | mips64vr5000 | miprs64vr5000el | mcore \
220                 | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
221                 | thumb | d10v | d30v | fr30 | avr)
222                 basic_machine=$basic_machine-unknown
223                 ;;
224         m6811 | m68hc11 | m6812 | m68hc12)
225                 # Motorola 68HC11/12.
226                 basic_machine=$basic_machine-unknown
227                 os=-none
228                 ;;
229         m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
230                 ;;
231
232         # We use `pc' rather than `unknown'
233         # because (1) that's what they normally are, and
234         # (2) the word "unknown" tends to confuse beginning users.
235         i[234567]86 | x86_64)
236           basic_machine=$basic_machine-pc
237           ;;
238         # Object if more than one company name word.
239         *-*-*)
240                 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
241                 exit 1
242                 ;;
243         # Recognize the basic CPU types with company name.
244         # FIXME: clean up the formatting here.
245         vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
246               | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
247               | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
248               | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
249               | xmp-* | ymp-* \
250               | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \
251               | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
252               | hppa2.0n-* | hppa64-* \
253               | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
254               | alphaev6[78]-* \
255               | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
256               | clipper-* | orion-* \
257               | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
258               | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
259               | mips64el-* | mips64orion-* | mips64orionel-* \
260               | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
261               | mipstx39-* | mipstx39el-* | mcore-* \
262               | f301-* | armv*-* | s390-* | sv1-* | t3e-* \
263               | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
264               | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \
265               | bs2000-* | tic54x-* | c54x-* | x86_64-*)
266                 ;;
267         # Recognize the various machine names and aliases which stand
268         # for a CPU type and a company and sometimes even an OS.
269         386bsd)
270                 basic_machine=i386-unknown
271                 os=-bsd
272                 ;;
273         3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
274                 basic_machine=m68000-att
275                 ;;
276         3b*)
277                 basic_machine=we32k-att
278                 ;;
279         a29khif)
280                 basic_machine=a29k-amd
281                 os=-udi
282                 ;;
283         adobe68k)
284                 basic_machine=m68010-adobe
285                 os=-scout
286                 ;;
287         alliant | fx80)
288                 basic_machine=fx80-alliant
289                 ;;
290         altos | altos3068)
291                 basic_machine=m68k-altos
292                 ;;
293         am29k)
294                 basic_machine=a29k-none
295                 os=-bsd
296                 ;;
297         amdahl)
298                 basic_machine=580-amdahl
299                 os=-sysv
300                 ;;
301         amiga | amiga-*)
302                 basic_machine=m68k-unknown
303                 ;;
304         amigaos | amigados)
305                 basic_machine=m68k-unknown
306                 os=-amigaos
307                 ;;
308         amigaunix | amix)
309                 basic_machine=m68k-unknown
310                 os=-sysv4
311                 ;;
312         apollo68)
313                 basic_machine=m68k-apollo
314                 os=-sysv
315                 ;;
316         apollo68bsd)
317                 basic_machine=m68k-apollo
318                 os=-bsd
319                 ;;
320         aux)
321                 basic_machine=m68k-apple
322                 os=-aux
323                 ;;
324         balance)
325                 basic_machine=ns32k-sequent
326                 os=-dynix
327                 ;;
328         convex-c1)
329                 basic_machine=c1-convex
330                 os=-bsd
331                 ;;
332         convex-c2)
333                 basic_machine=c2-convex
334                 os=-bsd
335                 ;;
336         convex-c32)
337                 basic_machine=c32-convex
338                 os=-bsd
339                 ;;
340         convex-c34)
341                 basic_machine=c34-convex
342                 os=-bsd
343                 ;;
344         convex-c38)
345                 basic_machine=c38-convex
346                 os=-bsd
347                 ;;
348         cray | ymp)
349                 basic_machine=ymp-cray
350                 os=-unicos
351                 ;;
352         cray2)
353                 basic_machine=cray2-cray
354                 os=-unicos
355                 ;;
356         [ctj]90-cray)
357                 basic_machine=c90-cray
358                 os=-unicos
359                 ;;
360         crds | unos)
361                 basic_machine=m68k-crds
362                 ;;
363         cris | cris-* | etrax*)
364                 basic_machine=cris-axis
365                 ;;
366         da30 | da30-*)
367                 basic_machine=m68k-da30
368                 ;;
369         decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
370                 basic_machine=mips-dec
371                 ;;
372         delta | 3300 | motorola-3300 | motorola-delta \