public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sci-libs/fftw/, sci-libs/fftw/files/
@ 2016-08-31 20:09 David Seifert
  0 siblings, 0 replies; 2+ messages in thread
From: David Seifert @ 2016-08-31 20:09 UTC (permalink / raw
  To: gentoo-commits

commit:     27003093937c3e0162477bbd3fd23c5de986d17a
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 31 20:07:38 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Wed Aug 31 20:09:27 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27003093

sci-libs/fftw: Rewrite ebuild to EAPI=6 standards

* Use multibuild.eclass for single/double precision
* Make patches -p1 compliant
* Simplify src_configure phase

Package-Manager: portage-2.3.0

 sci-libs/fftw/fftw-2.1.5-r9.ebuild                | 138 ++++++++++++++++++++++
 sci-libs/fftw/files/fftw-2.1.5-as-needed.patch    |  16 +--
 sci-libs/fftw/files/fftw-2.1.5-configure.in.patch |   4 +-
 sci-libs/fftw/files/fftw-2.1.5-no-test.patch      |  12 +-
 4 files changed, 154 insertions(+), 16 deletions(-)

diff --git a/sci-libs/fftw/fftw-2.1.5-r9.ebuild b/sci-libs/fftw/fftw-2.1.5-r9.ebuild
new file mode 100644
index 00000000..bc142c7
--- /dev/null
+++ b/sci-libs/fftw/fftw-2.1.5-r9.ebuild
@@ -0,0 +1,138 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+FORTRAN_NEEDED=fortran
+
+inherit autotools flag-o-matic fortran-2 multibuild toolchain-funcs
+
+DESCRIPTION="Fast C library for the Discrete Fourier Transform"
+HOMEPAGE="http://www.fftw.org"
+SRC_URI="http://www.fftw.org/${P}.tar.gz"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+
+LICENSE="GPL-2+"
+SLOT="2.1"
+IUSE="doc float fortran mpi openmp threads static-libs"
+
+RDEPEND="mpi? ( virtual/mpi )"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-as-needed.patch
+	"${FILESDIR}"/${P}-configure.in.patch
+	"${FILESDIR}"/${P}-no-test.patch
+	"${FILESDIR}"/${P}-cc.patch
+	"${FILESDIR}"/${P}-texinfo5.1.patch
+)
+
+pkg_setup() {
+	if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+		if ! tc-has-openmp; then
+			ewarn "OpenMP is not available in your current selected compiler"
+
+			if tc-is-clang; then
+				ewarn "OpenMP support in sys-devel/clang is provided by sys-libs/libomp,"
+				ewarn "which you will need to build ${CATEGORY}/${PN} with USE=\"openmp\""
+			fi
+
+			die "need openmp capable compiler"
+		fi
+		FORTRAN_NEED_OPENMP=1
+	fi
+
+	fortran-2_pkg_setup
+
+	MULTIBUILD_VARIANTS=( single double )
+}
+
+src_prepare() {
+	default
+
+	# fix info files
+	local infofile
+	for infofile in doc/fftw*info*; do
+		cat >> ${infofile} <<-EOF || die
+			INFO-DIR-SECTION Libraries
+			START-INFO-DIR-ENTRY
+			* fftw: (fftw).				${DESCRIPTION}
+			END-INFO-DIR-ENTRY
+		EOF
+	done
+
+	mv configure.{in,ac} || die
+	sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' configure.ac || die
+
+	eautoreconf
+
+	# 'FAQ' is actually a dir and causes issues with einstalldocs
+	rm -r FAQ || die
+
+	multibuild_copy_sources
+}
+
+fftw_src_configure() {
+	local myconf=(
+		--with-gcc=$(tc-getCC)
+		--enable-shared
+		--enable-type-prefix
+		--enable-vec-recurse
+		$(use_enable fortran)
+		$(use_enable mpi)
+		$(use_enable static-libs static)
+		$(use_enable x86 i386-hacks)
+		$(use_with openmp)
+	)
+
+	if use openmp || use threads; then
+		myconf+=( --enable-threads )
+	else
+		myconf+=( --disable-threads )
+	fi
+
+	[[ $MULTIBUILD_VARIANT == single ]] && myconf+=( --enable-float )
+
+	econf "${myconf[@]}"
+}
+
+src_configure() {
+	# this one is reported to cause trouble on pentium4 m series
+	filter-mfpmath sse
+
+	# here I need (surprise) to increase optimization:
+	# --enable-i386-hacks requires -fomit-frame-pointer to work properly
+	if use x86; then
+		is-flag -fomit-frame-pointer || append-flags -fomit-frame-pointer
+	fi
+	use openmp && [[ $(tc-getCC)$ == icc* ]] && append-ldflags $(no-as-needed)
+
+	multibuild_foreach_variant run_in_build_dir fftw_src_configure
+}
+
+src_compile() {
+	multibuild_foreach_variant run_in_build_dir default_src_compile
+}
+
+src_test() {
+	multibuild_foreach_variant run_in_build_dir default_src_test
+}
+
+src_install () {
+	use doc && HTML_DOCS=( doc/{*.html,*.gif} )
+	multibuild_foreach_variant run_in_build_dir default_src_install
+
+	doheader fortran/fftw_f77.i
+
+	create_fftw_symlinks() {
+		local i f letter=$1
+		for i in fft rfft; do
+			for f in "${ED%/}"/usr/{include,$(get_libdir)}/*${letter}${i}*; do
+				ln -s $(basename ${f}) ${f/${letter}${i}/${i}} || die
+			done
+		done
+	}
+	create_fftw_symlinks $(usex float s d)
+}

diff --git a/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch b/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch
index 2389f0e..63f46dc 100644
--- a/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch
+++ b/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch
@@ -1,5 +1,5 @@
---- rfftw/Makefile.am.orig	2008-04-03 15:23:06.989019659 +0000
-+++ rfftw/Makefile.am	2008-04-03 15:23:35.658653448 +0000
+--- a/rfftw/Makefile.am
++++ b/rfftw/Makefile.am
 @@ -18,6 +18,7 @@
  					 rfftw.h                   
  
@@ -8,8 +8,8 @@
  MAINTAINERCLEANFILES = $(CODELETS) rconfig.c
  DISTCLEANFILES = srfftw.h drfftw.h
  
---- threads/Makefile.am.orig	2008-04-03 15:23:10.101197011 +0000
-+++ threads/Makefile.am	2008-04-03 15:23:35.662653676 +0000
+--- a/threads/Makefile.am
++++ b/threads/Makefile.am
 @@ -28,6 +28,10 @@
                               -version-info @SHARED_VERSION_INFO@ \
                               -rpath $(libdir)
@@ -33,8 +33,8 @@
  @FFTW_PREFIX1@rfftw_threads.h: rfftw_threads.h
  	rm -f $@
  	sed 's/\"fftw/\"@FFTW_PREFIX@fftw/g;s/\"rfftw/\"@FFTW_PREFIX@rfftw/g' $(srcdir)/rfftw_threads.h > $@
---- mpi/Makefile.am.orig	2008-04-03 15:22:43.811698858 +0000
-+++ mpi/Makefile.am	2008-04-03 15:25:50.930362143 +0000
+--- a/mpi/Makefile.am
++++ b/mpi/Makefile.am
 @@ -28,6 +28,9 @@
                           -version-info @SHARED_VERSION_INFO@ \
                           -rpath $(libdir)
@@ -92,8 +92,8 @@
  
  # for some reason, automake tries to use autoheader in order to
  # generate config.h.in, and fails because config.h.in is GNU-lly
---- mpi/test_sched.c.orig	2008-04-03 16:58:01.969033125 +0000
-+++ mpi/test_sched.c	2008-04-03 16:59:27.521908505 +0000
+--- a/mpi/test_sched.c
++++ b/mpi/test_sched.c
 @@ -27,6 +27,8 @@
       int **sched;
       int npes = -1, sortpe = -1, steps;

diff --git a/sci-libs/fftw/files/fftw-2.1.5-configure.in.patch b/sci-libs/fftw/files/fftw-2.1.5-configure.in.patch
index 718e746..7abe3e7 100644
--- a/sci-libs/fftw/files/fftw-2.1.5-configure.in.patch
+++ b/sci-libs/fftw/files/fftw-2.1.5-configure.in.patch
@@ -1,5 +1,5 @@
---- configure.in.orig	2008-07-09 17:52:16.762461233 +0100
-+++ configure.in	2008-07-09 18:34:13.106471656 +0100
+--- a/configure.in
++++ b/configure.in
 @@ -1,6 +1,8 @@
 +
  dnl Process this file with autoconf to produce a configure script.

diff --git a/sci-libs/fftw/files/fftw-2.1.5-no-test.patch b/sci-libs/fftw/files/fftw-2.1.5-no-test.patch
index f9f54f6..cc844a4 100644
--- a/sci-libs/fftw/files/fftw-2.1.5-no-test.patch
+++ b/sci-libs/fftw/files/fftw-2.1.5-no-test.patch
@@ -1,13 +1,13 @@
---- tests/Makefile.am.orig	2008-06-22 12:29:53.149138283 +0100
-+++ tests/Makefile.am	2008-06-22 12:30:32.731595087 +0100
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
 @@ -1,4 +1,4 @@
 -noinst_PROGRAMS = fftw_test rfftw_test
 +check_PROGRAMS = fftw_test rfftw_test
  noinst_HEADERS = test_main.h
  
  FFTWDIR=../fftw
---- mpi/Makefile.am.orig	2008-06-22 17:21:16.998466390 +0100
-+++ mpi/Makefile.am	2008-06-22 17:27:42.996463162 +0100
+--- a/mpi/Makefile.am
++++ b/mpi/Makefile.am
 @@ -4,8 +4,8 @@
  
  lib_LTLIBRARIES = @FFTW_MPI_LIBLIST@
@@ -18,8 +18,8 @@
  EXTRA_LTLIBRARIES = lib@FFTW_PREFIX@fftw_mpi.la \
                      lib@FFTW_PREFIX@rfftw_mpi.la
  EXTRA_HEADERS = @FFTW_PREFIX@fftw_mpi.h @FFTW_PREFIX@rfftw_mpi.h 
---- threads/Makefile.am.orig	2008-06-22 17:18:18.940409610 +0100
-+++ threads/Makefile.am	2008-06-22 17:28:00.485459803 +0100
+--- a/threads/Makefile.am
++++ b/threads/Makefile.am
 @@ -4,9 +4,9 @@
  
  lib_LTLIBRARIES = @FFTW_THREADS_LIBLIST@


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sci-libs/fftw/, sci-libs/fftw/files/
@ 2021-02-25  3:22 Sam James
  0 siblings, 0 replies; 2+ messages in thread
From: Sam James @ 2021-02-25  3:22 UTC (permalink / raw
  To: gentoo-commits

commit:     6b4b4c06e34415fb725320ccf9ec904fb1283638
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 25 03:17:49 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Feb 25 03:17:49 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b4b4c06

Revert "sci-libs/fftw: cleanup old"

This reverts commit ee56d7da7ed08caf5546958342eceebc4d9de5ff.
Slot :2.1 needed by media-gfx/videorbits.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sci-libs/fftw/Manifest                             |   2 +
 sci-libs/fftw/fftw-2.1.5-r9.ebuild                 | 137 +++++++++++++
 sci-libs/fftw/fftw-3.3.8-r1.ebuild                 | 186 +++++++++++++++++
 sci-libs/fftw/files/fftw-2.1.5-as-needed.patch     | 112 ++++++++++
 sci-libs/fftw/files/fftw-2.1.5-cc.patch            |  19 ++
 sci-libs/fftw/files/fftw-2.1.5-configure.in.patch  | 226 +++++++++++++++++++++
 sci-libs/fftw/files/fftw-2.1.5-no-test.patch       |  33 +++
 .../fftw/files/fftw-2.1.5-parallel-tests.patch     | 105 ++++++++++
 sci-libs/fftw/files/fftw-2.1.5-texinfo5.1.patch    |  21 ++
 sci-libs/fftw/metadata.xml                         |   3 +
 10 files changed, 844 insertions(+)

diff --git a/sci-libs/fftw/Manifest b/sci-libs/fftw/Manifest
index a4327766903..edf9d7c5f50 100644
--- a/sci-libs/fftw/Manifest
+++ b/sci-libs/fftw/Manifest
@@ -1 +1,3 @@
+DIST fftw-2.1.5.tar.gz 1256888 BLAKE2B 61e2eed91459479ab893a423c1a6f38dd7e9637e0466fa0a59fccfa2cec930e8870a5febfccfacfe44e876e40534c34e05dc62b8e7bf188b43fe3a65c6a7bdba SHA512 8724a7f66aa19b271aa0ffb0e3762919f08082ac4400f52d11b50aef9b9d23a7d4fc5d6b2eae0ac166e2bb30a4d38a52c878e8bf8e24aba01ab1c3ddf5ebec15
+DIST fftw-3.3.8.tar.gz 4110137 BLAKE2B 555ac1401a5a41b7661afd0288c2353398f2c9b73695742459079ebf050dfa4c371484ea65324fd4b7d374f70d88a5942ff8abaad167b0d44d485bf1dc9e208c SHA512 ab918b742a7c7dcb56390a0a0014f517a6dff9a2e4b4591060deeb2c652bf3c6868aa74559a422a276b853289b4b701bdcbd3d4d8c08943acf29167a7be81a38
 DIST fftw-3.3.9.tar.gz 4146999 BLAKE2B 6ea6966f3c5056102e6c3e4628b072c7e9832e3250b292808ed934b3a82515fd77658cbaff50d7b1268fb8c9444b10e39b22d100b7c31ea2452f3cee59c9f280 SHA512 52ebc2a33063a41fd478f6ea2acbf3b511867f736591d273dd57f9dfca5d3e0b0c73157921b3a36f1a7cfd741a8a6bde0fd80de578040ae730ea168b5ba466cf

diff --git a/sci-libs/fftw/fftw-2.1.5-r9.ebuild b/sci-libs/fftw/fftw-2.1.5-r9.ebuild
new file mode 100644
index 00000000000..0d4eae2fdb7
--- /dev/null
+++ b/sci-libs/fftw/fftw-2.1.5-r9.ebuild
@@ -0,0 +1,137 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+FORTRAN_NEEDED=fortran
+
+inherit autotools flag-o-matic fortran-2 multibuild toolchain-funcs
+
+DESCRIPTION="Fast C library for the Discrete Fourier Transform"
+HOMEPAGE="http://www.fftw.org"
+SRC_URI="http://www.fftw.org/${P}.tar.gz"
+
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+
+LICENSE="GPL-2+"
+SLOT="2.1"
+IUSE="doc float fortran mpi openmp threads static-libs"
+
+RDEPEND="mpi? ( virtual/mpi )"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-as-needed.patch
+	"${FILESDIR}"/${P}-configure.in.patch
+	"${FILESDIR}"/${P}-no-test.patch
+	"${FILESDIR}"/${P}-cc.patch
+	"${FILESDIR}"/${P}-texinfo5.1.patch
+	"${FILESDIR}"/${P}-parallel-tests.patch
+)
+
+pkg_pretend() {
+	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+	if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+		tc-check-openmp
+		FORTRAN_NEED_OPENMP=1
+	fi
+
+	fortran-2_pkg_setup
+
+	MULTIBUILD_VARIANTS=( single double )
+}
+
+src_prepare() {
+	default
+
+	# fix info files
+	local infofile
+	for infofile in doc/fftw*info*; do
+		cat >> ${infofile} <<-EOF || die
+			INFO-DIR-SECTION Libraries
+			START-INFO-DIR-ENTRY
+			* fftw: (fftw).				${DESCRIPTION}
+			END-INFO-DIR-ENTRY
+		EOF
+	done
+
+	mv configure.{in,ac} || die
+	sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' configure.ac || die
+
+	eautoreconf
+
+	# 'FAQ' is actually a dir and causes issues with einstalldocs
+	rm -r FAQ || die
+
+	multibuild_copy_sources
+}
+
+fftw_src_configure() {
+	local myconf=(
+		--with-gcc=$(tc-getCC)
+		--enable-shared
+		--enable-type-prefix
+		--enable-vec-recurse
+		$(use_enable fortran)
+		$(use_enable mpi)
+		$(use_enable static-libs static)
+		$(use_enable x86 i386-hacks)
+		$(use_with openmp)
+	)
+
+	if use openmp || use threads; then
+		myconf+=( --enable-threads )
+	else
+		myconf+=( --disable-threads )
+	fi
+
+	[[ $MULTIBUILD_VARIANT == single ]] && myconf+=( --enable-float )
+
+	econf "${myconf[@]}"
+}
+
+src_configure() {
+	# this one is reported to cause trouble on pentium4 m series
+	filter-mfpmath sse
+
+	# here I need (surprise) to increase optimization:
+	# --enable-i386-hacks requires -fomit-frame-pointer to work properly
+	if use x86; then
+		is-flag -fomit-frame-pointer || append-flags -fomit-frame-pointer
+	fi
+	use openmp && [[ $(tc-getCC)$ == icc* ]] && append-ldflags $(no-as-needed)
+
+	multibuild_foreach_variant run_in_build_dir fftw_src_configure
+}
+
+src_compile() {
+	multibuild_foreach_variant run_in_build_dir default_src_compile
+}
+
+src_test() {
+	multibuild_foreach_variant run_in_build_dir default_src_test
+}
+
+src_install() {
+	use doc && HTML_DOCS=( doc/*.{html,gif} )
+	multibuild_foreach_variant run_in_build_dir default_src_install
+
+	doheader fortran/fftw_f77.i
+
+	create_fftw_symlinks() {
+		local i f letter=$1
+		for i in fft rfft; do
+			for f in "${ED%/}"/usr/{include,$(get_libdir)}/*${letter}${i}*; do
+				ln -s $(basename ${f}) ${f/${letter}${i}/${i}} || die
+			done
+		done
+	}
+	create_fftw_symlinks $(usex float s d)
+
+	if ! use static-libs; then
+		find "${D}" -name '*.la' -delete || die
+	fi
+}

diff --git a/sci-libs/fftw/fftw-3.3.8-r1.ebuild b/sci-libs/fftw/fftw-3.3.8-r1.ebuild
new file mode 100644
index 00000000000..ae84f01be61
--- /dev/null
+++ b/sci-libs/fftw/fftw-3.3.8-r1.ebuild
@@ -0,0 +1,186 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+FORTRAN_NEEDED=fortran
+
+inherit flag-o-matic fortran-2 multibuild multilib-minimal toolchain-funcs
+
+DESCRIPTION="Fast C library for the Discrete Fourier Transform"
+HOMEPAGE="http://www.fftw.org/"
+
+MY_P=${PN}-${PV/_p/-pl}
+
+if [[ ${PV} = *9999 ]]; then
+	inherit autotools git-r3
+	EGIT_REPO_URI="https://github.com/FFTW/fftw3.git"
+else
+	SRC_URI="http://www.fftw.org/${PN}-${PV/_p/-pl}.tar.gz"
+	KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+fi
+
+LICENSE="GPL-2+"
+SLOT="3.0/3"
+IUSE="cpu_flags_ppc_altivec cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3 cpu_flags_x86_fma4 cpu_flags_x86_sse cpu_flags_x86_sse2 doc fortran mpi neon openmp quad static-libs test threads zbus"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+	quad? ( sys-devel/gcc[fortran] )
+	test? ( dev-lang/perl )"
+
+S=${WORKDIR}/${MY_P}
+HTML_DOCS=( doc/html/. )
+
+pkg_pretend() {
+	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+	if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+		tc-check-openmp
+		FORTRAN_NEED_OPENMP=1
+	fi
+
+	fortran-2_pkg_setup
+
+	MULTIBUILD_VARIANTS=( single double longdouble )
+	if use quad; then
+		if ! tc-is-gcc; then
+			ewarn "quad precision only available for gcc >= 4.6"
+			die "need quad precision capable gcc"
+		fi
+		MULTIBUILD_VARIANTS+=( quad )
+	fi
+}
+
+src_prepare() {
+	default
+
+	# fix info file for category directory
+	if [[ ${PV} = *9999 ]]; then
+		sed -i -e
+			's/Texinfo documentation system/Libraries/' \
+			doc/fftw3."info" || die "failed to fix info file"
+
+		eautoreconf
+	fi
+}
+
+multilib_src_configure() {
+	# jlec reported USE=quad on abi_x86_32 has too few registers
+	# stub Makefiles
+	if [[ ${MULTILIB_ABI_FLAG} == abi_x86_32 && ${MULTIBUILD_ID} == quad-* ]]; then
+		mkdir -p "${BUILD_DIR}/tests" || die
+		echo "all: ;" > "${BUILD_DIR}/Makefile" || die
+		echo "install: ;" >> "${BUILD_DIR}/Makefile" || die
+		echo "smallcheck: ;" > "${BUILD_DIR}/tests/Makefile" || die
+		return 0
+	fi
+
+	local myconf=(
+		--enable-shared
+		$(use_enable static-libs static)
+		$(use_enable "cpu_flags_x86_fma$(usex cpu_flags_x86_fma3 3 4)" fma)
+		$(use_enable fortran)
+		$(use_enable zbus mips-zbus-timer)
+		$(use_enable threads)
+		$(use_enable openmp)
+	)
+	case "${MULTIBUILD_ID}" in
+		single-*)
+			# altivec, sse, single-paired only work for single
+			myconf+=(
+				--enable-single
+				$(use_enable cpu_flags_ppc_altivec altivec)
+				$(use_enable cpu_flags_x86_avx avx)
+				$(use_enable cpu_flags_x86_avx2 avx2)
+				$(use_enable cpu_flags_x86_sse sse)
+				$(use_enable cpu_flags_x86_sse2 sse2)
+				$(use_enable neon)
+				$(use_enable mpi)
+			)
+			;;
+
+		double-*)
+			myconf+=(
+				$(use_enable cpu_flags_x86_avx avx)
+				$(use_enable cpu_flags_x86_avx2 avx2)
+				$(use_enable cpu_flags_x86_sse2 sse2)
+				$(use_enable mpi)
+			)
+			;;
+
+		longdouble-*)
+			myconf+=(
+				--enable-long-double
+				$(use_enable mpi)
+			)
+			;;
+
+		quad-*)
+			# quad does not support mpi
+			myconf+=(
+				--enable-quad-precision
+			)
+			;;
+
+		*)
+			die "${MULTIBUILD_ID%-*} precision not implemented in this ebuild"
+			;;
+	esac
+
+	ECONF_SOURCE="${S}" econf "${myconf[@]}" MPICC="$(tc-getCC)"
+}
+
+src_configure() {
+	# upstream does not append proper -m flags
+	# https://bugs.gentoo.org/698572
+	use cpu_flags_x86_avx2 && append-flags -mavx2
+
+	multibuild_foreach_variant multilib-minimal_src_configure
+}
+
+src_compile() {
+	multibuild_foreach_variant multilib-minimal_src_compile
+}
+
+multilib_src_test() {
+	emake -C tests smallcheck
+}
+
+src_test() {
+	# We want this to be a reasonably quick test, but that is still hard...
+	ewarn "This test series will take 30 minutes on a modern 2.5Ghz machine"
+	# Do not increase the number of threads, it will not help your performance
+	# local testbase="perl check.pl --nthreads=1 --estimate"
+	#     ${testbase} -${p}d || die "Failure: $n"
+
+	multibuild_foreach_variant multilib-minimal_src_test
+}
+
+src_install() {
+	multibuild_foreach_variant multilib-minimal_src_install
+	dodoc CONVENTIONS
+
+	if use doc; then
+		dodoc doc/*.pdf
+		docinto faq
+		dodoc -r doc/FAQ/fftw-faq.html/.
+	else
+		rm -r "${ED%/}"/usr/share/doc/${PF}/html || die
+	fi
+
+	local x
+	for x in "${ED%/}"/usr/lib*/pkgconfig/*.pc; do
+		local u
+		for u in $(usev mpi) $(usev threads) $(usex openmp omp ""); do
+			sed -e "s|-lfftw3[flq]\?|&_${u} &|" "$x" > "${x%.pc}_${u}.pc" || die
+		done
+	done
+
+	# fftw uses pkg-config to record its private dependencies
+	find "${D}" -name '*.la' -delete || die
+}

diff --git a/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch b/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch
new file mode 100644
index 00000000000..63f46dccc4f
--- /dev/null
+++ b/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch
@@ -0,0 +1,112 @@
+--- a/rfftw/Makefile.am
++++ b/rfftw/Makefile.am
+@@ -18,6 +18,7 @@
+ 					 rfftw.h                   
+ 
+ lib@FFTW_PREFIX@rfftw_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
++lib@FFTW_PREFIX@rfftw_la_LIBADD = ../fftw/lib@FFTW_PREFIX@fftw.la
+ MAINTAINERCLEANFILES = $(CODELETS) rconfig.c
+ DISTCLEANFILES = srfftw.h drfftw.h
+ 
+--- a/threads/Makefile.am
++++ b/threads/Makefile.am
+@@ -28,6 +28,10 @@
+                              -version-info @SHARED_VERSION_INFO@ \
+                              -rpath $(libdir)
+ 
++lib@FFTW_PREFIX@fftw_threads_la_LIBADD = \
++                          $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la \
++	 		  @THREADLIBS@
++
+ @FFTW_PREFIX1@fftw_threads.h: fftw_threads.h
+ 	rm -f $@
+ 	sed 's/\"fftw/\"@FFTW_PREFIX@fftw/g;s/\"rfftw/\"@FFTW_PREFIX@rfftw/g' $(srcdir)/fftw_threads.h > $@
+@@ -49,6 +53,11 @@
+                               -version-info @SHARED_VERSION_INFO@ \
+                               -rpath $(libdir)
+ 
++lib@FFTW_PREFIX@rfftw_threads_la_LIBADD = \
++                          $(RFFTWDIR)/lib@FFTW_PREFIX@rfftw.la \
++                          $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la \
++			  @THREADLIBS@
++
+ @FFTW_PREFIX1@rfftw_threads.h: rfftw_threads.h
+ 	rm -f $@
+ 	sed 's/\"fftw/\"@FFTW_PREFIX@fftw/g;s/\"rfftw/\"@FFTW_PREFIX@rfftw/g' $(srcdir)/rfftw_threads.h > $@
+--- a/mpi/Makefile.am
++++ b/mpi/Makefile.am
+@@ -28,6 +28,9 @@
+                          -version-info @SHARED_VERSION_INFO@ \
+                          -rpath $(libdir)
+ 
++lib@FFTW_PREFIX@fftw_mpi_la_LIBADD = \
++                    @MPILIBS@ $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la
++
+ @FFTW_PREFIX1@fftw_mpi.h: fftw_mpi.h
+ 	rm -f $@
+ 	sed 's/\"fftw/\"@FFTW_PREFIX@fftw/g;s/\"rfftw/\"@FFTW_PREFIX@rfftw/g' $(srcdir)/fftw_mpi.h > $@
+@@ -39,32 +42,38 @@
+                           -version-info @SHARED_VERSION_INFO@ \
+                           -rpath $(libdir)
+ 
+-@FFTW_PREFIX1@rfftw_mpi.h: rfftw_mpi.h
++lib@FFTW_PREFIX@rfftw_mpi_la_LIBADD = \
++                       @MPILIBS@ \
++		        $(RFFTWDIR)/lib@FFTW_PREFIX@rfftw.la \
++                       $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la
++
++@FFTW_PREFIX1@rfftw_mpi.h: rfftw_mpi.h 	
+ 	rm -f $@
+ 	sed 's/\"fftw/\"@FFTW_PREFIX@fftw/g;s/\"rfftw/\"@FFTW_PREFIX@rfftw/g' $(srcdir)/rfftw_mpi.h > $@
+ 
+ CLEANFILES = @FFTW_PREFIX1@fftw_mpi.h @FFTW_PREFIX1@rfftw_mpi.h
+ 
+ test_sched_SOURCES = test_sched.c
+-test_sched_LDADD = lib@FFTW_PREFIX@fftw_mpi.la \
+-                   $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la @MPILIBS@
++test_sched_LDADD =  @MPILIBS@ lib@FFTW_PREFIX@fftw_mpi.la \
++                   $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la
+ 
+ test_transpose_mpi_SOURCES = test_transpose_mpi.c
+-test_transpose_mpi_LDADD = lib@FFTW_PREFIX@fftw_mpi.la \
+-                           $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la @MPILIBS@
++test_transpose_mpi_LDADD = @MPILIBS@ lib@FFTW_PREFIX@fftw_mpi.la \
++                           $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la
+ 
+ fftw_mpi_test_SOURCES = fftw_mpi_test.c
+ fftw_mpi_test_LDADD = ../tests/test_main.o \
++		      @MPILIBS@ \
+                       lib@FFTW_PREFIX@fftw_mpi.la \
+-                      $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la @MPILIBS@
++                      $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la
+ 
+ rfftw_mpi_test_SOURCES = rfftw_mpi_test.c
+ rfftw_mpi_test_LDADD = ../tests/test_main.o \
++		      @MPILIBS@ \
+                        lib@FFTW_PREFIX@rfftw_mpi.la \
+                        lib@FFTW_PREFIX@fftw_mpi.la \
+ 		       $(RFFTWDIR)/lib@FFTW_PREFIX@rfftw.la \
+-                       $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la \
+-                       @MPILIBS@
++                       $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la
+ 
+ # for some reason, automake tries to use autoheader in order to
+ # generate config.h.in, and fails because config.h.in is GNU-lly
+--- a/mpi/test_sched.c
++++ b/mpi/test_sched.c
+@@ -27,6 +27,8 @@
+      int **sched;
+      int npes = -1, sortpe = -1, steps;
+ 
++     /* needed to link with proper mpi libs */
++     MPI_Init(&argc,&argv);
+      if (argc >= 2) {
+ 	  npes = atoi(argv[1]);
+ 	  if (npes <= 0) {
+@@ -121,5 +123,6 @@
+ 	  }
+      }
+ 
++     MPI_Finalize();
+      return 0;
+ }

diff --git a/sci-libs/fftw/files/fftw-2.1.5-cc.patch b/sci-libs/fftw/files/fftw-2.1.5-cc.patch
new file mode 100644
index 00000000000..aa5c6db038c
--- /dev/null
+++ b/sci-libs/fftw/files/fftw-2.1.5-cc.patch
@@ -0,0 +1,19 @@
+--- a/configure.in
++++ b/configure.in
+@@ -25,6 +25,8 @@
+ AC_ARG_WITH(gcc, [  --with-gcc              use gcc instead of the native compiler cc], ok=$withval, ok=no)
+ if test "$ok" = "yes"; then
+ 	CC=gcc
++else
++	CC=$withval
+ fi
+ 
+ AC_ARG_ENABLE(float, [  --enable-float          compile fftw for single precision], enable_float=$enableval, enable_float=no)
+@@ -96,6 +96,7 @@
+ AM_PROG_LIBTOOL
+ AC_CHECK_PROG(PERL, perl, perl, echo perl)
+ AC_SUBST(PERL)
++AC_SUBST(CC)
+ 
+ dnl -----------------------------------------------------------------------
+ 

diff --git a/sci-libs/fftw/files/fftw-2.1.5-configure.in.patch b/sci-libs/fftw/files/fftw-2.1.5-configure.in.patch
new file mode 100644
index 00000000000..7abe3e751d5
--- /dev/null
+++ b/sci-libs/fftw/files/fftw-2.1.5-configure.in.patch
@@ -0,0 +1,226 @@
+--- a/configure.in
++++ b/configure.in
+@@ -1,6 +1,8 @@
++
+ dnl Process this file with autoconf to produce a configure script.
+ AC_INIT(fftw/planner.c)
+ AM_INIT_AUTOMAKE(fftw, 2.1.5)
++AM_MAINTAINER_MODE
+ 
+ dnl This is the version info according to the libtool versioning system.
+ dnl It does *not* correspond to the release number.
+@@ -27,7 +29,7 @@
+ 
+ AC_ARG_ENABLE(float, [  --enable-float          compile fftw for single precision], enable_float=$enableval, enable_float=no)
+ if test "$enable_float" = "yes"; then
+-	AC_DEFINE(FFTW_ENABLE_FLOAT)
++	AC_DEFINE(FFTW_ENABLE_FLOAT,1,[Compile fftw for single precision])
+ fi
+ 
+ FFTW_PREFIX=""
+@@ -56,27 +58,27 @@
+ 
+ AC_ARG_ENABLE(i386-hacks, [  --enable-i386-hacks     enable gcc/x86 specific performance hacks], ok=$enableval, ok=no)
+ if test "$ok" = "yes"; then
+-	AC_DEFINE(FFTW_ENABLE_I386_HACKS)
++	AC_DEFINE(FFTW_ENABLE_I386_HACKS,1,[Enable x86 specific performance hacks])
+ fi
+ 
+ AC_ARG_ENABLE(pentium-timer, [  --enable-pentium-timer  enable high resolution Pentium timer], ok=$enableval, ok=no)
+ if test "$ok" = "yes"; then
+-	AC_DEFINE(FFTW_ENABLE_PENTIUM_TIMER)
++	AC_DEFINE(FFTW_ENABLE_PENTIUM_TIMER,1,[Enable high resolution Pentium timer])
+ fi
+ 
+ AC_ARG_ENABLE(debug, [  --enable-debug          compile fftw with extra runtime checks for debugging], ok=$enableval, ok=no)
+ if test "$ok" = "yes"; then
+-	AC_DEFINE(FFTW_DEBUG)
++	AC_DEFINE(FFTW_DEBUG,1,[Compile with extra rutime checks for debugging])
+ fi
+ 
+ AC_ARG_ENABLE(debug-alignment, [  --enable-debug-alignment          enable runtime checks for alignment on x86], ok=$enableval, ok=no)
+ if test "$ok" = "yes"; then
+-	AC_DEFINE(FFTW_DEBUG_ALIGNMENT)
++	AC_DEFINE(FFTW_DEBUG_ALIGNMENT,1,[Enable rutime checks for alignment on x86])
+ fi
+ 
+ AC_ARG_ENABLE(vec-recurse, [  --enable-vec-recurse    enable experimental performance hack], ok=$enableval, ok=no)
+ if test "$ok" = "yes"; then
+-	AC_DEFINE(FFTW_ENABLE_VECTOR_RECURSE)
++	AC_DEFINE(FFTW_ENABLE_VECTOR_RECURSE,1,[Enable experimental performance hack])
+ fi
+ 
+ dnl -----------------------------------------------------------------------
+@@ -90,7 +92,6 @@
+ ACX_PROG_CC_EGCS
+ AC_PROG_INSTALL
+ AC_PROG_MAKE_SET
+-AC_PROG_RANLIB
+ AC_PROG_LN_S
+ AM_PROG_LIBTOOL
+ AC_CHECK_PROG(PERL, perl, perl, echo perl)
+@@ -115,7 +116,7 @@
+ dnl -----------------------------------------------------------------------
+ 
+ AC_SUBST(SHARED_VERSION_INFO)
+-AC_DEFINE_UNQUOTED(FFTW_VERSION, "$VERSION")
++AC_DEFINE_UNQUOTED(FFTW_VERSION, "$VERSION",[Fftw Version])
+ 
+ # Get the version number that will be appended to shared libraries:
+ SHARED_VERSION=`echo $SHARED_VERSION_INFO | awk -F':' '{ print $1 "." $3 "." $2 }'`
+@@ -123,7 +124,7 @@
+ 
+ ACX_PROG_CC_MAXOPT
+ 
+-ACX_GCC_ALIGNS_STACK(AC_DEFINE(FFTW_GCC_ALIGNS_STACK), [
++ACX_GCC_ALIGNS_STACK(AC_DEFINE(FFTW_GCC_ALIGNS_STACK,1,[Gcc align stack]), [
+ 	if test "$enable_i386_hacks" = yes; then
+ 	if test "${acx_gcc_stack_align_bug-no}" = yes; then
+ 		# we are using a gcc with a stack alignment bug, and we should
+@@ -183,7 +184,7 @@
+ AC_TRY_LINK([#include <math.h>
+ ], if (!isnan(3.14159)) isnan(2.7183);, ok=yes, ok=no)
+ if test "$ok" = "yes"; then
+-	AC_DEFINE(HAVE_ISNAN)
++	AC_DEFINE(HAVE_ISNAN,1,[Have isnan])
+ fi
+ AC_MSG_RESULT(${ok})
+ 
+@@ -196,7 +197,7 @@
+ #endif
+ ], [hrtime_t foobar;], ok=yes, ok=no)
+ if test "$ok" = "yes"; then
+-	AC_DEFINE(HAVE_HRTIME_T)
++	AC_DEFINE(HAVE_HRTIME_T,1,[Have hrtime_t type])
+ fi
+ AC_MSG_RESULT(${ok})
+ 
+@@ -205,7 +206,7 @@
+ 
+ AC_ARG_ENABLE(unsafe-mulmod, [  --enable-unsafe-mulmod  risk overflow for large prime sizes], enable_unsafe_mulmod=$enableval, enable_unsafe_mulmod=no)
+ if test "$enable_unsafe_mulmod" = "yes"; then
+-        AC_DEFINE(FFTW_ENABLE_UNSAFE_MULMOD)
++        AC_DEFINE(FFTW_ENABLE_UNSAFE_MULMOD,1,[Risk overflow  for lar prime sizes])
+ fi
+ 
+ 
+@@ -221,15 +222,25 @@
+ FFTW_THREADS_INCLUDELIST=""
+ FFTW_THREADS_PROGLIST=""
+ THREADLIBS=""
++omp_enabler=unknown
+ if test "$enable_threads" = "yes"; then
+ 	if test "$with_openmp"x != nox; then
+ 		AC_MSG_CHECKING(how to enable OpenMP)
+-		omp_enabler=unknown
+ 		save_CFLAGS="$CFLAGS"
+ 		CFLAGS="$save_CFLAGS -omp"
+ 		AC_TRY_LINK_FUNC(omp_set_num_threads,THREADLIBS=" "
+ 			omp_enabler="$CC -omp")
+ 		if test -z "$THREADLIBS"; then
++			CFLAGS="$save_CFLAGS -fopenmp"
++			AC_TRY_LINK_FUNC(omp_set_num_threads,THREADLIBS="-lgomp"
++				omp_enabler="$CC -fopenmp")
++		fi
++		if test -z "$THREADLIBS"; then
++			CFLAGS="$save_CFLAGS -openmp"
++			AC_TRY_LINK_FUNC(omp_set_num_threads,THREADLIBS=" "
++				omp_enabler="$CC -openmp")
++		fi
++		if test -z "$THREADLIBS"; then
+ 			CFLAGS="$save_CFLAGS -mp"
+ 			AC_TRY_LINK_FUNC(omp_set_num_threads,THREADLIBS=" "
+ 				omp_enabler="$CC -mp")
+@@ -240,68 +251,70 @@
+ 				omp_enabler="automatic")
+ 		fi
+ 		AC_MSG_RESULT($omp_enabler)
+-		if test -z "$THREADLIBS"; then
+-			AC_MSG_ERROR([don't know how to enable OpenMP])
++		if test x"$omp_enabler" != x"unknown"; then
++		       AC_DEFINE(FFTW_USING_OPENMP_THREADS,1,[Using OpenMP threads])
++		else
++		       AC_MSG_WARN([don't know how to enable OpenMP, reverting to POSIX threads])
+ 		fi
+-		AC_DEFINE(FFTW_USING_OPENMP_THREADS)
++
+ 	fi
+ 	if test "$with_sgimp"x != nox; then
+ 		AC_MSG_CHECKING(how to enable SGI MP)
+ 		mp_enabler=unknown
+ 		save_CFLAGS="$CFLAGS"
+ 		CFLAGS="$save_CFLAGS -mp"
+-		AC_TRY_LINK_FUNC(mp_set_numthreads,THREADLIBS=" "
++		AC_TRY_LINK_FUNC(mp_set_numthreads,THREADLIBS=""
+ 			mp_enabler="$CC -mp")
+ 		if test -z "$THREADLIBS"; then
+ 			CFLAGS="$save_CFLAGS"
+-			AC_TRY_LINK_FUNC(mp_numthreads,THREADLIBS=" "
++			AC_TRY_LINK_FUNC(mp_numthreads,THREADLIBS=""
+ 				mp_enabler="automatic")
+ 		fi
+ 		AC_MSG_RESULT($mp_enabler)
+ 		if test -z "$THREADLIBS"; then 
+ 			AC_MSG_ERROR([don't know how to enable SGI MP])
+ 		fi
+-		AC_DEFINE(FFTW_USING_SGIMP_THREADS)
++		AC_DEFINE(FFTW_USING_SGIMP_THREADS,1,[Using SGIMP Threads])
+ 	fi
+ 
+ 	# POSIX threads, the default choice:
+-	if test -z "$THREADLIBS"; then
++	if test x"$omp_enabler" = x"unknown" ; then
+ 		sinclude(acx_pthread.m4)
+ 		ACX_PTHREAD([THREADLIBS="$PTHREAD_LIBS "
+ 	                     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ 	                     CC="$PTHREAD_CC"
+-	                     AC_DEFINE(FFTW_USING_POSIX_THREADS)])
++	                     AC_DEFINE(FFTW_USING_POSIX_THREADS,1,[Using POSIX Threads])])
+ 	fi
+ 	# Solaris threads:
+ 	if test -z "$THREADLIBS"; then
+ 		AC_CHECK_LIB(thread, thr_create,
+ 		             [THREADLIBS="-lthread"
+-                	      AC_DEFINE(FFTW_USING_SOLARIS_THREADS)])
++                	      AC_DEFINE(FFTW_USING_SOLARIS_THREADS,1,[Using SOLARIS Threads])])
+ 	fi
+ 	# Mach C threads:
+ 	if test -z "$THREADLIBS"; then
+ 		AC_CHECK_FUNC(cthread_fork,
+ 		             [THREADLIBS=" "
+-                	      AC_DEFINE(FFTW_USING_MACH_THREADS)])
++                	      AC_DEFINE(FFTW_USING_MACH_THREADS,1,[Using Mach Threads])])
+ 		AC_CHECK_HEADERS(mach/cthreads.h cthreads.h cthread.h)
+ 	fi
+ 	if test -z "$THREADLIBS"; then
+ 		AC_CHECK_LIB(cthread, cthread_fork,
+ 		             [THREADLIBS="-lcthread"
+-                	      AC_DEFINE(FFTW_USING_MACH_THREADS)])
++                	      AC_DEFINE(FFTW_USING_MACH_THREADS,1,[Using Mach Threads])])
+ 		AC_CHECK_HEADERS(mach/cthreads.h cthreads.h cthread.h)
+ 	fi
+ 	if test -z "$THREADLIBS"; then
+ 		AC_CHECK_LIB(cthreads, cthread_fork,
+ 		             [THREADLIBS="-lcthreads"
+-                	      AC_DEFINE(FFTW_USING_MACH_THREADS)])
++                	      AC_DEFINE(FFTW_USING_MACH_THREADS,1,[Using Mach Threads])])
+ 		AC_CHECK_HEADERS(mach/cthreads.h cthreads.h cthread.h)
+ 	fi
+ 	# BeOS threads:
+ 	if test -z "$THREADLIBS"; then
+ 		AC_CHECK_FUNC(spawn_thread,
+ 		             [THREADLIBS=" "
+-                	      AC_DEFINE(FFTW_USING_BEOS_THREADS)])
++                	      AC_DEFINE(FFTW_USING_BEOS_THREADS,1,[Using BEOS Threads])])
+ 	fi
+ 	if test -z "$THREADLIBS"; then
+ 		AC_MSG_ERROR(couldn't find threads library for --enable-threads)
+@@ -334,7 +347,7 @@
+ 	CC="$MPICC"
+ 	ok=yes
+ 	AC_TRY_LINK([#include <mpi.h>
+-	], [MPI_Comm_f2c(0);], [AC_DEFINE(HAVE_MPI_COMM_F2C)], [ok=no])
++	], [MPI_Comm_f2c(0);], [AC_DEFINE(HAVE_MPI_COMM_F2C,1,[Has MPI COMM F2C])], [ok=no])
+ 	AC_MSG_RESULT($ok)
+ 	CC="$save_CC"
+ else

