%global build_types %{?build_types} float %global build_types %{?build_types} double %global build_types %{?build_types} int16_t %global build_types %{?build_types} int32_t %global build_types %{?build_types} simd Summary: A Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid Name: kissfft License: BSD-3-Clause Version: 131.1.0 Release: 1%{?dist} URL: https://github.com/mborgerding/%{name} Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz Group: Development/Libraries BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: libpng-devel BuildRequires: python3 # Use cmake28 package on RHEL. %if 0%{?rhel} && 0%{?rhel} <= 7 BuildRequires: cmake28 >= 2.8.5 %else BuildRequires: cmake >= 2.8.5 %endif # For tests BuildRequires: fftw-devel BuildRequires: python3-numpy # Ensure only one copy of license files are included Requires: %{name}-licenses %description KISS FFT - A mixed-radix Fast Fourier Transform based on the principle, "Keep It Simple, Stupid." There are many great fft libraries already around. Kiss FFT is not trying to be better than any of them. It only attempts to be a reasonably efficient, moderately useful FFT that can use fixed or floating data types and can be incorporated into someone's C program in a few minutes with trivial licensing. %package licenses Summary: A Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid %description licenses License and documentation files for KISS FFT - A mixed-radix Fast Fourier Transform based up on the principle, "Keep It Simple, Stupid." %package static Summary: A Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid Requires: %{name}-licenses %description static Static libraries for KISS FFT - A mixed-radix Fast Fourier Transform based on the principle, "Keep It Simple, Stupid." %package devel Summary: A Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-licenses %description devel Dynamically linked libraries and header files for KISS FFT - A mixed-radix Fast Fourier Transform based on the principle, "Keep It Simple, Stupid." There are many great fft libraries already around. Kiss FFT is not trying to be better than any of them. It only attempts to be a reasonably efficient, moderately useful FFT that can use fixed or floating data types and can be incorporated into someone's C program in a few minutes with trivial licensing. %prep %autosetup %build %{set_build_flags} # Each of the libraries needs to be made separately for build_type in %{build_types}; do mkdir ${build_type}-dynamic cd ${build_type}-dynamic %cmake .. -DKISSFFT_DATATYPE=${build_type} -DKISSFFT_TEST=ON -DKISSFFT_TOOLS=ON \ -DKISSFFT_STATIC=OFF -DBUILD_SHARED_LIBS=ON %cmake_build cd .. mkdir ${build_type}-static cd ${build_type}-static %cmake .. -DKISSFFT_DATATYPE=${build_type} -DKISSFFT_TEST=ON -DKISSFFT_TOOLS=ON \ -DKISSFFT_STATIC=ON -DBUILD_SHARED_LIBS=OFF %cmake_build cd .. done %install mkdir -p %{buildroot}%{_docdir}/%{name} cp -p README.md %{buildroot}%{_docdir}/%{name} cp -p README.simd %{buildroot}%{_docdir}/%{name} cp -p COPYING %{buildroot}%{_docdir}/%{name} cp -p TIPS %{buildroot}%{_docdir}/%{name} cp -p CHANGELOG %{buildroot}%{_docdir}/%{name} cp -p LICENSES/BSD-3-Clause BSD-3-Clause cp -p BSD-3-Clause %{buildroot}%{_docdir}/%{name} for build_type in %{build_types}; do cd ${build_type}-dynamic %cmake_install cd .. cd ${build_type}-static %cmake_install cd .. done %check for build_type in %{build_types}; do cd ${build_type}-dynamic %ctest cd .. cd ${build_type}-static %ctest cd .. done %files licenses %dir %{_docdir}/%{name} %license %{_docdir}/%{name}/COPYING %license %{_docdir}/%{name}/BSD-3-Clause %doc %{_docdir}/%{name}/README.md %doc %{_docdir}/%{name}/README.simd %doc %{_docdir}/%{name}/TIPS %doc %{_docdir}/%{name}/CHANGELOG %files %{_libdir}/libkissfft-int16_t.so.* %{_libdir}/libkissfft-int32_t.so.* %{_libdir}/libkissfft-float.so.* %{_libdir}/libkissfft-double.so.* %{_libdir}/libkissfft-simd.so.* %{_bindir}/fastconv-int16_t %{_bindir}/fastconvr-int16_t %{_bindir}/fft-int16_t %{_bindir}/psdpng-int16_t %{_bindir}/fastconv-int32_t %{_bindir}/fastconvr-int32_t %{_bindir}/fft-int32_t %{_bindir}/psdpng-int32_t %{_bindir}/fastconv-float %{_bindir}/fastconvr-float %{_bindir}/fft-float %{_bindir}/psdpng-float %{_bindir}/fastconv-double %{_bindir}/fastconvr-double %{_bindir}/fft-double %{_bindir}/psdpng-double %{_bindir}/fastconv-simd %{_bindir}/fastconvr-simd %{_bindir}/fft-simd %files static %{_libdir}/libkissfft-int16_t.a %{_libdir}/libkissfft-int32_t.a %{_libdir}/libkissfft-float.a %{_libdir}/libkissfft-double.a %{_libdir}/libkissfft-simd.a %files devel %dir %{_includedir}/kissfft %{_includedir}/kissfft/kiss_fft.h %{_includedir}/kissfft/kissfft.hh %{_includedir}/kissfft/kiss_fftndr.h %{_includedir}/kissfft/kiss_fftr.h %{_includedir}/kissfft/kiss_fftnd.h %{_libdir}/libkissfft-int16_t.so %{_libdir}/libkissfft-int32_t.so %{_libdir}/libkissfft-float.so %{_libdir}/libkissfft-double.so %{_libdir}/libkissfft-simd.so %dir %{_libdir}/cmake/%{name}/ %{_libdir}/cmake/%{name}/*.cmake %{_libdir}/pkgconfig/*.pc %changelog * Thu Dec 01 2022 Benson Muite - 131.1.0-6 - Add pkgconfig files - Add dynamic libraries - Use CMake instead of Make - Update to 131.1 - Use same versioning scheme as in main repository * Thu Jul 21 2022 Fedora Release Engineering - 1.3.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Thu Jan 20 2022 Fedora Release Engineering - 1.3.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Thu Jul 22 2021 Fedora Release Engineering - 1.3.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Tue Jan 26 2021 Fedora Release Engineering - 1.3.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Fri Aug 28 2020 Guido Aulisi - 1.3.1-1 - Update to 1.3.1 - Drop python2 dependency * Tue Jul 28 2020 Fedora Release Engineering - 1.3.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Wed Jan 29 2020 Fedora Release Engineering - 1.3.0-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Thu Jul 25 2019 Fedora Release Engineering - 1.3.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Fri Feb 01 2019 Fedora Release Engineering - 1.3.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Thu Jul 19 2018 František Dvořák - 1.3.0-7 - Fix problems with python * Fri Jul 13 2018 Fedora Release Engineering - 1.3.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Wed Feb 07 2018 Fedora Release Engineering - 1.3.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Thu Aug 03 2017 Fedora Release Engineering - 1.3.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 1.3.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Fri Feb 10 2017 Fedora Release Engineering - 1.3.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Mon Nov 14 2016 František Dvořák - 1.3.0-1 - Initial package