ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/root.spec
Revision: 1.231
Committed: Thu Jan 20 22:54:31 2011 UTC (14 years, 3 months ago) by elmer
Branch: MAIN
Changes since 1.230: +10 -4 lines
Log Message:
  Use "macosx64" as the ./configure arch when building osx*_amd64_*

File Contents

# Content
1 ### RPM lcg root 5.27.06b
2 ## INITENV +PATH PYTHONPATH %i/lib/python
3 ## INITENV SET ROOTSYS %i
4 #Source: cvs://:pserver:cvs@root.cern.ch:2401/user/cvs?passwd=Ah<Z&tag=-rv%(echo %realversion | tr . -)&module=root&output=/%{n}_v%{realversion}.source.tar.gz
5 Source: ftp://root.cern.ch/%n/%{n}_v%{realversion}.source.tar.gz
6 %define closingbrace )
7 %define online %(case %cmsplatf in *onl_*_*%closingbrace echo true;; *%closingbrace echo false;; esac)
8 %define ismac %(case %cmsplatf in osx*%closingbrace echo true;; *%closingbrace e
9 cho false;; esac)
10
11 Patch0: root-5.27-06-externals
12 Patch1: root-5.27-04-CINT-maxlongline-maxtypedef
13 Patch2: root-5.22-00a-roofit-silence-static-printout
14 Patch3: root-5.22-00d-linker-gnu-hash-style
15 Patch4: root-5.22-00d-TBranchElement-dropped-data-member
16 Patch5: root-5.27-06-fireworks9
17 Patch6: root-5.27-06b-gdb-backtrace
18 Patch7: root-5.27-06-tmva-DecisionTreeNode
19 Patch8: root-5.27-06b-r36567
20 Patch9: root-5.27-06b-r36572
21 Patch10: root-5.27-06b-r36707
22 Patch11: root-5.27-06b-r36594
23 Patch12: root-5.27-06b-tmva-MethodBase-initvar
24 Patch13: root-5.27-06b-tmva_Event_dynamic_hack
25
26 %define cpu %(echo %cmsplatf | cut -d_ -f2)
27
28 Requires: gccxml gsl libjpg libpng libtiff libungif pcre python fftw3
29
30 %if "%ismac" == "false"
31 Requires: castor dcap
32 %endif
33
34 %if "%online-%ismac" == "false-true"
35 Requires: openssl zlib gfortran-macosx
36 %endif
37
38 %if "%online-%ismac" == "false-false"
39 Requires: openssl zlib qt xrootd
40 %endif
41
42 %prep
43 %setup -n root
44 %patch0 -p1
45 %patch1 -p1
46 %patch2 -p1
47 # patch3 is OS version dependent, see below
48 %patch4 -p1
49 %patch5 -p1
50 %patch6 -p1
51 %patch7 -p1
52 %patch8 -p1
53 %patch9 -p1
54 %patch10 -p1
55 %patch11 -p1
56 %patch12 -p1
57 %patch13 -p1
58
59 # The following patch can only be applied on SLC5 or later (extra linker
60 # options only available with the SLC5 binutils)
61 case %cmsplatf in
62 slc5_* | slc5onl_* )
63 %patch3 -p1
64 ;;
65 esac
66
67 %build
68
69 mkdir -p %i
70 export LIBJPG_ROOT
71 export ROOTSYS=%_builddir/root
72 export PYTHONV=$(echo $PYTHON_VERSION | cut -f1,2 -d.)
73
74 %if "%online" == "true"
75 # Use system qt. Also skip xrootd and odbc for online case:
76
77 EXTRA_CONFIG_ARGS="--with-f77=/usr
78 --disable-odbc
79 --disable-qt --disable-qtgsi --disable-astiff"
80 %else
81 export LIBPNG_ROOT ZLIB_ROOT LIBTIFF_ROOT LIBUNGIF_ROOT
82 EXTRA_CONFIG_ARGS="--with-f77=${GCC_ROOT}
83 --enable-qt --with-qt-libdir=${QT_ROOT}/lib --with-qt-incdir=${QT_ROOT}/include
84 --with-ssl-incdir=${OPENSSL_ROOT}/include
85 --with-ssl-libdir=${OPENSSL_ROOT}/lib
86 --enable-qtgsi"
87 %endif
88
89 CONFIG_ARGS="--enable-table
90 --disable-builtin-pcre
91 --disable-builtin-freetype
92 --disable-builtin-zlib
93 --with-gccxml=${GCCXML_ROOT}
94 --enable-python --with-python-libdir=${PYTHON_ROOT}/lib --with-python-incdir=${PYTHON_ROOT}/include/python${PYTHONV}
95 --enable-explicitlink
96 --enable-mathmore
97 --enable-reflex
98 --enable-cintex
99 --enable-minuit2
100 --enable-fftw3
101 --with-fftw3-incdir=${FFTW3_ROOT}/include
102 --with-fftw3-libdir=${FFTW3_ROOT}/lib
103 --disable-ldap
104 --disable-krb5
105 --with-xrootd=${XROOTD_ROOT}
106 --with-gsl-incdir=${GSL_ROOT}/include
107 --with-gsl-libdir=${GSL_ROOT}/lib
108 --with-dcap-libdir=${DCAP_ROOT}/lib
109 --with-dcap-incdir=${DCAP_ROOT}/include
110 --disable-pgsql
111 --disable-mysql
112 --disable-xml ${EXTRA_CONFIG_ARGS}"
113
114 case $(uname)-$(uname -m) in
115 Linux-x86_64)
116 ./configure linuxx8664gcc $CONFIG_ARGS --with-rfio-libdir=${CASTOR_ROOT}/lib --with-rfio-incdir=${CASTOR_ROOT}/include/shift --with-castor-libdir=${CASTOR_ROOT}/lib --with-castor-incdir=${CASTOR_ROOT}/include/shift ;;
117 Linux-i*86)
118 ./configure linux $CONFIG_ARGS --with-rfio-libdir=${CASTOR_ROOT}/lib --with-rfio-incdir=${CASTOR_ROOT}/include/shift --with-castor-libdir=${CASTOR_ROOT}/lib --with-castor-incdir=${CASTOR_ROOT}/include/shift ;;
119 Darwin*)
120 case %cmsplatf in
121 *_ia32_* )
122 comparch=i386
123 macconfig=macosx
124 ;;
125 *_amd64_* )
126 comparch=x86_64
127 macconfig=macosx64
128 ;;
129 * )
130 comparch=ppc
131 macconfig=macosx
132 ;;
133 esac
134 export CC="gcc -arch $comparch" CXX="g++ -arch $comparch"
135 ./configure $macconfig $CONFIG_ARGS --with-cc="$CC" --with-cxx="$CXX" --disable-rfio --disable-builtin_afterimage ;;
136 Linux-ppc64*)
137 ./configure linux $CONFIG_ARGS --disable-rfio;;
138 esac
139
140 case %cmsplatf in
141 osx*)
142 makeopts=
143 ;;
144 *)
145 makeopts="%makeprocesses"
146 ;;
147 esac
148
149 make $makeopts
150 make cintdlls
151
152 %install
153 # Override installers if we are using GNU fileutils cp. On OS X
154 # ROOT's INSTALL is defined to "cp -pPR", which only works with
155 # the system cp (/bin/cp). If you have fileutils on fink, you
156 # lose. Check which one is getting picked up and select syntax
157 # accordingly. (FIXME: do we need to check that -P is accepted?)
158 if (cp --help | grep -e '-P.*--parents') >/dev/null 2>&1; then
159 cp="cp -dpR"
160 else
161 cp="cp -pPR"
162 fi
163
164 export ROOTSYS=%i
165 make INSTALL="$cp" INSTALLDATA="$cp" install
166 mkdir -p $ROOTSYS/lib/python
167 cp -r cint/reflex/python/genreflex $ROOTSYS/lib/python
168
169 # SCRAM ToolBox toolfile
170 mkdir -p %i/etc/scram.d
171 # rootcore toolfile
172 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootcore.xml
173 <tool name="rootcore" version="%v">
174 <info url="http://root.cern.ch/root/"/>
175 <lib name="Tree"/>
176 <lib name="Net"/>
177 <lib name="Thread"/>
178 <lib name="MathCore"/>
179 <lib name="RIO"/>
180 <lib name="Core"/>
181 <lib name="Cint"/>
182 <client>
183 <environment name="ROOTCORE_BASE" default="%i"/>
184 <environment name="LIBDIR" default="$ROOTCORE_BASE/lib"/>
185 <environment name="INCLUDE" default="$ROOTCORE_BASE/include"/>
186 <environment name="INCLUDE" default="$ROOTCORE_BASE/cint"/>
187 </client>
188 <runtime name="PATH" value="$ROOTCORE_BASE/bin" type="path"/>
189 <runtime name="ROOTSYS" value="$ROOTCORE_BASE/"/>
190 <runtime name="PYTHONPATH" value="$ROOTCORE_BASE/lib" type="path"/>
191 <use name="sockets"/>
192 <use name="pcre"/>
193 <use name="zlib"/>
194 </tool>
195 EOF_TOOLFILE
196
197 # root toolfile, alias for rootphysics. Using rootphysics is preferred.
198 cat << \EOF_TOOLFILE >%i/etc/scram.d/root.xml
199 <tool name="root" version="%v">
200 <info url="http://root.cern.ch/root/"/>
201 <use name="rootphysics"/>
202 </tool>
203 EOF_TOOLFILE
204
205 # roothistmatrix toolfile
206 cat << \EOF_TOOLFILE >%i/etc/scram.d/roothistmatrix.xml
207 <tool name="roothistmatrix" version="%v">
208 <info url="http://root.cern.ch/root/"/>
209 <lib name="Hist"/>
210 <lib name="Matrix"/>
211 <use name="ROOTCore"/>
212 </tool>
213 EOF_TOOLFILE
214
215 # rootgpad toolfile
216 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootgpad.xml
217 <tool name="rootgpad" version="%v">
218 <info url="http://root.cern.ch/root/"/>
219 <lib name="Gpad"/>
220 <lib name="Graf"/>
221 <use name="roothistmatrix"/>
222 </tool>
223 EOF_TOOLFILE
224
225 # rootphysics toolfile
226 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootphysics.xml
227 <tool name="rootphysics" version="%v">
228 <info url="http://root.cern.ch/root/"/>
229 <lib name="Physics"/>
230 <use name="roothistmatrix"/>
231 </tool>
232 EOF_TOOLFILE
233
234 # rootgraphics toolfile, identical to old "root" toolfile
235 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootgraphics.xml
236 <tool name="rootgraphics" version="%v">
237 <info url="http://root.cern.ch/root/"/>
238 <lib name="TreePlayer"/>
239 <lib name="Graf3d"/>
240 <lib name="Postscript"/>
241 <use name="rootgpad"/>
242 </tool>
243 EOF_TOOLFILE
244
245 # rootcintex toolfile
246 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootcintex.xml
247 <tool name="rootcintex" version="%v">
248 <info url="http://root.cern.ch/root/"/>
249 <lib name="Cintex"/>
250 <use name="ROOTRflx"/>
251 <use name="ROOTCore"/>
252 </tool>
253 EOF_TOOLFILE
254
255 # rootinteractive toolfile (GQt/qt lib dependencies
256 # have been moved to rootqt.xml)
257 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootinteractive.xml
258 <tool name="rootinteractive" version="%v">
259 <info url="http://root.cern.ch/root/"/>
260 <lib name="Rint"/>
261 <lib name="Gui"/>
262 <use name="libjpg"/>
263 <use name="libpng"/>
264 <use name="rootgpad"/>
265 </tool>
266 EOF_TOOLFILE
267
268 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootqt.xml
269 <tool name="rootqt" version="%v">
270 <info url="http://root.cern.ch/root/"/>
271 <lib name="GQt"/>
272 <use name="qt"/>
273 </tool>
274 EOF_TOOLFILE
275
276 # rootmath toolfile
277 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootmath.xml
278 <tool name="rootmath" version="%v">
279 <info url="http://root.cern.ch/root/"/>
280 <lib name="GenVector"/>
281 <lib name="MathMore"/>
282 <use name="ROOTCore"/>
283 <use name="gsl"/>
284 </tool>
285 EOF_TOOLFILE
286
287 # rootminuit toolfile
288 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootminuit.xml
289 <tool name="rootminuit" version="%v">
290 <info url="http://root.cern.ch/root/"/>
291 <lib name="Minuit"/>
292 <use name="rootgpad"/>
293 </tool>
294 EOF_TOOLFILE
295
296 # rootminuit2 toolfile
297 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootminuit2.xml
298 <tool name="rootminuit2" version="%v">
299 <info url="http://root.cern.ch/root/"/>
300 <lib name="Minuit2"/>
301 <use name="rootgpad"/>
302 </tool>
303 EOF_TOOLFILE
304
305 # rootrflx toolfile
306 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootrflx.xml
307 <tool name="rootrflx" version="%v">
308 <info url="http://root.cern.ch/root/"/>
309 <lib name="Reflex"/>
310 <client>
311 <environment name="ROOTRFLX_BASE" default="%i"/>
312 <environment name="LIBDIR" default="$ROOTRFLX_BASE/lib"/>
313 <environment name="INCLUDE" default="$ROOTRFLX_BASE/include"/>
314 </client>
315 <runtime name="PATH" value="$ROOTRFLX_BASE/bin" type="path"/>
316 <runtime name="ROOTSYS" value="$ROOTRFLX_BASE/"/>
317 <runtime name="GENREFLEX" value="$ROOTRFLX_BASE/bin/genreflex"/>
318 <use name="sockets"/>
319 <use name="gccxml"/>
320 </tool>
321 EOF_TOOLFILE
322
323 # roothtml toolfile
324 cat << \EOF_TOOLFILE >%i/etc/scram.d/roothtml.xml
325 <tool name="roothtml" version="%v">
326 <info url="http://root.cern.ch/root/"/>
327 <lib name="Html"/>
328 <use name="rootgpad"/>
329 </tool>
330 EOF_TOOLFILE
331
332 # rootmlp toolfile
333 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootmlp.xml
334 <tool name="rootmlp" version="%v">
335 <info url="http://root.cern.ch/root/"/>
336 <lib name="MLP"/>
337 <use name="RootGraphics"/>
338 </tool>
339 EOF_TOOLFILE
340
341 # roottmva toolfile
342 cat << \EOF_TOOLFILE >%i/etc/scram.d/roottmva.xml
343 <tool name="roottmva" version="%v">
344 <info url="http://root.cern.ch/root/"/>
345 <lib name="TMVA"/>
346 <use name="ROOTMLP"/>
347 <use name="rootminuit"/>
348 </tool>
349 EOF_TOOLFILE
350
351 # rootthread toolfile
352 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootthread.xml
353 <tool name="rootthread" version="%v">
354 <info url="http://root.cern.ch/root/"/>
355 <use name="ROOTCore"/>
356 </tool>
357 EOF_TOOLFILE
358
359 %post
360 perl -p -i -e "s|%{instroot}|$RPM_INSTALL_PREFIX|g" $(find $RPM_INSTALL_PREFIX/%pkgrel/etc/scram.d -type f)
361