ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/boost.spec
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.

File Contents

# 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