aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHonza Macháček <Hloupy.Honza@centrum.cz>2015-04-22 17:05:51 +0200
committerHonza Macháček <Hloupy.Honza@centrum.cz>2015-04-22 17:05:51 +0200
commit684348c37be4c96f48248c3dfff436f09850d6dc (patch)
treec694f6b3688b633d138a03071b098476c8b40579
parentVersion bump to sci-physics/bigdft-1.7.6, added sci-physics/bigdft-1.7.1 for ... (diff)
downloadsci-684348c37be4c96f48248c3dfff436f09850d6dc.tar.gz
sci-684348c37be4c96f48248c3dfff436f09850d6dc.tar.bz2
sci-684348c37be4c96f48248c3dfff436f09850d6dc.zip
Version bump to sci-physics/abinit-7.10.4, dependency for USE=bigdft changed in the new version from sci-libs/bigdft-abi to <sci-physics/bigdft-1.7.5
Package-Manager: portage-2.2.18
-rw-r--r--sci-physics/abinit/ChangeLog10
-rw-r--r--sci-physics/abinit/Manifest1
-rw-r--r--sci-physics/abinit/abinit-7.10.4.ebuild390
-rw-r--r--sci-physics/abinit/files/7.10.4-libabinit_options.patch82
-rw-r--r--sci-physics/abinit/files/7.10.4-syntax.patch12
5 files changed, 494 insertions, 1 deletions
diff --git a/sci-physics/abinit/ChangeLog b/sci-physics/abinit/ChangeLog
index a2b5e94b6..3b70d8d3d 100644
--- a/sci-physics/abinit/ChangeLog
+++ b/sci-physics/abinit/ChangeLog
@@ -1,7 +1,15 @@
# ChangeLog for sci-physics/abinit
-# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+*abinit-7.10.4 (22 Apr 2015)
+
+ 22 Apr 2015; Honza Macháček <Hloupy.Honza@centrum.cz>
+ +abinit-7.10.4.ebuild, +files/7.10.4-libabinit_options.patch,
+ +files/7.10.4-syntax.patch:
+ Version bump to sci-physics/abinit-7.10.4, dependency for USE=bigdft changed
+ in the new version from sci-libs/bigdft-abi to <sci-physics/bigdft-1.7.5
+
*abinit-7.6.4-r1 (10 Dec 2014)
*abinit-7.4.2-r1 (10 Dec 2014)
diff --git a/sci-physics/abinit/Manifest b/sci-physics/abinit/Manifest
index 00f95861e..86578760b 100644
--- a/sci-physics/abinit/Manifest
+++ b/sci-physics/abinit/Manifest
@@ -1,2 +1,3 @@
+DIST abinit-7.10.4.tar.gz 69930222 SHA256 ebd0a3abd01db4374beda092d1f16c9e00d327712b1ed389bb32e1c80f37c6ef SHA512 32e98a721c56731d9f45f24359c3dd967fdf2f9f3d9fd0328e82a037a25abb789a2b483174a1347d965b71799118d6c26911beee9d0ec833324d36116e8e5b4a WHIRLPOOL 6d292940ee5168563d2ad4114141d272cc84956209d35c49ebd9e0508a3080206fd6e096a49cd63bebd0b9ffab85efac9a3e3d6946e949f3cb306eb597dbc310
DIST abinit-7.4.2.tar.gz 69150549 SHA256 26fcc60e18071b7579843f43cbe44e79db50466dbaae8b862ad96a8986733f63 SHA512 55132cfbfb26bf22ae486ada7e721188bd436a48299da3a386928776f6d0652d8a19a5e5b70261b84afc6cb6b058fe711171fa09aff637bdb2da11e8df032543 WHIRLPOOL add34b50d2c6843064254a3caffbfa4d9fef644ae98513a1b7681ffb8f2c0f4d31b5b995920a97fa656d82a38aeec313f98e1f91c06166ea83ed6ba87192292d
DIST abinit-7.6.4.tar.gz 71821245 SHA256 1fa532ca156d2fad1bf3af86edfc8b6695917c8cbcf25084c7bf9b1749812ff7 SHA512 b86dcc26d8e38a8d0f1b4a470dc0bc2bd5363f25dbc1bd954e83ffe8694ce23b85ddf3d411c4b3121d833f65c4d55899cf02054b27e060d2465407a6c110602a WHIRLPOOL b1580f3e8c99148632f0cacd566a3e958c0e7a9b14ec7b1bb20c930a5131491401938d29ab41944411ae82676753bdf0f2294a137aaa267226cc2ac3db43c2fd
diff --git a/sci-physics/abinit/abinit-7.10.4.ebuild b/sci-physics/abinit/abinit-7.10.4.ebuild
new file mode 100644
index 000000000..40d7fadd0
--- /dev/null
+++ b/sci-physics/abinit/abinit-7.10.4.ebuild
@@ -0,0 +1,390 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_5,2_6,2_7} )
+
+inherit autotools-utils eutils flag-o-matic fortran-2 multilib python-single-r1 toolchain-funcs
+
+DESCRIPTION="Find total energy, charge density and electronic structure using density functional theory"
+HOMEPAGE="http://www.abinit.org/"
+SRC_URI="http://ftp.abinit.org/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="atompaw bigdft cuda cuda-double -debug +etsf_io +fftw fftw-mpi +fftw-threads +fox gsl +hdf5 levmar -libabinit libxc -lotf mpi +netcdf openmp python scalapack scripts -test +threads wannier"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+#" scalapack? ( !bigdft )"
+
+RDEPEND="virtual/blas
+ virtual/lapack
+ ${PYTHON_DEPS}
+ dev-python/numpy
+ atompaw? ( >=sci-physics/atompaw-4.0.0.10[libxc?] )
+ bigdft? ( >=sci-physics/bigdft-1.7.0.93[scalapack?]
+ <sci-physics/bigdft-1.7.5 )
+ cuda? ( dev-util/nvidia-cuda-sdk )
+ etsf_io? ( >=sci-libs/etsf_io-1.0.4 )
+ fftw? (
+ sci-libs/fftw:3.0
+ fftw-threads? (
+ openmp? ( sci-libs/fftw:3.0[openmp] )
+ !openmp? ( sci-libs/fftw:3.0[threads] )
+ )
+ fftw-mpi? (
+ sci-libs/fftw:3.0[mpi]
+ openmp? ( sci-libs/fftw:3.0[openmp] )
+ !openmp? ( sci-libs/fftw:3.0[threads] )
+ )
+ )
+ fox? ( >=sci-libs/fox-4.1.2-r2[sax] )
+ gsl? ( sci-libs/gsl )
+ hdf5? ( sci-libs/hdf5[fortran] )
+ levmar? ( sci-libs/levmar )
+ libxc? ( >=sci-libs/libxc-2.0.3[fortran]
+ <sci-libs/libxc-2.2 )
+ netcdf? (
+ sci-libs/netcdf[hdf5?]
+ || (
+ sci-libs/netcdf[fortran]
+ sci-libs/netcdf-fortran
+ )
+ )
+ mpi? ( virtual/mpi )
+ scalapack? ( virtual/scalapack )
+ scripts? ( dev-python/PyQt4 )
+ wannier? ( >=sci-libs/wannier90-1.2-r1 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ dev-perl/Text-Markdown"
+
+S=${WORKDIR}/${P%[a-z]}
+
+DOCS=( AUTHORS ChangeLog COPYING INSTALL KNOWN_PROBLEMS NEWS PACKAGING
+ README README.ChangeLog README.GPU README.xlf RELNOTES THANKS )
+
+FORTRAN_STANDARD=90
+
+pkg_setup() {
+ # Doesn't compile with gcc-4.0, only >=4.1
+ if [[ $(tc-getFC) == *gfortran ]]; then
+ if [[ $(gcc-major-version) -eq 4 ]] \
+ && [[ $(gcc-minor-version) -lt 1 ]]; then
+ die "Requires gcc-4.1 or newer"
+ fi
+ fi
+
+ # fortran-2.eclass does not handle mpi wrappers
+ if use mpi; then
+ export FC="mpif90"
+ export F77="mpif77"
+ export CC="mpicc"
+ export CXX="mpic++"
+ else
+ tc-export FC F77 CC CXX
+ fi
+
+ # Preprocesor macross can make some lines really long
+ append-fflags -ffree-line-length-none
+
+ # This should be correct:
+ # It is gcc-centric because toolchain-funcs.eclass is gcc-centric.
+ # Should a bug be filed against toolchain-funcs.eclass?
+ # if use openmp; then
+ # tc-has-openmp || \
+ # die "Please select an openmp capable compiler like gcc[openmp]"
+ # fi
+ #
+ # This is completely wrong:
+ # If other compilers than Gnu Compiler Collection can be used by portage,
+ # their support of OpenMP should be properly tested. This code limits the test
+ # to gcc, and blindly supposes that other compilers do support OpenMP.
+ # if use openmp && [[ $(tc-getCC)$ == *gcc* ]] && ! tc-has-openmp; then
+ # die "Please select an openmp capable compiler like gcc[openmp]"
+ # fi
+ #
+ # Luckily Abinit is a fortran package.
+ # fortran-2.eclass has its own test for OpenMP support,
+ # more general than toolchain-funcs.eclass
+ # The test itself proceeds inside fortran-2_pkg_setup
+ if use openmp; then FORTRAN_NEED_OPENMP=1; fi
+
+ fortran-2_pkg_setup
+
+ if use openmp; then
+ # based on _fortran-has-openmp() of fortran-2.eclass
+ local code=ebuild-openmp-flags
+ local ret
+ local openmp
+
+ pushd "${T}"
+ cat <<- EOF > "${code}.c"
+ # include <omp.h>
+ main () {
+ int nthreads;
+ nthreads=omp_get_num_threads();
+ }
+ EOF
+
+ for openmp in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do
+ ${CC} ${openmp} "${code}.c" -o "${code}.o" &>> "${T}"/_c_compile_test.log
+ ret=$?
+ (( ${ret} )) || break
+ done
+
+ rm -f "${code}.*"
+ popd
+
+ if (( ${ret} )); then
+ die "Please switch to an openmp compatible C compiler"
+ else
+ export CC="${CC} ${openmp}"
+ export CXX="${CXX} ${openmp}"
+ fi
+
+ pushd "${T}"
+ cat <<- EOF > "${code}.f"
+ 1 call omp_get_num_threads
+ 2 end
+ EOF
+
+ for openmp in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do
+ ${FC} ${openmp} "${code}.f" -o "${code}.o" &>> "${T}"/_f_compile_test.log
+ ret=$?
+ (( ${ret} )) || break
+ done
+
+ rm -f "${code}.*"
+ popd
+
+ if (( ${ret} )); then
+ die "Please switch to an openmp compatible fortran compiler."
+ else
+ export FC="${FC} ${openmp}"
+ export F77="${F77} ${openmp}"
+ fi
+ fi
+
+ # Sort out some USE options
+ if use fftw-threads && ! use fftw; then
+ ewarn "fftw-threads set but fftw not used, ignored."
+ fi
+ if use fftw-mpi; then
+ if ! use fftw; then
+ ewarn "fftw-mpi set but fftw not used, ignored."
+ elif ! use mpi; then
+ ewarn "fftw-mpi set but mpi not used, ignored."
+ elif ! use fftw-threads; then
+ ewarn "fftw-mpi set but fftw-threads not. Will use a threaded fftw nevertheless, required with MPI."
+ fi
+ fi
+ if use cuda-double && ! use cuda; then
+ ewarn "cuda-double set but cuda not used, ignored"
+ fi
+
+ python-single-r1_pkg_setup
+
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/6.2.2-change-default-directories.patch \
+ "${FILESDIR}"/6.12.1-autoconf.patch \
+ "${FILESDIR}"/6.12.1-xmalloc.patch \
+ "${FILESDIR}"/7.10.4-libabinit_options.patch \
+ "${FILESDIR}"/7.4.2-levmar_diag_scaling.patch \
+ "${FILESDIR}"/7.4.2-cuda_link_stdc++.patch \
+ "${FILESDIR}"/7.6.4-cuda_header.patch \
+ "${FILESDIR}"/7.10.4-syntax.patch
+ eautoreconf
+ sed -e"s/\(grep '\^-\)\(\[LloW\]\)'/\1\\\(\2\\\|pthread\\\)'/g" -i configure || ewarn "sed on configure failed"
+ python_fix_shebang "${S}"
+}
+
+src_configure() {
+ local modules="$(FoX-config --sax --fcflags)"
+ local FoX_libs="$(FoX-config --sax --libs)"
+
+ local trio_flavor=""
+ use etsf_io && trio_flavor="${trio_flavor}+etsf_io"
+ use fox && trio_flavor="${trio_flavor}+fox"
+ use netcdf && trio_flavor="${trio_flavor}+netcdf"
+ test "no${trio_flavor}" = "no" && trio_flavor="none"
+
+ local netcdff_libs="-lnetcdff"
+ use hdf5 && netcdff_libs="${netcdff_libs} -lhdf5_fortran"
+
+# local linalg_flavor="atlas"
+ local linalg_flavor="custom"
+ local mylapack="lapack"
+ use scalapack && mylapack="scalapack" && linalg_flavor="${linalg_flavor}+scalapack"
+
+ local dft_flavor=""
+ use atompaw && dft_flavor="${dft_flavor}+atompaw"
+ use bigdft && dft_flavor="${dft_flavor}+bigdft"
+ use libxc && dft_flavor="${dft_flavor}+libxc"
+ use wannier && dft_flavor="${dft_flavor}+wannier90"
+ test "no${dft_flavor}" = "no" && dft_flavor="none"
+
+ local fft_flavor="fftw3"
+ local fft_libs=""
+ # The fftw threads support is protected by black magick.
+ # Anybody removes it, dies.
+ # New USE flag "fftw-threads" was added to control usage
+ # of the threaded fftw variant. Since fftw-3.3 has expanded
+ # the paralel options by MPI and OpenMP support, analogical
+ # USE flags should be added to select them in future;
+ # unusable with previous FFTW versions, they are postponed
+ # for now.
+ if use mpi && use fftw-mpi; then
+ fft_flavor="fftw3-mpi"
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3_mpi)"
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3f_mpi)"
+ if use openmp; then
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3_omp)"
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3f_omp)"
+ else
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3_threads)"
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3f_threads)"
+ fi
+ elif use fftw-threads; then
+ fft_flavor="fftw3-threads"
+ if use openmp; then
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3_omp)"
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3f_omp)"
+ else
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3_threads)"
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3f_threads)"
+ fi
+ else
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3)"
+ fft_libs+="$($(tc-getPKG_CONFIG) --libs fftw3f)"
+ fi
+
+ local gpu_flavor="none"
+ if use cuda; then
+ gpu_flavor="cuda-single"
+ if use cuda-double; then
+ gpu_flavor="cuda-double"
+ fi
+ fi
+
+ local myeconfargs=(
+ --enable-clib
+ --enable-exports
+ $(use_enable debug debug enhanced)
+ $(use_enable mpi)
+ $(use_enable mpi mpi-io)
+ $(use_enable openmp)
+ $(use_enable lotf)
+ $(use_enable cuda gpu)
+ "$(use cuda && echo "--with-gpu-flavor=${gpu_flavor}")"
+ "$(use cuda && echo "--with-gpu-prefix=/opt/cuda/")"
+ "$(use gsl && echo "--with-math-flavor=gsl")"
+ "$(use gsl && echo "--with-math-incs=$($(tc-getPKG_CONFIG) --cflags gsl)")"
+ "$(use gsl && echo "--with-math-libs=$($(tc-getPKG_CONFIG) --libs gsl)")"
+ "$(use levmar && echo "--with-algo-flavor=levmar")"
+ "$(use levmar && echo "--with-algo-libs=-llevmar")"
+ --with-linalg-flavor="${linalg_flavor}"
+ --with-linalg-libs="$($(tc-getPKG_CONFIG) --libs "${mylapack}")"
+ --with-trio-flavor="${trio_flavor}"
+ "$(use netcdf && echo "--with-netcdf-incs=-I/usr/include")"
+ "$(use netcdf && echo "--with-netcdf-libs=$($(tc-getPKG_CONFIG) --libs netcdf) ${netcdff_libs}")"
+ "$(use fox && echo "--with-fox-incs=${modules}")"
+ "$(use fox && echo "--with-fox-libs=${FoX_libs}")"
+ "$(use etsf_io && echo "--with-etsf-io-incs=${modules}")"
+ "$(use etsf_io && echo "--with-etsf-io-libs=-letsf_io -letsf_io_utils -letsf_io_low_level")"
+ --with-dft-flavor="${dft_flavor}"
+ "$(use atompaw && echo "--with-atompaw-incs=${modules}")"
+ "$(use atompaw && echo "--with-atompaw-libs=-latompaw")"
+ "$(use bigdft && echo "--with-bigdft-incs=${modules}")"
+ "$(use bigdft && echo "--with-bigdft-libs=$($(tc-getPKG_CONFIG) --libs bigdft)")"
+ "$(use libxc && echo "--with-libxc-incs=${modules}")"
+ "$(use libxc && echo "--with-libxc-libs=$($(tc-getPKG_CONFIG) --libs libxc)")"
+ "$(use wannier && echo "--with-wannier90-bins=/usr/bin")"
+ "$(use wannier && echo "--with-wannier90-incs=${modules}")"
+ "$(use wannier && echo "--with-wannier90-libs=-lwannier $($(tc-getPKG_CONFIG) --libs blas lapack)")"
+ "$(use fftw && echo "--with-fft-flavor=${fft_flavor}")"
+ "$(use fftw && echo "--with-fft-incs=-I/usr/include")"
+ "$(use fftw && echo "--with-fft-libs=${fft_libs}")"
+ --with-timer-flavor="abinit"
+ LD="$(tc-getLD)"
+ FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} ${modules} -I/usr/include"
+ )
+
+ MARKDOWN=Markdown.pl autotools-utils_src_configure
+}
+
+src_compile() {
+ autotools-utils_src_compile
+
+ # Apparently libabinit.a is not built by default
+ # Used by BigDFT. Should probably be built separately,
+ # as a package of its own: BigDFT used by Abinit.
+ # Does libabinit.a depend on BigDFT, if used?
+ # Can Abinit use external libabinit.a?
+ use libabinit && autotools-utils_src_compile libabinit.a
+
+ sed -i -e's/libatlas/lapack/' "${AUTOTOOLS_BUILD_DIR}"/config.pc || ewarn "sed on config.pc failed"
+}
+
+src_test() {
+ einfo "The complete tests take quite a while, easily several hours or even days."
+ # autotools-utils_src_test expanded and modified
+ _check_build_dir
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ einfo "Running the internal tests."
+ emake tests_in || ewarn 'The internal tests failed.'
+
+ einfo "Running the thorough tests. Be patient, please."
+ "${S}"/tests/runtests.py || ewarn "The package has not passed the thorough tests."
+
+ popd > /dev/null || die
+}
+
+src_install() {
+ #autotools-utils_src_install() expanded
+ _check_build_dir
+ pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null
+ emake DESTDIR="${D}" install || die "make install failed"
+
+ use libabinit && dolib libabinit.a
+
+ if use test; then
+ for dc in results.tar.gz results.txt suite_report.html; do
+ test -e Test_suite/"${dc}" && dodoc Test_suite/"${dc}" || ewarn "Copying tests results ${dc} failed"
+ done
+ fi
+
+ popd > /dev/null
+
+ # XXX: support installing them from builddir as well!!!
+ if [[ ${DOCS} ]]; then
+ dodoc "${DOCS[@]}" || die "dodoc failed"
+ else
+ local f
+ # same list as in PMS
+ for f in README* ChangeLog AUTHORS NEWS TODO CHANGES \
+ THANKS BUGS FAQ CREDITS CHANGELOG; do
+ if [[ -s ${f} ]]; then
+ dodoc "${f}" || ewarn "(default) dodoc ${f} failed"
+ fi
+ done
+ fi
+ if [[ ${HTML_DOCS} ]]; then
+ dohtml -r "${HTML_DOCS[@]}" || ewarn "dohtml failed"
+ fi
+
+ if use scripts; then
+ insinto /usr/share/"${P}"
+ doins -r scripts
+ fi
+
+ # Remove libtool files and unnecessary static libs
+ prune_libtool_files
+}
diff --git a/sci-physics/abinit/files/7.10.4-libabinit_options.patch b/sci-physics/abinit/files/7.10.4-libabinit_options.patch
new file mode 100644
index 000000000..09c61419a
--- /dev/null
+++ b/sci-physics/abinit/files/7.10.4-libabinit_options.patch
@@ -0,0 +1,82 @@
+diff -Naurp abinit-7.10.4.orig/Makefile.am abinit-7.10.4/Makefile.am
+--- abinit-7.10.4.orig/Makefile.am 2015-03-12 06:28:38.000000000 +0100
++++ abinit-7.10.4/Makefile.am 2015-04-07 12:14:39.816276230 +0200
+@@ -2878,7 +2878,9 @@ libabinit.a:
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/11_qespresso_ext/lib11_qespresso_ext.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/12_hide_mpi/lib12_hide_mpi.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/14_hidewrite/lib14_hidewrite.a
++if DO_BUILD_15_GPU_TOOLBOX
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/15_gpu_toolbox/lib15_gpu_toolbox.a
++endif
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/16_hideleave/lib16_hideleave.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/18_timing/lib18_timing.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/21_psiesta_noabirule/lib21_psiesta_noabirule.a
+@@ -2898,7 +2900,9 @@ libabinit.a:
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/49_gw_toolbox_oop/lib49_gw_toolbox_oop.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/51_manage_mpi/lib51_manage_mpi.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/52_fft_mpi_noabirule/lib52_fft_mpi_noabirule.a
++if DO_BUILD_52_MANAGE_CUDA
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/52_manage_cuda/lib52_manage_cuda.a
++endif
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/53_ffts/lib53_ffts.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/53_spacepar/lib53_spacepar.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/54_abiutil/lib54_abiutil.a
+@@ -2917,15 +2921,19 @@ libabinit.a:
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/62_wvl_wfs/lib62_wvl_wfs.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/63_bader/lib63_bader.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/64_atompaw/lib64_atompaw.a
++if DO_BUILD_65_LOTF_BASE
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/65_lotf_base/lib65_lotf_base.a
++endif
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/65_nonlocal/lib65_nonlocal.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/65_psp/lib65_psp.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/66_fock/lib66_fock.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/66_paw/lib66_paw.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/66_wfs/lib66_wfs.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/67_common/lib67_common.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/68_dmft/lib68_dmft.a
++if DO_BUILD_68_LOTF
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/68_lotf/lib68_lotf.a
++endif
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/68_recursion/lib68_recursion.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/68_rsprc/lib68_rsprc.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/69_wfdesc/lib69_wfdesc.a
+diff -Naurp abinit-7.10.4.orig/Makefile.in abinit-7.10.4/Makefile.in
+--- abinit-7.10.4.orig/Makefile.in 2015-03-12 06:28:51.000000000 +0100
++++ abinit-7.10.4/Makefile.in 2015-04-07 12:14:39.816276230 +0200
+@@ -3803,7 +3803,7 @@ libabinit.a:
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/11_qespresso_ext/lib11_qespresso_ext.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/12_hide_mpi/lib12_hide_mpi.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/14_hidewrite/lib14_hidewrite.a
+- cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/15_gpu_toolbox/lib15_gpu_toolbox.a
++@DO_BUILD_15_GPU_TOOLBOX_TRUE@ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/15_gpu_toolbox/lib15_gpu_toolbox.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/16_hideleave/lib16_hideleave.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/18_timing/lib18_timing.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/21_psiesta_noabirule/lib21_psiesta_noabirule.a
+@@ -3823,7 +3823,7 @@ libabinit.a:
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/49_gw_toolbox_oop/lib49_gw_toolbox_oop.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/51_manage_mpi/lib51_manage_mpi.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/52_fft_mpi_noabirule/lib52_fft_mpi_noabirule.a
+- cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/52_manage_cuda/lib52_manage_cuda.a
++@DO_BUILD_52_MANAGE_CUDA_TRUE@ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/52_manage_cuda/lib52_manage_cuda.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/53_ffts/lib53_ffts.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/53_spacepar/lib53_spacepar.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/54_abiutil/lib54_abiutil.a
+@@ -3842,15 +3842,15 @@ libabinit.a:
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/62_wvl_wfs/lib62_wvl_wfs.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/63_bader/lib63_bader.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/64_atompaw/lib64_atompaw.a
+- cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/65_lotf_base/lib65_lotf_base.a
++@DO_BUILD_65_LOTF_BASE_TRUE@ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/65_lotf_base/lib65_lotf_base.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/65_nonlocal/lib65_nonlocal.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/65_psp/lib65_psp.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/66_fock/lib66_fock.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/66_paw/lib66_paw.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/66_wfs/lib66_wfs.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/67_common/lib67_common.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/68_dmft/lib68_dmft.a
+- cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/68_lotf/lib68_lotf.a
++@DO_BUILD_68_LOTF_TRUE@ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/68_lotf/lib68_lotf.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/68_recursion/lib68_recursion.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/68_rsprc/lib68_rsprc.a
+ cd $(libabinit_tmpdir) && $(AR) xv $(abs_top_builddir)/src/69_wfdesc/lib69_wfdesc.a
diff --git a/sci-physics/abinit/files/7.10.4-syntax.patch b/sci-physics/abinit/files/7.10.4-syntax.patch
new file mode 100644
index 000000000..bfb915e71
--- /dev/null
+++ b/sci-physics/abinit/files/7.10.4-syntax.patch
@@ -0,0 +1,12 @@
+diff -Naurp abinit-7.10.4.orig/src/98_main/mrgscr.F90 abinit-7.10.4/src/98_main/mrgscr.F90
+--- abinit-7.10.4.orig/src/98_main/mrgscr.F90 2015-03-12 06:24:36.000000000 +0100
++++ abinit-7.10.4/src/98_main/mrgscr.F90 2015-04-07 13:00:01.166355853 +0200
+@@ -2312,7 +2312,7 @@ program mrgscr
+
+ !!OMP *** OPENMP SECTION *** Added by MS
+ !$OMP PARALLEL SHARED(Hscr_file,epsm1,nfreqre,epsm1_pole, &
+-!$OMP is_scr,npoles,std_out,iqibz,one) &
++!$OMP is_scr,npoles,std_out,iqibz) &
+ !$OMP PRIVATE(ig1,ig2,refval,imfval,phase)
+ !!OMP write(std_out,'(a,i0)') ' Entering openmp loop. Number of threads: ',omp_get_num_threads()
+ ABI_MALLOC(refval,(Hscr_file(1)%nomega))