diff options
author | 2021-02-25 03:17:49 +0000 | |
---|---|---|
committer | 2021-02-25 03:17:49 +0000 | |
commit | 6b4b4c06e34415fb725320ccf9ec904fb1283638 (patch) | |
tree | 1acae0c4d7158b48dea6e4f4d7a99e53e37391bf /sci-libs/fftw | |
parent | sci-libs/fftw: add github remote-id (diff) | |
download | gentoo-6b4b4c06e34415fb725320ccf9ec904fb1283638.tar.gz gentoo-6b4b4c06e34415fb725320ccf9ec904fb1283638.tar.bz2 gentoo-6b4b4c06e34415fb725320ccf9ec904fb1283638.zip |
Revert "sci-libs/fftw: cleanup old"
This reverts commit ee56d7da7ed08caf5546958342eceebc4d9de5ff.
Slot :2.1 needed by media-gfx/videorbits.
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sci-libs/fftw')
-rw-r--r-- | sci-libs/fftw/Manifest | 2 | ||||
-rw-r--r-- | sci-libs/fftw/fftw-2.1.5-r9.ebuild | 137 | ||||
-rw-r--r-- | sci-libs/fftw/fftw-3.3.8-r1.ebuild | 186 | ||||
-rw-r--r-- | sci-libs/fftw/files/fftw-2.1.5-as-needed.patch | 112 | ||||
-rw-r--r-- | sci-libs/fftw/files/fftw-2.1.5-cc.patch | 19 | ||||
-rw-r--r-- | sci-libs/fftw/files/fftw-2.1.5-configure.in.patch | 226 | ||||
-rw-r--r-- | sci-libs/fftw/files/fftw-2.1.5-no-test.patch | 33 | ||||
-rw-r--r-- | sci-libs/fftw/files/fftw-2.1.5-parallel-tests.patch | 105 | ||||
-rw-r--r-- | sci-libs/fftw/files/fftw-2.1.5-texinfo5.1.patch | 21 | ||||
-rw-r--r-- | sci-libs/fftw/metadata.xml | 3 |
10 files changed, 844 insertions, 0 deletions
diff --git a/sci-libs/fftw/Manifest b/sci-libs/fftw/Manifest index a43277669038..edf9d7c5f503 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 000000000000..0d4eae2fdb7b --- /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 000000000000..ae84f01be618 --- /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 000000000000..63f46dccc4fd --- /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 000000000000..aa5c6db038c8 --- /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 000000000000..7abe3e751d5d --- /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 000000000000..cc844a455e66 --- /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 000000000000..b92e6dad299c --- /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 000000000000..1947bef8f21f --- /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 bf126e2d0802..bd41f1af108d 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> |