summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorGeorgios Eleftheriou2018-10-04 01:03:09 +0200
committerGeorgios Eleftheriou2018-10-04 01:03:09 +0200
commit94ba9a897d2cce512938aad78e560d5b3df62c40 (patch)
tree377693c0bc86931ec2e84bde2e837cd36dbcc2b6 /PKGBUILD
parent65a4a165751fe61d0918ca4f4f8d5d2d3479e4a3 (diff)
downloadaur-94ba9a897d2cce512938aad78e560d5b3df62c40.tar.gz
safer mpi patch / pkgconfig addition / conflict-provides removal
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD72
1 files changed, 52 insertions, 20 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 4e480c786d99..4d79399275fa 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -11,23 +11,23 @@
_pkgname=hdf5
_mpi=mpich
pkgname=${_pkgname}-${_mpi}
+_prefix=/opt/${pkgname}
pkgver=1.10.3
-pkgrel=1
+pkgrel=2
pkgdesc="General purpose library and file format for storing scientific data (${_mpi} version) (full version including its Java Native Interfaces)"
arch=('x86_64')
url="https://portal.hdfgroup.org/display/support"
license=('custom')
-depends=('zlib' 'libaec' "${_mpi}")
-makedepends=('time' 'gcc-fortran' 'java-environment')
-provides=('hdf5' 'hdf5-openmpi' 'hdf5-openmpi-java')
-conflicts=('hdf5' 'hdf5-openmpi' 'hdf5-openmpi-java')
+depends=('bash' 'libaec' "${_mpi}" 'java-runtime')
+ makedepends=('cmake' 'time' 'java-environment')
+options=('staticlibs')
source=("https://support.hdfgroup.org/ftp/HDF5/releases/${_pkgname}-${pkgver:0:4}/${_pkgname}-${pkgver}/src/${_pkgname}-${pkgver}.tar.bz2"
'mpi.patch')
md5sums=('56c5039103c51a40e493b43c504ce982'
- 'dfa8dd50b8a7ebb3ad7249c627156cf9')
+ '63b43e3d4a5bbea4bcecc84874e08913')
prepare() {
- [ ! -d build ] && mkdir -p build
+ mkdir -p build
cd "${_pkgname}-${pkgver}"
# FS#33343
@@ -37,15 +37,47 @@ prepare() {
build() {
cd build
+ # Crazy workaround: run CMake to generate pkg-config file
+ RUNPARALLEL="/opt/mpich/bin/mpirun" \
+ JAVADOC='javadoc -Xdoclint:none' \
+ cmake ../${_pkgname}-${pkgver} \
+ -DCMAKE_CXX_COMPILER=/opt/mpich/bin/mpicxx \
+ -DCMAKE_C_COMPILER=/opt/mpich/bin/mpicc \
+ -DCMAKE_Fortran_COMPILER=/opt/mpich/bin/mpif90 \
+ -DCMAKE_C_FLAGS="${CPPFLAGS} ${CFLAGS}" \
+ -DCMAKE_CXX_FLAGS="${CPPFLAGS} ${CXXFLAGS}" \
+ -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
+ -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}" \
+ -DCMAKE_MODULE_LINKER_FLAGS="${LDFLAGS}" \
+ -DCMAKE_INSTALL_RPATH="" \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX="${_prefix}" \
+ -DALLOW_UNSUPPORTED=ON \
+ -DHDF5_BUILD_HL_LIB=ON \
+ -DHDF5_BUILD_CPP_LIB=ON \
+ -DHDF5_BUILD_FORTRAN=ON \
+ -DHDF5_BUILD_JAVA=ON \
+ -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \
+ -DHDF5_ENABLE_SZIP_SUPPORT=ON \
+ -DHDF5_ENABLE_SZIP_ENCODING=ON \
+ -DHDF5_ENABLE_PARALLEL=ON \
+ -DBUILD_TESTING=OFF
+
+ # But don’t build with it, it’s quite broken
"${srcdir}/${_pkgname}-${pkgver}"/configure \
CXX="/opt/mpich/bin/mpicxx" \
CC="/opt/mpich/bin/mpicc" \
FC="/opt/mpich/bin/mpif90" \
F9X="/opt/mpich/bin/mpif90" \
+ MPICH_MPICC_FLAGS="${CFLAGS}" \
+ MPICH_MPICXX_FLAGS="${CXXFLAGS}" \
+ MPICH_LDFLAGS="${LDFLAGS}" \
RUNPARALLEL="/opt/mpich/bin/mpirun" \
JAVADOC='javadoc -Xdoclint:none' \
- --prefix=/usr \
- --disable-static \
+ --prefix="${_prefix}" \
+ --docdir="${_prefix}/share/doc/${_pkgname}" \
+ --enable-static \
--disable-sharedlib-rpath \
--enable-build-mode=production \
--enable-hl \
@@ -61,21 +93,21 @@ build() {
make
}
-check() {
+package() {
cd build
- # This is a parallel build, there will always be some MPI bugs,
- # so skip failures and don't kill the entire packaging process
- make check || warning "Some tests failed"
-}
+ make DESTDIR="${pkgdir}" install
-package() {
- cd build
+ # Remove leftover test files
+ rm "${pkgdir}${_prefix}"/include/tst{ds,image,lite,table}{,_tests}.mod
- make -j1 DESTDIR="${pkgdir}" install
+ # Move examples to a proper place
+ install -dm755 "${pkgdir}${_prefix}/share/doc/${_pkgname}"
+ mv "${pkgdir}${_prefix}"/share/{hdf5_examples,doc/${_pkgname}/examples}
- install -dm755 "${pkgdir}/usr/share/doc/${_pkgname}"
- mv "${pkgdir}"/usr/share/{hdf5_examples,doc/${_pkgname}/examples}
+ install -Dm644 "${srcdir}/${_pkgname}-${pkgver}/COPYING" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
- install -Dm644 "${srcdir}/${_pkgname}-${pkgver}/COPYING" "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
+ install -Dm644 CMakeFiles/hdf5{,_hl}{,_cpp}-${pkgver}.pc \
+ -t "${pkgdir}${_prefix}"/lib/pkgconfig
}