diff --git a/sci-libs/fftw/files/fftw-2.1.5-no-test.patch b/sci-libs/fftw/files/fftw-2.1.5-no-test.patch
new file mode 100644
index 00000000000..cc844a455e6
--- /dev/null
+++ b/sci-libs/fftw/files/fftw-2.1.5-no-test.patch
@@ -0,0 +1,33 @@
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -1,4 +1,4 @@
+-noinst_PROGRAMS = fftw_test rfftw_test
++check_PROGRAMS = fftw_test rfftw_test
+ noinst_HEADERS = test_main.h
+ 
+ FFTWDIR=../fftw
+--- a/mpi/Makefile.am
++++ b/mpi/Makefile.am
+@@ -4,8 +4,8 @@
+ 
+ lib_LTLIBRARIES = @FFTW_MPI_LIBLIST@
+ include_HEADERS = @FFTW_MPI_INCLUDELIST@
+-noinst_PROGRAMS = @FFTW_MPI_PROGLIST@
++check_PROGRAMS = @FFTW_MPI_PROGLIST@
+ 
+ EXTRA_LTLIBRARIES = lib@FFTW_PREFIX@fftw_mpi.la \
+                     lib@FFTW_PREFIX@rfftw_mpi.la
+ EXTRA_HEADERS = @FFTW_PREFIX@fftw_mpi.h @FFTW_PREFIX@rfftw_mpi.h 
+--- a/threads/Makefile.am
++++ b/threads/Makefile.am
+@@ -4,9 +4,9 @@
+ 
+ lib_LTLIBRARIES = @FFTW_THREADS_LIBLIST@
+ include_HEADERS = @FFTW_THREADS_INCLUDELIST@
+-noinst_PROGRAMS = @FFTW_THREADS_PROGLIST@
++check_PROGRAMS = @FFTW_THREADS_PROGLIST@
+ 
+ EXTRA_LTLIBRARIES = lib@FFTW_PREFIX@fftw_threads.la \
+                     lib@FFTW_PREFIX@rfftw_threads.la
+ EXTRA_HEADERS = @FFTW_PREFIX@fftw_threads.h \
+                 @FFTW_PREFIX@rfftw_threads.h

