# Contributor: # Maintainer: pkgname=fftw pkgver=3.3.8 pkgrel=0 pkgdesc="Discrete Fourier transform (DFT) library" url="http://www.fftw.org" arch="all" license="GPL-2.0-or-later" makedepends="texinfo" # order of the libs split functions are important because of lib naming subpackages="$pkgname-dev $pkgname-doc $pkgname-single-libs:single $pkgname-long-double-libs:long_double $pkgname-double-libs:double" srcpkgver=${pkgver//p/-pl} source="http://www.fftw.org/$pkgname-$srcpkgver.tar.gz cycle.h.patch" builddir="$srcdir/$pkgname-$srcpkgver" _precision="single double long-double" # disable tests for arm due to bug with gcc >= 9 # see https://github.com/FFTW/fftw3/issues/213 case "$CARCH" in armv7) options="$options !check" ;; armhf) options="$options !check" ;; esac prepare() { default_prepare cd "$builddir" local i; for i in $_precision; do cp -r "$builddir" $srcdir/$i done } build() { local _openmp= local i; for i in $_precision; do case "$i" in single) _cf="--enable-single";; double) _cf="";; long-double) _cf="--enable-long-double";; esac case "$i--$CARCH" in single--x86_64 | double--x86_64) _cf="$_cf --enable-sse2 --enable-avx";; single--arm* | single--aarch64) _cf="$_cf --enable-neon";; esac msg "Building for $i precision ($_cf)" cd "$srcdir"/$i ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --enable-shared \ --enable-threads \ $_openmp \ $_cf make done } check() { local i; for i in $_precision; do cd "$srcdir"/$i make check done } package() { local i; for i in $_precision; do cd "$srcdir"/$i make DESTDIR="$pkgdir" install done } single() { mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libfftw3f*.so* \ "$subpkgdir"/usr/lib/ } double() { mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libfftw3*.so* \ "$subpkgdir"/usr/lib/ } long_double() { mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libfftw3l*.so* \ "$subpkgdir"/usr/lib/ } sha512sums="ab918b742a7c7dcb56390a0a0014f517a6dff9a2e4b4591060deeb2c652bf3c6868aa74559a422a276b853289b4b701bdcbd3d4d8c08943acf29167a7be81a38 fftw-3.3.8.tar.gz 7da269fc43dabd02ae6fad2ebad92b07e06825b6b7c6f8987fc6444f02e0d55080db4ba6e401760e071f5c33015faf8c710f643636cab7a79bdf1af5d434dbb4 cycle.h.patch"