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

# 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