# Template file for 'fftw'
pkgname=fftw
version=3.3.3
revision=3
short_desc="Library for computing the discrete Fourier transform (DFT)"
maintainer="Juan RP <xtraeme@gmail.com>"
license="GPL-2"
homepage="http://www.fftw.org/"
distfiles="${homepage}/fftw-${version}.tar.gz"
checksum=85cdfc0a0ba10d8fa4f0f8e733aac1a5936c859832a9e3d5c0731fb5c54a97f3
long_desc="
 FFTW is a free collection of fast C routines for computing the Discrete
 Fourier Transform in one or more dimensions. It includes complex, real,
 symmetric, and parallel transforms, and can handle arbitrary array sizes
 efficiently. FFTW is typically faster than other publically-available FFT
 implementations, and is even competitive with vendor-tuned libraries."

hostmakedepends="libtool automake gcc-fortran"

pre_configure() {
	sed -e 's,AM_CONFIG_HEADER,AC_CONFIG_HEADERS,g' -i configure.ac
	autoreconf -fi
}

do_configure() {
	local CARGS="--enable-shared --enable-threads"

	if [ "$XBPS_TARGET_MACHINE" = "i686" -o "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
		_sse="--enable-sse"
		_sse2="--enable-sse2"
	fi

	# double precision
	mkdir build-double
	cd ${wrksrc}/build-double
	../configure ${configure_args} ${CARGS} ${_sse2}

	# long double precission
	mkdir ${wrksrc}/build-long-double
	cd ${wrksrc}/build-long-double
	../configure ${configure_args} ${CARGS} --enable-long-double

	# single precission
	mkdir ${wrksrc}/build-single
	cd ${wrksrc}/build-single
	../configure ${configure_args} ${CARGS} --enable-float ${_sse}
}

do_build() {
	for f in double long-double single; do
		cd ${wrksrc}/build-${f}
		make ${makejobs}
	done
}

do_install() {
	for f in double long-double single; do
		cd ${wrksrc}/build-${f}
		make DESTDIR=${DESTDIR} install
	done
}

libfftw_package() {
	short_desc+=" - Runtime library"
	pkg_install() {
		vmove "usr/lib/*.so*"
	}
}

fftw-devel_package() {
	depends="libfftw>=${version}"
	short_desc+=" - Development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.a"
		vmove usr/share/info
	}
}

fftw_package() {
	pkg_install() {
		vmove usr
	}
}
