summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 02403a5d4f85e7b228ab973a458c236ffaa20edc (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
# $Id$
# Maintainer: Grey Christoforo <first name at last name dot net>

pkgname=hdf5-java
_pkgname=hdf5
pkgver=1.10.4
pkgrel=1
pkgdesc="General purpose library and file format for storing scientific data, w/java bindings"
arch=('x86_64')
url="https://www.hdfgroup.org/hdf5"
license=('custom')
depends=('zlib' 'libaec' 'bash')
makedepends=('cmake' 'time' 'gcc-fortran' 'java-environment')
replaces=('hdf5-cpp-fortran')
provides=('hdf5-cpp-fortran' 'hdf5-java' 'hdf5')
conflicts=('hdf5' 'hdf5-openmpi')
options=('staticlibs')
source=("https://support.hdfgroup.org/ftp/HDF5/releases/${_pkgname}-${pkgver:0:4}/${_pkgname}-${pkgver/_/-}/src/${_pkgname}-${pkgver/_/-}.tar.bz2")
sha256sums=('1267ff06aaedc04ca25f7c6026687ea2884b837043431195f153401d942b28df')

build() {
    # Crazy workaround: run CMake to generate pkg-config file
    mkdir -p build && cd build
    JAVADOC='javadoc -Xdoclint:none' \
    cmake ../${_pkgname}-${pkgver/_/-} \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_SHARED_LIBS=ON \
        -DCMAKE_BUILD_TYPE=Release \
        -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
    # But don’t build with it, it’s quite broken
    cd ../${_pkgname}-${pkgver/_/-}
    ./configure \
	JAVADOC='javadoc -Xdoclint:none' \
        --prefix=/usr \
        --docdir=/usr/share/doc/hdf5/ \
        --enable-static \
        --disable-sharedlib-rpath \
        --enable-build-mode=production \
        --enable-hl \
        --enable-cxx \
        --enable-fortran \
	--enable-java \
        --with-pic \
        --with-zlib \
        --with-szlib
    make
}

check() {
    cd ${_pkgname}-${pkgver/_/-}
    # Without this, checks are failing with messages like “error while loading shared libraries: libhdf5.so.101: cannot open shared object file: No such file or directory”
    export LD_LIBRARY_PATH="${srcdir}"/${_pkgname}-${pkgver/_/-}/src/.libs/
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${_pkgname}-${pkgver/_/-}/c++/src/.libs/
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${_pkgname}-${pkgver/_/-}/fortran/src/.libs/
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${_pkgname}-${pkgver/_/-}/hl/src/.libs/
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${_pkgname}-${pkgver/_/-}/hl/c++/src/.libs/
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${_pkgname}-${pkgver/_/-}/hl/fortran/src/.libs/
    make check
}

package() {
    cd ${_pkgname}-${pkgver/_/-}

    make DESTDIR="${pkgdir}" install

    # Remove leftover test files
    rm "${pkgdir}"/usr/include/tst{ds,image,lite,table}{,_tests}.mod

    # Move examples to a proper place
    install -dm755 "${pkgdir}"/usr/share/doc/${_pkgname}
    mv "${pkgdir}"/usr/share/{hdf5_examples,doc/${_pkgname}/examples}

    install -Dm644 COPYING -t "${pkgdir}"/usr/share/licenses/${_pkgname}

    # Install pkg-config files from CMake tree
    install -Dm644 ../build/CMakeFiles/hdf5{,_hl}{,_cpp}-${pkgver}.pc -t "${pkgdir}"/usr/lib/pkgconfig/
}