1 |
< |
### RPM external boost 1.33.1 |
2 |
< |
# Patches and build fudging by Lassi A. Tuura <lat@iki.fi> (FIXME: contribute to boost) |
3 |
< |
# define boostver -%v <-- for 1.30.2 |
4 |
< |
%define boostver _%(echo %v | tr . _) |
5 |
< |
Requires: boost-build python bz2lib zlib |
6 |
< |
Source: http://dl.sourceforge.net/sourceforge/%n/%{n}%{boostver}.tar.gz |
7 |
< |
#Patch: boost |
1 |
> |
### RPM external boost 1.34.1-CMS19 |
2 |
> |
%define boostver _%(echo %realversion | tr . _) |
3 |
> |
%define gccver %(echo $GCC_VERSION | cut -d. -f1,2 | sed -e 's/\.//') |
4 |
> |
Source: http://internap.dl.sourceforge.net/sourceforge/%{n}/%{n}%{boostver}.tar.gz |
5 |
> |
|
6 |
> |
Requires: boost-build python bz2lib |
7 |
> |
%if "%{?online_release:set}" != "set" |
8 |
> |
Requires: zlib |
9 |
> |
%endif |
10 |
|
|
11 |
|
%prep |
12 |
|
%setup -n %{n}%{boostver} |
11 |
– |
#%patch |
13 |
|
|
14 |
|
%build |
15 |
|
# Note that some targets will fail to build (the test programs have |
16 |
|
# missing symbols), causing darwin to fail to link and bjam to return |
17 |
|
# an error. So ignore the exit code from bjam on darwin to avoid |
18 |
|
# RPM falsely detecting a problem. |
19 |
+ |
PV="PYTHON_VERSION=$(echo $PYTHON_VERSION | sed 's/\.[0-9]*-.*$//')" |
20 |
|
PR="PYTHON_ROOT=$PYTHON_ROOT" |
21 |
< |
PV="PYTHON_VERSION=$(echo $PYTHON_VERSION | sed 's/\.[0-9]*$//')" |
22 |
< |
BZ2LIBR="BZ2LIB_LIBPATH=$BZ2LIB_ROOT/lib" |
21 |
> |
|
22 |
> |
# The following line assumes a version of the form x.y.z-XXXX, where the |
23 |
> |
# "-XXXX" part represents some CMS rebuild of version x.y.z |
24 |
> |
BZ2LIBR="BZIP2_LIBPATH=$BZ2LIB_ROOT/lib" |
25 |
> |
BZ2LIBI="BZIP2_INCLUDE=$BZ2LIB_ROOT/include" |
26 |
> |
|
27 |
> |
%if "%{?online_release:set}" != "set" |
28 |
|
ZLIBR="ZLIB_LIBPATH=$ZLIB_ROOT/lib" |
22 |
– |
BZ2LIBI="BZ2LIB_INCLUDE=$BZ2LIB_ROOT/include" |
29 |
|
ZLIBI="ZLIB_INCLUDE=$ZLIB_ROOT/include" |
30 |
|
|
31 |
|
case $(uname) in |
32 |
< |
Darwin ) bjam -s$PR -s$PV -s$BZ2LIBR -s$ZLIBR -sTOOLS=darwin || true ;; |
33 |
< |
* ) bjam -s$PR -s$PV -s$BZ2LIBR -s$ZLIBR -sTOOLS=gcc ;; |
32 |
> |
Darwin ) bjam %makeprocesses -s$PR -s$PV -s$BZ2LIBR -s$ZLIBR -sTOOLS=darwin || true ;; |
33 |
> |
* ) bjam %makeprocesses -s$PR -s$PV -s$BZ2LIBR -s$ZLIBR -sTOOLS=gcc ;; |
34 |
|
esac |
35 |
+ |
%else |
36 |
+ |
bjam %makeprocesses -s$PR -s$PV -s$BZ2LIBR -s$BZ2LIBI -sTOOLS=gcc |
37 |
+ |
%endif |
38 |
|
|
39 |
|
%install |
40 |
|
boost_abi=$(echo %boostver | sed 's/^_//; s/_0$//') |
41 |
|
case $(uname) in Darwin ) so=dylib ;; * ) so=so ;; esac |
42 |
< |
mkdir -p %i/lib/debug |
43 |
< |
(cd bin/boost; find libs -path "libs/*/debug/*.$so" -exec cp {} %i/lib/debug \;) |
44 |
< |
(cd bin/boost; find libs -path "libs/*/release/*.$so" -exec cp {} %i/lib \;) |
42 |
> |
#no debug libs... |
43 |
> |
#mkdir -p %i/lib/debug |
44 |
> |
mkdir %i/lib |
45 |
> |
#(cd bin/boost; find libs -path "libs/*/debug/*.$so" -exec cp {} %i/lib/debug \;) |
46 |
> |
(cd bin.v2; find libs -path "libs/*/build/gcc*/release/*.$so*" -exec cp {} %i/lib/. \;) |
47 |
|
find boost -name '*.[hi]*' -print | |
48 |
|
while read f; do |
49 |
|
mkdir -p %i/include/$(dirname $f) |
59 |
|
install_name_tool -id $f $f |
60 |
|
done |
61 |
|
|
51 |
– |
|
62 |
|
# Do all manipulation with files before creating symbolic links: |
63 |
|
perl -p -i -e "s|^#!.*python|/usr/bin/env python|" $(find %{i}/lib %{i}/bin) |
64 |
< |
strip %i/lib/*.$so %i/lib/debug/*.$so |
64 |
> |
strip %i/lib/*.$so |
65 |
> |
|
66 |
|
|
67 |
< |
(cd %i/lib; for f in lib*-$boost_abi.$so; do ln -s $f $(echo $f | sed "s/-$boost_abi//"); done) |
68 |
< |
(cd %i/lib; for f in lib*-$boost_abi.$so; do ln -s $f $f.%v ; done) |
69 |
< |
(cd %i/lib/debug; for f in lib*-d-$boost_abi.$so; do ln -s $f $(echo $f | sed "s/-d-$boost_abi//"); done) |
70 |
< |
(cd %i/lib/debug; for f in lib*-d-$boost_abi.$so; do ln -s $f $f.%v; done) |
67 |
> |
#(cd %i/lib; for f in lib*-$boost_abi.$so; do ln -s $f $(echo $f | sed "s/-$boost_abi//"); done) |
68 |
> |
#(cd %i/lib; for f in lib*-$boost_abi.$so; do ln -s $f $f.%realversion ; done) |
69 |
> |
(cd %i/lib; for f in lib*-$boost_abi.$so.%{realversion}; do ln -s $f $(echo $f | sed "s/.%{realversion}$//"); done) |
70 |
> |
(cd %i/lib; for f in lib*-$boost_abi.$so.%{realversion}; do ln -s $f $(echo $f | sed "s/-$boost_abi//" | sed "s/.%{realversion}$//"); done) |
71 |
> |
(cd %i/lib; for f in lib*-$boost_abi.$so.%{realversion}; do ln -s $f $(echo $f | sed "s/-$boost_abi//" | sed "s/.%{realversion}$//" | sed "s/gcc%{gccver}/gcc/"); done) |
72 |
> |
#(cd %i/lib/debug; for f in lib*-d-$boost_abi.$so; do ln -s $f $(echo $f | sed "s/-d-$boost_abi//"); done) |
73 |
> |
#(cd %i/lib/debug; for f in lib*-d-$boost_abi.$so; do ln -s $f $f.%realversion; done) |
74 |
|
(cd %i/lib/libs/python/pyste/install; python setup.py install --prefix=%i) |
75 |
|
|
76 |
+ |
# SCRAM ToolBox toolfile |
77 |
+ |
mkdir -p %i/etc/scram.d |
78 |
+ |
# boost toolfile |
79 |
+ |
cat << \EOF_TOOLFILE >%i/etc/scram.d/boost |
80 |
+ |
<doc type=BuildSystem::ToolDoc version=1.0> |
81 |
+ |
<Tool name=boost version=%v> |
82 |
+ |
<info url="http://www.boost.org"></info> |
83 |
+ |
<lib name=boost_thread-gcc-mt> |
84 |
+ |
<lib name=boost_signals-gcc-mt> |
85 |
+ |
<Client> |
86 |
+ |
<Environment name=BOOST_BASE default="%i"></Environment> |
87 |
+ |
<Environment name=LIBDIR default="$BOOST_BASE/lib"></Environment> |
88 |
+ |
<Environment name=INCLUDE default="$BOOST_BASE/include"></Environment> |
89 |
+ |
</Client> |
90 |
+ |
<use name=sockets> |
91 |
+ |
<Runtime name=LD_LIBRARY_PATH value="$BOOST_BASE/lib" type=path> |
92 |
+ |
<Runtime name=CMSSW_FWLITE_INCLUDE_PATH value="$BOOST_BASE/include" type=path> |
93 |
+ |
</Tool> |
94 |
+ |
EOF_TOOLFILE |
95 |
+ |
|
96 |
+ |
# boost_filesystem toolfile |
97 |
+ |
cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_filesystem |
98 |
+ |
<doc type=BuildSystem::ToolDoc version=1.0> |
99 |
+ |
<Tool name=boost_filesystem version=%v> |
100 |
+ |
<info url="http://www.boost.org"></info> |
101 |
+ |
<lib name=boost_filesystem-gcc-mt> |
102 |
+ |
<use name=boost> |
103 |
+ |
</Tool> |
104 |
+ |
EOF_TOOLFILE |
105 |
+ |
|
106 |
+ |
# boost_program_options toolfile |
107 |
+ |
cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_program_options |
108 |
+ |
<doc type=BuildSystem::ToolDoc version=1.0> |
109 |
+ |
<Tool name=boost_program_options version=%v> |
110 |
+ |
<info url="http://www.boost.org"></info> |
111 |
+ |
<lib name=boost_program_options-gcc-mt> |
112 |
+ |
<use name=boost> |
113 |
+ |
</Tool> |
114 |
+ |
EOF_TOOLFILE |
115 |
+ |
|
116 |
+ |
# boost_python toolfile |
117 |
+ |
cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_python |
118 |
+ |
<doc type=BuildSystem::ToolDoc version=1.0> |
119 |
+ |
<Tool name=boost_python version=%v> |
120 |
+ |
<info url="http://www.boost.org"></info> |
121 |
+ |
<lib name=boost_python-gcc-mt> |
122 |
+ |
<Client> |
123 |
+ |
<Environment name=BOOST_PYTHON_BASE default="%i"></Environment> |
124 |
+ |
<Environment name=PYSTE_EXEC default="$BOOST_PYTHON_BASE/lib/python2.4/site-packages/Pyste/pyste.py"></Environment> |
125 |
+ |
<Environment name=LIBDIR default="$BOOST_PYTHON_BASE/lib"></Environment> |
126 |
+ |
<Environment name=INCLUDE default="$BOOST_PYTHON_BASE/include"></Environment> |
127 |
+ |
</Client> |
128 |
+ |
<use name=elementtree> |
129 |
+ |
<use name=gccxml> |
130 |
+ |
<use name=python> |
131 |
+ |
</Tool> |
132 |
+ |
EOF_TOOLFILE |
133 |
+ |
|
134 |
+ |
# boost_regex toolfile |
135 |
+ |
cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_regex |
136 |
+ |
<doc type=BuildSystem::ToolDoc version=1.0> |
137 |
+ |
<Tool name=boost_regex version=%v> |
138 |
+ |
<info url="http://www.boost.org"></info> |
139 |
+ |
<lib name=boost_regex-gcc-mt> |
140 |
+ |
<use name=boost> |
141 |
+ |
</Tool> |
142 |
+ |
EOF_TOOLFILE |
143 |
+ |
|
144 |
+ |
# boost_signals toolfile |
145 |
+ |
cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_signals |
146 |
+ |
<doc type=BuildSystem::ToolDoc version=1.0> |
147 |
+ |
<Tool name=boost_signals version=%v> |
148 |
+ |
<info url="http://www.boost.org"></info> |
149 |
+ |
<lib name=boost_signals-gcc-mt> |
150 |
+ |
<use name=boost> |
151 |
+ |
</Tool> |
152 |
+ |
EOF_TOOLFILE |
153 |
+ |
|
154 |
+ |
%post |
155 |
+ |
%{relocateConfig}etc/scram.d/boost |
156 |
+ |
%{relocateConfig}etc/scram.d/boost_filesystem |
157 |
+ |
%{relocateConfig}etc/scram.d/boost_program_options |
158 |
+ |
%{relocateConfig}etc/scram.d/boost_python |
159 |
+ |
%{relocateConfig}etc/scram.d/boost_regex |
160 |
+ |
%{relocateConfig}etc/scram.d/boost_signals |