diff --git a/sci-libs/fftw/files/fftw-2.1.5-parallel-tests.patch b/sci-libs/fftw/files/fftw-2.1.5-parallel-tests.patch
new file mode 100644
index 00000000000..b92e6dad299
--- /dev/null
+++ b/sci-libs/fftw/files/fftw-2.1.5-parallel-tests.patch
@@ -0,0 +1,105 @@
+Fix failure of parallel test suite. This is due to
+misspecification of the test suite, which requires
+first compiling $(check_PROGRAMS) and only then
+running $(TESTS):
+
+* check-am: all-am
+*         $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+*         $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+
+The old build system never specified $(TESTS) and
+erroneously made the check target depend on the
+two tests.
+See also: https://bugs.gentoo.org/show_bug.cgi?id=603352
+
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -12,22 +12,7 @@
+ rfftw_test_LDADD = $(RFFTWDIR)/lib@FFTW_PREFIX@rfftw.la \
+                    $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la
+ 
+-check: fftw-tests rfftw-tests 
++TESTS = myfftwtests.sh myrfftwtests.sh
+ 
+-fftw-tests: fftw_test
+-	./fftw_test -p 0
+-	./fftw_test -x 128 -a 0
+-	./fftw_test -x 32 -a 2
+-	./fftw_test -x 100 -r 0
+-	@echo "--------------------------------------------------------------"
+-	@echo "         FFTW complex-complex transforms passed tests!"
+-	@echo "--------------------------------------------------------------"
+-
+-rfftw-tests: rfftw_test
+-	./rfftw_test -p 0
+-	./rfftw_test -x 128 -a 0
+-	./rfftw_test -x 32 -a 2
+-	./rfftw_test -x 100 -r 0
+-	@echo "--------------------------------------------------------------"
+-	@echo "          RFFTW real-complex transforms passed tests!"
+-	@echo "--------------------------------------------------------------"
++TEST_EXTENSIONS = .sh
++SH_LOG_COMPILER = $(SHELL)
+--- a/tests/myfftwtests.sh
++++ b/tests/myfftwtests.sh
+@@ -0,0 +1,4 @@
++./fftw_test -p 0 && \
++./fftw_test -x 128 -a 0 && \
++./fftw_test -x 32 -a 2 && \
++./fftw_test -x 100 -r 0
+--- a/tests/myrfftwtests.sh
++++ b/tests/myrfftwtests.sh
+@@ -0,0 +1,4 @@
++./rfftw_test -p 0 && \
++./rfftw_test -x 128 -a 0 && \
++./rfftw_test -x 32 -a 2 && \
++./rfftw_test -x 100 -r 0
+--- a/threads/fftw_threads_test_check.sh
++++ b/threads/fftw_threads_test_check.sh
+@@ -0,0 +1,4 @@
++./fftw_threads_test 1 -x 100 -r 0 && \
++./fftw_threads_test 2 -x 100 -r 0 && \
++./fftw_threads_test 3 -x 100 -r 0 && \
++./fftw_threads_test 10 -x 100 -r 0
+--- a/threads/Makefile.am
++++ b/threads/Makefile.am
+@@ -78,29 +78,7 @@
+ # incorrect.  Just disable autoheader
+ AUTOHEADER=echo
+ 
+-check: @FFTW_THREADS_PROGLIST@
+-	@set fnord $(MAKEFLAGS); amf=$$2; \
+-        list='@FFTW_THREADS_PROGLIST@'; for prog in $$list; do \
+-          target="$$prog""-check"; \
+-          echo "Making $$target"; \
+-          ($(MAKE) $$target) \
+-           || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+-        done && test -z "$$fail"
++TESTS = fftw_threads_test_check.sh rfftw_threads_test_check.sh
+ 
+-fftw_threads_test-check: fftw_threads_test
+-	./fftw_threads_test 1 -x 100 -r 0
+-	./fftw_threads_test 2 -x 100 -r 0
+-	./fftw_threads_test 3 -x 100 -r 0
+-	./fftw_threads_test 10 -x 100 -r 0
+-	@echo "--------------------------------------------------------------"
+-	@echo "    FFTW complex-complex threads transforms passed tests!"
+-	@echo "--------------------------------------------------------------"
+-
+-rfftw_threads_test-check: rfftw_threads_test
+-	./rfftw_threads_test 1 -x 100 -r 0
+-	./rfftw_threads_test 2 -x 100 -r 0
+-	./rfftw_threads_test 3 -x 100 -r 0
+-	./rfftw_threads_test 10 -x 100 -r 0
+-	@echo "--------------------------------------------------------------"
+-	@echo "     RFFTW real-complex threads transforms passed tests!"
+-	@echo "--------------------------------------------------------------"
++TEST_EXTENSIONS = .sh
++SH_LOG_COMPILER = $(SHELL)
+--- a/threads/rfftw_threads_test_check.sh
++++ b/threads/rfftw_threads_test_check.sh
+@@ -0,0 +1,4 @@
++./rfftw_threads_test 1 -x 100 -r 0 && \
++./rfftw_threads_test 2 -x 100 -r 0 && \
++./rfftw_threads_test 3 -x 100 -r 0 && \
++./rfftw_threads_test 10 -x 100 -r 0

