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@[email protected]
+ 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@[email protected] \
++                        @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@[email protected] \
++                          $(FFTWDIR)/lib@[email protected] \
++                        @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@[email protected]
++
+ @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@[email protected] \
++                       $(FFTWDIR)/lib@[email protected]
++
++@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@[email protected] @MPILIBS@
++test_sched_LDADD =  @MPILIBS@ lib@FFTW_PREFIX@fftw_mpi.la \
++                   $(FFTWDIR)/lib@[email protected]
+ 
+ test_transpose_mpi_SOURCES = test_transpose_mpi.c
+-test_transpose_mpi_LDADD = lib@FFTW_PREFIX@fftw_mpi.la \
+-                           $(FFTWDIR)/lib@[email protected] @MPILIBS@
++test_transpose_mpi_LDADD = @MPILIBS@ lib@FFTW_PREFIX@fftw_mpi.la \
++                           $(FFTWDIR)/lib@[email protected]
+ 
+ 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@[email protected] @MPILIBS@
++                      $(FFTWDIR)/lib@[email protected]
+ 
+ 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@[email protected] \
+-                       $(FFTWDIR)/lib@[email protected] \
+-                       @MPILIBS@
++                       $(FFTWDIR)/lib@[email protected]
+ 
+ # 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@[email protected] \
+                    $(FFTWDIR)/lib@[email protected]
+ 
+-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>

Reply via email to