ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/boost.spec
Revision: 1.47
Committed: Fri Oct 30 19:46:57 2009 UTC (15 years, 6 months ago) by elmer
Branch: MAIN
CVS Tags: CMSSW_3_3_6_patch6, sm100215, CMSSW_3_3_6_patch5, apFor336p5v1, CMSSW_3_3_6_patch4, apFor336p5v0, for336patch4, CMSSW_3_3_3_TSG, sm100115-333tsg, CMSSW_3_3_6_patch3, apFor336p3v0, CMSSW_3_3_6_patch1, eskFor336ptch1, CMSSW_3_3_6, CMSSW_3_3_6_slc5-gcc434, apFor336v0-slc5-gcc434, apFor336v0, CMSSW_3_3_5_patch4, CMSSW_3_3_5_patch4_slc5-gcc434, apFor335p4v0-slc5-gcc434, apFor335p4-slc5-gcc434, apFor335p4v0, CMSSW_3_3_5_patch3, CMSSW_3_3_5_patch3_slc5-gcc434, apFor335p3v0-slc5-gcc434, apFor335p3v0, CMSSW_3_3_5_patch2_slc5-gcc434, CMSSW_3_3_5_patch2, CMSSW_3_3_3_onlpatch5_ONLINE, apFor335p2v0-slc5-gcc434, apFor335p2v0, CMSSW_3_3_5_patch1_slc5-gcc434, CMSSW_3_3_5_patch1, apFor335pat1v2-slc5-gcc434, apFor335pat1v2, apFor335pat1v1, apFor335pat1v1-slc5-gcc434, apFor335pat1v0-slc5-gcc434, apFor335pat1v0, lsFor335patch1, lsFOR335patch1v0, CMSSW_3_3_5_slc5-gcc434, CMSSW_3_3_5, CMSSW_3_3_3_onlpatch4_ONLINE, apFor335v0, apFor335v0-sl5igcc4, pe20091126a-for33X-slc4-gcc345, pe20091126a-for33X-slc5-gcc434, CMSSW_3_3_3_onlpatch2_ONLINE, CMSSW_3_3_3_onlpatch3_ONLINE, CMSSW_3_3_4_slc5-gcc434, CMSSW_3_3_4, apFor334v0-sl5igcc4, apFor334v0, CMSSW_3_3_3_DQM, apFor333dqmv0, CMSSW_3_3_3_patch1, CMSSW_3_3_3_slc5-gcc434, lmFor333pat1v0, CMSSW_3_3_3_ONLINE, fw20091114b, fw20091114a, ap20091114a, fw20091114, ap20091114, CMSSW_3_3_3, pe20091113c-for33X-slc5-gcc434, pe20091113b-for33X-slc5-gcc434, pe20091113a-for33X-slc5-gcc434, pe20091113a-for33X-slc4-gcc345, apFor333v1-sl5igcc4, apFor333v1-sl4igcc4, apFor333v1, pe20091110c-for33X-slc5-gcc434, pe20091110c-for33X-slc4-gcc432, pe20091110c-for33X-slc4-gcc345, pe20091110b-for33X-slc5-gcc434, pe20091110b-for33X-slc4-gcc345, pe20091110b-for33X-slc4-gcc432, pe20091110a-for33X-slc5-gcc434, pe20091110a-for33X-slc4-gcc432, pe20091110a-for33X-slc4-gcc345, ge20091102-qt-conf, pe20091031a-for34X, pe20091030a-for34X
Changes since 1.46: +1 -1 lines
Log Message:
  Fix typo: "flase" -> "false" in case statement used to define whether it
  is in an online build on the basis of cmsplatf. (The definition should
  have been correct in any case, despite the typo, but correct the typo
  in any case.)

File Contents

