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. |
# | User | Rev | Content |
---|---|---|---|
1 | elmer | 1.48 | ### RPM external boost 1.40.0 |
2 | elmer | 1.17 | %define boostver _%(echo %realversion | tr . _) |
3 | ratnik | 1.31 | Source: http://internap.dl.sourceforge.net/sourceforge/%{n}/%{n}%{boostver}.tar.gz |
4 | muzaffar | 1.46 | %define closingbrace ) |
5 | elmer | 1.47 | %define online %(case %cmsplatf in *onl_*_*%closingbrace echo true;; *%closingbrace echo false;; esac) |
6 | argiro | 1.1 | |
7 | ratnik | 1.25 | Requires: boost-build python bz2lib |
8 | muzaffar | 1.45 | %if "%online" != "true" |
9 | ratnik | 1.25 | Requires: zlib |
10 | %endif | ||
11 | |||
12 | argiro | 1.1 | %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 | ratnik | 1.25 | PV="PYTHON_VERSION=$(echo $PYTHON_VERSION | sed 's/\.[0-9]*-.*$//')" |
21 | argiro | 1.1 | PR="PYTHON_ROOT=$PYTHON_ROOT" |
22 | ratnik | 1.25 | |
23 | elmer | 1.17 | # 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 | ratnik | 1.25 | BZ2LIBI="BZIP2_INCLUDE=$BZ2LIB_ROOT/include" |
27 | |||
28 | muzaffar | 1.45 | %if "%online" != "true" |
29 | eulisse | 1.8 | ZLIBR="ZLIB_LIBPATH=$ZLIB_ROOT/lib" |
30 | ZLIBI="ZLIB_INCLUDE=$ZLIB_ROOT/include" | ||
31 | |||
32 | argiro | 1.1 | case $(uname) in |
33 | elmer | 1.33 | Darwin ) bjam %makeprocesses -s$PR -s$PV -s$BZ2LIBR -s$ZLIBR -sTOOLS=darwin --toolset=darwin || true ;; |
34 | dlange | 1.22 | * ) bjam %makeprocesses -s$PR -s$PV -s$BZ2LIBR -s$ZLIBR -sTOOLS=gcc ;; |
35 | argiro | 1.1 | esac |
36 | ratnik | 1.25 | %else |
37 | bjam %makeprocesses -s$PR -s$PV -s$BZ2LIBR -s$BZ2LIBI -sTOOLS=gcc | ||
38 | %endif | ||
39 | argiro | 1.1 | |
40 | %install | ||
41 | case $(uname) in Darwin ) so=dylib ;; * ) so=so ;; esac | ||
42 | dlange | 1.20 | #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 | elmer | 1.33 | # Perhaps the following could be done with a wildcard for the darwin/gcc dir |
47 | eulisse | 1.42 | case %cmsplatf in |
48 | osx*) | ||
49 | elmer | 1.33 | (cd bin.v2; find libs -path "libs/*/build/darwin*/release/*.$so*" -exec cp {} %i/lib/. \;) |
50 | ;; | ||
51 | eulisse | 1.42 | * ) |
52 | elmer | 1.33 | (cd bin.v2; find libs -path "libs/*/build/gcc*/release/*.$so*" -exec cp {} %i/lib/. \;) |
53 | ;; | ||
54 | esac | ||
55 | eulisse | 1.42 | |
56 | eulisse | 1.7 | find boost -name '*.[hi]*' -print | |
57 | argiro | 1.1 | 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 | eulisse | 1.6 | |
67 | ratnik | 1.19 | # 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 | elmer | 1.33 | #strip %i/lib/*.$so |
70 | ratnik | 1.19 | |
71 | eulisse | 1.42 | 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 | ratnik | 1.31 | |
76 | eulisse | 1.4 | (cd %i/lib/libs/python/pyste/install; python setup.py install --prefix=%i) |
77 | ratnik | 1.16 | |
78 | eulisse | 1.41 | getLibName() |
79 | { | ||
80 | elmer | 1.48 | libname=`find %i/lib -name "libboost_$1.$so" -exec basename {} \;` |
81 | eulisse | 1.41 | 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 | andreasp | 1.44 | export BOOST_SYSTEM_LIB=`getLibName system` |
88 | eulisse | 1.41 | export BOOST_PROGRAM_OPTIONS_LIB=`getLibName program_options` |
89 | export BOOST_PYTHON_LIB=`getLibName python` | ||
90 | export BOOST_REGEX_LIB=`getLibName regex` | ||
91 | lat | 1.49 | export PYTHONV=$(echo $PYTHON_VERSION | cut -f1,2 -d.) |
92 | eulisse | 1.41 | |
93 | muzaffar | 1.21 | # 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 | eulisse | 1.41 | <lib name="@BOOST_THREAD_LIB@"> |
101 | <lib name="@BOOST_SIGNALS_LIB@"> | ||
102 | muzaffar | 1.21 | <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 | dlange | 1.22 | <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 | muzaffar | 1.21 | </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 | eulisse | 1.41 | <lib name="@BOOST_FILESYSTEM_LIB@"> |
119 | andreasp | 1.44 | <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 | muzaffar | 1.21 | <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 | eulisse | 1.41 | <lib name="@BOOST_PROGRAM_OPTIONS_LIB@"> |
140 | muzaffar | 1.21 | <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 | eulisse | 1.41 | <lib name="@BOOST_PYTHON_LIB@"> |
150 | muzaffar | 1.21 | <Client> |
151 | <Environment name=BOOST_PYTHON_BASE default="%i"></Environment> | ||
152 | lat | 1.49 | <Environment name=PYSTE_EXEC default="$BOOST_PYTHON_BASE/lib/python@PYTHONV@/site-packages/Pyste/pyste.py"></Environment> |
153 | muzaffar | 1.21 | <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 | eulisse | 1.41 | <lib name="@BOOST_REGEX_LIB@"> |
168 | muzaffar | 1.21 | <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 | eulisse | 1.41 | <lib name="@BOOST_SIGNALS_LIB@"> |
178 | muzaffar | 1.21 | <use name=boost> |
179 | </Tool> | ||
180 | EOF_TOOLFILE | ||
181 | |||
182 | elmer | 1.50 | # 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 | eulisse | 1.41 | perl -p -i -e 's|\@([^@]*)\@|$ENV{$1}|g' %i/etc/scram.d/* |
196 | |||
197 | muzaffar | 1.21 | %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 | elmer | 1.50 | %{relocateConfig}etc/scram.d/boost_header |