summaryrefslogtreecommitdiff
path: root/sci-libs/fftw
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-03-24 00:31:53 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-03-24 00:31:53 +0000
commit72e4c0bc86eea366d063d15b3d5611e8f82ffd05 (patch)
treebe4116935e605807f4a03de97c876e050718881a /sci-libs/fftw
parentadd1c3acddd7a3f49fdb230135725463d2662921 (diff)
gentoo auto-resync : 24:03:2025 - 00:31:53
Diffstat (limited to 'sci-libs/fftw')
-rw-r--r--sci-libs/fftw/Manifest4
-rw-r--r--sci-libs/fftw/fftw-3.3.10-r1.ebuild170
-rw-r--r--sci-libs/fftw/fftw-9999.ebuild11
-rw-r--r--sci-libs/fftw/files/fftw-3.3.10-fixup-cmake-optional.patch25
4 files changed, 202 insertions, 8 deletions
diff --git a/sci-libs/fftw/Manifest b/sci-libs/fftw/Manifest
index 666610d40b5b..dab4252ab89b 100644
--- a/sci-libs/fftw/Manifest
+++ b/sci-libs/fftw/Manifest
@@ -1,4 +1,6 @@
+AUX fftw-3.3.10-fixup-cmake-optional.patch 1027 BLAKE2B 230f57b37b179fdc30fcb16777a64c4363511e684937019700ad883723b47fe32c8cab7730ba04bc191bb0199e3b8fd7303a97d90cdabd70354e9f1b80860d0f SHA512 517ea0d21ba360db7c9d2fe805dec9de30362a71a567e7b034f7c569433d206f6b3abae4a8dfb704970e02d8d9b30cb9a578946417b4c1986fbfee6db68267b0
DIST fftw-3.3.10.tar.gz 4144100 BLAKE2B 3663872bd95a01d2c79af185f53918e1d1a9c91c620082402772c07f25b9b77d4920a78dc686fac6b51aa961b8d62b7e2cef3f3031e096bed40ced80b59b29d5 SHA512 2d34b5ccac7b08740dbdacc6ebe451d8a34cf9d9bfec85a5e776e87adf94abfd803c222412d8e10fbaa4ed46f504aa87180396af1b108666cde4314a55610b40
+EBUILD fftw-3.3.10-r1.ebuild 4134 BLAKE2B 1299a21b0a4644ef480dcb03f2fa88674a8ccec9c890436ddb97ba6fcbccf592eb78b4a0250ba25789bd9db8c1a0dfda2e57601ec13339363b216fe2d01109ec SHA512 661d0dbd400cd2b7fc1efd872f69a0aa8bf90e8f089a0b3d71ec61f525e6856fa6f9a1adfbacdcfa36f0124b9a09d1dd54e82f68acd8abcf2021c2c61aeb9d59
EBUILD fftw-3.3.10.ebuild 4204 BLAKE2B 650ac6bdba7c0d3b68adbc3c78571e4448971929b3712b319837fbd38d5945aea082ab2b7412bd12c7c5b66ef94d6886fa2575d4f607fbeb0e095c97cef9565a SHA512 544e3657730f4f57ab31154b237f3f749ad606591c5aac1c09952f5f62db98f41642a7e1598611d9fa24bf1a704603f6de38c5b1e75cad6b806a704251d6c79b
-EBUILD fftw-9999.ebuild 4199 BLAKE2B 088c5bdbf41c0ed5217ac6a2c6b1ccff3a5ea9a9a4bd4aa91d30848f8913fdf436e6f799ecc8a1c3f2099708fd85e84b36a8acc6580c71e6956039e3d4dd29ae SHA512 15c0e8e86acec1b1494ce3814ef3984450ba6597a283e765688fb348ac666e61431ad31d0fea5d4de2df23def7bda321792da862475f1dd83ff1f8b968c1c266
+EBUILD fftw-9999.ebuild 4066 BLAKE2B b07e65284a0472b2332d861a1f6b08b2f8e09ae53cb3c32cd833111bc6264af7c29dba532511e7b618c63fa1f68daeb515c3109e62b614ef7cd980504e421913 SHA512 aaac39979490b7547d73af645582d10eae0a54db4e8e2f164744af77da4347875adfdbdf78ee165b45be1c1d7143698c4ffafd5b0b5fb90c1ae4db0633c730c5
MISC metadata.xml 914 BLAKE2B beea3b7d30a0b0568e8741f15600acdb0652e2c33f3ef5f95d0d0a4f4efb2aacb3c7215bbc3abbae67764d5b36a1e0caae99d641be20183fe5bb2ce069bd7db1 SHA512 2bbb2863f5617f387d4b382caa77e894a485e819ebd852939830c585e762c8e3a2d05532bdf2f44b2d59294f0dbec3b14dca6f2c00bdbc547331db7eddc6c9ce
diff --git a/sci-libs/fftw/fftw-3.3.10-r1.ebuild b/sci-libs/fftw/fftw-3.3.10-r1.ebuild
new file mode 100644
index 000000000000..3d3387fcb597
--- /dev/null
+++ b/sci-libs/fftw/fftw-3.3.10-r1.ebuild
@@ -0,0 +1,170 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_NEEDED=fortran
+
+inherit fortran-2 libtool multibuild multilib-minimal toolchain-funcs
+
+DESCRIPTION="Fast C library for the Discrete Fourier Transform"
+HOMEPAGE="https://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="https://www.fftw.org/${PN}-${PV/_p/-pl}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+fi
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2+"
+SLOT="3.0/3"
+IUSE="cpu_flags_arm_neon 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 openmp test threads zbus"
+RESTRICT="!test? ( test )"
+
+RDEPEND="mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND="test? ( dev-lang/perl )"
+
+HTML_DOCS=( doc/html/. )
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # check fails with any version of gcc. On <14:
+ # <artificial>:(.text.startup+0x19): undefined reference to `_rtc'
+ _rtc
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.3.10-fixup-cmake-optional.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 longdouble )
+}
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == *9999 ]]; then
+ # fix info file for category directory
+ eautoreconf
+ else
+ elibtoolize
+ fi
+}
+
+multilib_src_configure() {
+ local myconf=(
+ --enable-shared
+ --disable-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)
+ )
+
+ [[ ${PV} == *9999 ]] && myconf+=( --enable-maintainer-mode )
+
+ # --enable-quad-precision is a brittle feature that requires
+ # __float128 support from the toolchain, which is lacking on
+ # most niche architectures. Bug #770346
+ 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 cpu_flags_arm_neon 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)
+ )
+ ;;
+
+ *)
+ die "${MULTIBUILD_ID%-*} precision not implemented in this ebuild"
+ ;;
+ esac
+
+ ECONF_SOURCE="${S}" econf "${myconf[@]}" MPICC="$(tc-getCC)"
+}
+
+src_configure() {
+ 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() {
+ # 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
+
+ augment_pc_files() {
+ local x
+ for x in "${ED}"/usr/$(get_libdir)/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
+ }
+ multilib_foreach_abi augment_pc_files
+
+ # fftw uses pkg-config to record its private dependencies
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/sci-libs/fftw/fftw-9999.ebuild b/sci-libs/fftw/fftw-9999.ebuild
index b7841feffe05..3d87f75be718 100644
--- a/sci-libs/fftw/fftw-9999.ebuild
+++ b/sci-libs/fftw/fftw-9999.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
FORTRAN_NEEDED=fortran
@@ -17,7 +17,7 @@ if [[ ${PV} == *9999 ]]; then
EGIT_REPO_URI="https://github.com/FFTW/fftw3.git"
else
SRC_URI="https://www.fftw.org/${PN}-${PV/_p/-pl}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
fi
S="${WORKDIR}/${MY_P}"
@@ -132,12 +132,9 @@ multilib_src_test() {
}
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"
-
+ # ${testbase} -${p}d || die "Failure: ${n}"
multibuild_foreach_variant multilib-minimal_src_test
}
diff --git a/sci-libs/fftw/files/fftw-3.3.10-fixup-cmake-optional.patch b/sci-libs/fftw/files/fftw-3.3.10-fixup-cmake-optional.patch
new file mode 100644
index 000000000000..ea09c4c9741a
--- /dev/null
+++ b/sci-libs/fftw/files/fftw-3.3.10-fixup-cmake-optional.patch
@@ -0,0 +1,25 @@
+https://bugs.gentoo.org/913518
+https://github.com/FFTW/fftw3/issues/130
+https://github.com/FFTW/fftw3/pull/338
+
+From f69fef7aa546d4477a2a3fd7f13fa8b2f6c54af7 Mon Sep 17 00:00:00 2001
+From: Tobias Mayer <tobim@fastmail.fm>
+Date: Tue, 24 Oct 2023 13:46:33 +0200
+Subject: [PATCH] Fix the cmake config file when configured with autotools
+
+When the autotools based build is used the FFTW3ConfigDeps.cmake file is
+not generated, so including it fails with an error. By making the
+include optional, the config file can still be used in a limited
+fashion.
+--- a/FFTW3Config.cmake.in
++++ b/FFTW3Config.cmake.in
+@@ -10,7 +10,7 @@ set (FFTW3@PREC_SUFFIX@_LIBRARIES fftw3@PREC_SUFFIX@)
+ set (FFTW3@PREC_SUFFIX@_LIBRARY_DIRS @CMAKE_INSTALL_FULL_LIBDIR@)
+ set (FFTW3@PREC_SUFFIX@_INCLUDE_DIRS @CMAKE_INSTALL_FULL_INCLUDEDIR@)
+
+-include ("${CMAKE_CURRENT_LIST_DIR}/FFTW3LibraryDepends.cmake")
++include ("${CMAKE_CURRENT_LIST_DIR}/FFTW3LibraryDepends.cmake" OPTIONAL)
+
+ if (CMAKE_VERSION VERSION_LESS 2.8.3)
+ set (CMAKE_CURRENT_LIST_DIR)
+