13 | | description HDF5 general purpose library and file format for storing scientific data |
14 | | long_description ${description} |
| 13 | description HDF5 general purpose library and file format for storing\ |
| 14 | scientific data |
| 15 | long_description HDF5 is a data model, library, and file format for storing\ |
| 16 | and managing data. It supports an unlimited variety of\ |
| 17 | datatypes, and is designed for flexible and efficient I/O\ |
| 18 | and for high volume and complex data. HDF5 is portable and\ |
| 19 | is extensible, allowing applications to evolve in their use\ |
| 20 | of HDF5. The HDF5 Technology suite includes tools and\ |
| 21 | applications for managing, manipulating, viewing, and\ |
| 22 | analyzing data in the HDF5 format. |
18 | | master_sites http://www.hdfgroup.org/ftp/HDF5/current/src \ |
19 | | ftp://ftp.hdfgroup.org/HDF5/current/src/ \ |
20 | | ftp://ftp.hdfgroup.org/HDF5/prev-releases/hdf5-${version}/src/ |
21 | | checksums md5 33e105583417eff1c57fff910a53cd6f \ |
22 | | sha1 7d5e5e8caa5970c65e70a5b4ad6787efe0bf70bb \ |
23 | | rmd160 4c1a4160fbac6befa15b2dc039f20858c31db37d |
| 26 | master_sites \ |
| 27 | http://www.hdfgroup.org/ftp/HDF5/current/src \ |
| 28 | ftp://ftp.hdfgroup.org/HDF5/current/src/ \ |
| 29 | ftp://ftp.hdfgroup.org/HDF5/prev-releases/hdf5-${version}/src/ |
| 30 | checksums \ |
| 31 | rmd160 4c1a4160fbac6befa15b2dc039f20858c31db37d \ |
| 32 | sha256 fafe54856b00f0d6531629f66e2c476ab6ee03458803088f270bbfc4a60966c7 |
65 | | variant threadsafe description {Enable threadsafety (experimental and un-supported, disables cxx support)} conflicts openmpi { |
66 | | configure.args-delete --disable-threadsafe --enable-cxx |
67 | | configure.args-append --enable-threadsafe --disable-cxx |
| 83 | variant fortran description { |
| 84 | Enable fortran bindings. If combined with +openmpi or +mpich2, the\ |
| 85 | respective MPI package must have been built with fortran support. |
| 86 | Must be combined with +gcc44, +gcc45, +gcc46, +mpich2, or +openmpi |
| 87 | +fortran is EXPERIMENTAL with +threadsafe |
| 88 | } { |
| 89 | configure.args-delete --disable-fortran |
| 90 | configure.args-append --enable-fortran |
| 93 | if {[ variant_isset fortran ] && |
| 94 | !([variant_isset mpich2 ] || |
| 95 | [variant_isset openmpi ] || |
| 96 | [variant_isset gcc44] || |
| 97 | [variant_isset gcc45] || |
| 98 | [variant_isset gcc46]) } { |
| 99 | ui_error "+fortran requires +mpich2, +openmpi, or +gccNN" |
| 100 | return -code error |
| 101 | } |
| 102 | |
| 103 | variant threadsafe description { |
| 104 | Enable threadsafety. |
| 105 | +threadsafe is EXPERIMENTAL with +cxx, +fortran, +mpich2 or +openmpi |
| 106 | } { |
| 107 | configure.args-delete --disable-threadsafe |
| 108 | configure.args-append --enable-threadsafe --with-pthread |
| 109 | } |
| 110 | |
| 111 | if {[ variant_isset threadsafe ] && ([ variant_isset cxx] || |
| 112 | [ variant_isset fortran]) || |
| 113 | ([ variant_isset mpich2 ] || [ variant_isset openmpi ]) && |
| 114 | ([ variant_isset cxx ] || [ variant_isset threadsafe ]) } { |
| 115 | |
| 116 | # Tell hdf5-18 to configure in this experimental configuration |
| 117 | configure.args-append --enable-unsupported |
| 118 | |
| 119 | notes { |
| 120 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 121 | hdf5-18 has been installed in an unsupported "Experimental" mode due to\ |
| 122 | selected variants. See "port variants hdf5-18 | grep EXPERIMENTAL" for more\ |
| 123 | information. |
| 124 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 125 | } |
| 126 | |
| 127 | pre-configure { |
| 128 | ui_warn { |
| 129 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 130 | hdf5-18 will been configured in an unsupported "Experimental" mode due to\ |
| 131 | selected variants. See "port variants hdf5-18 | grep EXPERIMENTAL" for more\ |
| 132 | information. |
| 133 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 134 | } |
| 135 | } |
| 136 | } |
| 137 | |
| 150 | # mpich2 port does not support universal |
| 151 | variant mpich2 description { |
| 152 | Enable Parallel HDF5 with mpich2. Uses compiler selected with mpich2. |
| 153 | +mpich2 is EXPERIMENTAL with +cxx or +threadsafe. |
| 154 | } conflicts universal openmpi gcc44 gcc45 gcc46 { |
| 155 | depends_lib-append path:bin/mpicc:mpich2 |
| 156 | configure.cc ${prefix}/bin/mpicc |
| 157 | configure.cxx ${prefix}/bin/mpicxx |
| 158 | configure.fc ${prefix}/bin/mpif90 |
| 159 | } |
80 | | variant gcc44 description {Enable Fortran bindings (gfortran 4.4)} conflicts threadsafe universal gcc45 gcc46 { |
| 161 | if {[ variant_isset mpich2 ] || [ variant_isset openmpi ]} { |
| 162 | # These are compiler wrappers that already have MP's flags built in. |
| 163 | configure.cflags |
| 164 | configure.cxxflags |
| 165 | configure.ldflags |
| 166 | configure.fcflags |
| 167 | configure.cc_archflags |
| 168 | configure.cxx_archflags |
| 169 | configure.fc_archflags |
| 170 | configure.ld_archflags |
| 171 | configure.args-delete --disable-parallel |
| 172 | configure.args-append --enable-parallel |
| 173 | } |
| 174 | |
| 175 | variant gcc44 description { |
| 176 | Build with MacPorts' gcc44 compiler. |
| 177 | } conflicts universal gcc45 gcc46 openmpi mpich2 { |