diff --git a/sci-libs/fftw/files/fftw-2.1.5-texinfo5.1.patch b/sci-libs/fftw/files/fftw-2.1.5-texinfo5.1.patch
new file mode 100644
index 00000000000..1947bef8f21
--- /dev/null
+++ b/sci-libs/fftw/files/fftw-2.1.5-texinfo5.1.patch
@@ -0,0 +1,21 @@
+ doc/fftw.texi | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/doc/fftw.texi b/doc/fftw.texi
+index 90e8bb6..85a7a53 100644
+--- a/doc/fftw.texi
++++ b/doc/fftw.texi
+@@ -46,10 +46,10 @@ approved by the Free Software Foundation.
+ @titlepage
+ @sp 10
+ @comment The title is printed in a large font.
+-@title{FFTW User's Manual}
++@title FFTW User's Manual
+ @subtitle For version @value{VERSION}, @value{UPDATED}
+-@author{Matteo Frigo}
+-@author{Steven G. Johnson}
++@author Matteo Frigo
++@author Steven G. Johnson
+ 
+ @c The following two commands start the copyright page.
+ @page

diff --git a/sci-libs/fftw/metadata.xml b/sci-libs/fftw/metadata.xml
index bf126e2d080..bd41f1af108 100644
--- a/sci-libs/fftw/metadata.xml
+++ b/sci-libs/fftw/metadata.xml
@@ -15,6 +15,9 @@
   publicly available FFT software.
 </longdescription>
   <use>
+    <flag name="float">Link default library to single precision instead of
+    double (symlinks only and fftw-2.1)</flag>
+    <flag name="quad">Build quadruple precision lib</flag>
     <flag name="zbus">Adds support for ZBus cycle-counter of mips</flag>
   </use>
   <upstream>


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-02-25  3:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-31 20:09 [gentoo-commits] repo/gentoo:master commit in: sci-libs/fftw/, sci-libs/fftw/files/ David Seifert
  -- strict thread matches above, loose matches on Subject: below --
2021-02-25  3:22 Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox