Ticket #37688: Portfile

File Portfile, 19.6 KB (added by cjones051073 (Chris Jones), 11 years ago)
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2# $Id: Portfile 99189 2012-10-29 07:10:25Z ryandesign@macports.org $
3
4PortSystem          1.0
5
6name                root-devel
7svn.revision        48346
8version             5.99.01-svn${svn.revision}
9revision            0
10
11categories          science
12
13maintainers         hep.phy.cam.ac.uk:jonesc
14
15license             LGPL-2.1+
16
17description         ROOT is a data analysis framework from CERN
18long_description    The ROOT system provides a set of frameworks with all \
19                    the functionality needed to handle and analyze large amounts \
20                    of data in a very efficient way. This version provides a build \
21                    of a snapshot of the ROOT 6 development version. \
22                    For a stable release install the root port instead.
23homepage            http://root.cern.ch/
24
25platforms           darwin
26
27conflicts           root
28
29fetch.type          svn
30svn.url             https://root.cern.ch/svn/root/trunk
31
32worksrcdir          trunk
33
34depends_lib         port:freetype \
35                    port:xz \
36                    port:pcre \
37                    port:Xft2 \
38                    port:xorg-libX11 \
39                    port:zlib \
40                    port:jpeg \
41                    port:libpng \
42                    port:giflib \
43                    port:tiff \
44                    port:gmp \
45                    port:xpm \
46                    port:expat
47
48patchfiles          patch-configure.diff
49
50post-patch {
51    reinplace "s|-lfreetype| \`freetype-config --libs\`|g" ${worksrcpath}/config/root-config.in
52    reinplace "s|\"/usr/include\"|\"${prefix}/include/\" \"/usr/include\"|g" ${worksrcpath}/configure
53    reinplace "s|/usr/lib |${prefix}/lib /usr/lib |g" ${worksrcpath}/configure
54    reinplace "s|/usr/include |${prefix}/include /usr/include |g" ${worksrcpath}/configure
55    reinplace "s|\"/usr/lib\"|\"${prefix}/lib/\" \"/usr/lib\"g|" ${worksrcpath}/configure
56}
57
58pre-configure {
59    configure.args-append \
60        --with-cc=${configure.cc} \
61        --with-cxx=${configure.cxx} \
62        --with-ld=${configure.cxx}
63    if { ${configure.f77} != "" } {
64        configure.args-append --with-f77=${configure.f77}
65    }
66    # the build type (32 or 64 bit) -must- be for first argument
67    if {${build_arch} == "i386" || ${build_arch} == "ppc"} {
68        configure.pre_args macosx --prefix=${prefix}
69    } else {
70        configure.pre_args macosx64 --prefix=${prefix}
71    }
72}
73
74configure.args      --docdir=${prefix}/share/doc/root \
75                    --libdir=${prefix}/lib/root \
76                    --testdir=${prefix}/share/root/test \
77                    --tutdir=${prefix}/share/root/tutorials \
78                    --etcdir=${prefix}/etc/root \
79                    --disable-builtin-freetype \
80                    --disable-builtin-glew \
81                    --disable-builtin-pcre \
82                    --disable-builtin-zlib \
83                    --disable-builtin-lzma \
84                    --disable-fftw3 \
85                    --disable-krb5 \
86                    --disable-ldap \
87                    --disable-mysql \
88                    --disable-odbc \
89                    --disable-opengl \
90                    --disable-pythia6 \
91                    --disable-pythia8 \
92                    --disable-roofit \
93                    --disable-ssl \
94                    --disable-xml \
95                    --disable-python \
96                    --disable-fitsio \
97                    --disable-gsl-shared \
98                    --disable-pgsql \
99                    --disable-dcache \
100                    --disable-chirp \
101                    --disable-hdfs \
102                    --disable-ruby \
103                    --disable-minuit2 \
104                    --disable-tmva \
105                    --disable-qt \
106                    --disable-qtgsi \
107                    --disable-bonjour \
108                    --disable-gviz \
109                    --disable-soversion \
110                    --disable-cocoa \
111                    --disable-c++11 \
112                    --enable-builtin-ftgl \
113                    --enable-mathmore \
114                    --enable-genvector \
115                    --enable-memstat \
116                    --enable-unuran \
117                    --enable-table \
118                    --enable-fink
119
120universal_variant   no
121
122default_variants    +ssl +xml +gsl +minuit2 +tmva +roofit +graphviz +opengl +soversion
123
124variant soversion description {Build with soversion support} {
125    configure.args-delete   --disable-soversion
126    configure.args-append   --enable-soversion
127}
128
129variant graphviz description {Build with graphviz support} {
130    configure.args-delete   --disable-gviz
131    configure.args-append   --enable-gviz \
132                            --with-gviz-incdir="${prefix}/include/graphviz" \
133                            --with-gviz-libdir="${prefix}/lib"
134    depends_lib-append      path:bin/dot:graphviz
135}
136
137variant avahi description {Build with avahi support} {
138    configure.args-delete   --disable-bonjour
139    configure.args-append   --enable-bonjour \
140                            --with-avahi-incdir="${prefix}/include" \
141                            --with-avahi-libdir="${prefix}/lib"
142    depends_lib-append      port:avahi
143}
144
145variant fftw3 description {Build with fftw3 support} {
146    configure.args-delete   --disable-fftw3
147    configure.args-append   --enable-fftw3 \
148                            --with-fftw3-incdir="${prefix}/include" \
149                            --with-fftw3-libdir="${prefix}/lib"
150    depends_lib-append      port:fftw-3
151}
152
153variant gsl description {Build with gsl support} {
154    configure.args-delete   --disable-gsl-shared
155    configure.args-append   --enable-gsl-shared \
156                            --with-gsl-incdir="${prefix}/include" \
157                            --with-gsl-libdir="${prefix}/lib"
158    depends_lib-append      port:gsl
159}
160
161variant fitsio description {Build with fitsio support} {
162    configure.args-delete   --disable-fitsio
163    configure.args-append   --enable-fitsio \
164                            --with-cfitsio-incdir="${prefix}/include" \
165                            --with-cfitsio-libdir="${prefix}/lib"
166    depends_lib-append      port:cfitsio
167}
168
169variant odbc description {Build with odbc support} {
170    configure.args-delete   --disable-odbc
171    configure.args-append   --enable-odbc \
172                            --with-odbc-incdir="${prefix}/include" \
173                            --with-odbc-libdir="${prefix}/lib"
174    depends_lib-append      port:libiodbc
175}
176
177variant ldap description {Build with ldap support} {
178    configure.args-delete   --disable-ldap
179    configure.args-append   --enable-ldap \
180                            --with-ldap-incdir="${prefix}/include" \
181                            --with-ldap-libdir="${prefix}/lib"
182    depends_lib-append      port:openldap
183}
184
185variant roofit description {Build the RooFit advanced fitting package} {
186    configure.args-delete   --disable-roofit
187    configure.args-append   --enable-roofit
188}
189
190variant tmva description {Build the TMVA package} {
191    configure.args-delete   --disable-tmva
192    configure.args-append   --enable-tmva
193}
194
195variant minuit2 description {Build with minuit2 support} {
196    configure.args-delete   --disable-minuit2
197    configure.args-append   --enable-minuit2
198}
199
200variant opengl description {Build with opengl support} {
201    configure.args-delete   --disable-opengl
202    configure.args-delete   --disable-builtin-glew
203    configure.args-append   --enable-opengl --enable-builtin-glew
204}
205
206variant python26 conflicts python32 python31 python27 description {Build with python 2.6 support} {
207    set mypydir ${prefix}/Library/Frameworks/Python.framework/Versions/2.6
208    configure.args-delete   --disable-python
209    configure.args-append   --enable-python --with-python-incdir="${mypydir}/Headers" --with-python-libdir="${mypydir}"
210    depends_lib-append      port:python26
211    post-destroot {
212        set mypylibdir  ${prefix}/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
213        set mypysitedir ${mypylibdir}/site-packages/
214        file mkdir ${destroot}${mypysitedir}
215        foreach pyfile [glob ${destroot}${prefix}/lib/root/*.py*] { move $pyfile ${destroot}${mypysitedir} }
216        ln -sf ${prefix}/lib/root/libPyROOT.so ${destroot}${mypylibdir}/
217    }
218}
219
220variant python27 conflicts python32 python31 python26 description {Build with python 2.7 support} {
221    set mypydir ${prefix}/Library/Frameworks/Python.framework/Versions/2.7
222    configure.args-delete   --disable-python
223    configure.args-append   --enable-python \
224                            --with-python-incdir="${mypydir}/Headers" \
225                            --with-python-libdir="${mypydir}"
226    depends_lib-append      port:python27
227    post-destroot {
228        set mypylibdir  ${prefix}/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
229        set mypysitedir ${mypylibdir}/site-packages/
230        file mkdir ${destroot}${mypysitedir}
231        foreach pyfile [glob ${destroot}${prefix}/lib/root/*.py*] { move $pyfile ${destroot}${mypysitedir} }
232        ln -sf ${prefix}/lib/root/libPyROOT.so ${destroot}${mypylibdir}/
233    }
234}
235
236variant python31 conflicts python32 python27 python26 description {Build with python 3.1 support} {
237    set mypydir ${prefix}/Library/Frameworks/Python.framework/Versions/3.1
238    configure.args-delete   --disable-python
239    configure.args-append   --enable-python --with-python-incdir="${mypydir}/Headers" --with-python-libdir="${mypydir}"
240    depends_lib-append      port:python31
241    post-destroot {
242        set mypylibdir  ${prefix}/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1
243        set mypysitedir ${mypylibdir}/site-packages/
244        file mkdir ${destroot}${mypysitedir}
245        foreach pyfile [glob ${destroot}${prefix}/lib/root/*.py*] { move $pyfile ${destroot}${mypysitedir} }
246        ln -sf ${prefix}/lib/root/libPyROOT.so ${destroot}${mypylibdir}/
247    }
248}
249
250variant python32 conflicts python31 python27 python26 description {Build with python 3.2 support} {
251    set mypydir ${prefix}/Library/Frameworks/Python.framework/Versions/3.2
252    configure.args-delete   --disable-python
253    configure.args-append   --enable-python \
254                            --with-python-incdir="${mypydir}/Headers" \
255                            --with-python-libdir="${mypydir}"
256    depends_lib-append      port:python32
257    post-destroot {
258        set mypylibdir  ${prefix}/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2
259        set mypysitedir ${mypylibdir}/site-packages/
260        file mkdir ${destroot}${mypysitedir}
261        foreach pyfile [glob ${destroot}${prefix}/lib/root/*.py*] { move $pyfile ${destroot}${mypysitedir} }
262        ln -sf ${prefix}/lib/root/libPyROOT.so ${destroot}${mypylibdir}/
263    }
264}
265
266variant ssl description {Build with ssl support} {
267    configure.args-delete   --disable-ssl
268    configure.args-append   --enable-ssl \
269                            --with-ssl-shared=yes \
270                            --with-ssl-incdir="${prefix}/include" \
271                            --with-ssl-libdir="${prefix}/lib"
272    depends_lib-append      port:openssl
273}
274
275variant xml description {Build with xml support} {
276    configure.args-delete   --disable-xml
277    configure.args-append   --enable-xml \
278                            --with-xml-incdir="${prefix}/include/libxml2" \
279                            --with-xml-libdir="${prefix}/lib"
280    depends_lib-append      port:libxml2
281}
282
283variant mysql conflicts mysql51 mysql55 mariadb percona description {Build with mysql5 support} {
284    configure.args-delete   --disable-mysql
285    configure.args-append   --enable-mysql \
286                            --with-mysql-incdir="${prefix}/include/mysql5/mysql" \
287                            --with-mysql-libdir="${prefix}/lib/mysql5/mysql"
288    depends_lib-append      port:mysql5
289}
290
291variant mysql51 conflicts mysql mysql55 mariadb percona description {Build with mysql51 support} {
292    configure.args-delete   --disable-mysql
293    configure.args-append   --enable-mysql \
294                            --with-mysql-incdir="${prefix}/include/mysql51/mysql" \
295                            --with-mysql-libdir="${prefix}/lib/mysql51/mysql"
296    depends_lib-append      port:mysql51
297}
298
299variant mysql55 conflicts mysql mysql51 mariadb percona description {Build with mysql55 support} {
300    configure.args-delete   --disable-mysql
301    configure.args-append   --enable-mysql \
302                            --with-mysql-incdir="${prefix}/include/mysql55/mysql" \
303                            --with-mysql-libdir="${prefix}/lib/mysql55/mysql"
304    depends_lib-append      port:mysql55
305}
306
307variant mariadb conflicts mysql mysql51 mysql55 percona description {Build with mariadb support} {
308    configure.args-delete   --disable-mysql
309    configure.args-append   --enable-mysql \
310                            --with-mysql-incdir="${prefix}/include/mariadb/mysql" \
311                            --with-mysql-libdir="${prefix}/lib/mariadb/mysql"
312    depends_lib-append      port:mariadb
313}
314
315variant percona conflicts mysql mysql51 mysql55 mariadb description {Build with percona support} {
316    configure.args-delete   --disable-mysql
317    configure.args-append   --enable-mysql \
318                            --with-mysql-incdir="${prefix}/include/percona/mysql" \
319                            --with-mysql-libdir="${prefix}/lib/percona/mysql"
320    depends_lib-append      port:percona
321}
322
323variant postgresql90 conflicts postgresql92 description {Build with PostgreSQL 9.0 support} {
324    configure.args-delete   --disable-pgsql
325    configure.args-append   --enable-pgsql \
326                            --with-pgsql-incdir="${prefix}/include/postgresql90" \
327                            --with-pgsql-libdir="${prefix}/lib/postgresql90"
328    depends_lib-append      port:libpqxx port:postgresql90
329}
330
331variant postgresql92 conflicts postgresql90 description {Build with PostgreSQL 9.2 support} {
332    configure.args-delete   --disable-pgsql
333    configure.args-append   --enable-pgsql \
334                            --with-pgsql-incdir="${prefix}/include/postgresql92" \
335                            --with-pgsql-libdir="${prefix}/lib/postgresql92"
336    depends_lib-append      port:libpqxx port:postgresql92
337}
338
339variant pythia description {Pythia 8 support for root} {
340    configure.args-delete   --disable-pythia8
341    configure.args-append   --enable-pythia8 \
342                            --with-pythia8-incdir=${prefix}/include \
343                            --with-pythia8-libdir=${prefix}/lib
344    depends_lib-append      port:pythia
345}
346
347variant cocoa description {Enables native OSX graphical backend instead of X11} {
348    # Check we are using a clang compiler
349    pre-fetch {
350        if { ![string match "*clang*" ${configure.compiler}] } {
351            ui_error "The cocoa variant is experimental and can currently only be built"
352            ui_error "using a clang compiler. Your current compiler is ${configure.compiler}."
353            ui_error "Please try again using the system"
354            ui_error "clang compiler using configure.compiler=clang"
355            return -code error "Unsupported compiler for cocoa support"
356        }
357    }
358    # Enable cocoa support in configure
359    configure.args-delete --disable-cocoa
360    configure.args-append --enable-cocoa
361    # patch afterimage build to make sure TIFF suport is disabled. Causes problems with cocoa...
362    patchfiles-append patch-builtin-afterimage-disabletiff.diff
363}
364
365# variant gcc45 conflicts gcc46 gcc47 gcc48 description {Compile using MacPorts gcc 4.5} {
366#     configure.compiler      macports-gcc-4.5
367#     depends_lib-append      port:gcc45
368# }
369
370# variant gcc46 conflicts gcc45 gcc47 gcc48 description {Compile using MacPorts gcc 4.6} {
371#     configure.compiler      macports-gcc-4.6
372#     depends_lib-append      port:gcc46
373# }
374
375# variant gcc47 conflicts gcc45 gcc46 gcc48 description {Compile using MacPorts gcc 4.7} {
376#     configure.compiler      macports-gcc-4.7
377#     depends_lib-append      port:gcc47
378# }
379
380# variant gcc48 conflicts gcc45 gcc46 gcc47 description {Compile using MacPorts gcc 4.8} {
381#     configure.compiler      macports-gcc-4.8
382#     depends_lib-append      port:gcc48
383# }
384
385if {[variant_isset qt_mac]} {
386    PortGroup qt4 1.0
387}
388
389variant qt_mac description {Build with Qt support via Mac UI} {
390    post-patch {
391        # fix where "qglobal.h" is found in all files that use or reference it
392        foreach tpf { configure graf2d/qt/src/TGQt.cxx } {
393            reinplace "s@Qt/qglobal\\.h@QtCore/qglobal\\.h@g" \
394                ${worksrcpath}/${tpf}
395        }
396        reinplace "/qttestdir/s@Qt@QtCore@g" ${worksrcpath}/configure
397
398        # fix library search extensions to include ".la"
399        # for Qt framework libraries (only)
400        reinplace "s@\\(\\.so \\.sl \\.dylib \\.dll\\.a\\)@\\1 \\.la@g" \
401            ${worksrcpath}/configure
402    }
403
404    configure.args-delete   --disable-qt
405    configure.args-delete   --disable-qtgsi
406    configure.args-append   --enable-qt --enable-qtgsi \
407                            --with-qt-incdir="${prefix}/include" \
408                            --with-qt-libdir="${prefix}/lib"
409    depends_lib-append      port:qt4-mac
410
411    post-configure {
412        # patch up the Makefile.config to handle the QTLIB frameworks correctly
413        reinplace "/QTLIB\[ \]/s@:= @:= -F${qt_libs_dir} @" \
414            ${worksrcpath}/config/Makefile.config
415        reinplace "/QTLIB\[ \]/s@\\(Qt\[^ \]*\\).la@-framework \\1@g" \
416            ${worksrcpath}/config/Makefile.config
417    }
418}
419
420livecheck.type              regex
421livecheck.url               http://root.cern.ch/svn/root/trunk
422#livecheck.regex             ${name}_v(\[0-9a-z.\]+)\\.source
423
424# ========================================================================================
425# The following have build issues, are obsolete or experimental.
426# ========================================================================================
427
428# Intefers with builtin freetype build (enforced by cocoa variant)
429# Also do not seem to be actually needed any more
430#pre-build {
431#    build.args      CC=${configure.cc} \
432#                    CXX=${configure.cxx} \
433#                    F77=${configure.f77}
434#}
435
436# variant ruby description {Build with ruby support} {
437#     configure.args-delete   --disable-ruby
438#     configure.args-append   --enable-ruby
439#     depends_lib-append      port:ruby
440# }
441
442# variant kerberos5 description {Build with kerberos5 support} {
443#     configure.args-delete   --disable-krb5
444#     configure.args-append   --enable-krb5 \
445#                             --with-krb5-incdir="${prefix}/include" \
446#                             --with-krb5-libdir="${prefix}/lib"
447#      depends_lib-append      port:kerberos5
448# }
449
450# variant ftgl description {Build with ftgl support} {
451#     configure.args-delete   --enable-builtin-ftgl
452#     configure.args-append   --disable-builtin-ftgl \
453#     configure.args-append   --with-ftgl-incdir="${prefix}/include" \
454#                             --with-ftgl-libdir="${prefix}/lib"
455#     depends_lib-append      port:ftgl
456# }
457
458# variant qt_x11 conflicts qt_mac description {Build with Qt support via X11 UI} {
459#     # fix where "qglobal.h" is found in all files that use or reference it
460#     post-patch {
461#         foreach tpf { configure graf2d/qt/src/TGQt.cxx } {
462#             reinplace "s@Qt/qglobal\\.h@QtCore/qglobal\\.h@g" \
463#                 ${worksrcpath}/${tpf}
464#         }
465#         reinplace "/qttestdir/s@Qt@QtCore@g" ${worksrcpath}/configure
466#     }
467
468#     configure.env-append    QTDIR=${prefix}/libexec/qt4-x11
469#     configure.args-delete   --disable-qt
470#     configure.args-delete   --disable-qtgsi
471#     configure.args-append   --enable-qt --enable-qtgsi \
472#                             --with-qt-incdir="${prefix}/include" \
473#                             --with-qt-libdir="${prefix}/lib"
474#     depends_lib-append      port:qt4-x11
475# }