1 |
#! /bin/sh |
2 |
# Attempt to guess a canonical system name. |
3 |
# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. |
4 |
# |
5 |
# This file is free software; you can redistribute it and/or modify it |
6 |
# 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, but |
11 |
# WITHOUT ANY WARRANTY; without even the implied warranty of |
12 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 |
# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 |
# |
19 |
# As a special exception to the GNU General Public License, if you |
20 |
# distribute this file as part of a program that contains a |
21 |
# configuration script generated by Autoconf, you may include it under |
22 |
# the same distribution terms that you use for the rest of that program. |
23 |
|
24 |
# Written by Per Bothner <bothner@cygnus.com>. |
25 |
# The master version of this file is at the FSF in /home/gd/gnu/lib. |
26 |
# |
27 |
# This script attempts to guess a canonical system name similar to |
28 |
# config.sub. If it succeeds, it prints the system name on stdout, and |
29 |
# exits with 0. Otherwise, it exits with 1. |
30 |
# |
31 |
# The plan is that this can be called by configure scripts if you |
32 |
# don't specify an explicit system type (host/target name). |
33 |
# |
34 |
# Only a few systems have been added to this list; please add others |
35 |
# (but try to keep the structure clean). |
36 |
# |
37 |
|
38 |
# This is needed to find uname on a Pyramid OSx when run in the BSD universe. |
39 |
# (ghazi@noc.rutgers.edu 8/24/94.) |
40 |
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then |
41 |
PATH=$PATH:/.attbin ; export PATH |
42 |
fi |
43 |
|
44 |
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown |
45 |
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown |
46 |
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown |
47 |
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown |
48 |
|
49 |
trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 |
50 |
|
51 |
# Note: order is significant - the case branches are not exclusive. |
52 |
|
53 |
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
54 |
alpha:OSF1:*:*) |
55 |
if test $UNAME_RELEASE = "V4.0"; then |
56 |
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` |
57 |
fi |
58 |
# A Vn.n version is a released version. |
59 |
# A Tn.n version is a released field test version. |
60 |
# A Xn.n version is an unreleased experimental baselevel. |
61 |
# 1.2 uses "1.2" for uname -r. |
62 |
cat <<EOF >dummy.s |
63 |
.globl main |
64 |
.ent main |
65 |
main: |
66 |
.frame \$30,0,\$26,0 |
67 |
.prologue 0 |
68 |
.long 0x47e03d80 # implver $0 |
69 |
lda \$2,259 |
70 |
.long 0x47e20c21 # amask $2,$1 |
71 |
srl \$1,8,\$2 |
72 |
sll \$2,2,\$2 |
73 |
sll \$0,3,\$0 |
74 |
addl \$1,\$0,\$0 |
75 |
addl \$2,\$0,\$0 |
76 |
ret \$31,(\$26),1 |
77 |
.end main |
78 |
EOF |
79 |
${CC-cc} dummy.s -o dummy 2>/dev/null |
80 |
if test "$?" = 0 ; then |
81 |
./dummy |
82 |
case "$?" in |
83 |
7) |
84 |
UNAME_MACHINE="alpha" |
85 |
;; |
86 |
15) |
87 |
UNAME_MACHINE="alphaev5" |
88 |
;; |
89 |
14) |
90 |
UNAME_MACHINE="alphaev56" |
91 |
;; |
92 |
10) |
93 |
UNAME_MACHINE="alphapca56" |
94 |
;; |
95 |
16) |
96 |
UNAME_MACHINE="alphaev6" |
97 |
;; |
98 |
esac |
99 |
fi |
100 |
rm -f dummy.s dummy |
101 |
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` |
102 |
exit 0 ;; |
103 |
21064:Windows_NT:50:3) |
104 |
echo alpha-dec-winnt3.5 |
105 |
exit 0 ;; |
106 |
Amiga*:UNIX_System_V:4.0:*) |
107 |
echo m68k-cbm-sysv4 |
108 |
exit 0;; |
109 |
amiga:NetBSD:*:*) |
110 |
echo m68k-cbm-netbsd${UNAME_RELEASE} |
111 |
exit 0 ;; |
112 |
amiga:OpenBSD:*:*) |
113 |
echo m68k-unknown-openbsd${UNAME_RELEASE} |
114 |
exit 0 ;; |
115 |
*:[Aa]miga[Oo][Ss]:*:*) |
116 |
echo ${UNAME_MACHINE}-unknown-amigaos |
117 |
exit 0 ;; |
118 |
arc64:OpenBSD:*:*) |
119 |
echo mips64el-unknown-openbsd${UNAME_RELEASE} |
120 |
exit 0 ;; |
121 |
arc:OpenBSD:*:*) |
122 |
echo mipsel-unknown-openbsd${UNAME_RELEASE} |
123 |
exit 0 ;; |
124 |
hkmips:OpenBSD:*:*) |
125 |
echo mips-unknown-openbsd${UNAME_RELEASE} |
126 |
exit 0 ;; |
127 |
pmax:OpenBSD:*:*) |
128 |
echo mipsel-unknown-openbsd${UNAME_RELEASE} |
129 |
exit 0 ;; |
130 |
sgi:OpenBSD:*:*) |
131 |
echo mips-unknown-openbsd${UNAME_RELEASE} |
132 |
exit 0 ;; |
133 |
wgrisc:OpenBSD:*:*) |
134 |
echo mipsel-unknown-openbsd${UNAME_RELEASE} |
135 |
exit 0 ;; |
136 |
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) |
137 |
echo arm-acorn-riscix${UNAME_RELEASE} |
138 |
exit 0;; |
139 |
arm32:NetBSD:*:*) |
140 |
echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` |
141 |
exit 0 ;; |
142 |
SR2?01:HI-UX/MPP:*:*) |
143 |
echo hppa1.1-hitachi-hiuxmpp |
144 |
exit 0;; |
145 |
Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*) |
146 |
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. |
147 |
if test "`(/bin/universe) 2>/dev/null`" = att ; then |
148 |
echo pyramid-pyramid-sysv3 |
149 |
else |
150 |
echo pyramid-pyramid-bsd |
151 |
fi |
152 |
exit 0 ;; |
153 |
NILE:*:*:dcosx) |
154 |
echo pyramid-pyramid-svr4 |
155 |
exit 0 ;; |
156 |
sun4H:SunOS:5.*:*) |
157 |
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
158 |
exit 0 ;; |
159 |
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) |
160 |
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
161 |
exit 0 ;; |
162 |
i86pc:SunOS:5.*:*) |
163 |
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
164 |
exit 0 ;; |
165 |
sun4*:SunOS:6*:*) |
166 |
# According to config.sub, this is the proper way to canonicalize |
167 |
# SunOS6. Hard to guess exactly what SunOS6 will be like, but |
168 |
# it's likely to be more like Solaris than SunOS4. |
169 |
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
170 |
exit 0 ;; |
171 |
sun4*:SunOS:*:*) |
172 |
case "`/usr/bin/arch -k`" in |
173 |
Series*|S4*) |
174 |
UNAME_RELEASE=`uname -v` |
175 |
;; |
176 |
esac |
177 |
# Japanese Language versions have a version number like `4.1.3-JL'. |
178 |
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` |
179 |
exit 0 ;; |
180 |
sun3*:SunOS:*:*) |
181 |
echo m68k-sun-sunos${UNAME_RELEASE} |
182 |
exit 0 ;; |
183 |
sun*:*:4.2BSD:*) |
184 |
UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` |
185 |
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 |
186 |
case "`/bin/arch`" in |
187 |
sun3) |
188 |
echo m68k-sun-sunos${UNAME_RELEASE} |
189 |
;; |
190 |
sun4) |
191 |
echo sparc-sun-sunos${UNAME_RELEASE} |
192 |
;; |
193 |
esac |
194 |
exit 0 ;; |
195 |
aushp:SunOS:*:*) |
196 |
echo sparc-auspex-sunos${UNAME_RELEASE} |
197 |
exit 0 ;; |
198 |
atari*:NetBSD:*:*) |
199 |
echo m68k-atari-netbsd${UNAME_RELEASE} |
200 |
exit 0 ;; |
201 |
atari*:OpenBSD:*:*) |
202 |
echo m68k-unknown-openbsd${UNAME_RELEASE} |
203 |
exit 0 ;; |
204 |
sun3*:NetBSD:*:*) |
205 |
echo m68k-sun-netbsd${UNAME_RELEASE} |
206 |
exit 0 ;; |
207 |
sun3*:OpenBSD:*:*) |
208 |
echo m68k-unknown-openbsd${UNAME_RELEASE} |
209 |
exit 0 ;; |
210 |
mac68k:NetBSD:*:*) |
211 |
echo m68k-apple-netbsd${UNAME_RELEASE} |
212 |
exit 0 ;; |
213 |
mac68k:OpenBSD:*:*) |
214 |
echo m68k-unknown-openbsd${UNAME_RELEASE} |
215 |
exit 0 ;; |
216 |
mvme68k:OpenBSD:*:*) |
217 |
echo m68k-unknown-openbsd${UNAME_RELEASE} |
218 |
exit 0 ;; |
219 |
mvme88k:OpenBSD:*:*) |
220 |
echo m88k-unknown-openbsd${UNAME_RELEASE} |
221 |
exit 0 ;; |
222 |
powerpc:machten:*:*) |
223 |
echo powerpc-apple-machten${UNAME_RELEASE} |
224 |
exit 0 ;; |
225 |
macppc:NetBSD:*:*) |
226 |
echo powerpc-apple-netbsd${UNAME_RELEASE} |
227 |
exit 0 ;; |
228 |
RISC*:Mach:*:*) |
229 |
echo mips-dec-mach_bsd4.3 |
230 |
exit 0 ;; |
231 |
RISC*:ULTRIX:*:*) |
232 |
echo mips-dec-ultrix${UNAME_RELEASE} |
233 |
exit 0 ;; |
234 |
VAX*:ULTRIX*:*:*) |
235 |
echo vax-dec-ultrix${UNAME_RELEASE} |
236 |
exit 0 ;; |
237 |
2020:CLIX:*:*) |
238 |
echo clipper-intergraph-clix${UNAME_RELEASE} |
239 |
exit 0 ;; |
240 |
mips:*:*:UMIPS | mips:*:*:RISCos) |
241 |
sed 's/^ //' << EOF >dummy.c |
242 |
int main (argc, argv) int argc; char **argv; { |
243 |
#if defined (host_mips) && defined (MIPSEB) |
244 |
#if defined (SYSTYPE_SYSV) |
245 |
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); |
246 |
#endif |
247 |
#if defined (SYSTYPE_SVR4) |
248 |
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); |
249 |
#endif |
250 |
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) |
251 |
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); |
252 |
#endif |
253 |
#endif |
254 |
exit (-1); |
255 |
} |
256 |
EOF |
257 |
${CC-cc} dummy.c -o dummy \ |
258 |
&& ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ |
259 |
&& rm dummy.c dummy && exit 0 |
260 |
rm -f dummy.c dummy |
261 |
echo mips-mips-riscos${UNAME_RELEASE} |
262 |
exit 0 ;; |
263 |
Night_Hawk:Power_UNIX:*:*) |
264 |
echo powerpc-harris-powerunix |
265 |
exit 0 ;; |
266 |
m88k:CX/UX:7*:*) |
267 |
echo m88k-harris-cxux7 |
268 |
exit 0 ;; |
269 |
m88k:*:4*:R4*) |
270 |
echo m88k-motorola-sysv4 |
271 |
exit 0 ;; |
272 |
m88k:*:3*:R3*) |
273 |
echo m88k-motorola-sysv3 |
274 |
exit 0 ;; |
275 |
AViiON:dgux:*:*) |
276 |
# DG/UX returns AViiON for all architectures |
277 |
UNAME_PROCESSOR=`/usr/bin/uname -p` |
278 |
if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then |
279 |
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ |
280 |
-o ${TARGET_BINARY_INTERFACE}x = x ] ; then |
281 |
echo m88k-dg-dgux${UNAME_RELEASE} |
282 |
else |
283 |
echo m88k-dg-dguxbcs${UNAME_RELEASE} |
284 |
fi |
285 |
else echo i586-dg-dgux${UNAME_RELEASE} |
286 |
fi |
287 |
exit 0 ;; |
288 |
M88*:DolphinOS:*:*) # DolphinOS (SVR3) |
289 |
echo m88k-dolphin-sysv3 |
290 |
exit 0 ;; |
291 |
M88*:*:R3*:*) |
292 |
# Delta 88k system running SVR3 |
293 |
echo m88k-motorola-sysv3 |
294 |
exit 0 ;; |
295 |
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) |
296 |
echo m88k-tektronix-sysv3 |
297 |
exit 0 ;; |
298 |
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) |
299 |
echo m68k-tektronix-bsd |
300 |
exit 0 ;; |
301 |
*:IRIX*:*:*) |
302 |
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` |
303 |
exit 0 ;; |
304 |
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. |
305 |
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id |
306 |
exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' |
307 |
i?86:AIX:*:*) |
308 |
echo i386-ibm-aix |
309 |
exit 0 ;; |
310 |
*:AIX:2:3) |
311 |
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then |
312 |
sed 's/^ //' << EOF >dummy.c |
313 |
#include <sys/systemcfg.h> |
314 |
|
315 |
main() |
316 |
{ |
317 |
if (!__power_pc()) |
318 |
exit(1); |
319 |
puts("powerpc-ibm-aix3.2.5"); |
320 |
exit(0); |
321 |
} |
322 |
EOF |
323 |
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 |
324 |
rm -f dummy.c dummy |
325 |
echo rs6000-ibm-aix3.2.5 |
326 |
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then |
327 |
echo rs6000-ibm-aix3.2.4 |
328 |
else |
329 |
echo rs6000-ibm-aix3.2 |
330 |
fi |
331 |
exit 0 ;; |
332 |
*:AIX:*:4) |
333 |
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` |
334 |
if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then |
335 |
IBM_ARCH=rs6000 |
336 |
else |
337 |
IBM_ARCH=powerpc |
338 |
fi |
339 |
if [ -x /usr/bin/oslevel ] ; then |
340 |
IBM_REV=`/usr/bin/oslevel` |
341 |
else |
342 |
IBM_REV=4.${UNAME_RELEASE} |
343 |
fi |
344 |
echo ${IBM_ARCH}-ibm-aix${IBM_REV} |
345 |
exit 0 ;; |
346 |
*:AIX:*:*) |
347 |
echo rs6000-ibm-aix |
348 |
exit 0 ;; |
349 |
ibmrt:4.4BSD:*|romp-ibm:BSD:*) |
350 |
echo romp-ibm-bsd4.4 |
351 |
exit 0 ;; |
352 |
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and |
353 |
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to |
354 |
exit 0 ;; # report: romp-ibm BSD 4.3 |
355 |
*:BOSX:*:*) |
356 |
echo rs6000-bull-bosx |
357 |
exit 0 ;; |
358 |
DPX/2?00:B.O.S.:*:*) |
359 |
echo m68k-bull-sysv3 |
360 |
exit 0 ;; |
361 |
9000/[34]??:4.3bsd:1.*:*) |
362 |
echo m68k-hp-bsd |
363 |
exit 0 ;; |
364 |
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) |
365 |
echo m68k-hp-bsd4.4 |
366 |
exit 0 ;; |
367 |
9000/[34678]??:HP-UX:*:*) |
368 |
case "${UNAME_MACHINE}" in |
369 |
9000/31? ) HP_ARCH=m68000 ;; |
370 |
9000/[34]?? ) HP_ARCH=m68k ;; |
371 |
9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 ) |
372 |
sed 's/^ //' << EOF >dummy.c |
373 |
#include <stdlib.h> |
374 |
#include <unistd.h> |
375 |
|
376 |
int main () |
377 |
{ |
378 |
#if defined(_SC_KERNEL_BITS) |
379 |
long bits = sysconf(_SC_KERNEL_BITS); |
380 |
#endif |
381 |
long cpu = sysconf (_SC_CPU_VERSION); |
382 |
|
383 |
switch (cpu) |
384 |
{ |
385 |
case CPU_PA_RISC1_0: puts ("hppa1.0"); break; |
386 |
case CPU_PA_RISC1_1: puts ("hppa1.1"); break; |
387 |
case CPU_PA_RISC2_0: |
388 |
#if defined(_SC_KERNEL_BITS) |
389 |
switch (bits) |
390 |
{ |
391 |
case 64: puts ("hppa2.0w"); break; |
392 |
case 32: puts ("hppa2.0n"); break; |
393 |
default: puts ("hppa2.0"); break; |
394 |
} break; |
395 |
#else /* !defined(_SC_KERNEL_BITS) */ |
396 |
puts ("hppa2.0"); break; |
397 |
#endif |
398 |
default: puts ("hppa1.0"); break; |
399 |
} |
400 |
exit (0); |
401 |
} |
402 |
EOF |
403 |
(${CC-cc} dummy.c -o dummy 2>/dev/null ) && HP_ARCH=`./dummy` |
404 |
rm -f dummy.c dummy |
405 |
esac |
406 |
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` |
407 |
echo ${HP_ARCH}-hp-hpux${HPUX_REV} |
408 |
exit 0 ;; |
409 |
3050*:HI-UX:*:*) |
410 |
sed 's/^ //' << EOF >dummy.c |
411 |
#include <unistd.h> |
412 |
int |
413 |
main () |
414 |
{ |
415 |
long cpu = sysconf (_SC_CPU_VERSION); |
416 |
/* The order matters, because CPU_IS_HP_MC68K erroneously returns |
417 |
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct |
418 |
results, however. */ |
419 |
if (CPU_IS_PA_RISC (cpu)) |
420 |
{ |
421 |
switch (cpu) |
422 |
{ |
423 |
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; |
424 |
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; |
425 |
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; |
426 |
default: puts ("hppa-hitachi-hiuxwe2"); break; |
427 |
} |
428 |
} |
429 |
else if (CPU_IS_HP_MC68K (cpu)) |
430 |
puts ("m68k-hitachi-hiuxwe2"); |
431 |
else puts ("unknown-hitachi-hiuxwe2"); |
432 |
exit (0); |
433 |
} |
434 |
EOF |
435 |
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 |
436 |
rm -f dummy.c dummy |
437 |
echo unknown-hitachi-hiuxwe2 |
438 |
exit 0 ;; |
439 |
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) |
440 |
echo hppa1.1-hp-bsd |
441 |
exit 0 ;; |
442 |
9000/8??:4.3bsd:*:*) |
443 |
echo hppa1.0-hp-bsd |
444 |
exit 0 ;; |
445 |
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) |
446 |
echo hppa1.1-hp-osf |
447 |
exit 0 ;; |
448 |
hp8??:OSF1:*:*) |
449 |
echo hppa1.0-hp-osf |
450 |
exit 0 ;; |
451 |
i?86:OSF1:*:*) |
452 |
if [ -x /usr/sbin/sysversion ] ; then |
453 |
echo ${UNAME_MACHINE}-unknown-osf1mk |
454 |
else |
455 |
echo ${UNAME_MACHINE}-unknown-osf1 |
456 |
fi |
457 |
exit 0 ;; |
458 |
parisc*:Lites*:*:*) |
459 |
echo hppa1.1-hp-lites |
460 |
exit 0 ;; |
461 |
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) |
462 |
echo c1-convex-bsd |
463 |
exit 0 ;; |
464 |
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) |
465 |
if getsysinfo -f scalar_acc |
466 |
then echo c32-convex-bsd |
467 |
else echo c2-convex-bsd |
468 |
fi |
469 |
exit 0 ;; |
470 |
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) |
471 |
echo c34-convex-bsd |
472 |
exit 0 ;; |
473 |
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) |
474 |
echo c38-convex-bsd |
475 |
exit 0 ;; |
476 |
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) |
477 |
echo c4-convex-bsd |
478 |
exit 0 ;; |
479 |
CRAY*X-MP:*:*:*) |
480 |
echo xmp-cray-unicos |
481 |
exit 0 ;; |
482 |
CRAY*Y-MP:*:*:*) |
483 |
echo ymp-cray-unicos${UNAME_RELEASE} |
484 |
exit 0 ;; |
485 |
CRAY*[A-Z]90:*:*:*) |
486 |
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ |
487 |
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ |
488 |
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ |
489 |
exit 0 ;; |
490 |
CRAY*TS:*:*:*) |
491 |
echo t90-cray-unicos${UNAME_RELEASE} |
492 |
exit 0 ;; |
493 |
CRAY-2:*:*:*) |
494 |
echo cray2-cray-unicos |
495 |
exit 0 ;; |
496 |
F300:UNIX_System_V:*:*) |
497 |
FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` |
498 |
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` |
499 |
echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
500 |
exit 0 ;; |
501 |
F301:UNIX_System_V:*:*) |
502 |
echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` |
503 |
exit 0 ;; |
504 |
hp3[0-9][05]:NetBSD:*:*) |
505 |
echo m68k-hp-netbsd${UNAME_RELEASE} |
506 |
exit 0 ;; |
507 |
hp300:OpenBSD:*:*) |
508 |
echo m68k-unknown-openbsd${UNAME_RELEASE} |
509 |
exit 0 ;; |
510 |
sparc*:BSD/OS:*:*) |
511 |
echo sparc-unknown-bsdi${UNAME_RELEASE} |
512 |
exit 0 ;; |
513 |
i?86:BSD/386:*:* | *:BSD/OS:*:*) |
514 |
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} |
515 |
exit 0 ;; |
516 |
*:FreeBSD:*:*) |
517 |
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` |
518 |
exit 0 ;; |
519 |
*:NetBSD:*:*) |
520 |
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` |
521 |
exit 0 ;; |
522 |
*:OpenBSD:*:*) |
523 |
echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` |
524 |
exit 0 ;; |
525 |
i*:CYGWIN*:*) |
526 |
echo ${UNAME_MACHINE}-pc-cygwin |
527 |
exit 0 ;; |
528 |
i*:MINGW*:*) |
529 |
echo ${UNAME_MACHINE}-pc-mingw32 |
530 |
exit 0 ;; |
531 |
p*:CYGWIN*:*) |
532 |
echo powerpcle-unknown-cygwin |
533 |
exit 0 ;; |
534 |
prep*:SunOS:5.*:*) |
535 |
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
536 |
exit 0 ;; |
537 |
*:GNU:*:*) |
538 |
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` |
539 |
exit 0 ;; |
540 |
*:Linux:*:*) |
541 |
# uname on the ARM produces all sorts of strangeness, and we need to |
542 |
# filter it out. |
543 |
case "$UNAME_MACHINE" in |
544 |
arm* | sa110*) UNAME_MACHINE="arm" ;; |
545 |
esac |
546 |
|
547 |
# The BFD linker knows what the default object file format is, so |
548 |
# first see if it will tell us. |
549 |
ld_help_string=`ld --help 2>&1` |
550 |
ld_supported_emulations=`echo $ld_help_string \ |
551 |
| sed -ne '/supported emulations:/!d |
552 |
s/[ ][ ]*/ /g |
553 |
s/.*supported emulations: *// |
554 |
s/ .*// |
555 |
p'` |
556 |
case "$ld_supported_emulations" in |
557 |
i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; |
558 |
i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; |
559 |
sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; |
560 |
armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; |
561 |
m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; |
562 |
elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; |
563 |
esac |
564 |
|
565 |
if test "${UNAME_MACHINE}" = "alpha" ; then |
566 |
sed 's/^ //' <<EOF >dummy.s |
567 |
.globl main |
568 |
.ent main |
569 |
main: |
570 |
.frame \$30,0,\$26,0 |
571 |
.prologue 0 |
572 |
.long 0x47e03d80 # implver $0 |
573 |
lda \$2,259 |
574 |
.long 0x47e20c21 # amask $2,$1 |
575 |
srl \$1,8,\$2 |
576 |
sll \$2,2,\$2 |
577 |
sll \$0,3,\$0 |
578 |
addl \$1,\$0,\$0 |
579 |
addl \$2,\$0,\$0 |
580 |
ret \$31,(\$26),1 |
581 |
.end main |
582 |
EOF |
583 |
LIBC="" |
584 |
${CC-cc} dummy.s -o dummy 2>/dev/null |
585 |
if test "$?" = 0 ; then |
586 |
./dummy |
587 |
case "$?" in |
588 |
7) |
589 |
UNAME_MACHINE="alpha" |
590 |
;; |
591 |
15) |
592 |
UNAME_MACHINE="alphaev5" |
593 |
;; |
594 |
14) |
595 |
UNAME_MACHINE="alphaev56" |
596 |
;; |
597 |
10) |
598 |
UNAME_MACHINE="alphapca56" |
599 |
;; |
600 |
16) |
601 |
UNAME_MACHINE="alphaev6" |
602 |
;; |
603 |
esac |
604 |
|
605 |
objdump --private-headers dummy | \ |
606 |
grep ld.so.1 > /dev/null |
607 |
if test "$?" = 0 ; then |
608 |
LIBC="libc1" |
609 |
fi |
610 |
fi |
611 |
rm -f dummy.s dummy |
612 |
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 |
613 |
elif test "${UNAME_MACHINE}" = "mips" ; then |
614 |
cat >dummy.c <<EOF |
615 |
main(argc, argv) |
616 |
int argc; |
617 |
char *argv[]; |
618 |
{ |
619 |
#ifdef __MIPSEB__ |
620 |
printf ("%s-unknown-linux-gnu\n", argv[1]); |
621 |
#endif |
622 |
#ifdef __MIPSEL__ |
623 |
printf ("%sel-unknown-linux-gnu\n", argv[1]); |
624 |
#endif |
625 |
return 0; |
626 |
} |
627 |
EOF |
628 |
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 |
629 |
rm -f dummy.c dummy |
630 |
else |
631 |
# Either a pre-BFD a.out linker (linux-gnuoldld) |
632 |
# or one that does not give us useful --help. |
633 |
# GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. |
634 |
# If ld does not provide *any* "supported emulations:" |
635 |
# that means it is gnuoldld. |
636 |
echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" |
637 |
test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 |
638 |
|
639 |
case "${UNAME_MACHINE}" in |
640 |
i?86) |
641 |
VENDOR=pc; |
642 |
;; |
643 |
*) |
644 |
VENDOR=unknown; |
645 |
;; |
646 |
esac |
647 |
# Determine whether the default compiler is a.out or elf |
648 |
cat >dummy.c <<EOF |
649 |
#include <features.h> |
650 |
main(argc, argv) |
651 |
int argc; |
652 |
char *argv[]; |
653 |
{ |
654 |
#ifdef __ELF__ |
655 |
# ifdef __GLIBC__ |
656 |
# if __GLIBC__ >= 2 |
657 |
printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); |
658 |
# else |
659 |
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); |
660 |
# endif |
661 |
# else |
662 |
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); |
663 |
# endif |
664 |
#else |
665 |
printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); |
666 |
#endif |
667 |
return 0; |
668 |
} |
669 |
EOF |
670 |
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 |
671 |
rm -f dummy.c dummy |
672 |
fi ;; |
673 |
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions |
674 |
# are messed up and put the nodename in both sysname and nodename. |
675 |
i?86:DYNIX/ptx:4*:*) |
676 |
echo i386-sequent-sysv4 |
677 |
exit 0 ;; |
678 |
i?86:UNIX_SV:4.2MP:2.*) |
679 |
# Unixware is an offshoot of SVR4, but it has its own version |
680 |
# number series starting with 2... |
681 |
# I am not positive that other SVR4 systems won't match this, |
682 |
# I just have to hope. -- rms. |
683 |
# Use sysv4.2uw... so that sysv4* matches it. |
684 |
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} |
685 |
exit 0 ;; |
686 |
i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) |
687 |
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then |
688 |
echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} |
689 |
else |
690 |
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} |
691 |
fi |
692 |
exit 0 ;; |
693 |
i?86:*:3.2:*) |
694 |
if test -f /usr/options/cb.name; then |
695 |
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` |
696 |
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL |
697 |
elif /bin/uname -X 2>/dev/null >/dev/null ; then |
698 |
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` |
699 |
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 |
700 |
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ |
701 |
&& UNAME_MACHINE=i586 |
702 |
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL |
703 |
else |
704 |
echo ${UNAME_MACHINE}-pc-sysv32 |
705 |
fi |
706 |
exit 0 ;; |
707 |
i?86:UnixWare:*:*) |
708 |
if /bin/uname -X 2>/dev/null >/dev/null ; then |
709 |
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ |
710 |
&& UNAME_MACHINE=i586 |
711 |
fi |
712 |
echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION} |
713 |
exit 0 ;; |
714 |
pc:*:*:*) |
715 |
# uname -m prints for DJGPP always 'pc', but it prints nothing about |
716 |
# the processor, so we play safe by assuming i386. |
717 |
echo i386-pc-msdosdjgpp |
718 |
exit 0 ;; |
719 |
Intel:Mach:3*:*) |
720 |
echo i386-pc-mach3 |
721 |
exit 0 ;; |
722 |
paragon:*:*:*) |
723 |
echo i860-intel-osf1 |
724 |
exit 0 ;; |
725 |
i860:*:4.*:*) # i860-SVR4 |
726 |
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then |
727 |
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 |
728 |
else # Add other i860-SVR4 vendors below as they are discovered. |
729 |
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 |
730 |
fi |
731 |
exit 0 ;; |
732 |
mini*:CTIX:SYS*5:*) |
733 |
# "miniframe" |
734 |
echo m68010-convergent-sysv |
735 |
exit 0 ;; |
736 |
M68*:*:R3V[567]*:*) |
737 |
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; |
738 |
3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) |
739 |
OS_REL='' |
740 |
test -r /etc/.relid \ |
741 |
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` |
742 |
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
743 |
&& echo i486-ncr-sysv4.3${OS_REL} && exit 0 |
744 |
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ |
745 |
&& echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; |
746 |
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) |
747 |
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
748 |
&& echo i486-ncr-sysv4 && exit 0 ;; |
749 |
m68*:LynxOS:2.*:*) |
750 |
echo m68k-unknown-lynxos${UNAME_RELEASE} |
751 |
exit 0 ;; |
752 |
mc68030:UNIX_System_V:4.*:*) |
753 |
echo m68k-atari-sysv4 |
754 |
exit 0 ;; |
755 |
i?86:LynxOS:2.*:*) |
756 |
echo i386-unknown-lynxos${UNAME_RELEASE} |
757 |
exit 0 ;; |
758 |
TSUNAMI:LynxOS:2.*:*) |
759 |
echo sparc-unknown-lynxos${UNAME_RELEASE} |
760 |
exit 0 ;; |
761 |
rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) |
762 |
echo rs6000-unknown-lynxos${UNAME_RELEASE} |
763 |
exit 0 ;; |
764 |
SM[BE]S:UNIX_SV:*:*) |
765 |
echo mips-dde-sysv${UNAME_RELEASE} |
766 |
exit 0 ;; |
767 |
RM*:SINIX-*:*:*) |
768 |
echo mips-sni-sysv4 |
769 |
exit 0 ;; |
770 |
*:SINIX-*:*:*) |
771 |
if uname -p 2>/dev/null >/dev/null ; then |
772 |
UNAME_MACHINE=`(uname -p) 2>/dev/null` |
773 |
echo ${UNAME_MACHINE}-sni-sysv4 |
774 |
else |
775 |
echo ns32k-sni-sysv |
776 |
fi |
777 |
exit 0 ;; |
778 |
PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort |
779 |
# says <Richard.M.Bartel@ccMail.Census.GOV> |
780 |
echo i586-unisys-sysv4 |
781 |
exit 0 ;; |
782 |
*:UNIX_System_V:4*:FTX*) |
783 |
# From Gerald Hewes <hewes@openmarket.com>. |
784 |
# How about differentiating between stratus architectures? -djm |
785 |
echo hppa1.1-stratus-sysv4 |
786 |
exit 0 ;; |
787 |
*:*:*:FTX*) |
788 |
# From seanf@swdc.stratus.com. |
789 |
echo i860-stratus-sysv4 |
790 |
exit 0 ;; |
791 |
mc68*:A/UX:*:*) |
792 |
echo m68k-apple-aux${UNAME_RELEASE} |
793 |
exit 0 ;; |
794 |
news*:NEWS-OS:*:6*) |
795 |
echo mips-sony-newsos6 |
796 |
exit 0 ;; |
797 |
R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*) |
798 |
if [ -d /usr/nec ]; then |
799 |
echo mips-nec-sysv${UNAME_RELEASE} |
800 |
else |
801 |
echo mips-unknown-sysv${UNAME_RELEASE} |
802 |
fi |
803 |
exit 0 ;; |
804 |
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. |
805 |
echo powerpc-be-beos |
806 |
exit 0 ;; |
807 |
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. |
808 |
echo powerpc-apple-beos |
809 |
exit 0 ;; |
810 |
BePC:BeOS:*:*) # BeOS running on Intel PC compatible. |
811 |
echo i586-pc-beos |
812 |
exit 0 ;; |
813 |
esac |
814 |
|
815 |
#echo '(No uname command or uname output not recognized.)' 1>&2 |
816 |
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 |
817 |
|
818 |
cat >dummy.c <<EOF |
819 |
#ifdef _SEQUENT_ |
820 |
# include <sys/types.h> |
821 |
# include <sys/utsname.h> |
822 |
#endif |
823 |
main () |
824 |
{ |
825 |
#if defined (sony) |
826 |
#if defined (MIPSEB) |
827 |
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, |
828 |
I don't know.... */ |
829 |
printf ("mips-sony-bsd\n"); exit (0); |
830 |
#else |
831 |
#include <sys/param.h> |
832 |
printf ("m68k-sony-newsos%s\n", |
833 |
#ifdef NEWSOS4 |
834 |
"4" |
835 |
#else |
836 |
"" |
837 |
#endif |
838 |
); exit (0); |
839 |
#endif |
840 |
#endif |
841 |
|
842 |
#if defined (__arm) && defined (__acorn) && defined (__unix) |
843 |
printf ("arm-acorn-riscix"); exit (0); |
844 |
#endif |
845 |
|
846 |
#if defined (hp300) && !defined (hpux) |
847 |
printf ("m68k-hp-bsd\n"); exit (0); |
848 |
#endif |
849 |
|
850 |
#if defined (NeXT) |
851 |
#if !defined (__ARCHITECTURE__) |
852 |
#define __ARCHITECTURE__ "m68k" |
853 |
#endif |
854 |
int version; |
855 |
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; |
856 |
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); |
857 |
exit (0); |
858 |
#endif |
859 |
|
860 |
#if defined (MULTIMAX) || defined (n16) |
861 |
#if defined (UMAXV) |
862 |
printf ("ns32k-encore-sysv\n"); exit (0); |
863 |
#else |
864 |
#if defined (CMU) |
865 |
printf ("ns32k-encore-mach\n"); exit (0); |
866 |
#else |
867 |
printf ("ns32k-encore-bsd\n"); exit (0); |
868 |
#endif |
869 |
#endif |
870 |
#endif |
871 |
|
872 |
#if defined (__386BSD__) |
873 |
printf ("i386-pc-bsd\n"); exit (0); |
874 |
#endif |
875 |
|
876 |
#if defined (sequent) |
877 |
#if defined (i386) |
878 |
printf ("i386-sequent-dynix\n"); exit (0); |
879 |
#endif |
880 |
#if defined (ns32000) |
881 |
printf ("ns32k-sequent-dynix\n"); exit (0); |
882 |
#endif |
883 |
#endif |
884 |
|
885 |
#if defined (_SEQUENT_) |
886 |
struct utsname un; |
887 |
|
888 |
uname(&un); |
889 |
|
890 |
if (strncmp(un.version, "V2", 2) == 0) { |
891 |
printf ("i386-sequent-ptx2\n"); exit (0); |
892 |
} |
893 |
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ |
894 |
printf ("i386-sequent-ptx1\n"); exit (0); |
895 |
} |
896 |
printf ("i386-sequent-ptx\n"); exit (0); |
897 |
|
898 |
#endif |
899 |
|
900 |
#if defined (vax) |
901 |
#if !defined (ultrix) |
902 |
printf ("vax-dec-bsd\n"); exit (0); |
903 |
#else |
904 |
printf ("vax-dec-ultrix\n"); exit (0); |
905 |
#endif |
906 |
#endif |
907 |
|
908 |
#if defined (alliant) && defined (i860) |
909 |
printf ("i860-alliant-bsd\n"); exit (0); |
910 |
#endif |
911 |
|
912 |
exit (1); |
913 |
} |
914 |
EOF |
915 |
|
916 |
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 |
917 |
rm -f dummy.c dummy |
918 |
|
919 |
# Apollos put the system type in the environment. |
920 |
|
921 |
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } |
922 |
|
923 |
# Convex versions that predate uname can use getsysinfo(1) |
924 |
|
925 |
if [ -x /usr/convex/getsysinfo ] |
926 |
then |
927 |
case `getsysinfo -f cpu_type` in |
928 |
c1*) |
929 |
echo c1-convex-bsd |
930 |
exit 0 ;; |
931 |
c2*) |
932 |
if getsysinfo -f scalar_acc |
933 |
then echo c32-convex-bsd |
934 |
else echo c2-convex-bsd |
935 |
fi |
936 |
exit 0 ;; |
937 |
c34*) |
938 |
echo c34-convex-bsd |
939 |
exit 0 ;; |
940 |
c38*) |
941 |
echo c38-convex-bsd |
942 |
exit 0 ;; |
943 |
c4*) |
944 |
echo c4-convex-bsd |
945 |
exit 0 ;; |
946 |
esac |
947 |
fi |
948 |
|
949 |
#echo '(Unable to guess system type)' 1>&2 |
950 |
|
951 |
exit 1 |