22
24
# configuration script generated by Autoconf, you may include it under
23
25
# the same distribution terms that you use for the rest of that program.
25
# Written by Per Bothner <bothner@cygnus.com>.
26
# Please send patches to <config-patches@gnu.org>.
27
# Originally written by Per Bothner <per@bothner.com>.
28
# Please send patches to <config-patches@gnu.org>. Submit a context
29
# diff and a properly formatted ChangeLog entry.
28
31
# This script attempts to guess a canonical system name similar to
29
32
# config.sub. If it succeeds, it prints the system name on stdout, and
30
33
# exits with 0. Otherwise, it exits with 1.
32
35
# The plan is that this can be called by configure scripts if you
33
# don't specify an explicit system type (host/target name).
35
# Only a few systems have been added to this list; please add others
36
# (but try to keep the structure clean).
39
# Use $HOST_CC if defined. $CC may point to a cross-compiler
40
if test x"$CC_FOR_BUILD" = x; then
41
if test x"$HOST_CC" != x; then
42
CC_FOR_BUILD="$HOST_CC"
44
if test x"$CC" != x; then
36
# don't specify an explicit build system type.
38
me=`echo "$0" | sed -e 's,.*/,,'`
43
Output the configuration name of the system \`$me' is run on.
46
-h, --help print this help, then exit
47
-t, --time-stamp print date of last modification, then exit
48
-v, --version print version number, then exit
50
Report bugs and patches to <config-patches@gnu.org>."
53
GNU config.guess ($timestamp)
55
Originally written by Per Bothner.
56
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
57
Free Software Foundation, Inc.
59
This is free software; see the source for copying conditions. There is NO
60
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
63
Try \`$me --help' for more information."
66
while test $# -gt 0 ; do
68
--time-stamp | --time* | -t )
69
echo "$timestamp" ; exit 0 ;;
71
echo "$version" ; exit 0 ;;
73
echo "$usage"; exit 0 ;;
74
-- ) # Stop option processing
76
- ) # Use stdin as input.
79
echo "$me: invalid option $1$help" >&2
87
echo "$me: too many arguments$help" >&2
93
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
94
# compiler to aid in system detection is discouraged as it requires
95
# temporary files to be created and, as you can see below, it is a
96
# headache to deal with in a portable fashion.
98
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
99
# use `HOST_CC' if defined, but it is deprecated.
101
# Portable tmp directory creation inspired by the Autoconf team.
104
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
105
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
107
{ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
108
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
109
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
110
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
112
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
113
case $CC_FOR_BUILD,$HOST_CC,$CC in
114
,,) echo "int x;" > $dummy.c ;
115
for c in cc gcc c89 c99 ; do
116
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
117
CC_FOR_BUILD="$c"; break ;
120
if test x"$CC_FOR_BUILD" = x ; then
121
CC_FOR_BUILD=no_compiler_found ;
124
,,*) CC_FOR_BUILD=$CC ;;
125
,*,*) CC_FOR_BUILD=$HOST_CC ;;
53
128
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
54
# (ghazi@noc.rutgers.edu 8/24/94.)
129
# (ghazi@noc.rutgers.edu 1994-08-24)
55
130
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
56
131
PATH=$PATH:/.attbin ; export PATH
59
134
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
60
135
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
61
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
136
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
62
137
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
65
trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
67
139
# Note: order is significant - the case branches are not exclusive.
69
141
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
71
# Netbsd (nbsd) targets should (where applicable) match one or
143
# NetBSD (nbsd) targets should (where applicable) match one or
72
144
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
73
145
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
74
146
# switched to ELF, *-*-netbsd* would select the old
75
147
# object file format. This provides both forward
76
148
# compatibility and a consistent mechanism for selecting the
77
149
# object file format.
78
# Determine the machine/vendor (is the vendor relevant).
79
case "${UNAME_MACHINE}" in
80
amiga) machine=m68k-cbm ;;
81
arm32) machine=arm-unknown ;;
82
atari*) machine=m68k-atari ;;
83
sun3*) machine=m68k-sun ;;
84
mac68k) machine=m68k-apple ;;
85
macppc) machine=powerpc-apple ;;
86
hp3[0-9][05]) machine=m68k-hp ;;
87
ibmrt|romp-ibm) machine=romp-ibm ;;
88
*) machine=${UNAME_MACHINE}-unknown ;;
90
# The Operating System including object format.
91
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
92
| grep __ELF__ >/dev/null
94
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
95
# Return netbsd for either. FIX?
151
# Note: NetBSD doesn't particularly care about the vendor
152
# portion of the name. We always set it to "unknown".
153
sysctl="sysctl -n hw.machine_arch"
154
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
155
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
156
case "${UNAME_MACHINE_ARCH}" in
157
armeb) machine=armeb-unknown ;;
158
arm*) machine=arm-unknown ;;
159
sh3el) machine=shl-unknown ;;
160
sh3eb) machine=sh-unknown ;;
161
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
163
# The Operating System including object format, if it has switched
164
# to ELF recently, or will in the future.
165
case "${UNAME_MACHINE_ARCH}" in
166
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
167
eval $set_cc_for_build
168
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
169
| grep __ELF__ >/dev/null
171
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
172
# Return netbsd for either. FIX?
101
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
183
# Debian GNU/NetBSD machines have a different userland, and
184
# thus, need a distinct triplet. However, they do not need
185
# kernel version information, so it can be replaced with a
186
# suitable tag, in the style of linux-gnu.
187
case "${UNAME_VERSION}" in
192
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
102
195
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
103
196
# contains redundant information, the shorter form:
104
197
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
105
198
echo "${machine}-${os}${release}"
201
echo x86_64-unknown-openbsd${UNAME_RELEASE}
204
echo m68k-unknown-openbsd${UNAME_RELEASE}
207
echo arm-unknown-openbsd${UNAME_RELEASE}
210
echo m68k-unknown-openbsd${UNAME_RELEASE}
213
echo m88k-unknown-openbsd${UNAME_RELEASE}
216
echo m68k-unknown-openbsd${UNAME_RELEASE}
219
echo powerpc-unknown-openbsd${UNAME_RELEASE}
222
echo m68k-unknown-openbsd${UNAME_RELEASE}
225
echo m88k-unknown-openbsd${UNAME_RELEASE}
228
echo powerpc-unknown-openbsd${UNAME_RELEASE}
231
echo mips64-unknown-openbsd${UNAME_RELEASE}
234
echo m68k-unknown-openbsd${UNAME_RELEASE}
237
echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
240
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
243
echo powerppc-unknown-mirbsd${UNAME_RELEASE}
246
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
108
if test $UNAME_RELEASE = "V4.0"; then
249
case $UNAME_RELEASE in
109
251
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
254
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
257
# According to Compaq, /usr/sbin/psrinfo has been available on
258
# OSF/1 and Tru64 systems produced since 1995. I hope that
259
# covers most systems running today. This code pipes the CPU
260
# types through head -n 1, so we only detect the type of CPU 0.
261
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
262
case "$ALPHA_CPU_TYPE" in
264
UNAME_MACHINE="alpha" ;;
266
UNAME_MACHINE="alpha" ;;
267
"LCA4 (21066/21068)")
268
UNAME_MACHINE="alpha" ;;
270
UNAME_MACHINE="alphaev5" ;;
272
UNAME_MACHINE="alphaev56" ;;
274
UNAME_MACHINE="alphapca56" ;;
276
UNAME_MACHINE="alphapca57" ;;
278
UNAME_MACHINE="alphaev6" ;;
280
UNAME_MACHINE="alphaev67" ;;
282
UNAME_MACHINE="alphaev68" ;;
284
UNAME_MACHINE="alphaev68" ;;
286
UNAME_MACHINE="alphaev68" ;;
287
"EV6.9A (21264/EV69A)")
288
UNAME_MACHINE="alphaev69" ;;
290
UNAME_MACHINE="alphaev7" ;;
292
UNAME_MACHINE="alphaev79" ;;
294
# A Pn.n version is a patched version.
111
295
# A Vn.n version is a released version.
112
296
# A Tn.n version is a released field test version.
113
297
# A Xn.n version is an unreleased experimental baselevel.
114
298
# 1.2 uses "1.2" for uname -r.
118
.byte 37,100,45,37,120,10,0 # "%d-%x\n"
125
.frame \$30,16,\$26,0
128
.long 0x47e03d80 # implver \$0
130
.long 0x47e20c21 # amask \$2,\$1
140
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
141
if test "$?" = 0 ; then
144
UNAME_MACHINE="alpha"
147
UNAME_MACHINE="alphaev5"
150
UNAME_MACHINE="alphaev56"
153
UNAME_MACHINE="alphapca56"
156
UNAME_MACHINE="alphaev6"
159
UNAME_MACHINE="alphaev67"
163
rm -f $dummy.s $dummy
164
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
299
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
166
301
Alpha\ *:Windows_NT*:*)
167
302
# How do we know it's Interix rather than the generic POSIX subsystem?
643
814
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
646
818
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
821
# other systems with GNU libc and userland
822
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
825
echo ${UNAME_MACHINE}-pc-minix
828
echo ${UNAME_MACHINE}-unknown-linux-gnu
831
echo cris-axis-linux-gnu
834
echo crisv32-axis-linux-gnu
837
echo frv-unknown-linux-gnu
840
echo ${UNAME_MACHINE}-unknown-linux-gnu
843
echo ${UNAME_MACHINE}-unknown-linux-gnu
846
echo ${UNAME_MACHINE}-unknown-linux-gnu
849
eval $set_cc_for_build
850
sed 's/^ //' << EOF >$dummy.c
854
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
857
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
864
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
865
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
868
eval $set_cc_for_build
869
sed 's/^ //' << EOF >$dummy.c
873
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
876
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
883
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
884
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
887
echo powerpc-unknown-linux-gnu
890
echo powerpc64-unknown-linux-gnu
893
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
894
EV5) UNAME_MACHINE=alphaev5 ;;
895
EV56) UNAME_MACHINE=alphaev56 ;;
896
PCA56) UNAME_MACHINE=alphapca56 ;;
897
PCA57) UNAME_MACHINE=alphapca56 ;;
898
EV6) UNAME_MACHINE=alphaev6 ;;
899
EV67) UNAME_MACHINE=alphaev67 ;;
900
EV68*) UNAME_MACHINE=alphaev68 ;;
902
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
903
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
904
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
906
parisc:Linux:*:* | hppa:Linux:*:*)
908
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
909
PA7*) echo hppa1.1-unknown-linux-gnu ;;
910
PA8*) echo hppa2.0-unknown-linux-gnu ;;
911
*) echo hppa-unknown-linux-gnu ;;
914
parisc64:Linux:*:* | hppa64:Linux:*:*)
915
echo hppa64-unknown-linux-gnu
917
s390:Linux:*:* | s390x:Linux:*:*)
918
echo ${UNAME_MACHINE}-ibm-linux
921
echo ${UNAME_MACHINE}-unknown-linux-gnu
924
echo ${UNAME_MACHINE}-unknown-linux-gnu
926
sparc:Linux:*:* | sparc64:Linux:*:*)
927
echo ${UNAME_MACHINE}-unknown-linux-gnu
930
echo x86_64-unknown-linux-gnu
650
933
# The BFD linker knows what the default object file format is, so
651
934
# first see if it will tell us. cd to the root directory to prevent
652
935
# problems with other programs or directories called `ld' in the path.
653
ld_help_string=`cd /; ld --help 2>&1`
654
ld_supported_emulations=`echo $ld_help_string \
655
| sed -ne '/supported emulations:/!d
936
# Set LC_ALL=C to ensure ld outputs messages in English.
937
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
938
| sed -ne '/supported targets:/!d
657
s/.*supported emulations: *//
940
s/.*supported targets: *//
660
case "$ld_supported_emulations" in
662
echo "${UNAME_MACHINE}-unknown-linux"
943
case "$ld_supported_targets" in
945
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
666
948
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
670
echo "${UNAME_MACHINE}-pc-linux"
674
951
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
678
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
682
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
686
echo "${UNAME_MACHINE}-unknown-linux-gnuoldld"
690
echo "${UNAME_MACHINE}-unknown-linux-gnu"
694
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
697
elf32ppc | elf32ppclinux)
698
# Determine Lib Version
700
#include <features.h>
701
#if defined(__GLIBC__)
702
extern char __libc_version[];
703
extern char __libc_release[];
709
#if defined(__GLIBC__)
710
printf("%s %s\n", __libc_version, __libc_release);
718
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
719
if test "$?" = 0 ; then
720
./$dummy | grep 1\.99 > /dev/null
721
if test "$?" = 0 ; then
725
rm -f $dummy.c $dummy
726
echo powerpc-unknown-linux-gnu${LIBC}
954
# Either a pre-BFD a.out linker (linux-gnuoldld) or
955
# one that does not give us useful --help.
956
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
731
if test "${UNAME_MACHINE}" = "alpha" ; then
735
.byte 37,100,45,37,120,10,0 # "%d-%x\n"
742
.frame \$30,16,\$26,0
745
.long 0x47e03d80 # implver \$0
747
.long 0x47e20c21 # amask \$2,\$1
758
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
759
if test "$?" = 0 ; then
762
UNAME_MACHINE="alpha"
765
UNAME_MACHINE="alphaev5"
768
UNAME_MACHINE="alphaev56"
771
UNAME_MACHINE="alphapca56"
774
UNAME_MACHINE="alphaev6"
777
UNAME_MACHINE="alphaev67"
781
objdump --private-headers $dummy | \
782
grep ld.so.1 > /dev/null
783
if test "$?" = 0 ; then
787
rm -f $dummy.s $dummy
788
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
789
elif test "${UNAME_MACHINE}" = "mips" ; then
792
#include <stdio.h> /* for printf() prototype */
793
int main (int argc, char *argv[]) {
795
int main (argc, argv) int argc; char *argv[]; {
798
printf ("%s-unknown-linux-gnu\n", argv[1]);
801
printf ("%sel-unknown-linux-gnu\n", argv[1]);
806
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
807
rm -f $dummy.c $dummy
808
elif test "${UNAME_MACHINE}" = "s390"; then
809
echo s390-ibm-linux && exit 0
811
# Either a pre-BFD a.out linker (linux-gnuoldld)
812
# or one that does not give us useful --help.
813
# GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
814
# If ld does not provide *any* "supported emulations:"
815
# that means it is gnuoldld.
816
echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
817
test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
819
case "${UNAME_MACHINE}" in
827
# Determine whether the default compiler is a.out or elf
829
#include <features.h>
831
#include <stdio.h> /* for printf() prototype */
832
int main (int argc, char *argv[]) {
834
int main (argc, argv) int argc; char *argv[]; {
839
printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
841
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
844
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
847
printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
852
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
853
rm -f $dummy.c $dummy
855
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
856
# are messed up and put the nodename in both sysname and nodename.
959
# Determine whether the default compiler is a.out or elf
960
eval $set_cc_for_build
961
sed 's/^ //' << EOF >$dummy.c
962
#include <features.h>
974
#ifdef __INTEL_COMPILER
984
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
985
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
986
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
989
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
990
# earlier versions are messed up and put the nodename in both
991
# sysname and nodename.
858
992
echo i386-sequent-sysv4
860
i?86:UNIX_SV:4.2MP:2.*)
994
i*86:UNIX_SV:4.2MP:2.*)
861
995
# Unixware is an offshoot of SVR4, but it has its own version
862
996
# number series starting with 2...
863
997
# I am not positive that other SVR4 systems won't match this,