diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-03-24 00:31:53 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-03-24 00:31:53 +0000 |
commit | 72e4c0bc86eea366d063d15b3d5611e8f82ffd05 (patch) | |
tree | be4116935e605807f4a03de97c876e050718881a /sci-libs/fftw | |
parent | add1c3acddd7a3f49fdb230135725463d2662921 (diff) |
gentoo auto-resync : 24:03:2025 - 00:31:53
Diffstat (limited to 'sci-libs/fftw')
-rw-r--r-- | sci-libs/fftw/Manifest | 4 | ||||
-rw-r--r-- | sci-libs/fftw/fftw-3.3.10-r1.ebuild | 170 | ||||
-rw-r--r-- | sci-libs/fftw/fftw-9999.ebuild | 11 | ||||
-rw-r--r-- | sci-libs/fftw/files/fftw-3.3.10-fixup-cmake-optional.patch | 25 |
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) + |