blob: b4e40f540695e01c2dc69a13fe3bc3509fd27a48 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=4
inherit autotools-utils eutils flag-o-matic fortran-2 toolchain-funcs
REAL_P="${P/_pre0/-tuto}"
DESCRIPTION="A DFT electronic structure code using a wavelet basis set"
HOMEPAGE="http://inac.cea.fr/L_Sim/BigDFT/"
SRC_URI="http://inac.cea.fr/L_Sim/BigDFT/${REAL_P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="cuda doc etsf_io mpi netcdf opencl test"
RDEPEND="
=sci-libs/libxc-1*[fortran]
virtual/blas
virtual/fortran
virtual/lapack
mpi? ( virtual/mpi )
cuda? ( dev-util/nvidia-cuda-sdk )
opencl? (
|| (
dev-util/nvidia-cuda-sdk
dev-util/amdstream
)
)
etsf_io? ( sci-libs/etsf_io )
netcdf? ( || (
sci-libs/netcdf[fortran]
sci-libs/netcdf-fortran
)
)"
DEPEND="${RDEPEND}
dev-util/pkgconfig
>=sys-devel/autoconf-2.59
doc? ( virtual/latex-base )"
S="${WORKDIR}/${REAL_P}"
DOCS=( README INSTALL ChangeLog AUTHORS NEWS )
FORTRAN_STANDARD=90
pkg_setup() {
# fortran-2.eclass does not handle mpi wrappers
if use mpi; then
export FC="mpif90"
export F77="mpif77"
export CC="mpicc"
else
tc-export FC F77 CC
fi
fortran-2_pkg_setup
}
src_prepare() {
epatch "${FILESDIR}"/"${REAL_P}"-libxc_dir_include.patch
eautoreconf
}
src_configure() {
local modules="/usr/$(get_libdir)/finclude"
local netcdff_libs="-lnetcdff"
filter-flags '-m*' '-O*' "-pipe"
local nvcflags="${CFLAGS}"
# _filter-var nvcflags '-m*' '-O*' "-pipe"
local myeconfargs=(
$(use_enable mpi)
--enable-optimised-convolution
--enable-pseudo
--enable-libbigdft
--enable-binaries
--disable-minima-hopping
--with-moduledir="${modules}"
--with-ext-linalg="$(pkg-config --libs-only-l lapack) \
$(pkg-config --libs-only-l blas)"
--with-ext-linalg-path="$(pkg-config --libs-only-L lapack) \
$(pkg-config --libs-only-L blas)"
--disable-internal-libxc
--with-libxc-path="/usr"
--with-libxc-include="${modules}"
$(use_enable cuda cuda-gpu)
$(use_with cuda cuda-path /opt/cuda)
$(use_with cuda nvcc-flags "${nvcflags}")
$(use_enable opencl)
$(use_with opencl ocl-path /usr)
$(use_with etsf_io etsf-io)
$(use_with etsf_io etsf-io-path "/usr")
$(use_with etsf_io netcdf-path "$(pkg-config --libs-only-L netcdf)")
"$(use etsf_io && echo "--with-netcdf-libs=$(pkg-config --libs netcdf) ${netcdff_libs}")"
FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} -I${modules}"
LD="$(tc-getLD)"
CPP="$(tc-getCPP)"
)
autotools-utils_src_configure
}
src_compile() {
#autotools-utils_src_compile() expanded
_check_build_dir
pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null
emake -j1
sed -i -e's%\$(top_builddir)/[^ ]*/lib\([^ /$-]*\)\.a%-l\1%g' bigdft.pc
popd > /dev/null
use doc && autotools-utils_src_compile doc
}
src_test() {
use test && autotools-utils_src_test
}
src_install() {
autotools-utils_src_install HAVE_LIBXC=1
}
|