Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 185 lines (169 sloc) 5.977 kb
a530bbe Initial revision
William Harold Newman authored
1 #!/bin/sh
2
3 # The make-config.sh script uses information about the target machine
4 # to set things up for compilation. It's vaguely like a stripped-down
5 # version of autoconf. It's intended to be run as part of make.sh. The
6 # only time you'd want to run it by itself is if you're trying to
7 # cross-compile the system or if you're doing some kind of
8 # troubleshooting.
9
10 # This software is part of the SBCL system. See the README file for
11 # more information.
12 #
13 # This software is derived from the CMU CL system, which was
14 # written at Carnegie Mellon University and released into the
15 # public domain. The software is in the public domain and is
16 # provided with absolutely no warranty. See the COPYING and CREDITS
17 # files for more information.
18
19 echo //entering make-config.sh
20
f2aa2d0 0.6.12.7:
William Harold Newman authored
21 echo //ensuring the existence of output/ directory
22 if [ ! -d output ] ; then mkdir output; fi
23
a530bbe Initial revision
William Harold Newman authored
24 ltf=`pwd`/local-target-features.lisp-expr
25 echo //initializing $ltf
672ac58 0.6.12.6:
William Harold Newman authored
26 echo ';;;; This is a machine-generated file.' > $ltf
d7f6139 0.6.12.7.flaky1:
William Harold Newman authored
27 echo ';;;; Please do not edit it by hand.' >> $ltf
28 echo ';;;; See make-config.sh.' >> $ltf
0d669e6 Christophe Rhodes 0.7.1.1:
csrhodes authored
29 printf '(' >> $ltf
a530bbe Initial revision
William Harold Newman authored
30
f2aa2d0 0.6.12.7:
William Harold Newman authored
31 echo //guessing default target CPU architecture from host architecture
32 case `uname -m` in
33 *86) guessed_sbcl_arch=x86 ;;
34 [Aa]lpha) guessed_sbcl_arch=alpha ;;
68fd2d2 0.7.1.20:
William Harold Newman authored
35 sparc*) guessed_sbcl_arch=sparc ;;
0d669e6 Christophe Rhodes 0.7.1.1:
csrhodes authored
36 sun*) guessed_sbcl_arch=sparc ;;
68fd2d2 0.7.1.20:
William Harold Newman authored
37 ppc) guessed_sbcl_arch=ppc ;;
5062535 Christophe Rhodes 0.8.2.8:
csrhodes authored
38 Power*Macintosh) guessed_sbcl_arch=ppc ;;
8a19c68 Christophe Rhodes 0.7.6.27:
csrhodes authored
39 parisc) guessed_sbcl_arch=hppa ;;
4ae1b79 Christophe Rhodes 0.7.7.9:
csrhodes authored
40 mips) guessed_sbcl_arch=mips ;;
f2aa2d0 0.6.12.7:
William Harold Newman authored
41 *)
42 # If we're not building on a supported target architecture, we
43 # we have no guess, but it's not an error yet, since maybe
44 # target architecture will be specified explicitly below.
45 guessed_sbcl_arch=''
46 ;;
47 esac
48
672ac58 0.6.12.6:
William Harold Newman authored
49 echo //setting up CPU-architecture-dependent information
f2aa2d0 0.6.12.7:
William Harold Newman authored
50 sbcl_arch=${SBCL_ARCH:-$guessed_sbcl_arch}
d7f6139 0.6.12.7.flaky1:
William Harold Newman authored
51 echo sbcl_arch=\"$sbcl_arch\"
f2aa2d0 0.6.12.7:
William Harold Newman authored
52 if [ "$sbcl_arch" = "" ] ; then
53 echo "can't guess target SBCL architecture, need SBCL_ARCH environment var"
54 exit 1
55 fi
0d669e6 Christophe Rhodes 0.7.1.1:
csrhodes authored
56 printf ":%s" "$sbcl_arch" >> $ltf
c5759c0 Christophe Rhodes 0.8.1.15:
csrhodes authored
57
a530bbe Initial revision
William Harold Newman authored
58 for d in src/compiler src/assembly; do
59 echo //setting up symlink $d/target
60 original_dir=`pwd`
61 cd $d
0d669e6 Christophe Rhodes 0.7.1.1:
csrhodes authored
62 if [ -h target ] ; then
a530bbe Initial revision
William Harold Newman authored
63 rm target
0d669e6 Christophe Rhodes 0.7.1.1:
csrhodes authored
64 elif [ -w target ] ; then
a530bbe Initial revision
William Harold Newman authored
65 echo "I'm afraid to replace non-symlink $d/target with a symlink."
66 exit 1
67 fi
68 if [ -d $sbcl_arch ] ; then
69 ln -s $sbcl_arch target
70 else
71 echo "missing sbcl_arch directory $PWD/$sbcl_arch"
72 exit 1
73 fi
74 cd $original_dir
75 done
76
f6f77e8 Christophe Rhodes 0.7.10.16:
csrhodes authored
77 echo //setting up symlink src/compiler/assembly
78 if [ -h src/compiler/assembly ] ; then
79 rm src/compiler/assembly
80 elif [ -w src/compiler/assembly ] ; then
81 echo "I'm afraid to replace non-symlink compiler/assembly with a symlink."
82 exit 1
83 fi
84 ln -s ../assembly src/compiler/assembly
85
a530bbe Initial revision
William Harold Newman authored
86 echo //setting up OS-dependent information
eaf8fba tidied up OpenBSD-vs.-FreeBSD stuff, and src/runtime/Config.x86-*
William Harold Newman authored
87 original_dir=`pwd`
a530bbe Initial revision
William Harold Newman authored
88 cd src/runtime/
68fd2d2 0.7.1.20:
William Harold Newman authored
89 rm -f Config target-arch-os.h target-arch.h target-os.h target-lispregs.h
90 # KLUDGE: these two logically belong in the previous section
91 # ("architecture-dependent"); it seems silly to enforce this in terms
92 # of the shell script, though. -- CSR, 2002-02-03
93 ln -s $sbcl_arch-arch.h target-arch.h
94 ln -s $sbcl_arch-lispregs.h target-lispregs.h
f2aa2d0 0.6.12.7:
William Harold Newman authored
95 case `uname` in
96 Linux)
0d669e6 Christophe Rhodes 0.7.1.1:
csrhodes authored
97 printf ' :linux' >> $ltf
f2aa2d0 0.6.12.7:
William Harold Newman authored
98 ln -s Config.$sbcl_arch-linux Config
68fd2d2 0.7.1.20:
William Harold Newman authored
99 ln -s $sbcl_arch-linux-os.h target-arch-os.h
100 ln -s linux-os.h target-os.h
f2aa2d0 0.6.12.7:
William Harold Newman authored
101 ;;
1e46297 Daniel Barlow 0.7.4.17: Mostly Alpha fixes
telent authored
102 OSF1)
103 # it's changed name twice since it was called OSF/1: clearly
104 # the marketers forgot to tell the engineers about Digital Unix
105 # _or_ OSF/1 ...
106 printf ' :osf1' >> $ltf
107 ln -s Config.$sbcl_arch-osf1 Config
108 ln -s $sbcl_arch-osf1-os.h target-arch-os.h
109 ln -s osf1-os.h target-os.h
110 ;;
f2aa2d0 0.6.12.7:
William Harold Newman authored
111 *BSD)
0d669e6 Christophe Rhodes 0.7.1.1:
csrhodes authored
112 printf ' :bsd' >> $ltf
68fd2d2 0.7.1.20:
William Harold Newman authored
113 ln -s $sbcl_arch-bsd-os.h target-arch-os.h
114 ln -s bsd-os.h target-os.h
f2aa2d0 0.6.12.7:
William Harold Newman authored
115 case `uname` in
116 FreeBSD)
0d669e6 Christophe Rhodes 0.7.1.1:
csrhodes authored
117 printf ' :freebsd' >> $ltf
f2aa2d0 0.6.12.7:
William Harold Newman authored
118 ln -s Config.$sbcl_arch-freebsd Config
119 ;;
120 OpenBSD)
0d669e6 Christophe Rhodes 0.7.1.1:
csrhodes authored
121 printf ' :openbsd' >> $ltf
f2aa2d0 0.6.12.7:
William Harold Newman authored
122 ln -s Config.$sbcl_arch-openbsd Config
123 ;;
124 *)
125 echo unsupported BSD variant: `uname`
126 exit 1
127 ;;
128 esac
129 ;;
5062535 Christophe Rhodes 0.8.2.8:
csrhodes authored
130 Darwin)
131 printf ' :bsd' >> $ltf
132 ln -s $sbcl_arch-darwin-os.h target-arch-os.h
133 ln -s bsd-os.h target-os.h
134 printf ' :darwin' >> $ltf
135 ln -s Config.$sbcl_arch-darwin Config
136 ;;
0d669e6 Christophe Rhodes 0.7.1.1:
csrhodes authored
137 SunOS)
138 printf ' :sunos' >> $ltf
139 ln -s Config.$sbcl_arch-sunos Config
140 ln -s $sbcl_arch-sunos-os.h target-arch-os.h
141 ln -s sunos-os.h target-os.h
142 ;;
f2aa2d0 0.6.12.7:
William Harold Newman authored
143 *)
144 echo unsupported OS type: `uname`
a530bbe Initial revision
William Harold Newman authored
145 exit 1
f2aa2d0 0.6.12.7:
William Harold Newman authored
146 ;;
147 esac
eaf8fba tidied up OpenBSD-vs.-FreeBSD stuff, and src/runtime/Config.x86-*
William Harold Newman authored
148 cd $original_dir
a530bbe Initial revision
William Harold Newman authored
149
c5759c0 Christophe Rhodes 0.8.1.15:
csrhodes authored
150 # KLUDGE: currently the x86 only works with the generational garbage
151 # collector (indicated by the presence of :GENCGC in *FEATURES*) and
152 # alpha, sparc and ppc with the stop'n'copy collector (indicated by
153 # the absence of :GENCGC in *FEATURES*). This isn't a great
154 # separation, but for now, rather than have :GENCGC in
155 # base-target-features.lisp-expr, we add it into local-target-features
156 # if we're building for x86. -- CSR, 2002-02-21 Then we do something
157 # similar with :STACK-GROWS-FOOWARD, too. -- WHN 2002-03-03
158 if [ "$sbcl_arch" = "x86" ] ; then
159 printf ' :gencgc :stack-grows-downward-not-upward :c-stack-is-control-stack' >> $ltf
160 elif [ "$sbcl_arch" = "mips" ] ; then
161 # Use a little C program to try to guess the endianness. Ware
162 # cross-compilers!
163 $GNUMAKE -C tools-for-build determine-endianness
164 tools-for-build/determine-endianness >> $ltf
165 else
166 # Nothing need be done in this case, but sh syntax wants a placeholder.
167 echo > /dev/null
168 fi
169
a530bbe Initial revision
William Harold Newman authored
170 echo //finishing $ltf
171 echo ')' >> $ltf
172
173 # FIXME: The version system should probably be redone along these lines:
174 #
175 # echo //setting up version information.
176 # versionfile=version.txt
177 # cp base-version.txt $versionfile
178 # echo " (built `date -u` by `whoami`@`hostname`)" >> $versionfile
179 # echo 'This is a machine-generated file and should not be edited by hand.' >> $versionfile
9139275 Christophe Rhodes 0.7.9.7:
csrhodes authored
180
181 # Make a unique ID for this build (to discourage people from
182 # mismatching sbcl and *.core files).
ecb9714 Christophe Rhodes 0.7.12.21:
csrhodes authored
183 echo '"'`hostname`-`whoami`-`date +%F-%H-%M-%S`'"' > output/build-id.tmp
9139275 Christophe Rhodes 0.7.9.7:
csrhodes authored
184
Something went wrong with that request. Please try again.