source: trunk/essentials/sys-libs/ncurses/config.guess@ 3166

Last change on this file since 3166 was 3043, checked in by bird, 19 years ago

-> essentials

File size: 42.4 KB
RevLine 
[2621]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
6timestamp='2005-09-19'
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 <[email protected]>.
30# Please send patches to <[email protected]>. 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
40me=`echo "$0" | sed -e 's,.*/,,'`
41
42usage="\
43Usage: $0 [OPTION]
44
45Output the configuration name of the system \`$me' is run on.
46
47Operation 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
52Report bugs and patches to <[email protected]>."
53
54version="\
55GNU config.guess ($timestamp)
56
57Originally written by Per Bothner.
58Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
59Free Software Foundation, Inc.
60
61This is free software; see the source for copying conditions. There is NO
62warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
63
64help="
65Try \`$me --help' for more information."
66
67# Parse command line
68while 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
86done
87
88if test $# != 0; then
89 echo "$me: too many arguments$help" >&2
90 exit 1
91fi
92
93trap '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
105set_cc_for_build='
106trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
107trap "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 ; } ;
113dummy=$tmp/dummy ;
114tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
115case $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 ;;
128esac ; set_cc_for_build= ;'
129
130# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
131# ([email protected] 1994-08-24)
132if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
133 PATH=$PATH:/.attbin ; export PATH
134fi
135
136UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
137UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
138UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
139UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
140
141# Note: order is significant - the case branches are not exclusive.
142
143case "${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
230 "EV4 (21064)")
231 UNAME_MACHINE="alpha" ;;
232 "EV4.5 (21064)")
233 UNAME_MACHINE="alpha" ;;
234 "LCA4 (21066/21068)")
235 UNAME_MACHINE="alpha" ;;
236 "EV5 (21164)")
237 UNAME_MACHINE="alphaev5" ;;
238 "EV5.6 (21164A)")
239 UNAME_MACHINE="alphaev56" ;;
240 "EV5.6 (21164PC)")
241 UNAME_MACHINE="alphapca56" ;;
242 "EV5.7 (21164PC)")
243 UNAME_MACHINE="alphapca57" ;;
244 "EV6 (21264)")
245 UNAME_MACHINE="alphaev6" ;;
246 "EV6.7 (21264A)")
247 UNAME_MACHINE="alphaev67" ;;
248 "EV6.8CB (21264C)")
249 UNAME_MACHINE="alphaev68" ;;
250 "EV6.8AL (21264B)")
251 UNAME_MACHINE="alphaev68" ;;
252 "EV6.8CX (21264D)")
253 UNAME_MACHINE="alphaev68" ;;
254 "EV6.9A (21264/EV69A)")
255 UNAME_MACHINE="alphaev69" ;;
256 "EV7 (21364)")
257 UNAME_MACHINE="alphaev7" ;;
258 "EV7.9 (21364A)")
259 UNAME_MACHINE="alphaev79" ;;
260 esac
261 # A Pn.n version is a patched version.
262 # A Vn.n version is a released version.
263 # A Tn.n version is a released field test version.
264 # A Xn.n version is an unreleased experimental baselevel.
265 # 1.2 uses "1.2" for uname -r.
266 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
267 exit ;;
268 Alpha\ *:Windows_NT*:*)
269 # How do we know it's Interix rather than the generic POSIX subsystem?
270 # Should we change UNAME_MACHINE based on the output of uname instead
271 # of the specific Alpha model?
272 echo alpha-pc-interix
273 exit ;;
274 21064:Windows_NT:50:3)
275 echo alpha-dec-winnt3.5
276 exit ;;
277 Amiga*:UNIX_System_V:4.0:*)
278 echo m68k-unknown-sysv4
279 exit ;;
280 *:[Aa]miga[Oo][Ss]:*:*)
281 echo ${UNAME_MACHINE}-unknown-amigaos
282 exit ;;
283 *:[Mm]orph[Oo][Ss]:*:*)
284 echo ${UNAME_MACHINE}-unknown-morphos
285 exit ;;
286 *:OS/390:*:*)
287 echo i370-ibm-openedition
288 exit ;;
289 *:z/VM:*:*)
290 echo s390-ibm-zvmoe
291 exit ;;
292 *:OS400:*:*)
293 echo powerpc-ibm-os400
294 exit ;;
295 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
296 echo arm-acorn-riscix${UNAME_RELEASE}
297 exit ;;
298 arm:riscos:*:*|arm:RISCOS:*:*)
299 echo arm-unknown-riscos
300 exit ;;
301 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
302 echo hppa1.1-hitachi-hiuxmpp
303 exit ;;
304 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
305 # [email protected] (Earle F. Ake) contributed MIS and NILE.
306 if test "`(/bin/universe) 2>/dev/null`" = att ; then
307 echo pyramid-pyramid-sysv3
308 else
309 echo pyramid-pyramid-bsd
310 fi
311 exit ;;
312 NILE*:*:*:dcosx)
313 echo pyramid-pyramid-svr4
314 exit ;;
315 DRS?6000:unix:4.0:6*)
316 echo sparc-icl-nx6
317 exit ;;
318 DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
319 case `/usr/bin/uname -p` in
320 sparc) echo sparc-icl-nx7; exit ;;
321 esac ;;
322 sun4H:SunOS:5.*:*)
323 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
324 exit ;;
325 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
326 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
327 exit ;;
328 i86pc:SunOS:5.*:*)
329 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
330 exit ;;
331 sun4*:SunOS:6*:*)
332 # According to config.sub, this is the proper way to canonicalize
333 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
334 # it's likely to be more like Solaris than SunOS4.
335 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
336 exit ;;
337 sun4*:SunOS:*:*)
338 case "`/usr/bin/arch -k`" in
339 Series*|S4*)
340 UNAME_RELEASE=`uname -v`
341 ;;
342 esac
343 # Japanese Language versions have a version number like `4.1.3-JL'.
344 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
345 exit ;;
346 sun3*:SunOS:*:*)
347 echo m68k-sun-sunos${UNAME_RELEASE}
348 exit ;;
349 sun*:*:4.2BSD:*)
350 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
351 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
352 case "`/bin/arch`" in
353 sun3)
354 echo m68k-sun-sunos${UNAME_RELEASE}
355 ;;
356 sun4)
357 echo sparc-sun-sunos${UNAME_RELEASE}
358 ;;
359 esac
360 exit ;;
361 aushp:SunOS:*:*)
362 echo sparc-auspex-sunos${UNAME_RELEASE}
363 exit ;;
364 # The situation for MiNT is a little confusing. The machine name
365 # can be virtually everything (everything which is not
366 # "atarist" or "atariste" at least should have a processor
367 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
368 # to the lowercase version "mint" (or "freemint"). Finally
369 # the system name "TOS" denotes a system which is actually not
370 # MiNT. But MiNT is downward compatible to TOS, so this should
371 # be no problem.
372 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
373 echo m68k-atari-mint${UNAME_RELEASE}
374 exit ;;
375 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
376 echo m68k-atari-mint${UNAME_RELEASE}
377 exit ;;
378 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
379 echo m68k-atari-mint${UNAME_RELEASE}
380 exit ;;
381 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
382 echo m68k-milan-mint${UNAME_RELEASE}
383 exit ;;
384 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
385 echo m68k-hades-mint${UNAME_RELEASE}
386 exit ;;
387 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
388 echo m68k-unknown-mint${UNAME_RELEASE}
389 exit ;;
390 m68k:machten:*:*)
391 echo m68k-apple-machten${UNAME_RELEASE}
392 exit ;;
393 powerpc:machten:*:*)
394 echo powerpc-apple-machten${UNAME_RELEASE}
395 exit ;;
396 RISC*:Mach:*:*)
397 echo mips-dec-mach_bsd4.3
398 exit ;;
399 RISC*:ULTRIX:*:*)
400 echo mips-dec-ultrix${UNAME_RELEASE}
401 exit ;;
402 VAX*:ULTRIX*:*:*)
403 echo vax-dec-ultrix${UNAME_RELEASE}
404 exit ;;
405 2020:CLIX:*:* | 2430:CLIX:*:*)
406 echo clipper-intergraph-clix${UNAME_RELEASE}
407 exit ;;
408 mips:*:*:UMIPS | mips:*:*:RISCos)
409 eval $set_cc_for_build
410 sed 's/^ //' << EOF >$dummy.c
411#ifdef __cplusplus
412#include <stdio.h> /* for printf() prototype */
413 int main (int argc, char *argv[]) {
414#else
415 int main (argc, argv) int argc; char *argv[]; {