Mercurial > hg > early-roguelike
comparison build-aux/config.guess @ 317:aab761616489 default tip
Rearrange some Autoconf files.
Autoconf was failing to detect install-sh at the top level and needed
some explicit directions. It also wants config.guess and config.sub to
be provided too.
A few other macros have also been updated.
author | John "Elwin" Edwards |
---|---|
date | Tue, 05 Sep 2023 20:05:24 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
316:c03d0b87211c | 317:aab761616489 |
---|---|
1 #!/usr/bin/sh | |
2 # Attempt to guess a canonical system name. | |
3 # Copyright 1992-2022 Free Software Foundation, Inc. | |
4 | |
5 # shellcheck disable=SC2006,SC2268 # see below for rationale | |
6 | |
7 timestamp='2022-05-25' | |
8 | |
9 # This file is free software; you can redistribute it and/or modify it | |
10 # under the terms of the GNU General Public License as published by | |
11 # the Free Software Foundation, either version 3 of the License, or | |
12 # (at your option) any later version. | |
13 # | |
14 # This program is distributed in the hope that it will be useful, but | |
15 # WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
17 # General Public License for more details. | |
18 # | |
19 # You should have received a copy of the GNU General Public License | |
20 # along with this program; if not, see <https://www.gnu.org/licenses/>. | |
21 # | |
22 # As a special exception to the GNU General Public License, if you | |
23 # distribute this file as part of a program that contains a | |
24 # configuration script generated by Autoconf, you may include it under | |
25 # the same distribution terms that you use for the rest of that | |
26 # program. This Exception is an additional permission under section 7 | |
27 # of the GNU General Public License, version 3 ("GPLv3"). | |
28 # | |
29 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. | |
30 # | |
31 # You can get the latest version of this script from: | |
32 # https://git.savannah.gnu.org/cgit/config.git/plain/config.guess | |
33 # | |
34 # Please send patches to <config-patches@gnu.org>. | |
35 | |
36 | |
37 # The "shellcheck disable" line above the timestamp inhibits complaints | |
38 # about features and limitations of the classic Bourne shell that were | |
39 # superseded or lifted in POSIX. However, this script identifies a wide | |
40 # variety of pre-POSIX systems that do not have POSIX shells at all, and | |
41 # even some reasonably current systems (Solaris 10 as case-in-point) still | |
42 # have a pre-POSIX /bin/sh. | |
43 | |
44 | |
45 me=`echo "$0" | sed -e 's,.*/,,'` | |
46 | |
47 usage="\ | |
48 Usage: $0 [OPTION] | |
49 | |
50 Output the configuration name of the system \`$me' is run on. | |
51 | |
52 Options: | |
53 -h, --help print this help, then exit | |
54 -t, --time-stamp print date of last modification, then exit | |
55 -v, --version print version number, then exit | |
56 | |
57 Report bugs and patches to <config-patches@gnu.org>." | |
58 | |
59 version="\ | |
60 GNU config.guess ($timestamp) | |
61 | |
62 Originally written by Per Bothner. | |
63 Copyright 1992-2022 Free Software Foundation, Inc. | |
64 | |
65 This is free software; see the source for copying conditions. There is NO | |
66 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." | |
67 | |
68 help=" | |
69 Try \`$me --help' for more information." | |
70 | |
71 # Parse command line | |
72 while test $# -gt 0 ; do | |
73 case $1 in | |
74 --time-stamp | --time* | -t ) | |
75 echo "$timestamp" ; exit ;; | |
76 --version | -v ) | |
77 echo "$version" ; exit ;; | |
78 --help | --h* | -h ) | |
79 echo "$usage"; exit ;; | |
80 -- ) # Stop option processing | |
81 shift; break ;; | |
82 - ) # Use stdin as input. | |
83 break ;; | |
84 -* ) | |
85 echo "$me: invalid option $1$help" >&2 | |
86 exit 1 ;; | |
87 * ) | |
88 break ;; | |
89 esac | |
90 done | |
91 | |
92 if test $# != 0; then | |
93 echo "$me: too many arguments$help" >&2 | |
94 exit 1 | |
95 fi | |
96 | |
97 # Just in case it came from the environment. | |
98 GUESS= | |
99 | |
100 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a | |
101 # compiler to aid in system detection is discouraged as it requires | |
102 # temporary files to be created and, as you can see below, it is a | |
103 # headache to deal with in a portable fashion. | |
104 | |
105 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still | |
106 # use `HOST_CC' if defined, but it is deprecated. | |
107 | |
108 # Portable tmp directory creation inspired by the Autoconf team. | |
109 | |
110 tmp= | |
111 # shellcheck disable=SC2172 | |
112 trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 | |
113 | |
114 set_cc_for_build() { | |
115 # prevent multiple calls if $tmp is already set | |
116 test "$tmp" && return 0 | |
117 : "${TMPDIR=/tmp}" | |
118 # shellcheck disable=SC2039,SC3028 | |
119 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || | |
120 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || | |
121 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || | |
122 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } | |
123 dummy=$tmp/dummy | |
124 case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in | |
125 ,,) echo "int x;" > "$dummy.c" | |
126 for driver in cc gcc c89 c99 ; do | |
127 if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then | |
128 CC_FOR_BUILD=$driver | |
129 break | |
130 fi | |
131 done | |
132 if test x"$CC_FOR_BUILD" = x ; then | |
133 CC_FOR_BUILD=no_compiler_found | |
134 fi | |
135 ;; | |
136 ,,*) CC_FOR_BUILD=$CC ;; | |
137 ,*,*) CC_FOR_BUILD=$HOST_CC ;; | |
138 esac | |
139 } | |
140 | |
141 # This is needed to find uname on a Pyramid OSx when run in the BSD universe. | |
142 # (ghazi@noc.rutgers.edu 1994-08-24) | |
143 if test -f /.attbin/uname ; then | |
144 PATH=$PATH:/.attbin ; export PATH | |
145 fi | |
146 | |
147 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown | |
148 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown | |
149 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown | |
150 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown | |
151 | |
152 case $UNAME_SYSTEM in | |
153 Linux|GNU|GNU/*) | |
154 LIBC=unknown | |
155 | |
156 set_cc_for_build | |
157 cat <<-EOF > "$dummy.c" | |
158 #include <features.h> | |
159 #if defined(__UCLIBC__) | |
160 LIBC=uclibc | |
161 #elif defined(__dietlibc__) | |
162 LIBC=dietlibc | |
163 #elif defined(__GLIBC__) | |
164 LIBC=gnu | |
165 #else | |
166 #include <stdarg.h> | |
167 /* First heuristic to detect musl libc. */ | |
168 #ifdef __DEFINED_va_list | |
169 LIBC=musl | |
170 #endif | |
171 #endif | |
172 EOF | |
173 cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` | |
174 eval "$cc_set_libc" | |
175 | |
176 # Second heuristic to detect musl libc. | |
177 if [ "$LIBC" = unknown ] && | |
178 command -v ldd >/dev/null && | |
179 ldd --version 2>&1 | grep -q ^musl; then | |
180 LIBC=musl | |
181 fi | |
182 | |
183 # If the system lacks a compiler, then just pick glibc. | |
184 # We could probably try harder. | |
185 if [ "$LIBC" = unknown ]; then | |
186 LIBC=gnu | |
187 fi | |
188 ;; | |
189 esac | |
190 | |
191 # Note: order is significant - the case branches are not exclusive. | |
192 | |
193 case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in | |
194 *:NetBSD:*:*) | |
195 # NetBSD (nbsd) targets should (where applicable) match one or | |
196 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, | |
197 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently | |
198 # switched to ELF, *-*-netbsd* would select the old | |
199 # object file format. This provides both forward | |
200 # compatibility and a consistent mechanism for selecting the | |
201 # object file format. | |
202 # | |
203 # Note: NetBSD doesn't particularly care about the vendor | |
204 # portion of the name. We always set it to "unknown". | |
205 UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ | |
206 /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ | |
207 /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ | |
208 echo unknown)` | |
209 case $UNAME_MACHINE_ARCH in | |
210 aarch64eb) machine=aarch64_be-unknown ;; | |
211 armeb) machine=armeb-unknown ;; | |
212 arm*) machine=arm-unknown ;; | |
213 sh3el) machine=shl-unknown ;; | |
214 sh3eb) machine=sh-unknown ;; | |
215 sh5el) machine=sh5le-unknown ;; | |
216 earmv*) | |
217 arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` | |
218 endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` | |
219 machine=${arch}${endian}-unknown | |
220 ;; | |
221 *) machine=$UNAME_MACHINE_ARCH-unknown ;; | |
222 esac | |
223 # The Operating System including object format, if it has switched | |
224 # to ELF recently (or will in the future) and ABI. | |
225 case $UNAME_MACHINE_ARCH in | |
226 earm*) | |
227 os=netbsdelf | |
228 ;; | |
229 arm*|i386|m68k|ns32k|sh3*|sparc|vax) | |
230 set_cc_for_build | |
231 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | |
232 | grep -q __ELF__ | |
233 then | |
234 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). | |
235 # Return netbsd for either. FIX? | |
236 os=netbsd | |
237 else | |
238 os=netbsdelf | |
239 fi | |
240 ;; | |
241 *) | |
242 os=netbsd | |
243 ;; | |
244 esac | |
245 # Determine ABI tags. | |
246 case $UNAME_MACHINE_ARCH in | |
247 earm*) | |
248 expr='s/^earmv[0-9]/-eabi/;s/eb$//' | |
249 abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` | |
250 ;; | |
251 esac | |
252 # The OS release | |
253 # Debian GNU/NetBSD machines have a different userland, and | |
254 # thus, need a distinct triplet. However, they do not need | |
255 # kernel version information, so it can be replaced with a | |
256 # suitable tag, in the style of linux-gnu. | |
257 case $UNAME_VERSION in | |
258 Debian*) | |
259 release='-gnu' | |
260 ;; | |
261 *) | |
262 release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` | |
263 ;; | |
264 esac | |
265 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: | |
266 # contains redundant information, the shorter form: | |
267 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. | |
268 GUESS=$machine-${os}${release}${abi-} | |
269 ;; | |
270 *:Bitrig:*:*) | |
271 UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` | |
272 GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE | |
273 ;; | |
274 *:OpenBSD:*:*) | |
275 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` | |
276 GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE | |
277 ;; | |
278 *:SecBSD:*:*) | |
279 UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` | |
280 GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE | |
281 ;; | |
282 *:LibertyBSD:*:*) | |
283 UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` | |
284 GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE | |
285 ;; | |
286 *:MidnightBSD:*:*) | |
287 GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE | |
288 ;; | |
289 *:ekkoBSD:*:*) | |
290 GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE | |
291 ;; | |
292 *:SolidBSD:*:*) | |
293 GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE | |
294 ;; | |
295 *:OS108:*:*) | |
296 GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE | |
297 ;; | |
298 macppc:MirBSD:*:*) | |
299 GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE | |
300 ;; | |
301 *:MirBSD:*:*) | |
302 GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE | |
303 ;; | |
304 *:Sortix:*:*) | |
305 GUESS=$UNAME_MACHINE-unknown-sortix | |
306 ;; | |
307 *:Twizzler:*:*) | |
308 GUESS=$UNAME_MACHINE-unknown-twizzler | |
309 ;; | |
310 *:Redox:*:*) | |
311 GUESS=$UNAME_MACHINE-unknown-redox | |
312 ;; | |
313 mips:OSF1:*.*) | |
314 GUESS=mips-dec-osf1 | |
315 ;; | |
316 alpha:OSF1:*:*) | |
317 # Reset EXIT trap before exiting to avoid spurious non-zero exit code. | |
318 trap '' 0 | |
319 case $UNAME_RELEASE in | |
320 *4.0) | |
321 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` | |
322 ;; | |
323 *5.*) | |
324 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` | |
325 ;; | |
326 esac | |
327 # According to Compaq, /usr/sbin/psrinfo has been available on | |
328 # OSF/1 and Tru64 systems produced since 1995. I hope that | |
329 # covers most systems running today. This code pipes the CPU | |
330 # types through head -n 1, so we only detect the type of CPU 0. | |
331 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` | |
332 case $ALPHA_CPU_TYPE in | |
333 "EV4 (21064)") | |
334 UNAME_MACHINE=alpha ;; | |
335 "EV4.5 (21064)") | |
336 UNAME_MACHINE=alpha ;; | |
337 "LCA4 (21066/21068)") | |
338 UNAME_MACHINE=alpha ;; | |
339 "EV5 (21164)") | |
340 UNAME_MACHINE=alphaev5 ;; | |
341 "EV5.6 (21164A)") | |
342 UNAME_MACHINE=alphaev56 ;; | |
343 "EV5.6 (21164PC)") | |
344 UNAME_MACHINE=alphapca56 ;; | |
345 "EV5.7 (21164PC)") | |
346 UNAME_MACHINE=alphapca57 ;; | |
347 "EV6 (21264)") | |
348 UNAME_MACHINE=alphaev6 ;; | |
349 "EV6.7 (21264A)") | |
350 UNAME_MACHINE=alphaev67 ;; | |
351 "EV6.8CB (21264C)") | |
352 UNAME_MACHINE=alphaev68 ;; | |
353 "EV6.8AL (21264B)") | |
354 UNAME_MACHINE=alphaev68 ;; | |
355 "EV6.8CX (21264D)") | |
356 UNAME_MACHINE=alphaev68 ;; | |
357 "EV6.9A (21264/EV69A)") | |
358 UNAME_MACHINE=alphaev69 ;; | |