# -*- 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 conflicts_build 1.0 PortGroup muniversal 1.0 PortGroup mpi 1.0 set realname hdf5 name hdf5-18 version 1.8.17 categories science maintainers takeshi mmoll openmaintainer description HDF5 general purpose library and file format for storing\ scientific data long_description HDF5 is a data model, library, and file format for storing\ and managing data. It supports an unlimited variety of\ datatypes, and is designed for flexible and efficient I/O\ and for high volume and complex data. HDF5 is portable and\ is extensible, allowing applications to evolve in their use\ of HDF5. The HDF5 Technology suite includes tools and\ applications for managing, manipulating, viewing, and\ analyzing data in the HDF5 format. homepage http://www.hdfgroup.org/HDF5/ platforms darwin master_sites \ http://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${version}/src/ \ ftp://ftp.hdfgroup.org/HDF5/releases/hdf5-${version}/src/ checksums rmd160 a7e45f68896d4ad56faff0b94800904e2f377321 \ sha256 fc35dd8fd8d398de6b525b27cc111c21fc79795ad6db1b1f12cb15ed1ee8486a mpi.setup -gcc44 -gcc45 distname ${realname}-${version} dist_subdir ${realname} use_bzip2 yes depends_lib port:zlib use_parallel_build yes # nawk: bailing out at source line 273 conflicts_build nawk # Don't create dylibs with "-flat_namespace -undefined suppress" on # Yosemite and later (#44596). patchfiles yosemite-libtool.patch \ patch-tools-misc-h5cc.in.diff # llvm-gcc-4.2 produced code fails type conversion tests # Upstream suggestion is use -O0. Clang-produced code passes all tests. compiler.blacklist llvm-gcc-4.2 # Use lib/hdf5 rather than hdf5/lib plugin directory configure.args --with-zlib=yes \ --enable-production --disable-fortran \ --disable-cxx --disable-hl --enable-shared --enable-static \ --disable-parallel --disable-threadsafe \ --with-default-plugindir=${prefix}/lib/${name} \ --prefix=${prefix}/lib/${name} # http://mail.hdfgroup.org/pipermail/hdf-forum_hdfgroup.org/2010-March/002682.html license NCSA default_variants +cxx +hl post-configure { if {[variant_isset universal]} { set dirs {} foreach arch ${universal_archs_to_use} { lappend dirs ${worksrcpath}-${arch} } } else { set dirs ${worksrcpath} } foreach dir ${dirs} { reinplace -E {s|-arch [a-z0-9_]+||g} \ ${dir}/tools/misc/h5cc \ ${dir}/c++/src/h5c++ \ ${dir}/src/libhdf5.settings \ ${dir}/fortran/src/h5fc reinplace {s|ccache ||} ${dir}/tools/misc/h5cc reinplace {s|ccache ||} ${dir}/c++/src/h5c++ } } pre-activate { if {![catch {set installed [lindex [registry_active hdf5-18] 0]}]} { set _version [lindex $installed 1] if {[vercmp $_version 1.8.15] < 0} { registry_deactivate_composite hdf5-18 "" [list ports_nodepcheck 1] } } } test.run yes test.target check variant szip description {Enable szip support. (Noncommercial license)} { depends_lib-append port:szip configure.args-append --with-szlib=yes license Noncommercial } variant hl description { Enable High Level interface. +hl is EXPERIMENTAL with +threadsafe } { configure.args-delete --disable-hl configure.args-append --enable-hl } variant cxx description { Enable c++ interfance. +cxx is EXPERIMENTAL with +threadsafe or any mpi variant } { configure.args-delete --disable-cxx configure.args-append --enable-cxx } variant fortran description { Enable fortran bindings. +fortran is EXPERIMENTAL with +threadsafe } { configure.args-delete --disable-fortran configure.args-append --enable-fortran --enable-fortran2003 if {![fortran_variant_isset]} { default_variants +gfortran } } if {[ variant_isset fortran ] && ![ fortran_variant_isset ] } { ui_error "+fortran requires a fortran compiler to be selected" return -code error } if {([ variant_isset gfortran ] || [ variant_isset g95 ]) && ![ variant_isset fortran ]} { default_variants +fortran } variant threadsafe description { Enable threadsafety. +threadsafe is EXPERIMENTAL with +cxx, +fortran, or any mpi variant } { configure.args-delete --disable-threadsafe configure.args-append --enable-threadsafe --with-pthread } if {[ variant_isset threadsafe ] && ([ variant_isset cxx ] || [ variant_isset hl ] || [ variant_isset fortran ]) || ([ mpi_variant_isset ]) && ([ variant_isset cxx ] || [ variant_isset threadsafe ]) } { # Tell hdf5 to configure in this experimental configuration configure.args-append --enable-unsupported notes { !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! hdf5-18 has been installed in an unsupported "Experimental" mode due to\ selected variants. See "port variants hdf5-18 | grep EXPERIMENTAL" for more\ information. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! } pre-configure { ui_warn { !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! hdf5-18 will been configured in an unsupported "Experimental" mode due to\ selected variants. See "port variants hdf5-18 | grep EXPERIMENTAL" for more\ information. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! } } } if {[ mpi_variant_isset ]} { configure.args-delete --disable-parallel configure.args-append --enable-parallel } livecheck.type regex livecheck.url http://www.hdfgroup.org/HDF5/release/obtain5.html livecheck.regex 5-(\[0-9.\]+\[0-9\]+)