<pre style='margin:0'>
David Strubbe (dstrubbe) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/ccafada5554612846c07279e6690b99cae996a68">https://github.com/macports/macports-ports/commit/ccafada5554612846c07279e6690b99cae996a68</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit ccafada5554612846c07279e6690b99cae996a68
</span>Author: David Strubbe <dstrubbe@macports.org>
AuthorDate: Tue Jun 30 10:59:09 2020 -0700
<span style='display:block; white-space:pre;color:#404040;'> abinit: Update to 9.0.4.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Substantial reorganization due to changes in code's build system. libxc, hdf5, and netcdf are now required dependencies. +threads disabled due to compilation errors. Testsuite for serial does task parallelization. MPI in-place enabled and MPI level 3 (for MPICH only). FFTW3 is always threaded.
</span>---
science/abinit/Portfile | 136 +++++++++++++++++++-----------------------------
1 file changed, 53 insertions(+), 83 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/abinit/Portfile b/science/abinit/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a83b73cc6c4..63718b5d4ab 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/abinit/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/abinit/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,8 @@ PortGroup mpi 1.0
</span> PortGroup linear_algebra 1.0
name abinit
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 8.10.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 9.0.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span> categories science
platforms darwin
license GPL-3
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,12 +32,12 @@ long_description ABINIT is a package whose main program allows one to find th
</span> homepage https://www.abinit.org
master_sites ${homepage}/sites/default/files/packages
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 b47a865dc6a321ea5b66e4df4173f2ce93dacbe1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 4ee2e0329497bf16a9b2719fe0536cc50c5d5a07c65e18edaf15ba02251cbb73 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 88370836
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 7b475c4f2784794abf1f7ea2cdf902d849a0a394 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 aa6202feaea060ea5c39500a06f735e472874f768bf9a301059f4bbf04886e52 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 87453615
</span>
compilers.choose cc cxx fc
<span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.allow_arguments_mismatch yes
</span> # g95 is no longer supported by abinit
mpi.setup default require_fortran -g95
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,6 +45,16 @@ configure.args-append --enable-gw-dpc
</span> configure.fcflags-append -ffree-line-length-none
configure.optflags -O3
<span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:libxc4 port:hdf5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.enforce_fortran libxc4 hdf5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append --with-libxc="${prefix}" --with-hdf5="${prefix}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+mpi.enforce_variant hdf5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:netcdf-fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.enforce_fortran netcdf-fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append --with-netcdf="${prefix}" --with-netcdf-fortran="${prefix}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# check compatibility with MPI? not needed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> use_parallel_build yes
# We do not need to use ABINIT's own approach to parallel builds, which only is relevant if
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,58 +62,20 @@ use_parallel_build yes
</span> # but did not provide the libraries. That situation should never happen for this port.
#build.target multi multi_nprocs=4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-default_variants +libxc +wannier90
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> pre-configure {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if { [variant_isset netcdf] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-trio-flavor="netcdf"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-trio-flavor="none"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# enable LibPAW, PFFT?
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set dft-flavor "none"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { [variant_isset libxc] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ${dft-flavor} eq "none" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set dft-flavor libxc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set dft-flavor ${dft-flavor}+libxc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { [variant_isset wannier90] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ${dft-flavor} eq "none" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set dft-flavor wannier90
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set dft-flavor ${dft-flavor}+wannier90
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# if { [variant_isset bigdft] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# if { ${dft-flavor} eq "none" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# set dft-flavor bigdft
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# set dft-flavor ${dft-flavor}+bigdft
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# if { [variant_isset atompaw] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# if { ${dft-flavor} eq "none" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# set dft-flavor atompaw
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# set dft-flavor ${dft-flavor}+atompaw
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-dft-flavor="${dft-flavor}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set linalg-flavor "none"
</span> if { [variant_isset atlas] } {
set linalg-flavor atlas
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif { [variant_isset openblas] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set linalg-flavor openblas
</span> } else {
set linalg-flavor netlib
}
if { [variant_isset scalapack] } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set linalg-flavor ${linalg-flavor}+scalapack
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set linalglib "${linalglib} -lscalapack"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set linalglib "${linalglib} -lscalapack"
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-linalg-flavor="${linalg-flavor}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-linalg-libs="${linalglib}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --with-linalg-flavor="${linalg-flavor}" LINALG_LIBS="${linalglib}"
</span> }
# install binaries and pkgconfig but not the very large number of test files
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -113,12 +86,10 @@ universal_variant no
</span>
test.run yes
test.cmd tests/runtests.py
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# args -t0 for no timeout since it cannot be found anyway; or: set depends_build-append port:timeout
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-test.target built-in fast tutorespfn tutorial unitary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# args -t0 for no timeout since it cannot be found anyway; or: set depends_test-append port:timeout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.target libxc built-in fast tutorespfn tutorial unitary
</span> #test.target built-in fast tutorespfn tutorial unitary v1 v2 v3 v4 v5 v6 v67mbpt v7
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# other config options to add:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# --enable-mpi-inplace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_test-append port:py-pandas
</span>
pre-test {
if {[mpi_variant_isset]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -127,15 +98,21 @@ pre-test {
</span> test.args-append -n 1
} else {
test.target-append seq
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![catch {sysctl hw.ncpu} ncpus]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test.cmd tests/runtests.py -j $ncpus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_msg "Running testsuite with $ncpus tasks in parallel"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
}
pre-configure {
configure.args-append FCCPP="${configure.cc} -E -ansi"
if {[mpi_variant_isset]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --enable-mpi="yes" --enable-mpi-io="yes"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --enable-mpi="no"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --with-mpi --enable-mpi-io="yes" --enable-mpi-inplace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[mpi_variant_name] eq "mpich" || [mpi_variant_name] eq "mpich-devel"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # with OpenMPI, causes compilation error in m_profiling_abi.F90 related to MPI_COMM_WORLD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --with-mpi-level=3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,38 +120,31 @@ variant fftw3 description {Build with support for fftw-3 FFT library} {
</span> depends_lib-append port:fftw-3 port:fftw-3-single
compilers.enforce_some_fortran fftw-3 fftw-3-single
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if { [variant_isset threads] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-fft-flavor="fftw3-threads"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-fft-libs="-lfftw3_threads -lfftw3 -lfftw3f"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-fft-flavor="fftw3"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-fft-libs="-lfftw3 -lfftw3f"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --with-fft-flavor="fftw3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append FFTW3_LIBS="-L${prefix} -lfftw3 -lfftw3f"
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant threads description {Build with support for OpenMP threads} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --enable-openmp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.fcflags-append -fopenmp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the fftw-3 port always provides the threaded library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant fftw3 description {Build with support for (threaded) fftw-3 FFT library} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:fftw-3 port:fftw-3-single
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compilers.enforce_some_fortran fftw-3 fftw-3-single
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant netcdf description {Build with support for NetCDF transferable I/O} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:netcdf-fortran
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compilers.enforce_fortran netcdf-fortran
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-netcdf-incs="-I${prefix}/include"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-netcdf-libs="-L${prefix}/lib -lnetcdf -lnetcdff"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # check compatibility with MPI?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --with-fft-flavor="fftw3-threads"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append FFTW3_LIBS="-L${prefix} -lfftw3 -lfftw3f -lfftw3_threads"
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# add support for gsl, yaml?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#variant threads description {Build with support for OpenMP threads} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# configure.args-append --enable-openmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# configure.fcflags-append -fopenmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Threads disabled due to this error:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#m_getghc.F90:1622:0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 1622 | if ( present(kg_fft_k) ) then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#Error: 'kg_fft_k' not specified in enclosing 'parallel'
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant libxc description {Build with support for libXC exchange-correlation library} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # configure says Fortran support doesn't work for libxc > 4.0.0 for some reason
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:libxc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compilers.enforce_fortran libxc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-libxc-incs="-I${prefix}/include"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-libxc-libs="-L${prefix}/lib -lxc -lxcf90"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- test.target-append libxc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# add support for gsl, yaml?
</span>
variant scalapack description {Build with ScaLAPACK for parallel linear algebra} {
depends_lib-append port:scalapack
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -188,10 +158,10 @@ variant scalapack description {Build with ScaLAPACK for parallel linear algebra}
</span> }
variant wannier90 description {Build with support for Wannier90} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --with-wannier90 WANNIER90_LIBS="-lwannier"
</span> depends_lib-append port:wannier90
test.target-append wannier90 tutoplugs vdwxc
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# tests fail: [wannier90][t00][np=1]: fldiff.pl fatal error
</span>
# FIXME: the code's build system will download BigDFT itself, which is contrary to the
# way MacPorts should work. Make a bigdft port to support this.
</pre><pre style='margin:0'>
</pre>