# Contributor: William Pitcock <nenolod@dereferenced.org>
# Maintainer: William Pitcock <nenolod@dereferenced.org>
setvar pkgname = 'fftw'
setvar pkgver = '3.3.6p2'
setvar pkgrel = '0'
setvar pkgdesc = ""fastest fourier transform in the west""
setvar url = ""http://www.fftw.org/""
setvar license = ""GPL""
setvar makedepends = ""texinfo""
# order of the libs split functions are important because of lib naming
setvar subpackages = ""$pkgname-dev $pkgname-doc $pkgname-single-libs:single
	$pkgname-long-double-libs:long_double $pkgname-double-libs:double""
setvar srcpkgver = ${pkgver//p/-pl}
setvar source = ""http://www.fftw.org/$pkgname-$srcpkgver.tar.gz
	cycle.h.patch""
setvar arch = ""all""
setvar _precision = ""single double long-double""

setvar builddir = ""$srcdir/$pkgname-$srcpkgver""

proc prepare {
	cd $builddir
	default_prepare
	for i in $_precision {
		cp -r $builddir $srcdir/$i
	}
}

proc build {
	for i in $_precision {
		case (i) {
			single {setvar _cf = ""--enable-single""}
			double {setvar _cf = """"}
			long-double {setvar _cf = ""--enable-long-double""}
		}

		case{
		single--x86_64 | double--x86_64 {
			setvar _cf = ""$_cf --enable-sse2 --enable-avx""}
		single--arm* | single--aarch64 {
			setvar _cf = ""$_cf --enable-neon""}
		}

		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 \
			$_cf
		make
	}
}

proc package {
	for i in $_precision {
		cd "$srcdir"/$i
		make DESTDIR="$pkgdir" install
	}
}

proc single {
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libfftw3f*.so* \
		"$subpkgdir"/usr/lib/
}

proc double {
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libfftw3*.so* \
		"$subpkgdir"/usr/lib/
}

proc long_double {
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libfftw3l*.so* \
		"$subpkgdir"/usr/lib/
}

setvar sha512sums = ""e130309856752a1555b6d151c4d0ce9eb4b2c208fff7e3e89282ca8ef6104718f865cbb5e9c4af4367b3615b69b0d50fd001a26d74fd5324ff2faabe14fe3472  fftw-3.3.6-pl2.tar.gz
d71ffb0aa658f7b22239491698426f4a97e657abc953020745f7581d2937a062a279eaa5980cd7f7fe2e8425a032eafc3d4c0cffdc79a83a3aef382c988d739a  cycle.h.patch""