Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 393 lines (369 sloc) 14.293 kb
a530bbe Initial revision
William Harold Newman authored
1 #!/bin/sh
babd45f 0.9.4.72:
Thiemo Seufer authored
2 set -e
a530bbe Initial revision
William Harold Newman authored
3
4 # The make-config.sh script uses information about the target machine
5 # to set things up for compilation. It's vaguely like a stripped-down
6 # version of autoconf. It's intended to be run as part of make.sh. The
7 # only time you'd want to run it by itself is if you're trying to
8 # cross-compile the system or if you're doing some kind of
9 # troubleshooting.
10
11 # This software is part of the SBCL system. See the README file for
12 # more information.
13 #
14 # This software is derived from the CMU CL system, which was
15 # written at Carnegie Mellon University and released into the
16 # public domain. The software is in the public domain and is
17 # provided with absolutely no warranty. See the COPYING and CREDITS
18 # files for more information.
19
04d819b @csrhodes 0.9.8.27:
csrhodes authored
20 case `uname` in
21 Linux)
22 sbcl_os="linux"
23 ;;
24 OSF1)
25 # it's changed name twice since it was called OSF/1: clearly
26 # the marketers forgot to tell the engineers about Digital Unix
27 # _or_ OSF/1 ...
28 sbcl_os="osf1"
29 ;;
30 *BSD)
31 case `uname` in
32 FreeBSD)
33 sbcl_os="freebsd"
34 ;;
35 OpenBSD)
36 sbcl_os="openbsd"
37 ;;
38 NetBSD)
39 sbcl_os="netbsd"
40 ;;
41 *)
42 echo unsupported BSD variant: `uname`
43 exit 1
44 ;;
45 esac
46 ;;
47 Darwin)
48 sbcl_os="darwin"
49 ;;
50 SunOS)
51 sbcl_os="sunos"
52 ;;
53 CYGWIN* | WindowsNT | MINGW*)
54 sbcl_os="win32"
55 ;;
dcd8604 @nikodemus 1.0.24.12: adding and fixing the HPUX/HPPA build target
nikodemus authored
56 HP-UX)
57 sbcl_os="hpux"
58 ;;
04d819b @csrhodes 0.9.8.27:
csrhodes authored
59 *)
60 echo unsupported OS type: `uname`
61 exit 1
62 ;;
63 esac
64
65 link_or_copy() {
66 if [ "$sbcl_os" = "win32" ] ; then
67 cp -r "$1" "$2"
68 else
b822fdd @nikodemus 1.0.9.6: remove :UNIX from *FEATURES* on Windows
nikodemus authored
69 ln -s "$1" "$2"
04d819b @csrhodes 0.9.8.27:
csrhodes authored
70 fi
71 }
72
73 remove_dir_safely() {
74 if [ "$sbcl_os" = "win32" ] ; then
75 if [ -d "$1" ] ; then
76 rm -rf "$1"
77 elif [ -e "$1" ] ; then
78 echo "I'm afraid to remove non-directory $1."
79 exit 1
80 fi
81 else
82 if [ -h "$1" ] ; then
83 rm "$1"
84 elif [ -w "$1" ] ; then
85 echo "I'm afraid to replace non-symlink $1 with a symlink."
86 exit 1
87 fi
88 fi
89 }
90
a530bbe Initial revision
William Harold Newman authored
91 echo //entering make-config.sh
92
f2aa2d0 0.6.12.7:
William Harold Newman authored
93 echo //ensuring the existence of output/ directory
94 if [ ! -d output ] ; then mkdir output; fi
95
a530bbe Initial revision
William Harold Newman authored
96 ltf=`pwd`/local-target-features.lisp-expr
97 echo //initializing $ltf
672ac58 0.6.12.6:
William Harold Newman authored
98 echo ';;;; This is a machine-generated file.' > $ltf
d7f6139 0.6.12.7.flaky1:
William Harold Newman authored
99 echo ';;;; Please do not edit it by hand.' >> $ltf
100 echo ';;;; See make-config.sh.' >> $ltf
0d669e6 @csrhodes 0.7.1.1:
csrhodes authored
101 printf '(' >> $ltf
a530bbe Initial revision
William Harold Newman authored
102
f2aa2d0 0.6.12.7:
William Harold Newman authored
103 echo //guessing default target CPU architecture from host architecture
04d819b @csrhodes 0.9.8.27:
csrhodes authored
104 case `uname -m` in
105 *86) guessed_sbcl_arch=x86 ;;
40e3ba0 @csrhodes 0.9.3.63:
csrhodes authored
106 i86pc) guessed_sbcl_arch=x86 ;;
04d819b @csrhodes 0.9.8.27:
csrhodes authored
107 *x86_64) guessed_sbcl_arch=x86-64 ;;
bd45534 1.0.0.32: support for FreeBSD/x86-64
sa2c authored
108 amd64) guessed_sbcl_arch=x86-64 ;;
f2aa2d0 0.6.12.7:
William Harold Newman authored
109 [Aa]lpha) guessed_sbcl_arch=alpha ;;
68fd2d2 0.7.1.20:
William Harold Newman authored
110 sparc*) guessed_sbcl_arch=sparc ;;
0d669e6 @csrhodes 0.7.1.1:
csrhodes authored
111 sun*) guessed_sbcl_arch=sparc ;;
1071bf1 @csrhodes 1.0.2.11:
csrhodes authored
112 *ppc) guessed_sbcl_arch=ppc ;;
a58ade7 @csrhodes 0.9.9.22:
csrhodes authored
113 ppc64) guessed_sbcl_arch=ppc ;;
5062535 @csrhodes 0.8.2.8:
csrhodes authored
114 Power*Macintosh) guessed_sbcl_arch=ppc ;;
8a19c68 @csrhodes 0.7.6.27:
csrhodes authored
115 parisc) guessed_sbcl_arch=hppa ;;
dcd8604 @nikodemus 1.0.24.12: adding and fixing the HPUX/HPPA build target
nikodemus authored
116 9000/800) guessed_sbcl_arch=hppa ;;
fd00d78 @csrhodes 0.8.21.18:
csrhodes authored
117 mips*) guessed_sbcl_arch=mips ;;
f2aa2d0 0.6.12.7:
William Harold Newman authored
118 *)
119 # If we're not building on a supported target architecture, we
04d819b @csrhodes 0.9.8.27:
csrhodes authored
120 # we have no guess, but it's not an error yet, since maybe
121 # target architecture will be specified explicitly below.
122 guessed_sbcl_arch=''
123 ;;
f2aa2d0 0.6.12.7:
William Harold Newman authored
124 esac
125
53ab026 @jsnell 1.0.26.18: Solaris x86-64 support
jsnell authored
126 # Under Solaris, uname -m returns "i86pc" even if CPU is amd64.
127 if [ "$sbcl_os" = "sunos" ] && [ `isainfo -k` = "amd64" ]; then
128 guessed_sbcl_arch=x86-64
129 fi
130
305c519 1.0.31.19: build x86-64 on OS X when available by default
Brian Mastenbrook authored
131 # Under Darwin, uname -m returns "i386" even if CPU is x86_64.
572da92 1.0.35.22: fix building on Darwin when sysctl is not in PATH
Nathan Froyd authored
132 if [ "$sbcl_os" = "darwin" ] && [ "`/usr/sbin/sysctl -n hw.optional.x86_64`" = "1" ]; then
305c519 1.0.31.19: build x86-64 on OS X when available by default
Brian Mastenbrook authored
133 guessed_sbcl_arch=x86-64
134 fi
135
672ac58 0.6.12.6:
William Harold Newman authored
136 echo //setting up CPU-architecture-dependent information
f2aa2d0 0.6.12.7:
William Harold Newman authored
137 sbcl_arch=${SBCL_ARCH:-$guessed_sbcl_arch}
d7f6139 0.6.12.7.flaky1:
William Harold Newman authored
138 echo sbcl_arch=\"$sbcl_arch\"
f2aa2d0 0.6.12.7:
William Harold Newman authored
139 if [ "$sbcl_arch" = "" ] ; then
140 echo "can't guess target SBCL architecture, need SBCL_ARCH environment var"
141 exit 1
142 fi
04d819b @csrhodes 0.9.8.27:
csrhodes authored
143 printf ":%s" "$sbcl_arch" >> $ltf
c5759c0 @csrhodes 0.8.1.15:
csrhodes authored
144
a530bbe Initial revision
William Harold Newman authored
145 echo //setting up OS-dependent information
a3282da 1.0.34.9: darwin/x86-64 sb-posix:stat fixes from Kei Suzuki
Cyrus Harmon authored
146
147 # Under Darwin x86-64, guess whether Darwin 9+ or below.
148 if [ "$sbcl_os" = "darwin" ] && [ "$sbcl_arch" = "x86-64" ]; then
bd2df60 1.0.39.3: support building on darwin x86 and x86-64 without the dlshim
Cyrus Harmon authored
149 darwin_version=`uname -r`
150 darwin_version_major=${DARWIN_VERSION_MAJOR:-${darwin_version%%.*}}
151 if (( 8 < $darwin_version_major )); then
152 printf ' :inode64 :darwin9-or-better' >> $ltf
153 fi
a3282da 1.0.34.9: darwin/x86-64 sb-posix:stat fixes from Kei Suzuki
Cyrus Harmon authored
154 fi
155
eaf8fba tidied up OpenBSD-vs.-FreeBSD stuff, and src/runtime/Config.x86-*
William Harold Newman authored
156 original_dir=`pwd`
eb5265a 0.8.14.9:
William Harold Newman authored
157 cd ./src/runtime/
68fd2d2 0.7.1.20:
William Harold Newman authored
158 rm -f Config target-arch-os.h target-arch.h target-os.h target-lispregs.h
159 # KLUDGE: these two logically belong in the previous section
160 # ("architecture-dependent"); it seems silly to enforce this in terms
161 # of the shell script, though. -- CSR, 2002-02-03
04d819b @csrhodes 0.9.8.27:
csrhodes authored
162 link_or_copy $sbcl_arch-arch.h target-arch.h
163 link_or_copy $sbcl_arch-lispregs.h target-lispregs.h
164 case "$sbcl_os" in
165 linux)
b822fdd @nikodemus 1.0.9.6: remove :UNIX from *FEATURES* on Windows
nikodemus authored
166 printf ' :unix' >> $ltf
04d819b @csrhodes 0.9.8.27:
csrhodes authored
167 printf ' :elf' >> $ltf
168 printf ' :linux' >> $ltf
46e4281 @jsnell 0.9.18.46:
jsnell authored
169
170 # If you add other platforms here, don't forget to edit
171 # src/runtime/Config.foo-linux too.
b2f01c8 1.0.9.27: Fix large file support for MIPS.
Thiemo Seufer authored
172 case "$sbcl_arch" in
1baab0b @nikodemus 1.0.33.26: enabled threads by default on x86[-64] Linux
nikodemus authored
173 mips)
174 printf ' :largefile' >> $ltf
175 ;;
176 x86 | x86-64)
177 printf ' :sb-thread :largefile' >> $ltf
178 ;;
b2f01c8 1.0.9.27: Fix large file support for MIPS.
Thiemo Seufer authored
179 esac
46e4281 @jsnell 0.9.18.46:
jsnell authored
180
04d819b @csrhodes 0.9.8.27:
csrhodes authored
181 if [ $sbcl_arch = "x86-64" ]; then
182 link_or_copy Config.x86_64-linux Config
183 else
184 link_or_copy Config.$sbcl_arch-linux Config
185 fi
186 link_or_copy $sbcl_arch-linux-os.h target-arch-os.h
187 link_or_copy linux-os.h target-os.h
188 ;;
189 osf1)
b822fdd @nikodemus 1.0.9.6: remove :UNIX from *FEATURES* on Windows
nikodemus authored
190 printf ' :unix' >> $ltf
04d819b @csrhodes 0.9.8.27:
csrhodes authored
191 printf ' :elf' >> $ltf
192 printf ' :osf1' >> $ltf
193 link_or_copy Config.$sbcl_arch-osf1 Config
194 link_or_copy $sbcl_arch-osf1-os.h target-arch-os.h
195 link_or_copy osf1-os.h target-os.h
196 ;;
dcd8604 @nikodemus 1.0.24.12: adding and fixing the HPUX/HPPA build target
nikodemus authored
197 hpux)
198 printf ' :unix' >> $ltf
199 printf ' :elf' >> $ltf
200 printf ' :hpux' >> $ltf
201 link_or_copy Config.$sbcl_arch-hpux Config
202 link_or_copy $sbcl_arch-hpux-os.h target-arch-os.h
203 link_or_copy hpux-os.h target-os.h
204 ;;
04d819b @csrhodes 0.9.8.27:
csrhodes authored
205 *bsd)
b822fdd @nikodemus 1.0.9.6: remove :UNIX from *FEATURES* on Windows
nikodemus authored
206 printf ' :unix' >> $ltf
04d819b @csrhodes 0.9.8.27:
csrhodes authored
207 printf ' :bsd' >> $ltf
208 link_or_copy $sbcl_arch-bsd-os.h target-arch-os.h
209 link_or_copy bsd-os.h target-os.h
210 case "$sbcl_os" in
211 freebsd)
212 printf ' :elf' >> $ltf
213 printf ' :freebsd' >> $ltf
9a19ce4 1.0.9.62: Performance and stability improvement of threading on FreeBSD
NIIMI Satoshi authored
214 printf ' :gcc-tls' >> $ltf
402958f @jsnell 0.9.13.22:
jsnell authored
215 if [ $sbcl_arch = "x86" ]; then
9a19ce4 1.0.9.62: Performance and stability improvement of threading on FreeBSD
NIIMI Satoshi authored
216 printf ' :restore-tls-segment-register-from-context' >> $ltf
402958f @jsnell 0.9.13.22:
jsnell authored
217 fi
04d819b @csrhodes 0.9.8.27:
csrhodes authored
218 link_or_copy Config.$sbcl_arch-freebsd Config
219 ;;
220 openbsd)
221 printf ' :elf' >> $ltf
222 printf ' :openbsd' >> $ltf
223 link_or_copy Config.$sbcl_arch-openbsd Config
224 ;;
225 netbsd)
074ba06 @csrhodes 0.8.9.6.netbsd.1:
csrhodes authored
226 printf ' :netbsd' >> $ltf
04d819b @csrhodes 0.9.8.27:
csrhodes authored
227 printf ' :elf' >> $ltf
228 link_or_copy Config.$sbcl_arch-netbsd Config
229 ;;
230 *)
231 echo unsupported BSD variant: `uname`
232 exit 1
233 ;;
234 esac
235 ;;
236 darwin)
b822fdd @nikodemus 1.0.9.6: remove :UNIX from *FEATURES* on Windows
nikodemus authored
237 printf ' :unix' >> $ltf
04d819b @csrhodes 0.9.8.27:
csrhodes authored
238 printf ' :mach-o' >> $ltf
239 printf ' :bsd' >> $ltf
402958f @jsnell 0.9.13.22:
jsnell authored
240 printf ' :darwin' >> $ltf
241 if [ $sbcl_arch = "x86" ]; then
11b5ac8 1.0.36.9: UD2-BREAKPOINTS feature for x86oid systems
Alastair Bridgewater authored
242 printf ' :mach-exception-handler :sb-lutex :restore-fs-segment-register-from-tls :ud2-breakpoints' >> $ltf
402958f @jsnell 0.9.13.22:
jsnell authored
243 fi
1cf1aff 1.0.4.54: x86-64/darwin preliminary threads support
Cyrus Harmon authored
244 if [ $sbcl_arch = "x86-64" ]; then
11b5ac8 1.0.36.9: UD2-BREAKPOINTS feature for x86oid systems
Alastair Bridgewater authored
245 printf ' :mach-exception-handler :sb-lutex :ud2-breakpoints' >> $ltf
1cf1aff 1.0.4.54: x86-64/darwin preliminary threads support
Cyrus Harmon authored
246 fi
04d819b @csrhodes 0.9.8.27:
csrhodes authored
247 link_or_copy $sbcl_arch-darwin-os.h target-arch-os.h
248 link_or_copy bsd-os.h target-os.h
bd2df60 1.0.39.3: support building on darwin x86 and x86-64 without the dlshim
Cyrus Harmon authored
249 link_or_copy Config.$sbcl_arch-darwin Config
04d819b @csrhodes 0.9.8.27:
csrhodes authored
250 ;;
251 sunos)
b822fdd @nikodemus 1.0.9.6: remove :UNIX from *FEATURES* on Windows
nikodemus authored
252 printf ' :unix' >> $ltf
04d819b @csrhodes 0.9.8.27:
csrhodes authored
253 printf ' :elf' >> $ltf
0d669e6 @csrhodes 0.7.1.1:
csrhodes authored
254 printf ' :sunos' >> $ltf
53ab026 @jsnell 1.0.26.18: Solaris x86-64 support
jsnell authored
255 if [ $sbcl_arch = "x86" ] || [ $sbcl_arch = "amd64" ]; then
402958f @jsnell 0.9.13.22:
jsnell authored
256 printf ' :sb-lutex' >> $ltf
257 fi
04d819b @csrhodes 0.9.8.27:
csrhodes authored
258 link_or_copy Config.$sbcl_arch-sunos Config
259 link_or_copy $sbcl_arch-sunos-os.h target-arch-os.h
260 link_or_copy sunos-os.h target-os.h
261 ;;
262 win32)
263 printf ' :win32' >> $ltf
264 link_or_copy Config.$sbcl_arch-win32 Config
265 link_or_copy $sbcl_arch-win32-os.h target-arch-os.h
266 link_or_copy win32-os.h target-os.h
267 ;;
f2aa2d0 0.6.12.7:
William Harold Newman authored
268 *)
04d819b @csrhodes 0.9.8.27:
csrhodes authored
269 echo unsupported OS type: `uname`
270 exit 1
271 ;;
f2aa2d0 0.6.12.7:
William Harold Newman authored
272 esac
102b7c8 @rudi 1.0.10.40: Fix build for windows when source directory contains spaces
rudi authored
273 cd "$original_dir"
a530bbe Initial revision
William Harold Newman authored
274
75b5237 @nikodemus 0.8.14.5: Join the foreign legion!
nikodemus authored
275 # FIXME: Things like :c-stack-grows-..., etc, should be
276 # *derived-target-features* or equivalent, so that there was a nicer
277 # way to specify them then sprinkling them in this file. They should
278 # still be tweakable by advanced users, though, but probably not
279 # appear in *features* of target. #!+/- should be adjusted to take
280 # them in account as well. At minimum the nicer specification stuff,
281 # though:
282 #
283 # (define-feature :dlopen (features)
284 # (union '(:bsd :linux :darwin :sunos) features))
285 #
286 # (define-feature :c-stack-grows-downwards-not-upwards (features)
287 # (member :x86 features))
288
c5759c0 @csrhodes 0.8.1.15:
csrhodes authored
289 # KLUDGE: currently the x86 only works with the generational garbage
290 # collector (indicated by the presence of :GENCGC in *FEATURES*) and
291 # alpha, sparc and ppc with the stop'n'copy collector (indicated by
292 # the absence of :GENCGC in *FEATURES*). This isn't a great
293 # separation, but for now, rather than have :GENCGC in
294 # base-target-features.lisp-expr, we add it into local-target-features
295 # if we're building for x86. -- CSR, 2002-02-21 Then we do something
296 # similar with :STACK-GROWS-FOOWARD, too. -- WHN 2002-03-03
75b5237 @nikodemus 0.8.14.5: Join the foreign legion!
nikodemus authored
297 if [ "$sbcl_arch" = "x86" ]; then
bfb19d3 @nikodemus 1.0.7.19: SB-EXT:COMPARE-AND-SWAP
nikodemus authored
298 printf ' :gencgc :stack-grows-downward-not-upward :c-stack-is-control-stack' >> $ltf
96bb2dc @nikodemus 1.0.17.4: support for dynamic-extent structures
nikodemus authored
299 printf ' :compare-and-swap-vops :unwind-to-frame-and-call-vop :raw-instance-init-vops' >> $ltf
55dc855 @nikodemus 1.0.29.12: nicer DX capability conditionalization
nikodemus authored
300 printf ' :stack-allocatable-closures :stack-allocatable-vectors' >> $ltf
301 printf ' :stack-allocatable-lists :stack-allocatable-fixed-objects' >> $ltf
2230ea0 @pkhuong 1.0.29.54: Inline unboxed constants on x86[-64]
pkhuong authored
302 printf ' :alien-callbacks :cycle-counter :inline-constants ' >> $ltf
c2ac5ba 1.0.13.18: Revived OpenBSD support, contributed by Josh Elsasser
Richard M Kreuter authored
303 case "$sbcl_os" in
304 linux | freebsd | netbsd | openbsd | sunos | darwin | win32)
04d819b @csrhodes 0.9.8.27:
csrhodes authored
305 printf ' :linkage-table' >> $ltf
c2ac5ba 1.0.13.18: Revived OpenBSD support, contributed by Josh Elsasser
Richard M Kreuter authored
306 esac
48ec282 @csrhodes 0.9.8.34:
csrhodes authored
307 if [ "$sbcl_os" = "win32" ]; then
308 # of course it doesn't provide dlopen, but there is
309 # roughly-equivalent magic nevertheless.
310 printf ' :os-provides-dlopen' >> $ltf
311 fi
78fa16b @csrhodes 0.8.18.14:
csrhodes authored
312 elif [ "$sbcl_arch" = "x86-64" ]; then
bfb19d3 @nikodemus 1.0.7.19: SB-EXT:COMPARE-AND-SWAP
nikodemus authored
313 printf ' :gencgc :stack-grows-downward-not-upward :c-stack-is-control-stack :linkage-table' >> $ltf
96bb2dc @nikodemus 1.0.17.4: support for dynamic-extent structures
nikodemus authored
314 printf ' :compare-and-swap-vops :unwind-to-frame-and-call-vop :raw-instance-init-vops' >> $ltf
55dc855 @nikodemus 1.0.29.12: nicer DX capability conditionalization
nikodemus authored
315 printf ' :stack-allocatable-closures :stack-allocatable-vectors' >> $ltf
316 printf ' :stack-allocatable-lists :stack-allocatable-fixed-objects' >> $ltf
a157ed0 @pkhuong 1.0.29.44: Complex float improvements
pkhuong authored
317 printf ' :alien-callbacks :cycle-counter :complex-float-vops' >> $ltf
6ab1e0d 1.0.41.4: x86-64: Implement memory-barrier-vops.
Alastair Bridgewater authored
318 printf ' :float-eql-vops :inline-constants :memory-barrier-vops' >> $ltf
75b5237 @nikodemus 0.8.14.5: Join the foreign legion!
nikodemus authored
319 elif [ "$sbcl_arch" = "mips" ]; then
3da4a7f 0.9.5.11:
Thiemo Seufer authored
320 printf ' :linkage-table' >> $ltf
e3f6b2d @nikodemus 1.0.29.20: fix build breakage from 1.0.29.12 (PPC and MIPS, hopefully)
nikodemus authored
321 printf ' :stack-allocatable-closures :stack-allocatable-vectors' >> $ltf
55dc855 @nikodemus 1.0.29.12: nicer DX capability conditionalization
nikodemus authored
322 printf ' :stack-allocatable-lists :stack-allocatable-fixed-objects' >> $ltf
ccfb3a7 1.0.9.28: Enable alien callbacks for MIPS.
Thiemo Seufer authored
323 printf ' :alien-callbacks' >> $ltf
c5759c0 @csrhodes 0.8.1.15:
csrhodes authored
324 # Use a little C program to try to guess the endianness. Ware
325 # cross-compilers!
75b5237 @nikodemus 0.8.14.5: Join the foreign legion!
nikodemus authored
326 #
327 # FIXME: integrate to grovel-features, mayhaps
44c608e @jsnell 0.9.11.21:
jsnell authored
328 $GNUMAKE -C tools-for-build determine-endianness -I ../src/runtime
c5759c0 @csrhodes 0.8.1.15:
csrhodes authored
329 tools-for-build/determine-endianness >> $ltf
e3f6b2d @nikodemus 1.0.29.20: fix build breakage from 1.0.29.12 (PPC and MIPS, hopefully)
nikodemus authored
330 elif [ "$sbcl_arch" = "ppc" ]; then
b411b7d 1.0.35.6: Fix typo in make-config.sh
Tobias C. Rittweiler authored
331 printf ' :gencgc :stack-allocatable-closures :stack-allocatable-lists' >> $ltf
7121b6b 1.0.41.3: ppc: Implement memory-barrier-vops.
Alastair Bridgewater authored
332 printf ' :linkage-table :raw-instance-init-vops :memory-barrier-vops' >> $ltf
55dc855 @nikodemus 1.0.29.12: nicer DX capability conditionalization
nikodemus authored
333 if [ "$sbcl_os" = "linux" ]; then
334 # Use a C program to detect which kind of glibc we're building on,
335 # to bandage across the break in source compatibility between
336 # versions 2.3.1 and 2.3.2
337 #
338 # FIXME: integrate to grovel-features, mayhaps
339 $GNUMAKE -C tools-for-build where-is-mcontext -I ../src/runtime
340 tools-for-build/where-is-mcontext > src/runtime/ppc-linux-mcontext.h || (echo "error running where-is-mcontext"; exit 1)
341 elif [ "$sbcl_os" = "darwin" ]; then
342 # We provide a dlopen shim, so a little lie won't hurt
343 printf " :os-provides-dlopen :alien-callbacks" >> $ltf
344 # The default stack ulimit under darwin is too small to run PURIFY.
345 # Best we can do is complain and exit at this stage
346 if [ "`ulimit -s`" = "512" ]; then
347 echo "Your stack size limit is too small to build SBCL."
348 echo "See the limit(1) or ulimit(1) commands and the README file."
349 exit 1
350 fi
e3f68bd @csrhodes 0.8.4.36:
csrhodes authored
351 fi
fab1ba8 @csrhodes 0.8.8.2:
csrhodes authored
352 elif [ "$sbcl_arch" = "sparc" ]; then
04d819b @csrhodes 0.9.8.27:
csrhodes authored
353 # Test the compiler in order to see if we are building on Sun
fab1ba8 @csrhodes 0.8.8.2:
csrhodes authored
354 # toolchain as opposed to GNU binutils, and write the appropriate
04d819b @csrhodes 0.9.8.27:
csrhodes authored
355 # FUNCDEF macro for assembler. No harm in running this on sparc-linux
fab1ba8 @csrhodes 0.8.8.2:
csrhodes authored
356 # as well.
357 sh tools-for-build/sparc-funcdef.sh > src/runtime/sparc-funcdef.h
1f7bb60 @nikodemus 0.8.15.18: Linkage table tweaks & alien bugfix
nikodemus authored
358 if [ "$sbcl_os" = "sunos" ] || [ "$sbcl_os" = "linux" ]; then
04d819b @csrhodes 0.9.8.27:
csrhodes authored
359 printf ' :linkage-table' >> $ltf
75b5237 @nikodemus 0.8.14.5: Join the foreign legion!
nikodemus authored
360 fi
55dc855 @nikodemus 1.0.29.12: nicer DX capability conditionalization
nikodemus authored
361 printf ' :stack-allocatable-closures :stack-allocatable-lists' >> $ltf
7c7e627 0.9.1.52:
Alexey Dejneka authored
362 elif [ "$sbcl_arch" = "alpha" ]; then
55dc855 @nikodemus 1.0.29.12: nicer DX capability conditionalization
nikodemus authored
363 printf ' :stack-allocatable-closures :stack-allocatable-lists' >> $ltf
364 elif [ "$sbcl_arch" = "hppa" ]; then
365 printf ' :stack-allocatable-vectors :stack-allocatable-fixed-objects' >> $ltf
366 printf ' :stack-allocatable-lists' >> $ltf
c5759c0 @csrhodes 0.8.1.15:
csrhodes authored
367 else
368 # Nothing need be done in this case, but sh syntax wants a placeholder.
369 echo > /dev/null
370 fi
fab1ba8 @csrhodes 0.8.8.2:
csrhodes authored
371
75b5237 @nikodemus 0.8.14.5: Join the foreign legion!
nikodemus authored
372 export sbcl_os sbcl_arch
4bc6b91 @nikodemus 0.8.13.78: Birds of Feather
nikodemus authored
373 sh tools-for-build/grovel-features.sh >> $ltf
374
a530bbe Initial revision
William Harold Newman authored
375 echo //finishing $ltf
376 echo ')' >> $ltf
377
378 # FIXME: The version system should probably be redone along these lines:
379 #
380 # echo //setting up version information.
381 # versionfile=version.txt
382 # cp base-version.txt $versionfile
383 # echo " (built `date -u` by `whoami`@`hostname`)" >> $versionfile
384 # echo 'This is a machine-generated file and should not be edited by hand.' >> $versionfile
9139275 @csrhodes 0.7.9.7:
csrhodes authored
385
386 # Make a unique ID for this build (to discourage people from
387 # mismatching sbcl and *.core files).
eba7d5d @csrhodes 0.8.13.27:
csrhodes authored
388 if [ `uname` = "SunOS" ] ; then
389 # use /usr/xpg4/bin/id instead of /usr/bin/id
390 PATH=/usr/xpg4/bin:$PATH
391 fi
392 echo '"'`hostname`-`id -un`-`date +%Y-%m-%d-%H-%M-%S`'"' > output/build-id.tmp
Something went wrong with that request. Please try again.