24
22
# configuration script generated by Autoconf, you may include it under
25
23
# the same distribution terms that you use for the rest of that program.
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.
25
# Written by Per Bothner <bothner@cygnus.com>.
26
# Please send patches to <config-patches@gnu.org>.
31
28
# This script attempts to guess a canonical system name similar to
32
29
# config.sub. If it succeeds, it prints the system name on stdout, and
33
30
# exits with 0. Otherwise, it exits with 1.
35
32
# The plan is that this can be called by configure scripts if you
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
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
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
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 ;;
128
53
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
129
# (ghazi@noc.rutgers.edu 1994-08-24)
54
# (ghazi@noc.rutgers.edu 8/24/94.)
130
55
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
131
56
PATH=$PATH:/.attbin ; export PATH
134
59
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
135
60
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
136
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
61
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
137
62
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
65
trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
139
67
# Note: order is significant - the case branches are not exclusive.
141
69
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
143
# NetBSD (nbsd) targets should (where applicable) match one or
71
# Netbsd (nbsd) targets should (where applicable) match one or
144
72
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
145
73
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
146
74
# switched to ELF, *-*-netbsd* would select the old
147
75
# object file format. This provides both forward
148
76
# compatibility and a consistent mechanism for selecting the
149
77
# object file format.
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?
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?
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/[-_].*/\./'`
101
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
195
102
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
196
103
# contains redundant information, the shorter form:
197
104
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
198
105
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}
249
case $UNAME_RELEASE in
108
if test $UNAME_RELEASE = "V4.0"; then
251
109
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.
295
111
# A Vn.n version is a released version.
296
112
# A Tn.n version is a released field test version.
297
113
# A Xn.n version is an unreleased experimental baselevel.
298
114
# 1.2 uses "1.2" for uname -r.
299
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
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'`
301
166
Alpha\ *:Windows_NT*:*)
302
167
# How do we know it's Interix rather than the generic POSIX subsystem?
808
643
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
812
646
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
815
# other systems with GNU libc and userland
816
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
819
echo ${UNAME_MACHINE}-pc-minix
822
echo ${UNAME_MACHINE}-unknown-linux-gnu
825
echo cris-axis-linux-gnu
828
echo ${UNAME_MACHINE}-unknown-linux-gnu
831
echo ${UNAME_MACHINE}-unknown-linux-gnu
834
echo ${UNAME_MACHINE}-unknown-linux-gnu
837
eval $set_cc_for_build
838
sed 's/^ //' << EOF >$dummy.c
842
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
845
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
852
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
853
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
856
eval $set_cc_for_build
857
sed 's/^ //' << EOF >$dummy.c
861
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
864
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
871
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
872
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
875
echo powerpc-unknown-linux-gnu
878
echo powerpc64-unknown-linux-gnu
881
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
882
EV5) UNAME_MACHINE=alphaev5 ;;
883
EV56) UNAME_MACHINE=alphaev56 ;;
884
PCA56) UNAME_MACHINE=alphapca56 ;;
885
PCA57) UNAME_MACHINE=alphapca56 ;;
886
EV6) UNAME_MACHINE=alphaev6 ;;
887
EV67) UNAME_MACHINE=alphaev67 ;;
888
EV68*) UNAME_MACHINE=alphaev68 ;;
890
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
891
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
892
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
894
parisc:Linux:*:* | hppa:Linux:*:*)
896
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
897
PA7*) echo hppa1.1-unknown-linux-gnu ;;
898
PA8*) echo hppa2.0-unknown-linux-gnu ;;
899
*) echo hppa-unknown-linux-gnu ;;
902
parisc64:Linux:*:* | hppa64:Linux:*:*)
903
echo hppa64-unknown-linux-gnu
905
s390:Linux:*:* | s390x:Linux:*:*)
906
echo ${UNAME_MACHINE}-ibm-linux
909
echo ${UNAME_MACHINE}-unknown-linux-gnu
912
echo ${UNAME_MACHINE}-unknown-linux-gnu
914
sparc:Linux:*:* | sparc64:Linux:*:*)
915
echo ${UNAME_MACHINE}-unknown-linux-gnu
918
echo x86_64-unknown-linux-gnu
921
650
# The BFD linker knows what the default object file format is, so
922
651
# first see if it will tell us. cd to the root directory to prevent
923
652
# problems with other programs or directories called `ld' in the path.
924
# Set LC_ALL=C to ensure ld outputs messages in English.
925
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
926
| sed -ne '/supported targets:/!d
653
ld_help_string=`cd /; ld --help 2>&1`
654
ld_supported_emulations=`echo $ld_help_string \
655
| sed -ne '/supported emulations:/!d
928
s/.*supported targets: *//
657
s/.*supported emulations: *//
931
case "$ld_supported_targets" in
933
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
660
case "$ld_supported_emulations" in
662
echo "${UNAME_MACHINE}-unknown-linux"
936
666
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
670
echo "${UNAME_MACHINE}-pc-linux"
939
674
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
942
# Either a pre-BFD a.out linker (linux-gnuoldld) or
943
# one that does not give us useful --help.
944
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
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}
947
# Determine whether the default compiler is a.out or elf
948
eval $set_cc_for_build
949
sed 's/^ //' << EOF >$dummy.c
950
#include <features.h>
962
#ifdef __INTEL_COMPILER
972
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
973
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
974
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
977
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
978
# earlier versions are messed up and put the nodename in both
979
# sysname and nodename.
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.
980
858
echo i386-sequent-sysv4
982
i*86:UNIX_SV:4.2MP:2.*)
860
i?86:UNIX_SV:4.2MP:2.*)
983
861
# Unixware is an offshoot of SVR4, but it has its own version
984
862
# number series starting with 2...
985
863
# I am not positive that other SVR4 systems won't match this,