Revision: | 1.50 |
Committed: | Fri Nov 20 12:55:29 2009 UTC (15 years, 5 months ago) by elmer |
Branch: | MAIN |
CVS Tags: | CRABSERVER_1_1_3_pre2_BUILD_SLC5, CRABSERVER_1_1_3_pre1_BUILD_SLC5, CRABSERVER_1_1_2_py26_BUILD_SLC5, CRABSERVER_1_1_2_BUILD_SLC5, CRABSERVER_1_1_2_pre1_BUILD_SLC5, CRABSERVER_1_1_2_beta_BUILD_SLC5, CMSSW_3_5_7_hltpatch4, apFor357hltp4v0, DQMGUI_5_2_1, CMSSW_3_5_8_patch4, apFor358p4v3, apFor358p4v2, apFor358p4v1, apFor358p4v0, DQMGUI_5_2_0, CMSSW_3_5_8_patch3, apFor358p3v0, CMSSW_3_5_8_patch2, apFor358p2v0, CMSSW_3_5_8_patch1, apFor358p1v1, apFor358p1v0, CMSSW_3_5_7_onlpatch2_ONLINE, CMSSW_3_5_8, CMSSW_3_5_7_onlpatch1_ONLINE, CMSSW_3_5_7_ONLINE, apFor358v0, CMSSW_3_5_4_onlpatch4_ONLINE, fwFor357online, CMSSW_3_5_7, apFor357v2, apFor357v1, apFor357v0, CMSSW_3_5_6_patch1, for356p1, CMSSW_3_5_4_patch2, CMSSW_3_5_6, for356, for354p2, CRABSERVER_1_1_1_BUILD_SLC5, dsr20100326fwlite355, CMSSW_3_5_5, dg20100323-prodagent, CMSSW_3_5_4_onlpatch3_ONLINE, apFor355v0, CMSSW_3_5_4_patch1, for354patch1, CMSSW_3_5_4_onlpatch2_ONLINE, CMSSW_3_5_4_onlpatch1_ONLINE, CMSSW_3_5_4_ONLINE, DQMGUI_5_1_8, fwFor354onl, CMSSW_3_5_4, apFor354v0, CRABSERVER_1_1_1_pre12_BUILD_SLC5, CMSSW_3_5_3_ONLINE, pe20100305-for36X, fwFor353onl, CMSSW_3_5_3, CRABSERVER_1_1_1_pre10_BUILD_SLC5, CMSSW_3_6_0_pre2, apFor353v0, DAS_20100302_slc5_amd64_gcc434, sm100302a-for35X, sm100302b-for36X, sm100302a-for36X, wmtFor360pre2, fc20100228, pe20100228a-for36X, CMSSW_3_5_2_patch2, apFor352p2v0, CMSSW_3_5_2_patch1, apFor352p1v0, DBS_20100226_slc5_amd64_gcc434, fwFor352onl, CMSSW_3_5_1_onlpatch1_ONLINE, CMSSW_3_6_0_pre1, pe20100223c-for36X, pe20100223b-for36X, CRABSERVER_1_1_1_pre9_BUILD_SLC5, pe20100223a-for36X, CMSSW_3_5_2, apFor352v0, CRABSERVER_1_1_1_pre8_BUILD_SLC5, apFor351p2v0, CRABSERVER_1_1_1_pre7_BUILD_SLC5, CMSSW_3_5_1_patch1, for351patch1, CMSSW_3_5_1_ONLINE, DBS_20100217_slc5_amd64_gcc434, FILEMOVER_20100217_slc5_amd64_gcc434, DAS_20100217_slc5_amd64_gcc434, DAS_20100216b_slc5_amd64_gcc434, CRABSERVER_1_1_1_pre6_BUILD_SLC5, CMSSW_3_5_1, DAS_20100216_slc5_amd64_gcc434, pe20100216b-for36Xmin, pe20100216a-for36X, apFor351v0, ge20100215-rootqt-r522, ge20100215-rootqt-pre5r526, CMSSW_3_5_0_pre5r526, dsr20100209fwlite342, DQMGUI_5_1_7b, CMSSW_3_5_0_patch1, CMSSW_3_4_2_patch1, for350patch1, for342patch1, CRABSERVER_1_1_1_pre5_BUILD_SLC5, CMSSW_3_5_0_ONLINE, CMSSW_3_4_2, fwFor350online, CMSSW_3_5_0, apFor350v0, pe20100205a-for35X, eskFor342, pe20100204a-for35X, DQMGUI_5_1_7, for341op1-onl-slc5, dg20100201-dbs3, FILEMOVER_20100201_slc5_amd64_gcc434, CMSSW_3_5_0_pre5_ONLINE, FILEMOVER_20100128b_slc5_amd64_gcc434, dg20100129-dbs3, for350p5-onl-slc5, pe20100131c-for35Xr526, pe20100131b-for35Xr526, pe20100131a-for35Xr526, CMSSW_3_5_0_pre5g493, pe20100130b-for35Xg493, pe20100130-for35Xg493, CMSSW_3_5_0_pre5, for350p4-onl-slc5, pe20100129a-for35X, CMSSW_3_5_0_pre4, apFor350pre5v0, dg20100128-dbs3, FILEMOVER_20100128_slc5_amd64_gcc434, sm100128a, sm100128, apFor350pre4v0, DAS_20100127_slc5_amd64_gcc434, pe20100127e-for35X, pe20100127d-for35X, pe20100127c-for35X, sm100127-onl35x, CMSSW_3_4_1_ONLINE, pe20100127b-for35X, pe20100127a-for35X, DAS_20100126_slc5_amd64_gcc434, sm100126, pe20100124a-for35X, ap20100123a-for35X, FILEMOVER_20100122_slc5_amd64_gcc434, CRABSERVER_1_1_1_pre4_BUILD_SLC5, CRABSERVER_1_1_1_pre3_BUILD_SLC5_1, CRABSERVER_1_1_1_pre3_BUILD_SLC5, CRABSERVER_1_1_1_pre3_BUILD_OK, DAS_20100119_slc5_amd64_gcc434, CMSSW_3_5_0_pre3, CS_1_1_1_test1_BUILD, DAS_20100115_slc5_amd64_gcc434, dg20100115-security, CS_1_1_1_slc5_BUILD, DBS_20100115_slc5_amd64_gcc434, ds20100115_cs_SLC5_workOK, apFor350pre3v0, pe20100113a-for35X, sm20100113a-for35X, sm20100113-for35X, pe20100112b-for35X, dg20100112-security, DBS_20100112_slc5_amd64_gcc434, sm20100112a-for35X, sm20100112-for35X, pe20100112-for35X, DBS_20100111_slc5_amd64_gcc434, dg20100111-security, CS_SLC5_test_4, dg20100107b-wmcore, dg20100107-wmcore, dsr20100107fwlite341, sm100107a, sm100106a, DAS_20100105_slc5_amd64_gcc434, sm100105c, sm100105b, pe20100105a-for34X-for35X, ge20100105-pyqt-relocatable-build, sm100105a, pe20091227a-ports, DAS_20091221_slc5_amd64_gcc434, CMSSW_3_5_0_pre2, CMSSW_3_4_1, apFor350pre2v2, apFor350pre2v1, apFor350pre2v0, eskFor341, pe20091216b-for34X-for35X, pe20091216a-for34X-for35X, CMSSW_3_4_0, ge20091214b-new-bootstrap, ge20091214a-new-bootstrap, ge20091214-new-bootstrap, DAS_20091214_slc5_amd64_gcc434, ge20091214-fix-rh5x, CMSSW_3_5_0_pre1, apFor350pre1v0, eskFor340, dg20091211-couchdb, dg20091210-phedex, pe20091209b-for34X-for35X, dg20091203c-comp-base, pe20091209a-for34X-for35X, DD_20091208_slc5_amd64_gcc434, DAS_20091208_slc5_amd64_gcc434, FILEMOVER_20091208_slc5_amd64_gcc434, DBS_20091208_slc5_amd64_gcc434, CMSSW_3_4_0_pre7, eskFor340p7-slc5-gcc434, dg20091203b-comp-base, pe20091201a-for34X-slc5-gcc434, DQMCATTEST_0_0_1, pe20091130b-for34X-slc5-gcc434, pe20091130a-for34X-slc5-gcc434, pe20091120c-for34X-slc5-gcc434 |
Changes since 1.49: | +14 -0 lines |
Log Message: | Add a "boost_header" scram tool file, to allow source-only dependencies on boost. |
# | Content |
---|---|
1 | ### RPM external boost 1.40.0 |
2 | %define boostver _%(echo %realversion | tr . _) |
3 | Source: http://internap.dl.sourceforge.net/sourceforge/%{n}/%{n}%{boostver}.tar.gz |
4 | %define closingbrace ) |
5 | %define online %(case %cmsplatf in *onl_*_*%closingbrace echo true;; *%closingbrace echo false;; esac) |
6 | |
7 | Requires: boost-build python bz2lib |
8 | %if "%online" != "true" |
9 | Requires: zlib |
10 | %endif |
11 | |
12 | %prep |
13 | %setup -n %{n}%{boostver} |
14 | |
15 | %build |
16 | # Note that some targets will fail to build (the test programs have |
17 | # missing symbols), causing darwin to fail to link and bjam to return |
18 | # an error. So ignore the exit code from bjam on darwin to avoid |
19 | # RPM falsely detecting a problem. |
20 | PV="PYTHON_VERSION=$(echo $PYTHON_VERSION | sed 's/\.[0-9]*-.*$//')" |
21 | PR="PYTHON_ROOT=$PYTHON_ROOT" |
22 | |
23 | # The following line assumes a version of the form x.y.z-XXXX, where the |
24 | # "-XXXX" part represents some CMS rebuild of version x.y.z |
25 | BZ2LIBR="BZIP2_LIBPATH=$BZ2LIB_ROOT/lib" |
26 | BZ2LIBI="BZIP2_INCLUDE=$BZ2LIB_ROOT/include" |
27 | |
28 | %if "%online" != "true" |
29 | ZLIBR="ZLIB_LIBPATH=$ZLIB_ROOT/lib" |
30 | ZLIBI="ZLIB_INCLUDE=$ZLIB_ROOT/include" |
31 | |
32 | case $(uname) in |
33 | Darwin ) bjam %makeprocesses -s$PR -s$PV -s$BZ2LIBR -s$ZLIBR -sTOOLS=darwin --toolset=darwin || true ;; |
34 | * ) bjam %makeprocesses -s$PR -s$PV -s$BZ2LIBR -s$ZLIBR -sTOOLS=gcc ;; |
35 | esac |
36 | %else |
37 | bjam %makeprocesses -s$PR -s$PV -s$BZ2LIBR -s$BZ2LIBI -sTOOLS=gcc |
38 | %endif |
39 | |
40 | %install |
41 | case $(uname) in Darwin ) so=dylib ;; * ) so=so ;; esac |
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 | # Perhaps the following could be done with a wildcard for the darwin/gcc dir |
47 | case %cmsplatf in |
48 | osx*) |
49 | (cd bin.v2; find libs -path "libs/*/build/darwin*/release/*.$so*" -exec cp {} %i/lib/. \;) |
50 | ;; |
51 | * ) |
52 | (cd bin.v2; find libs -path "libs/*/build/gcc*/release/*.$so*" -exec cp {} %i/lib/. \;) |
53 | ;; |
54 | esac |
55 | |
56 | find boost -name '*.[hi]*' -print | |
57 | while read f; do |
58 | mkdir -p %i/include/$(dirname $f) |
59 | install -c $f %i/include/$f |
60 | done |
61 | find libs -name '*.py' -print | |
62 | while read f; do |
63 | mkdir -p %i/lib/$(dirname $f) |
64 | install -c $f %i/lib/$f |
65 | done |
66 | |
67 | # Do all manipulation with files before creating symbolic links: |
68 | perl -p -i -e "s|^#!.*python|/usr/bin/env python|" $(find %{i}/lib %{i}/bin) |
69 | #strip %i/lib/*.$so |
70 | |
71 | for l in `find %i/lib -name "*.$so.*"` |
72 | do |
73 | ln -s `basename $l` `echo $l | sed -e "s|[.]$so[.].*|.$so|"` |
74 | done |
75 | |
76 | (cd %i/lib/libs/python/pyste/install; python setup.py install --prefix=%i) |
77 | |
78 | getLibName() |
79 | { |
80 | libname=`find %i/lib -name "libboost_$1.$so" -exec basename {} \;` |
81 | echo $libname | sed -e 's|[.][^-]*$||;s|^lib||' |
82 | } |
83 | |
84 | export BOOST_THREAD_LIB=`getLibName thread` |
85 | export BOOST_SIGNALS_LIB=`getLibName signals` |
86 | export BOOST_FILESYSTEM_LIB=`getLibName filesystem` |
87 | export BOOST_SYSTEM_LIB=`getLibName system` |
88 | export BOOST_PROGRAM_OPTIONS_LIB=`getLibName program_options` |
89 | export BOOST_PYTHON_LIB=`getLibName python` |
90 | export BOOST_REGEX_LIB=`getLibName regex` |
91 | export PYTHONV=$(echo $PYTHON_VERSION | cut -f1,2 -d.) |
92 | |
93 | # SCRAM ToolBox toolfile |
94 | mkdir -p %i/etc/scram.d |
95 | # boost toolfile |
96 | cat << \EOF_TOOLFILE >%i/etc/scram.d/boost |
97 | <doc type=BuildSystem::ToolDoc version=1.0> |
98 | <Tool name=boost version=%v> |
99 | <info url="http://www.boost.org"></info> |
100 | <lib name="@BOOST_THREAD_LIB@"> |
101 | <lib name="@BOOST_SIGNALS_LIB@"> |
102 | <Client> |
103 | <Environment name=BOOST_BASE default="%i"></Environment> |
104 | <Environment name=LIBDIR default="$BOOST_BASE/lib"></Environment> |
105 | <Environment name=INCLUDE default="$BOOST_BASE/include"></Environment> |
106 | </Client> |
107 | <use name=sockets> |
108 | <Runtime name=LD_LIBRARY_PATH value="$BOOST_BASE/lib" type=path> |
109 | <Runtime name=CMSSW_FWLITE_INCLUDE_PATH value="$BOOST_BASE/include" type=path> |
110 | </Tool> |
111 | EOF_TOOLFILE |
112 | |
113 | # boost_filesystem toolfile |
114 | cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_filesystem |
115 | <doc type=BuildSystem::ToolDoc version=1.0> |
116 | <Tool name=boost_filesystem version=%v> |
117 | <info url="http://www.boost.org"></info> |
118 | <lib name="@BOOST_FILESYSTEM_LIB@"> |
119 | <use name=boost_system> |
120 | <use name=boost> |
121 | </Tool> |
122 | EOF_TOOLFILE |
123 | |
124 | # boost_system toolfile |
125 | cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_system |
126 | <doc type=BuildSystem::ToolDoc version=1.0> |
127 | <Tool name=boost_system version=%v> |
128 | <info url="http://www.boost.org"></info> |
129 | <lib name="@BOOST_SYSTEM_LIB@"> |
130 | <use name=boost> |
131 | </Tool> |
132 | EOF_TOOLFILE |
133 | |
134 | # boost_program_options toolfile |
135 | cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_program_options |
136 | <doc type=BuildSystem::ToolDoc version=1.0> |
137 | <Tool name=boost_program_options version=%v> |
138 | <info url="http://www.boost.org"></info> |
139 | <lib name="@BOOST_PROGRAM_OPTIONS_LIB@"> |
140 | <use name=boost> |
141 | </Tool> |
142 | EOF_TOOLFILE |
143 | |
144 | # boost_python toolfile |
145 | cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_python |
146 | <doc type=BuildSystem::ToolDoc version=1.0> |
147 | <Tool name=boost_python version=%v> |
148 | <info url="http://www.boost.org"></info> |
149 | <lib name="@BOOST_PYTHON_LIB@"> |
150 | <Client> |
151 | <Environment name=BOOST_PYTHON_BASE default="%i"></Environment> |
152 | <Environment name=PYSTE_EXEC default="$BOOST_PYTHON_BASE/lib/python@PYTHONV@/site-packages/Pyste/pyste.py"></Environment> |
153 | <Environment name=LIBDIR default="$BOOST_PYTHON_BASE/lib"></Environment> |
154 | <Environment name=INCLUDE default="$BOOST_PYTHON_BASE/include"></Environment> |
155 | </Client> |
156 | <use name=elementtree> |
157 | <use name=gccxml> |
158 | <use name=python> |
159 | </Tool> |
160 | EOF_TOOLFILE |
161 | |
162 | # boost_regex toolfile |
163 | cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_regex |
164 | <doc type=BuildSystem::ToolDoc version=1.0> |
165 | <Tool name=boost_regex version=%v> |
166 | <info url="http://www.boost.org"></info> |
167 | <lib name="@BOOST_REGEX_LIB@"> |
168 | <use name=boost> |
169 | </Tool> |
170 | EOF_TOOLFILE |
171 | |
172 | # boost_signals toolfile |
173 | cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_signals |
174 | <doc type=BuildSystem::ToolDoc version=1.0> |
175 | <Tool name=boost_signals version=%v> |
176 | <info url="http://www.boost.org"></info> |
177 | <lib name="@BOOST_SIGNALS_LIB@"> |
178 | <use name=boost> |
179 | </Tool> |
180 | EOF_TOOLFILE |
181 | |
182 | # boost_header toolfile |
183 | cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_header |
184 | <doc type=BuildSystem::ToolDoc version=1.0> |
185 | <Tool name=boost_header version=%v> |
186 | <info url="http://www.boost.org"></info> |
187 | <Client> |
188 | <Environment name=BOOSTHEADER_BASE default="%i"></Environment> |
189 | <Environment name=INCLUDE default="$BOOSTHEADER_BASE/include"></Environment> |
190 | </Client> |
191 | </Tool> |
192 | EOF_TOOLFILE |
193 | |
194 | |
195 | perl -p -i -e 's|\@([^@]*)\@|$ENV{$1}|g' %i/etc/scram.d/* |
196 | |
197 | %post |
198 | %{relocateConfig}etc/scram.d/boost |
199 | %{relocateConfig}etc/scram.d/boost_filesystem |
200 | %{relocateConfig}etc/scram.d/boost_program_options |
201 | %{relocateConfig}etc/scram.d/boost_python |
202 | %{relocateConfig}etc/scram.d/boost_regex |
203 | %{relocateConfig}etc/scram.d/boost_signals |
204 | %{relocateConfig}etc/scram.d/boost_header |