1 |
1 |
# Copyright 1999-2022 Gentoo Authors
|
2 |
2 |
# Distributed under the terms of the GNU General Public License v2
|
3 |
3 |
|
4 |
|
EAPI="7"
|
|
4 |
EAPI=8
|
5 |
5 |
|
6 |
|
FORTRAN_NEEDED="fortran"
|
|
6 |
FORTRAN_NEEDED=fortran
|
7 |
7 |
|
|
8 |
# We've reverted *back* to autotools from CMake because of
|
|
9 |
# https://github.com/HDFGroup/hdf5/issues/1814.
|
8 |
10 |
inherit autotools fortran-2 flag-o-matic toolchain-funcs prefix
|
9 |
11 |
|
10 |
|
MY_P="${PN}-${PV/_p/-patch}"
|
11 |
|
MAJOR_P="${PN}-$(ver_cut 1-2)"
|
|
12 |
MY_P=${PN}-${PV/_p/-patch}
|
|
13 |
MAJOR_P=${PN}-$(ver_cut 1-2)
|
12 |
14 |
|
13 |
15 |
DESCRIPTION="General purpose library and file format for storing scientific data"
|
14 |
16 |
HOMEPAGE="https://www.hdfgroup.org/HDF5/"
|
15 |
17 |
SRC_URI="https://www.hdfgroup.org/ftp/HDF5/releases/${MAJOR_P}/${MY_P}/src/${MY_P}.tar.bz2"
|
|
18 |
S="${WORKDIR}/${MY_P}"
|
16 |
19 |
|
17 |
20 |
LICENSE="NCSA-HDF"
|
18 |
21 |
SLOT="0/${PV%%_p*}"
|
19 |
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
|
|
22 |
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
|
20 |
23 |
IUSE="cxx debug examples fortran +hl mpi szip threads unsupported zlib"
|
21 |
|
|
22 |
24 |
REQUIRED_USE="
|
23 |
25 |
!unsupported? (
|
24 |
|
?? ( cxx mpi )
|
25 |
|
threads? ( !cxx !mpi !fortran !hl )
|
26 |
|
)"
|
|
26 |
cxx? ( !mpi ) mpi? ( !cxx )
|
|
27 |
threads? ( !cxx !mpi !fortran !hl )
|
|
28 |
)
|
|
29 |
"
|
|
30 |
|
27 |
31 |
RDEPEND="
|
28 |
32 |
mpi? ( virtual/mpi[romio] )
|
29 |
33 |
szip? ( virtual/szip )
|
30 |
|
zlib? ( sys-libs/zlib:0= )
|
31 |
|
"
|
32 |
|
DEPEND="${RDEPEND}
|
33 |
|
sys-devel/libtool:2
|
34 |
|
>=sys-devel/autoconf-2.69
|
35 |
|
"
|
36 |
|
S="${WORKDIR}/${MY_P}"
|
|
34 |
zlib? ( sys-libs/zlib:0= )"
|
|
35 |
DEPEND="${RDEPEND}"
|
37 |
36 |
|
38 |
37 |
PATCHES=(
|
39 |
|
"${FILESDIR}/${PN}-1.8.9-static_libgfortran.patch"
|
40 |
|
"${FILESDIR}/${PN}-1.8.9-mpicxx.patch"
|
41 |
|
"${FILESDIR}/${PN}-1.8.13-no-messing-ldpath.patch"
|
|
38 |
"${FILESDIR}"/${PN}-1.8.9-static_libgfortran.patch
|
|
39 |
"${FILESDIR}"/${PN}-1.12.2-no-messing-ldpath.patch
|
|
40 |
"${FILESDIR}"/${PN}-1.12.2-no-strip-symbols.patch
|
42 |
41 |
)
|
43 |
42 |
|
44 |
43 |
pkg_setup() {
|
45 |
|
tc-export CXX CC AR # workaround for bug 285148
|
|
44 |
# Workaround for bug 285148
|
|
45 |
tc-export CXX CC AR
|
|
46 |
|
46 |
47 |
use fortran && fortran-2_pkg_setup
|
47 |
48 |
|
48 |
49 |
if use mpi; then
|
... | ... | |
50 |
51 |
ewarn "Installing hdf5 with mpi enabled with a previous hdf5 with mpi disabled may fail."
|
51 |
52 |
ewarn "Try to uninstall the current hdf5 prior to enabling mpi support."
|
52 |
53 |
fi
|
53 |
|
export CC="mpicc"
|
54 |
|
use fortran && export FC="mpif90"
|
55 |
|
append-ldflags -lmpi
|
|
54 |
|
|
55 |
export CC=mpicc
|
|
56 |
use fortran && export FC=mpif90
|
56 |
57 |
elif has_version 'sci-libs/hdf5[mpi]'; then
|
57 |
58 |
ewarn "Installing hdf5 with mpi disabled while having hdf5 installed with mpi enabled may fail."
|
58 |
59 |
ewarn "Try to uninstall the current hdf5 prior to disabling mpi support."
|
... | ... | |
60 |
61 |
}
|
61 |
62 |
|
62 |
63 |
src_prepare() {
|
63 |
|
# respect gentoo examples directory
|
|
64 |
default
|
|
65 |
|
|
66 |
# Respect Gentoo examples directory
|
64 |
67 |
sed \
|
65 |
68 |
-e "s:hdf5_examples:doc/${PF}/examples:g" \
|
66 |
69 |
-i $(find . -name Makefile.am) $(find . -name "run*.sh.in") || die
|
67 |
70 |
sed \
|
68 |
71 |
-e '/docdir/d' \
|
69 |
72 |
-i config/commence.am || die
|
|
73 |
|
70 |
74 |
if ! use examples; then
|
|
75 |
# bug #409091
|
71 |
76 |
sed -e '/^install:/ s/install-examples//' \
|
72 |
|
-i Makefile.am || die #409091
|
|
77 |
-i Makefile.am || die
|
73 |
78 |
fi
|
74 |
|
# enable shared libs by default for h5cc config utility
|
75 |
|
sed -i -e "s/SHLIB:-no/SHLIB:-yes/g" tools/src/misc/h5cc.in || die
|
76 |
|
hprefixify m4/libtool.m4
|
77 |
79 |
|
78 |
|
# bug #775305
|
79 |
|
use fortran && tc-enables-pie && append-fflags -fPIC
|
|
80 |
# Enable shared libs by default for h5cc config utility
|
|
81 |
sed -i -e "s/SHLIB:-no/SHLIB:-yes/g" bin/h5cc.in || die
|
|
82 |
hprefixify m4/libtool.m4
|
80 |
83 |
|
81 |
|
default
|
82 |
|
eautomake
|
|
84 |
eautoreconf
|
83 |
85 |
}
|
84 |
86 |
|
85 |
87 |
src_configure() {
|
86 |
|
use sparc && tc-is-gcc && append-flags -fno-tree-ccp # bug 686620
|
87 |
|
local myconf=(
|
88 |
|
--disable-static
|
89 |
|
--enable-deprecated-symbols
|
90 |
|
--enable-build-mode=$(usex debug debug production)
|
91 |
|
$(use_enable cxx)
|
92 |
|
$(use_enable debug codestack)
|
93 |
|
$(use_enable fortran)
|
94 |
|
$(use_enable hl)
|
95 |
|
$(use_enable mpi parallel)
|
96 |
|
$(use_enable threads threadsafe)
|
97 |
|
$(use_enable unsupported)
|
98 |
|
$(use_with szip szlib)
|
99 |
|
$(use_with threads pthread)
|
|
88 |
# bug #686620
|
|
89 |
use sparc && tc-is-gcc && append-flags -fno-tree-ccp
|
|
90 |
|
|
91 |
econf \
|
|
92 |
--disable-static \
|
|
93 |
--enable-deprecated-symbols \
|
|
94 |
--enable-build-mode=$(usex debug debug production) \
|
|
95 |
$(use_enable cxx) \
|
|
96 |
$(use_enable debug codestack) \
|
|
97 |
$(use_enable fortran) \
|
|
98 |
$(use_enable hl) \
|
|
99 |
$(use_enable mpi parallel) \
|
|
100 |
$(use_enable threads threadsafe) \
|
|
101 |
$(use_enable unsupported) \
|
|
102 |
$(use_with szip szlib) \
|
|
103 |
$(use_with threads pthread) \
|
100 |
104 |
$(use_with zlib)
|
101 |
|
)
|
102 |
|
econf "${myconf[@]}"
|
103 |
105 |
}
|
104 |
106 |
|
105 |
107 |
src_install() {
|
106 |
|
default
|
|
108 |
emake DESTDIR="${D}" EPREFIX="${EPREFIX}" install
|
|
109 |
|
|
110 |
# No static archives
|
|
111 |
find "${ED}" -name '*.la' -delete || die
|
107 |
112 |
|
108 |
|
# no static archives
|
109 |
|
find "${D}" -name '*.la' -delete || die
|
|
113 |
# Remove "perf" executable due to file collisions with dev-util/perf.
|
|
114 |
# Previously with the CMake build system we only installed h5perf, so
|
|
115 |
# let's simply remove the file for now.
|
|
116 |
use mpi && { rm "${ED}"/usr/bin/perf || die "rm failed" ; }
|
110 |
117 |
}
|