summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 814f32feedab54a068dbd63b91426c0e63bbd6a5 (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
85
86
87
# Maintainer: Felix Schindler <aur at felixschindler dot net>
DLAGENTS=("https::/usr/bin/curl -k -o %o %u")

pkgname=flexiblas
pkgver=2.0.0
pkgrel=1
_lapackver=3.6.0
pkgdesc="A Blas wrapper library with runtime exchangable backends"
url=http://www.mpi-magdeburg.mpg.de/projects/flexiblas
license=('GPL3')
source=("https://www2.mpi-magdeburg.mpg.de/mpcsc/software/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
md5sums=('4ac2cd9d945d69896440ed5e5630d421')
arch=('i686' 'x86_64')
makedepends=('cmake' 'gcc-fortran')
depends=('openblas-lapack-for-flexiblas' 'atlas-lapack-for-flexiblas')
conflicts=('blas' 'lapack' 'cblas' 'lapacke' 'openblas' 'openblas-lapack' 'atlas' 'atlas-lapack')
provides=("blas=${_lapackver}" "lapack=${_lapackver}" "cblas=${_lapackver}" "lapacke=${_lapackver}")

build() {
        cd ${pkgname}-${pkgver}
        [ -e build ] && rm -r build
        mkdir build
        cd build
        cmake .. \
                -DCMAKE_INSTALL_PREFIX="/usr" \
                -DOPENBLAS="/opt/openblas-lapack-for-flexiblas/lib/libopenblas.so;gfortran;gomp;m" \
                -DATLAS="/opt/atlas-lapack-for-flexiblas/lib/libatlas.so;/opt/atlas-lapack-for-flexiblas/lib/libf77blas.so;/opt/atlas-lapack-for-flexiblas/lib/liblapack.so.3.6.1;/opt/atlas-lapack-for-flexiblas/lib/libptcblas.so;/opt/atlas-lapack-for-flexiblas/lib/libptlapack.a;/opt/atlas-lapack-for-flexiblas/lib/libptlapack.so.3.6.1;/opt/atlas-lapack-for-flexiblas/lib/libsatlas.so;/opt/atlas-lapack-for-flexiblas/lib/libsatlas.so;/opt/atlas-lapack-for-flexiblas/lib/libstcblas.so;/opt/atlas-lapack-for-flexiblas/lib/libtatlas.so;gfortran;gomp;m"
        make
}

## ATM, this does not work unless flexiblas is already installed!
#check() {
#        # make a backup of the users flexiblasrc, if present
#        export _users_flexiblasrc=${HOME}/.flexiblasrc
#        export _users_flexiblasrc_backup=${HOME}/.flexiblasrc.aur_pkg_backup
#        [ -e ${_users_flexiblasrc} ] && mv ${_users_flexiblasrc} ${_users_flexiblasrc_backup}
#
#        for backend in NETLIB OpenBLAS ATLAS; do
#                echo " "
#                echo "========================================"
#                echo " testing with ${backend} backend"
#                echo "========================================"
#                echo " "
#                # write a custom flexiblasrc
#                echo "default = ${backend}" > ${_users_flexiblasrc}
#                echo "verbose = 0" >> ${_users_flexiblasrc}
#                echo "profile = 0" >> ${_users_flexiblasrc}
#                echo " " >> ${_users_flexiblasrc}
#                echo "[NETLIB]" >> ${_users_flexiblasrc}
#                echo "library = libflexiblas_netlib.so" >> ${_users_flexiblasrc}
#                echo " " >> ${_users_flexiblasrc}
#                echo "[OpenBLAS]" >> ${_users_flexiblasrc}
#                echo "library = libflexiblas_openblas.so " >> ${_users_flexiblasrc}
#                echo " " >> ${_users_flexiblasrc}
#                echo "[ATLAS]" >> ${_users_flexiblasrc}
#                echo "library = libflexiblas_atlas.so" >> ${_users_flexiblasrc}
#		# test this backend
#		cd ${pkgname}-${pkgver}
#		cd build
#		make test
#	done
#
#	# restore the original blexiblasrc
#        [ -e ${_users_flexiblasrc_backup} ] && mv ${_users_flexiblasrc_backup} ${_users_flexiblasrc}
#}

package() {
        cd ${pkgname}-${pkgver}
        cd build
        make DESTDIR="${pkgdir}" install

        mv ${pkgdir}/usr/lib64 ${pkgdir}/usr/lib
        cd ${pkgdir}/usr/lib
        ln -s libflexiblas.so libblas.so
        ln -s libflexiblas.so libblas.so.3
        ln -s libflexiblas.so libblas.so.3.7.0
        ln -s libflexiblas.so libcblas.so
        ln -s libflexiblas.so liblapacke.so
        ln -s libflexiblas.so liblapack.so
        ln -s libflexiblas.so liblapack.so.3
        ln -s libflexiblas.so liblapack.so.3.7.0

        cd ${pkgdir}/usr/include
        ln -s flexiblas/cblas.h cblas.h
        ln -s flexiblas/lapack.h lapacke.h
}