1 |
tv |
85444 |
%define sbcl_shell /bin/bash |
2 |
|
|
|
3 |
|
|
# threading support |
4 |
|
|
%define threads 1 |
5 |
|
|
%{?_without_threads: %{expand: %%global threads 0}} |
6 |
|
|
|
7 |
tv |
85462 |
%define bootstrap 1 |
8 |
tv |
85444 |
%{?_with_bootstrap: %{expand: %%global bootstrap 1}} |
9 |
|
|
|
10 |
|
|
Name: sbcl |
11 |
|
|
Version: 1.0.47 |
12 |
|
|
Release: %mkrel 1 |
13 |
|
|
Summary: Steel Bank Common Lisp compiler and runtime system |
14 |
|
|
License: BSD |
15 |
|
|
Group: Development/Other |
16 |
|
|
URL: http://sbcl.sourceforge.net/ |
17 |
|
|
Source0: http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.47/sbcl-1.0.47-source.tar.bz2 |
18 |
|
|
#%if %{bootstrap} |
19 |
tv |
85466 |
Source1: http://prdownloads.sourceforge.net/sbcl/%{name}-%{version}-x86-linux-binary.tar.bz2 |
20 |
|
|
Source2: http://prdownloads.sourceforge.net/sbcl/%{name}-%{version}-x86-64-linux-binary.tar.bz2 |
21 |
tv |
85444 |
#%endif |
22 |
|
|
Source3: customize-target-features.lisp |
23 |
|
|
Patch1: sbcl-1.0.45-default-sbcl-home.patch |
24 |
|
|
Patch2: sbcl-0.9.5-personality.patch |
25 |
|
|
Patch3: sbcl-1.0.28-optflags.patch |
26 |
|
|
Patch4: sbcl-0.9.17-LIB_DIR.patch |
27 |
|
|
Patch5: sbcl-1.0.16-GNU_SOURCE.patch |
28 |
|
|
# Allow override of contrib test failure(s) |
29 |
|
|
Patch7: sbcl-1.0.2-permissive.patch |
30 |
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release} |
31 |
|
|
|
32 |
|
|
Requires(post): /sbin/install-info |
33 |
|
|
Requires(preun): /sbin/install-info |
34 |
|
|
# doc generation |
35 |
|
|
BuildRequires: ghostscript |
36 |
|
|
BuildRequires: texinfo |
37 |
|
|
BuildRequires: time |
38 |
|
|
%if ! %{bootstrap} |
39 |
|
|
BuildRequires: sbcl |
40 |
|
|
%endif |
41 |
|
|
|
42 |
|
|
%description |
43 |
|
|
Steel Bank Common Lisp (SBCL) is a Open Source development environment |
44 |
|
|
for Common Lisp. It includes an integrated native compiler, |
45 |
|
|
interpreter, and debugger. |
46 |
|
|
|
47 |
|
|
|
48 |
|
|
%prep |
49 |
|
|
%if %{bootstrap} |
50 |
|
|
%ifarch x86_64 |
51 |
|
|
echo x86_64 |
52 |
|
|
%define sbcl_arch x86_64 |
53 |
|
|
%setup -q -a 2 |
54 |
tv |
85484 |
%define dirbin %{name}-%{version} |
55 |
tv |
85444 |
%endif |
56 |
|
|
|
57 |
|
|
%ifarch %{ix86} |
58 |
|
|
echo ix86 |
59 |
|
|
%define sbcl_arch x86 |
60 |
|
|
%setup -q -a 1 |
61 |
|
|
%define dirbin %{name}-%{version}-%{sbcl_arch}-linux |
62 |
|
|
%endif |
63 |
|
|
|
64 |
|
|
mkdir sbcl-bootstrap |
65 |
|
|
pushd %{dirbin} |
66 |
|
|
INSTALL_ROOT=`pwd`/../sbcl-bootstrap %{?sbcl_shell} ./install.sh |
67 |
|
|
popd |
68 |
|
|
%else |
69 |
|
|
%setup -q |
70 |
|
|
%endif |
71 |
|
|
|
72 |
|
|
%patch1 -p1 -b .default-sbcl-home |
73 |
|
|
%patch2 -p1 -b .personality |
74 |
|
|
%patch3 -p1 -b .optflags |
75 |
|
|
%patch4 -p1 -b .LIB_DIR |
76 |
|
|
%patch5 -p2 -b .GNU_SOURCE |
77 |
|
|
%patch7 -p1 -b .permissive |
78 |
|
|
|
79 |
|
|
%if %{threads} |
80 |
|
|
install -m644 -p %{SOURCE3} ./customize-target-features.lisp |
81 |
|
|
%endif |
82 |
|
|
|
83 |
|
|
%build |
84 |
|
|
%if %{bootstrap} |
85 |
|
|
export SBCL_HOME=`pwd`/sbcl-bootstrap/lib/sbcl |
86 |
|
|
export PATH=`pwd`/sbcl-bootstrap/bin:${PATH} |
87 |
|
|
%endif |
88 |
|
|
|
89 |
|
|
export SBCL_HOME=%{_libdir}/sbcl |
90 |
|
|
export DEFAULT_SBCL_HOME=%{_libdir}/sbcl |
91 |
|
|
export RPM_OPT_FLAGS=$(echo %optflags | sed -e "s/-fomit-frame-pointer//") |
92 |
|
|
sh make.sh |
93 |
|
|
|
94 |
|
|
make -C doc/manual html info |
95 |
|
|
|
96 |
|
|
%install |
97 |
|
|
rm -rf %{buildroot} |
98 |
|
|
|
99 |
|
|
mkdir -p %{buildroot}{%{_bindir},%{_libdir},%{_mandir}} |
100 |
|
|
|
101 |
|
|
unset SBCL_HOME |
102 |
|
|
export INSTALL_ROOT=%{buildroot}%{_prefix} |
103 |
|
|
export LIB_DIR=%{buildroot}%{_libdir} |
104 |
|
|
sh install.sh |
105 |
|
|
|
106 |
|
|
## Unpackaged files |
107 |
|
|
rm -rf %{buildroot}%{_docdir}/sbcl |
108 |
|
|
rm -f %{buildroot}%{_infodir}/dir |
109 |
|
|
# CVS crud |
110 |
|
|
find %{buildroot} -name CVS -type d | xargs rm -rf |
111 |
|
|
find %{buildroot} -name .cvsignore | xargs rm -f |
112 |
|
|
# 'test-passed' files from %%check |
113 |
|
|
find %{buildroot} -name 'test-passed' | xargs rm -vf |
114 |
|
|
|
115 |
|
|
%post |
116 |
|
|
for info in sbcl.info sbcl.info-1 sbcl.info-2 asdf.info; do |
117 |
|
|
/sbin/install-info %{_infodir}/${info}* %{_infodir}/dir ||: |
118 |
|
|
done |
119 |
|
|
|
120 |
|
|
%postun |
121 |
|
|
for info in sbcl.info sbcl.info-1 sbcl.info-2 asdf.info; do |
122 |
|
|
/sbin/install-info --delete %{_infodir}/${info}* %{_infodir}/dir ||: |
123 |
|
|
done |
124 |
|
|
|
125 |
|
|
%pre |
126 |
|
|
# min_bootstrap: We *could* check for only-on-upgrade, but why bother? (-: |
127 |
|
|
for info in sbcl.info sbcl.info-1 sbcl.info-2 asdf.info; do |
128 |
|
|
/sbin/install-info --delete %{_infodir}/${info}* %{_infodir}/dir >& /dev/null ||: |
129 |
|
|
done |
130 |
|
|
|
131 |
|
|
%files |
132 |
|
|
%defattr(-,root,root) |
133 |
|
|
%doc BUGS COPYING README CREDITS NEWS TLA TODO |
134 |
|
|
%doc STYLE PRINCIPLES |
135 |
|
|
%{_bindir}/* |
136 |
|
|
%{_libdir}/sbcl/ |
137 |
|
|
%{_mandir}/man?/* |
138 |
|
|
%doc doc/manual/ |
139 |
|
|
%{_infodir}/* |
140 |
|
|
|
141 |
|
|
%clean |
142 |
|
|
rm -rf %{buildroot} |
143 |
|
|
|
144 |
|
|
|