This repository has been archived by the owner on May 20, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 297
/
PKGBUILD
86 lines (80 loc) · 3.33 KB
/
PKGBUILD
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
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Maintainer: Bruno Pagani <[email protected]>
# Contributor: Stefan Husmann <[email protected]>
# Contributor: damir <[email protected]>
# Contributor: Tom K <[email protected]>
pkgname=hdf5
pkgver=1.14.1
pkgrel=1
pkgdesc="General purpose library and file format for storing scientific data"
arch=(x86_64)
url="https://www.hdfgroup.org/hdf5"
license=(custom)
depends=(zlib libaec bash)
makedepends=(cmake time gcc-fortran java-environment)
replaces=(hdf5-java)
provides=(hdf5-java)
source=(https://support.hdfgroup.org/ftp/HDF5/releases/${pkgname}-${pkgver:0:4}/${pkgname}-${pkgver/_/-}/src/${pkgname}-${pkgver/_/-}-2.tar.bz2)
sha256sums=('06ca141d1a3c312b5d7cc4826a12737293ae131031748861689f6a2ec8219dbd')
prepare() {
mv ${pkgname}-${pkgver/_/-}{-2,}
cd ${pkgname}-${pkgver/_/-}
# Don't mess with build flags
sed -e '/-Werror/d' -i configure
}
build() {
# Crazy workaround: run CMake to generate pkg-config file
#cmake -B build -S ${pkgname}-${pkgver/_/-} \
mkdir -p build && cd build
cmake ../${pkgname}-${pkgver/_/-} \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_STATIC_LIBS=OFF \
-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 \
-DUSE_LIBAEC=ON
# But don’t build with it, it’s quite broken
cd ../${pkgname}-${pkgver/_/-}
./configure \
--prefix=/usr \
--docdir=/usr/share/doc/hdf5/ \
--with-examplesdir=/usr/share/doc/hdf5/examples/ \
--disable-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
install -Dm644 COPYING -t "${pkgdir}"/usr/share/licenses/${pkgname}
# Install pkg-config files from CMake tree
install -Dm644 ../build/CMakeFiles/hdf5{,_hl}{,_cpp,_fortran}.pc -t "${pkgdir}"/usr/lib/pkgconfig/
# Fix version numbers in pkg-config files
sed -i '/Requires/ s/-/ = /g' "${pkgdir}"/usr/lib/pkgconfig/*.pc
# Fix bogus include path
sed -e "s|-I/build/hdf5/src/hdf5-$pkgver/src/H5FDsubfiling||g" -i "${pkgdir}"/usr/lib/libhdf5.settings -i "${pkgdir}"/usr/bin/*
}