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

# User Rev Content
1 elmer 1.230 ### RPM lcg root 5.27.06b
2 dlange 1.57 ## INITENV +PATH PYTHONPATH %i/lib/python
3 elmer 1.198 ## INITENV SET ROOTSYS %i
4 ratnik 1.106 #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 elmer 1.144 Source: ftp://root.cern.ch/%n/%{n}_v%{realversion}.source.tar.gz
6 muzaffar 1.165 %define closingbrace )
7 elmer 1.179 %define online %(case %cmsplatf in *onl_*_*%closingbrace echo true;; *%closingbrace echo false;; esac)
8 elmer 1.230 %define ismac %(case %cmsplatf in osx*%closingbrace echo true;; *%closingbrace e
9     cho false;; esac)
10 elmer 1.96
11 elmer 1.230 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 elmer 1.98
26     %define cpu %(echo %cmsplatf | cut -d_ -f2)
27    
28 fwyzard 1.229 Requires: gccxml gsl libjpg libpng libtiff libungif pcre python fftw3
29 elmer 1.228
30     %if "%ismac" == "false"
31     Requires: castor dcap
32     %endif
33    
34     %if "%online-%ismac" == "false-true"
35 fwyzard 1.229 Requires: openssl zlib gfortran-macosx
36 elmer 1.228 %endif
37    
38     %if "%online-%ismac" == "false-false"
39 fwyzard 1.229 Requires: openssl zlib qt xrootd
40 elmer 1.98 %endif
41 eulisse 1.25
42 eulisse 1.1 %prep
43     %setup -n root
44 ratnik 1.106 %patch0 -p1
45     %patch1 -p1
46 elmer 1.205 %patch2 -p1
47 elmer 1.230 # patch3 is OS version dependent, see below
48 elmer 1.205 %patch4 -p1
49 elmer 1.149 %patch5 -p1
50 gowdy 1.219 %patch6 -p1
51     %patch7 -p1
52     %patch8 -p1
53     %patch9 -p1
54 elmer 1.230 %patch10 -p1
55 gowdy 1.219 %patch11 -p1
56 elmer 1.222 %patch12 -p1
57 elmer 1.228 %patch13 -p1
58    
59 elmer 1.230 # The following patch can only be applied on SLC5 or later (extra linker
60 elmer 1.198 # options only available with the SLC5 binutils)
61     case %cmsplatf in
62     slc5_* | slc5onl_* )
63 elmer 1.230 %patch3 -p1
64 elmer 1.198 ;;
65     esac
66 eulisse 1.190
67 eulisse 1.1 %build
68 andreasp 1.163
69 eulisse 1.1 mkdir -p %i
70 elmer 1.221 export LIBJPG_ROOT
71 elmer 1.14 export ROOTSYS=%_builddir/root
72 elmer 1.180 export PYTHONV=$(echo $PYTHON_VERSION | cut -f1,2 -d.)
73 dlange 1.103
74 muzaffar 1.164 %if "%online" == "true"
75 elmer 1.181 # Use system qt. Also skip xrootd and odbc for online case:
76 ratnik 1.111
77 muzaffar 1.164 EXTRA_CONFIG_ARGS="--with-f77=/usr
78 ratnik 1.111 --disable-odbc
79 elmer 1.230 --disable-qt --disable-qtgsi --disable-astiff"
80 dlange 1.103 %else
81 elmer 1.221 export LIBPNG_ROOT ZLIB_ROOT LIBTIFF_ROOT LIBUNGIF_ROOT
82 muzaffar 1.164 EXTRA_CONFIG_ARGS="--with-f77=${GCC_ROOT}
83 ratnik 1.106 --enable-qt --with-qt-libdir=${QT_ROOT}/lib --with-qt-incdir=${QT_ROOT}/include
84     --with-ssl-incdir=${OPENSSL_ROOT}/include
85 muzaffar 1.164 --with-ssl-libdir=${OPENSSL_ROOT}/lib
86     --enable-qtgsi"
87 dlange 1.103 %endif
88    
89 muzaffar 1.164 CONFIG_ARGS="--enable-table
90 eulisse 1.20 --disable-builtin-pcre
91     --disable-builtin-freetype
92     --disable-builtin-zlib
93 elmer 1.98 --with-gccxml=${GCCXML_ROOT}
94 elmer 1.180 --enable-python --with-python-libdir=${PYTHON_ROOT}/lib --with-python-incdir=${PYTHON_ROOT}/include/python${PYTHONV}
95 eulisse 1.2 --enable-explicitlink
96 eulisse 1.20 --enable-mathmore
97 eulisse 1.2 --enable-reflex
98     --enable-cintex
99     --enable-minuit2
100 elmer 1.221 --enable-fftw3
101     --with-fftw3-incdir=${FFTW3_ROOT}/include
102     --with-fftw3-libdir=${FFTW3_ROOT}/lib
103 elmer 1.98 --disable-ldap
104 gowdy 1.143 --disable-krb5
105 elmer 1.230 --with-xrootd=${XROOTD_ROOT}
106 eulisse 1.34 --with-gsl-incdir=${GSL_ROOT}/include
107     --with-gsl-libdir=${GSL_ROOT}/lib
108 elmer 1.59 --with-dcap-libdir=${DCAP_ROOT}/lib
109 elmer 1.98 --with-dcap-incdir=${DCAP_ROOT}/include
110     --disable-pgsql
111 elmer 1.181 --disable-mysql
112 elmer 1.187 --disable-xml ${EXTRA_CONFIG_ARGS}"
113 elmer 1.98
114 elmer 1.183 case $(uname)-$(uname -m) in
115 eulisse 1.2 Linux-x86_64)
116 elmer 1.230 ./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 elmer 1.54 Linux-i*86)
118 elmer 1.230 ./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 elmer 1.11 Darwin*)
120 elmer 1.198 case %cmsplatf in
121     *_ia32_* )
122 elmer 1.231 comparch=i386
123     macconfig=macosx
124     ;;
125 elmer 1.198 *_amd64_* )
126 elmer 1.231 comparch=x86_64
127     macconfig=macosx64
128     ;;
129 elmer 1.198 * )
130 elmer 1.231 comparch=ppc
131     macconfig=macosx
132     ;;
133 elmer 1.198 esac
134     export CC="gcc -arch $comparch" CXX="g++ -arch $comparch"
135 elmer 1.231 ./configure $macconfig $CONFIG_ARGS --with-cc="$CC" --with-cxx="$CXX" --disable-rfio --disable-builtin_afterimage ;;
136 elmer 1.54 Linux-ppc64*)
137 elmer 1.98 ./configure linux $CONFIG_ARGS --disable-rfio;;
138 eulisse 1.1 esac
139 eulisse 1.2
140 eulisse 1.147 case %cmsplatf in
141     osx*)
142     makeopts=
143     ;;
144     *)
145     makeopts="%makeprocesses"
146     ;;
147     esac
148    
149     make $makeopts
150 eulisse 1.20 make cintdlls
151 eulisse 1.147
152 eulisse 1.1 %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 dlange 1.57 export ROOTSYS=%i
165 eulisse 1.5 make INSTALL="$cp" INSTALLDATA="$cp" install
166 dlange 1.57 mkdir -p $ROOTSYS/lib/python
167 elmer 1.141 cp -r cint/reflex/python/genreflex $ROOTSYS/lib/python
168 elmer 1.204
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 elmer 1.230 <tool name="roothistmatrix" version="%v">
208 elmer 1.204 <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 elmer 1.230 <tool name="rootgpad" version="%v">
218 elmer 1.204 <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 elmer 1.230