revised install for dir.info
[deliverable/binutils-gdb.git] / config.subr
CommitLineData
65947468
RP
1#!/bin/sh
2# Configuration validation subroutine script, version 1.0.
3# Copyright (C) 1991 Free Software Foundation, Inc.
4
5#This file is free software; you can redistribute it and/or modify
6#it under the terms of the GNU General Public License as published by
7#the Free Software Foundation; either version 2 of the License, or
8#(at your option) any later version.
9
10#This program is distributed in the hope that it will be useful,
11#but WITHOUT ANY WARRANTY; without even the implied warranty of
12#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13#GNU General Public License for more details.
14
15#You should have received a copy of the GNU General Public License
16#along with this program; if not, write to the Free Software
17#Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
19
20# Configuration subroutine to validate and canonicalize a configuration type.
21# Supply the specified configuration type as an argument.
22# If it is invalid, we print an error message on stderr and exit with code 1.
23# Otherwise, we print the canonical config type on stdout and succeed.
24
25# This file is supposed to be the same for all GNU packages
26# and recognize all the CPU types, system types and aliases
27# that are meaningful with *any* GNU software.
28# Each package is responsible for reporting which valid configurations
29# it does not support. The user should be able to distinguish
30# a failure to support a valid configuration from a meaningless
31# configuration.
32
33# The goal of this file is to map all the various variations of a given
34# machine specification into a single specification in the form:
35# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
36# it is wrong to echo any other type of specification
37
38# First pass through any local machine types.
39case $1 in
40 *local*)
41 echo $1
42 exit 0
43 ;;
44 *)
45 ;;
46esac
47
48# Separate what the user gave into CPU-COMPANY and OS (if any).
49basic_machine=`echo $1 | sed 's/-[^-]*$//'`
50if [ $basic_machine != $1 ]
51then os=`echo $1 | sed 's/.*-/-/'`
52else os=; fi
53
54# Lets recognize common machines as not being OS so that things like
55# config.subr decstation-3100 as legal.
56case $os in
57 -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
58 -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
59 -unicom* | -ibm* | -next* | -hp | -isi* | -apollo | -altos* | \
60 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -c1* | \
61 -c2* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
62 -harris)
63 os=
64 basic_machine=$1
65 ;;
66 -sco*)
67 os=-scosysv322
68 basic_machine=i386-unknown
69 ;;
70 -isc*)
71 os=-iscsysv
72 basic_machine=i386-unknown
73 ;;
74esac
75
76# Decode aliases for certain CPU-COMPANY combinations.
77case $basic_machine in
78 # Recognize the basic CPU types with without company name.
79 tahoe | i386 | i860 | m68k | m68000 | m88k \
80 | ns32k | arm | pyramid | tron | a29k)
81 basic_machine=$basic_machine-unknown
82 ;;
83 # Recognize the basic CPU types with with company name.
84 vax-* | tahoe-* | i386-* | i860-* | m68k-* | m68000-* | m88k-* \
85 | sparc-* | ns32k-* | alliant-* | arm-* | c1-* | c2-* \
86 | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-*)
87 ;;
88 # Recognize the various machine names and aliases which stand
89 # for a CPU type and a company and sometimes even an OS.
90 vaxv)
91 basic_machine=vax-dec
92 os=-sysv
93 ;;
94 vms)
95 basic_machine=vax-dec
96 os=-vms
97 ;;
98 i386-sco* | sco)
99 basic_machine=i386-unknown
100 os=-scosysv322
101 ;;
102 i386-isc* | isc)
103 basic_machine=i386-unknown
104 os=-iscsysv
105 ;;
106 i386v4*)
107 basic_machine=i386-unknown
108 os=-sysv4
109 ;;
110 i386v)
111 basic_machine=i386-unknown
112 os=-sysv
113 ;;
114 spur)
115 basic_machine=spur-unknown
116 ;;
117 alliant)
118 basic_machine=alliant-alliant
119 ;;
120 c1)
121 basic_machine=c1-convex
122 ;;
123 c2)
124 basic_machine=c2-convex
125 ;;
126 m88k-omron*)
127 basic_machine=m88k-omron
128 ;;
129 merlin)
130 basic_machine=ns32k-merlin
131 ;;
132 crds | unos)
133 basic_machine=m68k-crds
134 ;;
135 encore)
136 basic_machine=ns32k-encore
137 ;;
138 genix)
139 basic_machine=ns32k-ns
140 ;;
141 iris | iris4d)
142 basic_machine=mips-sgi
143 ;;
144 news | news800)
145 basic_machine=m68k-sony
146 ;;
147 3b1 | 7300 | 7300-att | att-7300)
148 basic_machine=m68k-att
149 ;;
150 delta | 3300 | motorola-3300 | motorola-delta \
151 | 3300-motorola | delta-motorola)
152 basic_machine=m68k-motorola
153 ;;
154 balance)
155 basic_machine=ns32k-sequent
156 ;;
157 mmax)
158 basic_machine=ns32k-encore
159 ;;
160 pc532)
161 basic_machine=ns32k-pc532
162 ;;
163 symmetry)
164 basic_machine=i386-sequent
165 ;;
166 sun2)
167 basic_machine=m68000-sun
168 ;;
169 sun3)
170 basic_machine=m68k-sun
171 ;;
172 sun4)
173 basic_machine=sparc-sun
174 ;;
175 pbd)
176 basic_machine=sparc-unicom
177 ;;
178 sun386 | sun386i)
179 basic_machine=i386-sun
180 ;;
181 ps2)
182 basic_machine=i386-ibm
183 ;;
184 next)
185 basic_machine=m68k-next
186 ;;
187 hp9k3[2-9][0-9])
188 basic_machine=m68k-hp
189 ;;
190 hp9k31[0-9] | hp9k2[0-9][0-9])
191 basic_machine=m68000-hp
192 ;;
193 isi68)
194 basic_machine=m68k-isi
195 ;;
196 apollo68)
197 basic_machine=m68k-apollo
198 ;;
199 altos | altos3068)
200 basic_machine=m68k-altos
201 ;;
202 miniframe)
203 basic_machine=m68000-convergent
204 ;;
205 tower | tower-32)
206 basic_machine=m68k-ncr
207 ;;
208 news-3600 | risc-news)
209 basic_machine=mips-sony
210 ;;
211 decstation-dec | decstation | decstation-3100 | pmax)
212 basic_machine=mips-dec
213 ;;
214 magnum | m3230)
215 basic_machine=mips-mips
216 ;;
217 gmicro)
218 basic_machine=tron-default
219 ;;
220 convex-c1)
221 basic_machine=c1-convex
222 ;;
223 convex-c2)
224 basic_machine=c2-convex
225 ;;
226 rtpc | rtpc-*)
227 basic_machine=romp-ibm
228 ;;
229# Here we handle the default manufacturer of certain CPU types. It is in
230# some cases the only manufacturer, in others, it is the most popular.
231 mips)
232 basic_machine=mips-mips
233 ;;
234 romp)
235 basic_machine=romp-ibm
236 ;;
237 rs6000)
238 basic_machine=rs6000-ibm
239 ;;
240 vax)
241 basic_machine=vax-dec
242 ;;
243 sparc)
244 basic_machine=sparc-sun
245 ;;
246 *)
247 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
248 exit 1
249 ;;
250esac
251
252# Decode manufacturer-specific aliases for certain operating systems.
253
254if [ "$os" ]
255then
256case $os in
257 # First accept the basic system types.
258 # The portable systems comes first.
259 # Each alternative must end in a *, to match a version number.
260 -bsd* | -sysv* | -mach* | -minix* | -genix* | -ultrix* \
261 | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos* | -hpux* \
262 | -unos* | -osf* | -v88r* | -luna* | -dgux*)
263 ;;
264 -newsos*)
265 os=-bsd
266 ;;
267 -osfrose*)
268 os=-osf
269 ;;
270 -osf*)
271 os=-bsd
272 ;;
273 -dynix*)
274 os=-bsd
275 ;;
276 -aos*)
277 os=-bsd
278 ;;
279 -ctix*)
280 os=-sysv
281 ;;
282 *)
283 # Get rid of the `-' at the beginning of $os.
284 os=`echo $1 | sed 's/[^-]*-//'`
285 echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
286 exit 1
287 ;;
288esac
289else
290
291# Here we handle the default operating systems that come with various machines.
292# The value should be what the vendor currently ships out the door with their
293# machine or put another way, the most popular os provided with the machine.
294case $basic_machine in
295 *-dec | vax-*)
296 os=-ultrix42
297 ;;
298 i386-sun)
299 os=-sunos402
300 ;;
301 m68000-sun)
302 os=-sunos3
303 # This also exists in the configure program, but was not the
304 # default.
305 # os=-sunos4
306 ;;
307 sparc-* | *-sun)
308 os=-sunos411
309 ;;
310 romp-*)
311 os=-bsd
312 ;;
313 *-ibm)
314 os=-aix
315 ;;
316 *-hp)
317 os=-hpux
318 ;;
319 *-sgi | i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
320 os=-sysv
321 ;;
322 *-dg)
323 os=-dgux
324 ;;
325 m88k-omron*)
326 os=-luna
327 ;;
328 *-crds)
329 os=-unos
330 ;;
331 *-ns)
332 os=-genix
333 ;;
334 i386-*)
335 os=-scosysv322
336 ;;
337 *)
338 os=-bsd43
339 ;;
340esac
341fi
342
343# Here we handle the case where we know the os, and the CPU type, but not the
344# manufacturer. We pick the logical manufacturer.
345vendor=unknown
346case $basic_machine in
347 *-unknown)
348 case $os in
349 -sunos*)
350 vendor=sun
351 ;;
352 -aix*)
353 vendor=ibm
354 ;;
355 -hpux*)
356 vendor=hp
357 ;;
358 -unos*)
359 vendor=crds
360 ;;
361 -dgux*)
362 vendor=dg
363 ;;
364 -luna*)
365 vendor=omron
366 ;;
367 -genix*)
368 vendor=ns
369 ;;
370 esac
371 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
372 ;;
373esac
374
375echo $basic_machine$os
This page took 0.037464 seconds and 4 git commands to generate.