# User Rev Content
1 elmer 1.40 ### RPM external boost 1.38.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 eulisse 1.43 libname=`find %i/lib -name "libboost_$1*mt*.$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    
92 muzaffar 1.21 # SCRAM ToolBox toolfile
93     mkdir -p %i/etc/scram.d
94     # boost toolfile
95     cat << \EOF_TOOLFILE >%i/etc/scram.d/boost
96     <doc type=BuildSystem::ToolDoc version=1.0>
97     <Tool name=boost version=%v>
98     <info url="http://www.boost.org"></info>
99 eulisse 1.41 <lib name="@BOOST_THREAD_LIB@">
100     <lib name="@BOOST_SIGNALS_LIB@">
101 muzaffar 1.21 <Client>
102     <Environment name=BOOST_BASE default="%i"></Environment>
103     <Environment name=LIBDIR default="$BOOST_BASE/lib"></Environment>
104     <Environment name=INCLUDE default="$BOOST_BASE/include"></Environment>
105     </Client>
106     <use name=sockets>
107 dlange 1.22 <Runtime name=LD_LIBRARY_PATH value="$BOOST_BASE/lib" type=path>
108     <Runtime name=CMSSW_FWLITE_INCLUDE_PATH value="$BOOST_BASE/include" type=path>
109 muzaffar 1.21 </Tool>
110     EOF_TOOLFILE
111    
112     # boost_filesystem toolfile
113     cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_filesystem
114     <doc type=BuildSystem::ToolDoc version=1.0>
115     <Tool name=boost_filesystem version=%v>
116     <info url="http://www.boost.org"></info>
117 eulisse 1.41 <lib name="@BOOST_FILESYSTEM_LIB@">
118 andreasp 1.44 <use name=boost_system>
119     <use name=boost>
120     </Tool>
121     EOF_TOOLFILE
122    
123     # boost_system toolfile
124     cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_system
125     <doc type=BuildSystem::ToolDoc version=1.0>
126     <Tool name=boost_system version=%v>
127     <info url="http://www.boost.org"></info>
128     <lib name="@BOOST_SYSTEM_LIB@">
129 muzaffar 1.21 <use name=boost>
130     </Tool>
131     EOF_TOOLFILE
132    
133     # boost_program_options toolfile
134     cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_program_options
135     <doc type=BuildSystem::ToolDoc version=1.0>
136     <Tool name=boost_program_options version=%v>
137     <info url="http://www.boost.org"></info>
138 eulisse 1.41 <lib name="@BOOST_PROGRAM_OPTIONS_LIB@">
139 muzaffar 1.21 <use name=boost>
140     </Tool>
141     EOF_TOOLFILE
142    
143     # boost_python toolfile
144     cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_python
145     <doc type=BuildSystem::ToolDoc version=1.0>
146     <Tool name=boost_python version=%v>
147     <info url="http://www.boost.org"></info>
148 eulisse 1.41 <lib name="@BOOST_PYTHON_LIB@">
149 muzaffar 1.21 <Client>
150     <Environment name=BOOST_PYTHON_BASE default="%i"></Environment>
151     <Environment name=PYSTE_EXEC default="$BOOST_PYTHON_BASE/lib/python2.4/site-packages/Pyste/pyste.py"></Environment>
152     <Environment name=LIBDIR default="$BOOST_PYTHON_BASE/lib"></Environment>
153     <Environment name=INCLUDE default="$BOOST_PYTHON_BASE/include"></Environment>
154     </Client>
155     <use name=elementtree>
156     <use name=gccxml>
157     <use name=python>
158     </Tool>
159     EOF_TOOLFILE
160    
161     # boost_regex toolfile
162     cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_regex
163     <doc type=BuildSystem::ToolDoc version=1.0>
164     <Tool name=boost_regex version=%v>
165     <info url="http://www.boost.org"></info>
166 eulisse 1.41 <lib name="@BOOST_REGEX_LIB@">
167 muzaffar 1.21 <use name=boost>
168     </Tool>
169     EOF_TOOLFILE
170    
171     # boost_signals toolfile
172     cat << \EOF_TOOLFILE >%i/etc/scram.d/boost_signals
173     <doc type=BuildSystem::ToolDoc version=1.0>
174     <Tool name=boost_signals version=%v>
175     <info url="http://www.boost.org"></info>
176 eulisse 1.41 <lib name="@BOOST_SIGNALS_LIB@">
177 muzaffar 1.21 <use name=boost>
178     </Tool>
179     EOF_TOOLFILE
180    
181 eulisse 1.41 perl -p -i -e 's|\@([^@]*)\@|$ENV{$1}|g' %i/etc/scram.d/*
182    
183 muzaffar 1.21 %post
184     %{relocateConfig}etc/scram.d/boost
185     %{relocateConfig}etc/scram.d/boost_filesystem
186     %{relocateConfig}etc/scram.d/boost_program_options
187     %{relocateConfig}etc/scram.d/boost_python
188     %{relocateConfig}etc/scram.d/boost_regex
189     %{relocateConfig}etc/scram.d/boost_signals