/
config.guess
executable file
·1541 lines (1481 loc) · 44.1 KB
1
2
#! /bin/sh
# Attempt to guess a canonical system name.
3
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
5
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011, 2012 Free Software Foundation, Inc.
6
7
timestamp='2012-08-14'
8
9
10
11
12
13
14
15
16
17
18
19
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
20
# along with this program; if not, see <http://www.gnu.org/licenses/>.
21
22
23
24
25
26
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
27
28
29
30
# Originally written by Per Bothner. Please send patches (context
# diff format) to <config-patches@gnu.org> and include a ChangeLog
# entry.
31
32
33
34
35
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
36
37
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
38
39
40
41
42
43
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
44
Output the configuration name of the system \`$me' is run on.
45
46
Operation modes:
47
48
49
50
51
52
53
54
55
56
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
57
58
59
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
60
61
62
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
63
64
65
66
67
68
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
69
70
case $1 in
--time-stamp | --time* | -t )
71
echo "$timestamp" ; exit ;;
72
--version | -v )
73
echo "$version" ; exit ;;
74
--help | --h* | -h )
75
echo "$usage"; exit ;;
76
77
78
79
80
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
81
echo "$me: invalid option $1$help" >&2
82
83
84
85
86
87
88
89
90
91
92
exit 1 ;;
* )
break ;;
esac
done
if test $# != 0; then
echo "$me: too many arguments$help" >&2
exit 1
fi
93
trap 'exit 1' 1 2 15
94
95
96
97
98
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
99
100
101
102
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
103
104
105
106
107
108
# Portable tmp directory creation inspired by the Autoconf team.
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
109
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
110
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
111
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
112
113
114
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
115
case $CC_FOR_BUILD,$HOST_CC,$CC in
116
117
118
119
120
121
,,) echo "int x;" > $dummy.c ;
for c in cc gcc c89 c99 ; do
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
122
if test x"$CC_FOR_BUILD" = x ; then
123
CC_FOR_BUILD=no_compiler_found ;
124
125
126
127
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
128
esac ; set_cc_for_build= ;'
129
130
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
131
# (ghazi@noc.rutgers.edu 1994-08-24)
132
133
134
135
136
137
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
138
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
139
140
141
142
143
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
144
*:NetBSD:*:*)
145
# NetBSD (nbsd) targets should (where applicable) match one or
146
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
147
148
149
150
151
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
152
153
154
155
156
157
158
159
160
161
162
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
163
sh5el) machine=sh5le-unknown ;;
164
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
165
esac
166
167
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
168
169
170
case "${UNAME_MACHINE_ARCH}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
171
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
172
| grep -q __ELF__
173
174
175
176
177
178
179
180
181
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
os=netbsd
else
os=netbsdelf
fi
;;
*)
182
os=netbsd
183
184
;;
esac
185
# The OS release
186
187
188
189
190
191
192
193
194
195
196
197
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
case "${UNAME_VERSION}" in
Debian*)
release='-gnu'
;;
*)
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
;;
esac
198
199
200
201
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
202
exit ;;
203
204
205
206
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
exit ;;
207
*:OpenBSD:*:*)
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
exit ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;;
*:SolidBSD:*:*)
echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
exit ;;
macppc:MirBSD:*:*)
echo powerpc-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit ;;
223
alpha:OSF1:*:*)
224
225
case $UNAME_RELEASE in
*4.0)
226
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
227
228
;;
*5.*)
229
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
230
231
;;
esac
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE="alpha" ;;
"EV4.5 (21064)")
UNAME_MACHINE="alpha" ;;
"LCA4 (21066/21068)")
UNAME_MACHINE="alpha" ;;
"EV5 (21164)")
UNAME_MACHINE="alphaev5" ;;
"EV5.6 (21164A)")
UNAME_MACHINE="alphaev56" ;;
"EV5.6 (21164PC)")
UNAME_MACHINE="alphapca56" ;;
"EV5.7 (21164PC)")
UNAME_MACHINE="alphapca57" ;;
"EV6 (21264)")
UNAME_MACHINE="alphaev6" ;;
"EV6.7 (21264A)")
UNAME_MACHINE="alphaev67" ;;
"EV6.8CB (21264C)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8AL (21264B)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8CX (21264D)")
UNAME_MACHINE="alphaev68" ;;
"EV6.9A (21264/EV69A)")
UNAME_MACHINE="alphaev69" ;;
"EV7 (21364)")
UNAME_MACHINE="alphaev7" ;;
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
esac
269
# A Pn.n version is a patched version.
270
271
272
273
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
274
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
275
276
277
278
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
exit $exitcode ;;
279
280
281
282
283
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
284
exit ;;
285
286
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
287
exit ;;
288
Amiga*:UNIX_System_V:4.0:*)
289
echo m68k-unknown-sysv4
290
exit ;;
291
292
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
293
exit ;;
294
295
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
296
exit ;;
297
298
*:OS/390:*:*)
echo i370-ibm-openedition
299
300
301
302
303
exit ;;
*:z/VM:*:*)
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
304
echo powerpc-ibm-os400
305
exit ;;
306
307
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
308
309
310
311
exit ;;
arm:riscos:*:*|arm:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
312
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
313
echo hppa1.1-hitachi-hiuxmpp
314
exit ;;
315
316
317
318
319
320
321
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
322
exit ;;
323
324
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
325
326
327
328
329
exit ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
330
case `/usr/bin/uname -p` in
331
sparc) echo sparc-icl-nx7; exit ;;
332
esac ;;
333
334
335
s390x:SunOS:*:*)
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
336
337
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
338
exit ;;
339
340
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
341
exit ;;
342
343
344
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
echo i386-pc-auroraux${UNAME_RELEASE}
exit ;;
345
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
346
347
348
349
350
351
352
353
354
355
356
357
358
359
eval $set_cc_for_build
SUN_ARCH="i386"
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH="x86_64"
fi
fi
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
360
exit ;;
361
362
363
364
365
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
366
exit ;;
367
368
369
370
371
372
373
374
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
375
exit ;;
376
377
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
378
exit ;;
379
sun*:*:4.2BSD:*)
380
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
381
382
383
384
385
386
387
388
389
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
;;
sun4)
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
390
exit ;;
391
392
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
393
exit ;;
394
395
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
396
# "atarist" or "atariste" at least should have a processor
397
398
399
400
401
402
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
403
echo m68k-atari-mint${UNAME_RELEASE}
404
exit ;;
405
406
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
407
exit ;;
408
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
409
echo m68k-atari-mint${UNAME_RELEASE}
410
exit ;;
411
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
412
413
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
414
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
415
416
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
417
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
418
419
echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
420
421
422
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
423
424
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
425
exit ;;
426
427
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
428
exit ;;
429
430
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
431
exit ;;
432
433
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
434
exit ;;
435
436
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
437
exit ;;
438
mips:*:*:UMIPS | mips:*:*:RISCos)
439
eval $set_cc_for_build
440
441
sed 's/^ //' << EOF >$dummy.c
#ifdef __cplusplus
442
#include <stdio.h> /* for printf() prototype */
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
461
462
463
464
$CC_FOR_BUILD -o $dummy $dummy.c &&
dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`$dummy $dummyarg` &&
{ echo "$SYSTEM_NAME"; exit; }
465
echo mips-mips-riscos${UNAME_RELEASE}
466
exit ;;
467
468
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
469
exit ;;
470
471
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
472
exit ;;
473
474
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
475
exit ;;
476
477
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
478
exit ;;
479
480
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
481
exit ;;
482
483
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
484
exit ;;
485
486
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
487
exit ;;
488
AViiON:dgux:*:*)
489
490
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
491
492
493
494
495
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
[ ${TARGET_BINARY_INTERFACE}x = x ]
then
496
echo m88k-dg-dgux${UNAME_RELEASE}
497
else
498
echo m88k-dg-dguxbcs${UNAME_RELEASE}
499
500
501
fi
else
echo i586-dg-dgux${UNAME_RELEASE}
502
fi
503
exit ;;
504
505
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
506
exit ;;
507
508
509
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
510
exit ;;
511
512
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
513
exit ;;
514
515
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
516
exit ;;
517
518
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
519
exit ;;
520
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
521
522
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
523
i*86:AIX:*:*)
524
echo i386-ibm-aix
525
exit ;;
526
527
528
529
530
531
532
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
533
exit ;;
534
535
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
536
eval $set_cc_for_build
537
538
539
540
541
542
543
544
545
546
547
sed 's/^ //' << EOF >$dummy.c
#include <sys/systemcfg.h>
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
548
549
550
551
552
553
if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
then
echo "$SYSTEM_NAME"
else
echo rs6000-ibm-aix3.2.5
fi
554
555
556
557
558
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
559
exit ;;
560
*:AIX:*:[4567])
561
562
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
563
564
565
566
567
568
569
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
570
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
571
572
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
573
exit ;;
574
575
*:AIX:*:*)
echo rs6000-ibm-aix
576
exit ;;
577
578
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
579
exit ;;
580
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
581
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
582
exit ;; # report: romp-ibm BSD 4.3
583
584
*:BOSX:*:*)
echo rs6000-bull-bosx
585
exit ;;
586
587
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
588
exit ;;
589
590
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
591
exit ;;
592
593
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
594
exit ;;
595
9000/[34678]??:HP-UX:*:*)
596
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
597
598
599
600
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
601
602
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
603
604
605
606
607
608
609
610
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH="hppa2.0n" ;;
64) HP_ARCH="hppa2.0w" ;;
611
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
612
613
esac ;;
esac
614
615
616
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
617
sed 's/^ //' << EOF >$dummy.c
618
619
620
621
#define _HPUX_SOURCE
#include <stdlib.h>
#include <unistd.h>
622
623
624
625
626
627
628
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
649
EOF
650
651
652
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
653
esac
654
655
if [ ${HP_ARCH} = "hppa2.0w" ]
then
656
657
658
659
660
661
662
663
664
665
666
667
eval $set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
# generating 64-bit code. GNU and HP use different nomenclature:
#
# $ CC_FOR_BUILD=cc ./config.guess
# => hppa2.0w-hp-hpux11.23
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
668
grep -q __LP64__
669
670
671
672
673
674
then
HP_ARCH="hppa2.0w"
else
HP_ARCH="hppa64"
fi
fi
675
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
676
exit ;;
677
678
679
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
680
exit ;;
681
3050*:HI-UX:*:*)
682
eval $set_cc_for_build
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
sed 's/^ //' << EOF >$dummy.c
#include <unistd.h>
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
708
709
$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
710
echo unknown-hitachi-hiuxwe2
711
exit ;;
712
713
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
714
exit ;;
715
716
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
717
exit ;;
718
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
719
echo hppa1.0-hp-mpeix
720
exit ;;
721
722
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
723
exit ;;
724
725
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
726
exit ;;
727
i*86:OSF1:*:*)
728
729
730
731
732
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
733
exit ;;
734
735
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
736
exit ;;
737
738
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
739
exit ;;
740
741
742
743
744
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
745
exit ;;
746
747
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
748
exit ;;
749
750
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
751
exit ;;
752
753
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
754
exit ;;
755
CRAY*Y-MP:*:*:*)
756
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
757
exit ;;
758
759
760
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
761
762
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
763
exit ;;
764
CRAY*TS:*:*:*)
765
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
766
exit ;;
767
768
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
769
exit ;;
770
771
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
772
exit ;;
773
*:UNICOS/mp:*:*)
774
775
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
776
777
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
778
779
780
781
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
782
5000:UNIX_System_V:4.*:*)
783
784
785
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
786
exit ;;
787
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
788
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
789
exit ;;
790
791
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
792
exit ;;
793
794
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
795
exit ;;
796
*:FreeBSD:*:*)
797
798
UNAME_PROCESSOR=`/usr/bin/uname -p`
case ${UNAME_PROCESSOR} in
799
800
801
amd64)
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
*)
802
echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
803
804
esac
exit ;;
805
806
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
807
exit ;;
808
809
810
*:MINGW64*:*)
echo ${UNAME_MACHINE}-pc-mingw64
exit ;;
811
*:MINGW*:*)
812
echo ${UNAME_MACHINE}-pc-mingw32
813
exit ;;
814
815
816
i*:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
817
i*:windows32*:*)
818
819
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
820
exit ;;
821
822
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
823
exit ;;
824
825
*:Interix*:*)
case ${UNAME_MACHINE} in
826
827
828
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
829
authenticamd | genuineintel | EM64T)
830
831
832
833
834
835
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
echo ia64-unknown-interix${UNAME_RELEASE}
exit ;;
esac ;;
836
837
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
838
exit ;;
839
840
841
8664:Windows_NT:*)
echo x86_64-pc-mks
exit ;;
842
843
844
845
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
846
echo i586-pc-interix
847
exit ;;
848
849
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
850
851
852
853
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
854
855
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
856
exit ;;
857
858
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
859
exit ;;
860
*:GNU:*:*)
861
# the GNU system
862
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
863
864
865
866
867
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
exit ;;
868
869
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
870
exit ;;
871
872
873
874
875
876
877
aarch64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
878
879
880
881
882
883
884
885
886
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
887
esac
888
889
890
891
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
exit ;;
892
arm*:Linux:*:*)
893
894
895
896
897
898
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
echo ${UNAME_MACHINE}-unknown-linux-gnu
else
899
900
901
902
903
904
905
906
907
908
909
case `sed -n '/^Hardware/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
BCM2708) MANUFACTURER=raspberry;;
*) MANUFACTURER=unknown;;
esac
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
echo ${UNAME_MACHINE}-${MANUFACTURER}-linux-gnueabi
else
echo ${UNAME_MACHINE}-${MANUFACTURER}-linux-gnueabihf
fi
910
911
912
fi
exit ;;
avr32*:Linux:*:*)
913
echo ${UNAME_MACHINE}-unknown-linux-gnu
914
915
exit ;;
cris:Linux:*:*)
916
echo ${UNAME_MACHINE}-axis-linux-gnu
917
918
exit ;;
crisv32:Linux:*:*)
919
echo ${UNAME_MACHINE}-axis-linux-gnu
920
921
exit ;;
frv:Linux:*:*)
922
923
924
925
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
hexagon:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
926
exit ;;
927
i*86:Linux:*:*)
928
929
930
931
932
933
934
935
936
LIBC=gnu
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __dietlibc__
LIBC=dietlibc
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
937
exit ;;
938
939
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
940
941
942
943
exit ;;
m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
944
945
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
946
exit ;;
947
mips:Linux:*:* | mips64:Linux:*:*)
948
949
950
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
951
952
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
953
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
954
CPU=${UNAME_MACHINE}el
955
956
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
957
CPU=${UNAME_MACHINE}
958
959
960
961
962
#else
CPU=
#endif
#endif
EOF
963
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
964
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
965
;;
966
or32:Linux:*:*)
967
echo ${UNAME_MACHINE}-unknown-linux-gnu
968
exit ;;
969
970
971
padre:Linux:*:*)
echo sparc-unknown-linux-gnu
exit ;;
972
973
974
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
exit ;;
975
976
977
978
979
980
981
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) echo hppa1.1-unknown-linux-gnu ;;
PA8*) echo hppa2.0-unknown-linux-gnu ;;
*) echo hppa-unknown-linux-gnu ;;
esac
982
exit ;;
983
984
985
986
987
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu
exit ;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
988
exit ;;
989
990
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
991
992
exit ;;
sh64*:Linux:*:*)
993
echo ${UNAME_MACHINE}-unknown-linux-gnu
994
exit ;;
995
996
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
997
exit ;;
998
999
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
1000
exit ;;