[117974] users/mojca/ports/science

mojca at macports.org mojca at macports.org
Mon Mar 17 14:53:50 PDT 2014


Revision: 117974
          https://trac.macports.org/changeset/117974
Author:   mojca at macports.org
Date:     2014-03-17 14:53:50 -0700 (Mon, 17 Mar 2014)
Log Message:
-----------
mojca/root6: preliminary port

Added Paths:
-----------
    users/mojca/ports/science/root6/
    users/mojca/ports/science/root6/Portfile

Added: users/mojca/ports/science/root6/Portfile
===================================================================
--- users/mojca/ports/science/root6/Portfile	                        (rev 0)
+++ users/mojca/ports/science/root6/Portfile	2014-03-17 21:53:50 UTC (rev 117974)
@@ -0,0 +1,496 @@
+# -*- 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
+# $Id$
+
+PortSystem          1.0
+PortGroup           cmake 1.0
+PortGroup           github 1.0
+github.setup        root-mirror root 5-99-05 v
+name                root6
+version             5.99.05-beta
+set version_major   6
+
+categories          science
+
+maintainers         hep.phy.cam.ac.uk:jonesc
+
+license             LGPL-2.1+
+
+description         ROOT is a data analysis framework from CERN
+long_description    The ROOT system provides a set of frameworks with all \
+                    the functionality needed to handle and analyze large amounts \
+                    of data in a very efficient way. This version provides a build \
+                    of a snapshot of the ROOT 6 development version. \
+                    For a stable release install the root port instead.
+homepage            http://root.cern.ch/
+platforms           darwin
+
+checksums           rmd160  3d421e8981b2306aa784c2d232b79590773e4607 \
+                    sha256  504f79167349546ebb5b435ee532c8874b043bd38051172ffc9cab6209aae584
+
+dist_subdir         root
+configure.dir       ${workpath}/build
+build.dir           ${configure.dir}
+
+post-extract {
+    file mkdir ${configure.dir}
+}
+
+depends_lib         port:xz \
+                    port:pcre \
+                    port:zlib \
+                    port:jpeg \
+                    port:libpng \
+                    port:giflib \
+                    port:tiff \
+                    port:gmp \
+                    port:expat
+                  # port:freetype
+
+configure.args-append \
+                    -Dgnuinstall=ON \
+                    -DCMAKE_INSTALL_BINDIR="libexec/root/root${version_major}" \
+                    -DCMAKE_INSTALL_LIBDIR="lib/root/root${version_major}" \
+                    -DCMAKE_INSTALL_INCLUDEDIR="include/root/root${version_major}" \
+                    -DCMAKE_INSTALL_SYSCONFDIR="etc/root/root${version_major}" \
+                    -DCMAKE_INSTALL_DATAROOTDIR="share/root/root${version_major}" \
+                    -DCMAKE_INSTALL_DATADIR="share/root/root${version_major}" \
+                    -DCMAKE_INSTALL_DOCDIR="share/doc/root/root${version_major}" \
+                    -Dfortran=OFF \
+                    -Dbuiltin_freetype=ON \
+                    -Dbuiltin_glew=OFF \
+                    -Dbuiltin_pcre=OFF \
+                    -Dbuiltin_zlib=OFF \
+                    -Dbuiltin_lzma=OFF \
+                    -Dfftw3=OFF \
+                    -Dkrb5=OFF \
+                    -Dldap=OFF \
+                    -Dmysql=OFF \
+                    -Dsqlite=OFF \
+                    -Dodbc=OFF \
+                    -Dopengl=OFF \
+                    -Dpythia6=OFF \
+                    -Dpythia8=OFF \
+                    -Droofit=OFF \
+                    -Dssl=OFF \
+                    -Dxml=OFF \
+                    -Dpython=OFF \
+                    -Dfitsio=OFF \
+                    -Dgsl_shared=OFF \
+                    -Dpgsql=OFF \
+                    -Ddcache=OFF \
+                    -Dchirp=OFF \
+                    -Dhdfs=OFF \
+                    -Druby=OFF \
+                    -Dminuit2=OFF \
+                    -Dtmva=OFF \
+                    -Dqt=OFF \
+                    -Dqtgsi=OFF \
+                    -Dbonjour=OFF \
+                    -Dgviz=OFF \
+                    -Dsoversion=OFF \
+                    -Dc++11=OFF \
+                    -Dlibcxx=OFF \
+                    -Dxrootd=OFF \
+                    -Dbuiltin_ftgl=ON \
+                    -Dmathmore=ON \
+                    -Dgenvector=ON \
+                    -Dmemstat=ON \
+                    -Dunuran=ON \
+                    -Dreflex=ON \
+                    -Dtable=ON \
+                    -Dgdml=ON \
+                    -DPNG_LIBRARY=${prefix}/lib/libpng.dylib \
+                    -DPNG_PNG_INCLUDE_DIR=${prefix}/include
+configure.post_args ${worksrcpath}
+
+# TODO: temporary:
+configure.args-append       -DCMAKE_INCLUDE_PATH=${prefix}/include
+configure.cppflags-delete   -I${prefix}/include
+
+# TODO: Check ${configure.cxx_stdlib} directly once MacPorts 2.3 is released
+platform darwin {
+    set cxxstdlib {}
+
+    if {[info exists configure.cxx_stdlib] &&
+        ${configure.cxx_stdlib} ne {} &&
+        [string match *clang* ${configure.cxx}]} {
+        set cxxstdlib ${configure.cxx_stdlib}
+    } elseif {[string match *clang* ${configure.cxx}] &&
+              ${os.major} >= 13} {
+        set cxxstdlib libc++
+    } else {
+        set cxxstdlib libstdc++
+    }
+
+    if {${cxxstdlib} eq "libc++"} {
+        configure.args-replace -Dc++11=OFF -Dc++11=ON
+    }
+}
+
+universal_variant   no
+
+default_variants    +ssl +xml +gsl +minuit2 +tmva +roofit +graphviz +opengl +soversion
+
+# Since ROOT 5.34.15 the cocoa backend is default on OSX 10.8 or newer
+# We also make it default on 10.7
+if {${os.major} > 10} {
+    set default_gui_variant +cocoa
+} else {
+    set default_gui_variant +x11
+}
+
+variant xrootd description {Build with XRootD support} {
+    configure.args-replace  -Dxrootd=OFF -Dxrootd=ON
+    configure.args-append   -DXROOTD_INCLUDE_DIR="${prefix}/include/xrootd"
+    # TODO: do libraries need to be specified as well?
+    # XROOTD_XrdClient_LIBRARY  *${prefix}/lib/libXrdClient.dylib
+    # XROOTD_XrdMain_LIBRARY    *${prefix}/lib/libXrdMain.dylib
+    # XROOTD_XrdUtils_LIBRARY   *${prefix}/lib/libXrdUtils.dylib
+    depends_lib-append      port:xrootd
+}
+
+variant soversion description {Build with soversion support} {
+     configure.args-replace -Dsoversion=OFF -Dsoversion=ON
+}
+
+variant graphviz description {Build with graphviz support} {
+    configure.args-replace  -Dgviz=OFF -Dgviz=ON
+    configure.args-append   -DGRAPHVIZ_INCLUDE_DIR="${prefix}/include" \
+                            -DGRAPHVIZ_CDT_LIBRARY="${prefix}/lib/libcdt.dylib" \
+                            -DGRAPHVIZ_GRAPH_LIBRARY="${prefix}/lib/libgraph.dylib" \
+                            -DGRAPHVIZ_GVC_LIBRARY="${prefix}/lib/libgvc.dylib" \
+                            -DGRAPHVIZ_PATHPLAN_LIBRARY="${prefix}/lib/libpathplan.dylib"
+    depends_lib-append      path:bin/dot:graphviz
+}
+
+variant avahi description {Build with avahi support} {
+    configure.args-replace  -Dbonjour=OFF -Dbonjour=ON
+    # TODO
+#   configure.args-append   --with-avahi-incdir="${prefix}/include" \
+#                           --with-avahi-libdir="${prefix}/lib"
+    depends_lib-append      port:avahi
+}
+
+# TODO
+variant fftw3 description {Build with fftw3 support} {
+   configure.args-replace   -Dfftw3=OFF -Dfftw3=ON
+   # TODO
+#  configure.args-append   --with-fftw3-incdir="${prefix}/include" \
+#                          --with-fftw3-libdir="${prefix}/lib"
+   depends_lib-append      port:fftw-3
+}
+
+variant gsl description {Build with gsl support} {
+    configure.args-replace  -Dgsl_shared=OFF -Dgsl_shared=ON
+    configure.args-append   -DGSL_CONFIG_EXECUTABLE="${prefix}/bin/gsl-config"
+    depends_lib-append      port:gsl
+}
+
+
+# TODO
+#variant fitsio description {Build with fitsio support} {
+#    configure.args-delete   --disable-fitsio
+#    configure.args-append   --enable-fitsio \
+#                            --with-cfitsio-incdir="${prefix}/include" \
+#                            --with-cfitsio-libdir="${prefix}/lib"
+#    depends_lib-append      port:cfitsio
+#}
+
+# TODO
+#variant odbc description {Build with odbc support} {
+#    configure.args-delete   --disable-odbc
+#    configure.args-append   --enable-odbc \
+#                            --with-odbc-incdir="${prefix}/include" \
+#                            --with-odbc-libdir="${prefix}/lib"
+#    depends_lib-append      port:libiodbc
+#}
+
+# TODO
+#variant ldap description {Build with ldap support} {
+#    configure.args-delete   --disable-ldap
+#    configure.args-append   --enable-ldap \
+#                            --with-ldap-incdir="${prefix}/include" \
+#                            --with-ldap-libdir="${prefix}/lib"
+#    depends_lib-append      port:openldap
+#}
+
+variant roofit description {Build the RooFit advanced fitting package} {
+    configure.args-replace  -Droofit=OFF -Droofit=ON
+}
+
+variant tmva description {Build the TMVA package} {
+    configure.args-replace  -Dtmva=OFF -Dtmva=ON
+}
+
+variant minuit2 description {Build with minuit2 support} {
+    configure.args-replace  -Dminuit2=OFF -Dminuit2=ON
+}
+
+variant opengl description {Build with opengl support} {
+    configure.args-delete   -Dopengl=OFF
+    configure.args-delete   -Dbuiltin_glew=OFF
+    configure.args-append   -Dopengl=ON -Dbuiltin_glew=ON
+}
+
+# ========================================================================================
+# Setup various python variants
+# ========================================================================================
+
+# List of possible python versions
+set python_versions { 2.6 2.7 3.1 3.2 3.3 3.4 }
+
+# Define the available variants
+foreach ver ${python_versions} {
+    set ver_no_dot [join [split ${ver} "."] ""]
+    set variant_line {variant python${ver_no_dot} description "Build with python ${ver} support"}
+    foreach over ${python_versions} {
+        if { ${ver} == ${over} } { continue }
+        set over_no_dot [join [split ${over} "."] ""]
+        append variant_line " conflicts python${over_no_dot}"
+    }
+    append variant_line { {} }
+    eval $variant_line
+}
+
+# Is a variant active ?
+set active_python_variant ""
+foreach ver ${python_versions} {
+    set ver_no_dot [join [split ${ver} "."] ""]
+    if {[variant_isset python${ver_no_dot}]} {
+        set active_python_variant ${ver}
+    }
+}
+
+# If so, set it up.
+if { ${active_python_variant} != "" } {
+    set ver_no_dot [join [split ${active_python_variant} "."] ""]
+    set mypydir ${prefix}/Library/Frameworks/Python.framework/Versions/${active_python_variant}
+    configure.args-replace  -Dpython=OFF -Dpython=ON
+# TODO
+#   configure.args-append   --with-python-incdir="${mypydir}/Headers" \
+#                           --with-python-libdir="${mypydir}"
+    depends_lib-append      port:python${ver_no_dot}
+    post-destroot {
+        set mypylibdir  ${prefix}/Library/Frameworks/Python.framework/Versions/${active_python_variant}/lib/python${active_python_variant}
+        set mypysitedir ${mypylibdir}/site-packages/
+        file mkdir ${destroot}${mypysitedir}
+        foreach pyfile [glob ${destroot}${prefix}/lib/root/*.py*] { move $pyfile ${destroot}${mypysitedir} }
+        ln -sf ${prefix}/lib/root/libPyROOT.so ${destroot}${mypylibdir}/
+    }
+}
+
+# ========================================================================================
+
+variant ruby description {Build with ruby support} {
+    configure.args-replace  -Druby=OFF -Druby=ON
+    depends_lib-append      port:ruby
+}
+
+variant ssl description {Build with ssl support} {
+    configure.args-delete   -Dssl=OFF
+    configure.args-append   -Dssl=ON \
+                            -DOPENSSL_INCLUDE_DIR="${prefix}/include" \
+                            -DOPENSSL_SSL_LIBRARY="${prefix}/lib/libssl.dylib" \
+                            -DOPENSSL_CRYPTO_LIBRARY="${prefix}/lib/libcrypto.dylib"
+    depends_lib-append      port:openssl
+}
+
+variant xml description {Build with xml support} {
+    configure.args-delete   -Dxml=OFF
+    configure.args-append   -Dxml=ON \
+                            -DLIBXML2_INCLUDE_DIR="${prefix}/include/libxml2" \
+                            -DLIBXML2_LIBRARIES="${prefix}/lib/libxml2.dylib" \
+                            -DLIBXML2_XMLLINT_EXECUTABLE="${prefix}/bin/xmllint"
+    depends_lib-append      port:libxml2
+}
+
+# TODO
+#variant mysql conflicts mysql51 mysql55 mariadb percona description {Build with mysql5 support} {
+#    configure.args-delete   --disable-mysql
+#    configure.args-append   --enable-mysql \
+#                            --with-mysql-incdir="${prefix}/include/mysql5/mysql" \
+#                            --with-mysql-libdir="${prefix}/lib/mysql5/mysql"
+#    depends_lib-append      port:mysql5
+#}
+#
+#variant mysql51 conflicts mysql mysql55 mariadb percona description {Build with mysql51 support} {
+#    configure.args-delete   --disable-mysql
+#    configure.args-append   --enable-mysql \
+#                            --with-mysql-incdir="${prefix}/include/mysql51/mysql" \
+#                            --with-mysql-libdir="${prefix}/lib/mysql51/mysql"
+#    depends_lib-append      port:mysql51
+#}
+#
+#variant mysql55 conflicts mysql mysql51 mariadb percona description {Build with mysql55 support} {
+#    configure.args-delete   --disable-mysql
+#    configure.args-append   --enable-mysql \
+#                            --with-mysql-incdir="${prefix}/include/mysql55/mysql" \
+#                            --with-mysql-libdir="${prefix}/lib/mysql55/mysql"
+#    depends_lib-append      port:mysql55
+#}
+#
+#variant mariadb conflicts mysql mysql51 mysql55 percona description {Build with mariadb support} {
+#    configure.args-delete   --disable-mysql
+#    configure.args-append   --enable-mysql \
+#                            --with-mysql-incdir="${prefix}/include/mariadb/mysql" \
+#                            --with-mysql-libdir="${prefix}/lib/mariadb/mysql"
+#    depends_lib-append      port:mariadb
+#}
+#
+#variant percona conflicts mysql mysql51 mysql55 mariadb description {Build with percona support} {
+#    configure.args-delete   --disable-mysql
+#    configure.args-append   --enable-mysql \
+#                            --with-mysql-incdir="${prefix}/include/percona/mysql" \
+#                            --with-mysql-libdir="${prefix}/lib/percona/mysql"
+#    depends_lib-append      port:percona
+#}
+#
+#variant postgresql90 conflicts postgresql92 description {Build with PostgreSQL 9.0 support} {
+#    configure.args-delete   --disable-pgsql
+#    configure.args-append   --enable-pgsql \
+#                            --with-pgsql-incdir="${prefix}/include/postgresql90" \
+#                            --with-pgsql-libdir="${prefix}/lib/postgresql90"
+#    depends_lib-append      port:libpqxx port:postgresql90
+#}
+#
+#variant postgresql92 conflicts postgresql90 description {Build with PostgreSQL 9.2 support} {
+#    configure.args-delete   --disable-pgsql
+#    configure.args-append   --enable-pgsql \
+#                            --with-pgsql-incdir="${prefix}/include/postgresql92" \
+#                            --with-pgsql-libdir="${prefix}/lib/postgresql92"
+#    depends_lib-append      port:libpqxx port:postgresql92
+#}
+
+# TODO
+# variant pythia description {Pythia 8 support for root} {
+#    configure.args-delete   --disable-pythia8
+#    configure.args-append   --enable-pythia8 \
+#                            --with-pythia8-incdir=${prefix}/include \
+#                            --with-pythia8-libdir=${prefix}/lib
+#    depends_lib-append      port:pythia
+# }
+
+variant cocoa conflicts x11 description {Enables native OSX graphical backend} {
+    # Force a compatible clang compiler
+    PortGroup compiler_blacklist_versions 1.0
+    compiler.blacklist-append {clang < 425} *gcc* macports-clang-2.9
+    compiler.fallback-append macports-clang-3.4 macports-clang-3.3 macports-clang-3.2 macports-clang-3.1 macports-clang-3.0
+    # Enable cocoa support in configure
+    configure.args-append -Dcocoa=ON
+}
+
+variant x11 conflicts cocoa description {Enables X11 graphical backend} {
+    # Dependencies on X11 ports
+    depends_lib-append port:xorg-libX11 port:mesa port:Xft2 port:xpm
+    # Disable cocoa
+    configure.args-append -Dcocoa=OFF
+}
+
+# If neither graphical variant is set, use default
+if { ![variant_isset cocoa] && ![variant_isset x11] } {
+    default_variants-append ${default_gui_variant}
+}
+
+# ========================================================================================
+# Setup various clang variants, to provide alternative C++ compilers that support cocoa
+# ========================================================================================
+
+# List of possible clang versions that work
+set clang_versions { 3.0 3.1 3.2 3.3 3.4 3.5 }
+
+# Define the available variants
+foreach ver ${clang_versions} {
+    set ver_no_dot [join [split ${ver} "."] ""]
+    set variant_line {variant clang${ver_no_dot} description "Compile using MacPorts clang ${ver}"}
+    foreach over ${clang_versions} {
+        if { ${ver} == ${over} } { continue }
+        set over_no_dot [join [split ${over} "."] ""]
+        append variant_line " conflicts clang${over_no_dot}"
+    }
+    append variant_line { { } }
+    eval $variant_line
+}
+
+# Is a variant active ?
+set active_clang_variant ""
+foreach ver ${clang_versions} {
+    set ver_no_dot [join [split ${ver} "."] ""]
+    if {[variant_isset clang${ver_no_dot}]} {
+        set active_clang_variant ${ver}
+    }
+}
+
+# If so, set it up.
+if { ${active_clang_variant} != "" } {
+    configure.compiler      macports-clang-${active_clang_variant}
+    # TODO
+    # configure.args-append   --with-llvm-config="${prefix}/bin/llvm-config-mp-"${active_clang_variant}
+    depends_run-append      port:clang-${active_clang_variant}
+}
+
+# ========================================================================================
+# Following is for fortran support
+# Might eventually move to a portgroup, or similar, so could be simplified.
+# Based on recipe from https://trac.macports.org/wiki/PortfileRecipes#fortran
+# Note that g95 does not work here, so that variant is removed
+# ========================================================================================
+
+# TODO: fortran is OFF, so the code below doesn't do anything yet anyway
+# https://trac.macports.org/ticket/37732
+# check if the following is needed:
+# configure.args-append   -DCMAKE_Fortran_COMPILER=\"${configure.fc}\"
+# maybe something like the following could help (but the exact line doesn't work):
+# configure.args-delete -DCMAKE_OSX_ARCHITECTURES="${configure.build_arch}"
+
+set gcc_versions {4.3 4.4 4.5 4.6 4.7 4.8 4.9}
+set default_fortran_variant +gcc48
+
+foreach ver ${gcc_versions} {
+    set ver_no_dot [join [split ${ver} "."] ""]
+
+    set variant_line {variant gcc${ver_no_dot} description "Build with gfortran from gcc${ver_no_dot}"}
+
+    foreach over ${gcc_versions} {
+        if {${ver} == ${over}} {
+            continue
+        }
+
+        set over_no_dot [join [split ${over} "."] ""]
+        append variant_line " conflicts gcc${over_no_dot}"
+    }
+    append variant_line { {}}
+
+    eval $variant_line
+
+    if {[variant_isset gcc${ver_no_dot}]} {
+        if {${default_fortran_variant} != "+gcc${ver_no_dot}"} {
+            set default_fortran_variant ""
+        }
+    }
+}
+
+if {${default_fortran_variant} != ""} {
+    default_variants-append "${default_fortran_variant}"
+}
+
+foreach ver ${gcc_versions} {
+    set ver_no_dot [join [split ${ver} "."] ""]
+
+    if {[variant_isset gcc${ver_no_dot}]} {
+        depends_lib-append path:lib/libgcc/libgcc_s.1.dylib:libgcc
+        depends_build-append port:gcc${ver_no_dot}
+
+        # TODO: do we really need all three variables?
+        configure.fc  ${prefix}/bin/gfortran-mp-${ver}
+        configure.f77 ${prefix}/bin/gfortran-mp-${ver}
+        configure.f90 ${prefix}/bin/gfortran-mp-${ver}
+    }
+}
+
+# ========================================================================================
+
+# TODO
+# livecheck.type              regex
+# livecheck.url               http://root.cern.ch/svn/root/trunk
+# livecheck.regex             ${name}_v(\[0-9a-z.\]+)\\.source
+


Property changes on: users/mojca/ports/science/root6/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140317/6f0b7e4d/attachment-0001.html>


More information about the macports-changes mailing list