|
|
1 |
#! /bin/sh |
|
|
2 |
# Attempt to guess a canonical system name. |
|
|
3 |
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
|
|
4 |
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
|
|
5 |
|
|
|
6 |
timestamp='2005-08-03' |
|
|
7 |
|
|
|
8 |
# This file is free software; you can redistribute it and/or modify it |
|
|
9 |
# under the terms of the GNU General Public License as published by |
|
|
10 |
# the Free Software Foundation; either version 2 of the License, or |
|
|
11 |
# (at your option) any later version. |
|
|
12 |
# |
|
|
13 |
# This program is distributed in the hope that it will be useful, but |
|
|
14 |
# WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
15 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
|
16 |
# General Public License for more details. |
|
|
17 |
# |
|
|
18 |
# You should have received a copy of the GNU General Public License |
|
|
19 |
# along with this program; if not, write to the Free Software |
|
|
20 |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA |
|
|
21 |
# 02110-1301, USA. |
|
|
22 |
# |
|
|
23 |
# As a special exception to the GNU General Public License, if you |
|
|
24 |
# distribute this file as part of a program that contains a |
|
|
25 |
# configuration script generated by Autoconf, you may include it under |
|
|
26 |
# the same distribution terms that you use for the rest of that program. |
|
|
27 |
|
|
|
28 |
|
|
|
29 |
# Originally written by Per Bothner <per@bothner.com>. |
|
|
30 |
# Please send patches to <config-patches@gnu.org>. Submit a context |
|
|
31 |
# diff and a properly formatted ChangeLog entry. |
|
|
32 |
# |
|
|
33 |
# This script attempts to guess a canonical system name similar to |
|
|
34 |
# config.sub. If it succeeds, it prints the system name on stdout, and |
|
|
35 |
# exits with 0. Otherwise, it exits with 1. |
|
|
36 |
# |
|
|
37 |
# The plan is that this can be called by configure scripts if you |
|
|
38 |
# don't specify an explicit build system type. |
|
|
39 |
|
|
|
40 |
me=`echo "$0" | sed -e 's,.*/,,'` |
|
|
41 |
|
|
|
42 |
usage="\ |
|
|
43 |
Usage: $0 [OPTION] |
|
|
44 |
|
|
|
45 |
Output the configuration name of the system \`$me' is run on. |
|
|
46 |
|
|
|
47 |
Operation modes: |
|
|
48 |
-h, --help print this help, then exit |
|
|
49 |
-t, --time-stamp print date of last modification, then exit |
|
|
50 |
-v, --version print version number, then exit |
|
|
51 |
|
|
|
52 |
Report bugs and patches to <config-patches@gnu.org>." |
|
|
53 |
|
|
|
54 |
version="\ |
|
|
55 |
GNU config.guess ($timestamp) |
|
|
56 |
|
|
|
57 |
Originally written by Per Bothner. |
|
|
58 |
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 |
|
|
59 |
Free Software Foundation, Inc. |
|
|
60 |
|
|
|
61 |
This is free software; see the source for copying conditions. There is NO |
|
|
62 |
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
|
|
63 |
|
|
|
64 |
help=" |
|
|
65 |
Try \`$me --help' for more information." |
|
|
66 |
|
|
|
67 |
# Parse command line |
|
|
68 |
while test $# -gt 0 ; do |
|
|
69 |
case $1 in |
|
|
70 |
--time-stamp | --time* | -t ) |
|
|
71 |
echo "$timestamp" ; exit ;; |
|
|
72 |
--version | -v ) |
|
|
73 |
echo "$version" ; exit ;; |
|
|
74 |
--help | --h* | -h ) |
|
|
75 |
echo "$usage"; exit ;; |
|
|
76 |
-- ) # Stop option processing |
|
|
77 |
shift; break ;; |
|
|
78 |
- ) # Use stdin as input. |
|
|
79 |
break ;; |
|
|
80 |
-* ) |
|
|
81 |
echo "$me: invalid option $1$help" >&2 |
|
|
82 |
exit 1 ;; |
|
|
83 |
* ) |
|
|
84 |
break ;; |
|
|
85 |
esac |
|
|
86 |
done |
|
|
87 |
|
|
|
88 |
if test $# != 0; then |
|
|
89 |
echo "$me: too many arguments$help" >&2 |
|
|
90 |
exit 1 |
|
|
91 |
fi |
|
|
92 |
|
|
|
93 |
trap 'exit 1' 1 2 15 |
|
|
94 |
|
|
|
95 |
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a |
|
|
96 |
# compiler to aid in system detection is discouraged as it requires |
|
|
97 |
# temporary files to be created and, as you can see below, it is a |
|
|
98 |
# headache to deal with in a portable fashion. |
|
|
99 |
|
|
|
100 |
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still |
|
|
101 |
# use `HOST_CC' if defined, but it is deprecated. |
|
|
102 |
|
|
|
103 |
# Portable tmp directory creation inspired by the Autoconf team. |
|
|
104 |
|
|
|
105 |
set_cc_for_build=' |
|
|
106 |
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; |
|
|
107 |
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; |
|
|
108 |
: ${TMPDIR=/tmp} ; |
|
|
109 |
{ tmp=`(umask 077 && mktemp -d -q "$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 |
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; |
|
|
113 |
dummy=$tmp/dummy ; |
|
|
114 |
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; |
|
|
115 |
case $CC_FOR_BUILD,$HOST_CC,$CC in |
|
|
116 |
,,) echo "int x;" > $dummy.c ; |
|
|
117 |
for c in cc gcc c89 c99 ; do |
|
|
118 |
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then |
|
|
119 |
CC_FOR_BUILD="$c"; break ; |
|
|
120 |
fi ; |
|
|
121 |
done ; |
|
|
122 |
if test x"$CC_FOR_BUILD" = x ; then |
|
|
123 |
CC_FOR_BUILD=no_compiler_found ; |
|
|
124 |
fi |
|
|
125 |
;; |
|
|
126 |
,,*) CC_FOR_BUILD=$CC ;; |
|
|
127 |
,*,*) 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 |
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then |
|
|
133 |
PATH=$PATH:/.attbin ; export PATH |
|
|
134 |
fi |
|
|
135 |
|
|
|
136 |
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown |
|
|
137 |
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown |
|
|
138 |
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown |
|
|
139 |
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown |
|
|
140 |
|
|
|
141 |
# Note: order is significant - the case branches are not exclusive. |
|
|
142 |
|
|
|
143 |
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 tupples: *-*-netbsdelf*, *-*-netbsdaout*, |
|
|
147 |
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently |
|
|
148 |
# switched to ELF, *-*-netbsd* would select the old |
|
|
149 |
# object file format. This provides both forward |
|
|
150 |
# compatibility and a consistent mechanism for selecting the |
|
|
151 |
# object file format. |
|
|
152 |
# |
|
|
153 |
# Note: NetBSD doesn't particularly care about the vendor |
|
|
154 |
# portion of the name. We always set it to "unknown". |
|
|
155 |
sysctl="sysctl -n hw.machine_arch" |
|
|
156 |
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ |
|
|
157 |
/usr/sbin/$sysctl 2>/dev/null || echo unknown)` |
|
|
158 |
case "${UNAME_MACHINE_ARCH}" in |
|
|
159 |
armeb) machine=armeb-unknown ;; |
|
|
160 |
arm*) machine=arm-unknown ;; |
|
|
161 |
sh3el) machine=shl-unknown ;; |
|
|
162 |
sh3eb) machine=sh-unknown ;; |
|
|
163 |
*) machine=${UNAME_MACHINE_ARCH}-unknown ;; |
|
|
164 |
esac |
|
|
165 |
# The Operating System including object format, if it has switched |
|
|
166 |
# to ELF recently, or will in the future. |
|
|
167 |
case "${UNAME_MACHINE_ARCH}" in |
|
|
168 |
arm*|i386|m68k|ns32k|sh3*|sparc|vax) |
|
|
169 |
eval $set_cc_for_build |
|
|
170 |
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
|
|
171 |
| grep __ELF__ >/dev/null |
|
|
172 |
then |
|
|
173 |
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). |
|
|
174 |
# Return netbsd for either. FIX? |
|
|
175 |
os=netbsd |
|
|
176 |
else |
|
|
177 |
os=netbsdelf |
|
|
178 |
fi |
|
|
179 |
;; |
|
|
180 |
*) |
|
|
181 |
os=netbsd |
|
|
182 |
;; |
|
|
183 |
esac |
|
|
184 |
# The OS release |
|
|
185 |
# Debian GNU/NetBSD machines have a different userland, and |
|
|
186 |
# thus, need a distinct triplet. However, they do not need |
|
|
187 |
# kernel version information, so it can be replaced with a |
|
|
188 |
# suitable tag, in the style of linux-gnu. |
|
|
189 |
case "${UNAME_VERSION}" in |
|
|
190 |
Debian*) |
|
|
191 |
release='-gnu' |
|
|
192 |
;; |
|
|
193 |
*) |
|
|
194 |
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` |
|
|
195 |
;; |
|
|
196 |
esac |
|
|
197 |
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: |
|
|
198 |
# contains redundant information, the shorter form: |
|
|
199 |
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. |
|
|
200 |
echo "${machine}-${os}${release}" |
|
|
201 |
exit ;; |
|
|
202 |
*:OpenBSD:*:*) |
|
|
203 |
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` |
|
|
204 |
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} |
|
|
205 |
exit ;; |
|
|
206 |
*:ekkoBSD:*:*) |
|
|
207 |
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} |
|
|
208 |
exit ;; |
|
|
209 |
macppc:MirBSD:*:*) |
|
|
210 |
echo powerppc-unknown-mirbsd${UNAME_RELEASE} |
|
|
211 |
exit ;; |
|
|
212 |
*:MirBSD:*:*) |
|
|
213 |
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} |
|
|
214 |
exit ;; |
|
|
215 |
alpha:OSF1:*:*) |
|
|
216 |
case $UNAME_RELEASE in |
|
|
217 |
*4.0) |
|
|
218 |
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` |
|
|
219 |
;; |
|
|
220 |
*5.*) |
|
|
221 |
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` |
|
|
222 |
;; |
|
|
223 |
esac |
|
|
224 |
# According to Compaq, /usr/sbin/psrinfo has been available on |
|
|
225 |
# OSF/1 and Tru64 systems produced since 1995. I hope that |
|
|
226 |
# covers most systems running today. This code pipes the CPU |
|
|
227 |
# types through head -n 1, so we only detect the type of CPU 0. |
|
|
228 |
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` |
|
|
229 |
case "$ALPHA_CPU_TYPE" in |
|
|