2 |
2 |
# Distributed under the terms of the GNU General Public License v2
|
3 |
3 |
|
4 |
4 |
EAPI=7
|
5 |
|
FORTRAN_STANDARD=90
|
|
5 |
|
6 |
6 |
FORTRAN_NEEDED="fortran"
|
|
7 |
FORTRAN_STANDARD=90
|
|
8 |
|
7 |
9 |
inherit autotools cuda fortran-2 toolchain-funcs
|
8 |
10 |
|
9 |
11 |
DESCRIPTION="Unified runtime system for heterogeneous multicore architectures"
|
10 |
|
HOMEPAGE="http://starpu.gforge.inria.fr/"
|
11 |
|
SRC_URI="https://gforge.inria.fr/frs/download.php/file/37744/${P}.tar.gz"
|
|
12 |
HOMEPAGE="https://starpu.gitlabpages.inria.fr/"
|
|
13 |
SRC_URI="https://files.inria.fr/${PN}/${P}/${P}.tar.gz"
|
12 |
14 |
|
13 |
15 |
LICENSE="LGPL-2.1"
|
14 |
|
SLOT="0/5"
|
15 |
|
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~ppc ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
|
|
16 |
SLOT="0/7"
|
|
17 |
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~ppc ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
|
16 |
18 |
|
17 |
19 |
IUSE="
|
18 |
|
blas cuda doc examples fftw fortran gcc-plugin mpi opencl opengl
|
19 |
|
spinlock-check static-libs test valgrind
|
|
20 |
blas cuda doc examples fftw fortran hdf5 mpi opencl opengl
|
|
21 |
openmp spinlock-check static-libs test valgrind
|
20 |
22 |
"
|
21 |
23 |
RESTRICT="!test? ( test )"
|
22 |
24 |
|
23 |
25 |
RDEPEND="
|
24 |
26 |
sci-mathematics/glpk:0=
|
25 |
|
sys-apps/hwloc:0=
|
|
27 |
>=sys-apps/hwloc-2.3.0:0=
|
26 |
28 |
blas? ( virtual/blas )
|
27 |
29 |
cuda? ( dev-util/nvidia-cuda-toolkit
|
28 |
30 |
x11-drivers/nvidia-drivers )
|
29 |
31 |
fftw? ( sci-libs/fftw:3.0= )
|
|
32 |
hdf5? ( sci-libs/hdf5:0= )
|
30 |
33 |
mpi? ( virtual/mpi )
|
31 |
34 |
opencl? ( virtual/opencl )
|
32 |
35 |
opengl? ( media-libs/freeglut:0= )
|
... | ... | |
37 |
40 |
BDEPEND="
|
38 |
41 |
virtual/pkgconfig
|
39 |
42 |
doc? ( app-doc/doxygen virtual/latex-base )
|
40 |
|
test? ( gcc-plugin? ( dev-scheme/guile ) )
|
41 |
43 |
"
|
42 |
44 |
|
|
45 |
pkg_pretend() {
|
|
46 |
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
|
47 |
}
|
|
48 |
|
|
49 |
pkg_setup() {
|
|
50 |
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
|
51 |
fortran-2_pkg_setup
|
|
52 |
}
|
|
53 |
|
43 |
54 |
src_prepare() {
|
44 |
55 |
default
|
45 |
56 |
|
46 |
57 |
sed -i -e '/Libs.private/s/@LDFLAGS@//g' *.pc.in */*.pc.in || die
|
47 |
|
sed -i -e 's:-O3::g;s:-D_FORTIFY_SOURCE=1::g' configure.ac || die
|
|
58 |
sed -i -e 's/-O3//g;s/-D_FORTIFY_SOURCE=1//g' configure.ac || die
|
48 |
59 |
eautoreconf
|
49 |
60 |
|
50 |
61 |
use cuda && cuda_src_prepare
|
... | ... | |
54 |
65 |
use blas && export BLAS_LIBS="$($(tc-getPKG_CONFIG) --libs blas)"
|
55 |
66 |
|
56 |
67 |
econf \
|
57 |
|
--disable-magma \
|
58 |
68 |
$(use mpi && use_enable test mpi-check) \
|
59 |
69 |
$(use_enable cuda) \
|
60 |
70 |
$(use_enable doc build-doc) \
|
|
71 |
$(use_enable doc build-doc-pdf) \
|
61 |
72 |
$(use_enable fftw starpufft) \
|
62 |
73 |
$(use_enable fortran) \
|
63 |
|
$(use_enable gcc-plugin gcc-extensions) \
|
|
74 |
$(use_enable hdf5) \
|
|
75 |
$(use_enable mpi) \
|
64 |
76 |
$(use_enable opencl) \
|
65 |
77 |
$(use_enable opengl opengl-render) \
|
|
78 |
$(use_enable openmp) \
|
66 |
79 |
$(use_enable spinlock-check) \
|
67 |
80 |
$(use_enable static-libs static) \
|
68 |
81 |
$(use_enable valgrind) \
|
... | ... | |
70 |
83 |
--disable-build-examples \
|
71 |
84 |
--disable-debug \
|
72 |
85 |
--disable-fstack-protector-all \
|
73 |
|
--disable-full-gdb-information \
|
74 |
|
--disable-starpu-top
|
|
86 |
--disable-full-gdb-information
|
75 |
87 |
}
|
76 |
88 |
|
77 |
89 |
src_test() {
|
78 |
|
emake -j1 showcheck
|
|
90 |
# Avoids timeouts in e.g. starpu_task_wait_for_all, starpu_task_wait
|
|
91 |
# See bug #803158
|
|
92 |
# https://gitub.u-bordeaux.fr/starpu/starpu/-/blob/master/contrib/ci.inria.fr/job-1-check.sh
|
|
93 |
export STARPU_TIMEOUT_ENV=3600
|
|
94 |
export MPIEXEC_TIMEOUT=3600
|
|
95 |
|
|
96 |
# Could switch(?) to quick check if timeouts end up being a real problem, but let's not
|
|
97 |
# do it for now. https://gitub.u-bordeaux.fr/starpu/starpu/-/blob/master/contrib/ci.inria.fr/job-1-check.sh#L85
|
|
98 |
MAKEOPTS='-j1' default
|
79 |
99 |
}
|
80 |
100 |
|
81 |
101 |
src_install() {
|
82 |
102 |
default
|
83 |
103 |
use doc && dodoc -r doc/doxygen/*.pdf doc/doxygen/html
|
84 |
|
if use examples; then
|
85 |
|
dodoc -r examples
|
86 |
|
docompress -x /usr/share/doc/${PF}/examples
|
87 |
|
fi
|
|
104 |
use examples && dodoc -r examples
|
88 |
105 |
find "${ED}" -name '*.la' -delete || die
|
89 |
106 |
}
|