diff options
author | CoprDistGit <infra@openeuler.org> | 2025-07-10 07:22:06 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2025-07-10 07:22:06 +0000 |
commit | 4875afd91fbd888a6bb594aeb22b706b34d808db (patch) | |
tree | 5ddeb58728a0b0f7db968a9938113bbbda05f0d4 | |
parent | a87834d6d2ff4c9e9213d13ca59f53c83b724692 (diff) |
automatic import of fftwopeneuler24.03_LTS_SP1
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | fftw.spec | 489 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 491 insertions, 0 deletions
@@ -0,0 +1 @@ +/fftw-3.3.10.tar.gz diff --git a/fftw.spec b/fftw.spec new file mode 100644 index 0000000..b9c9372 --- /dev/null +++ b/fftw.spec @@ -0,0 +1,489 @@ +%define debug_package %{nil} +%bcond_with openmpi +%bcond_with mpich + +%if %{with mpich} +%global mpi_list %{?mpi_list} mpich +%endif +%if %{with openmpi} +%global mpi_list %{?mpi_list} openmpi +%endif + +Name: fftw +Version: 3.3.10 +Release: 1 +Summary: A C subroutine library for computing the discrete Fourier transform +License: GPLv2+ +URL: http://www.fftw.org +Source0: http://www.fftw.org/fftw-%{version}.tar.gz +BuildRequires: gcc-gfortran autoconf automake libtool time perl-interpreter gcc_secure make + +%global quad 0 +# disable quad-precision compile tempoary +%ifarch x86_64 +%global quad 0 +%endif + +%if %{with mpich} +BuildRequires: mpich-devel nss-myhostname +%endif + +%if %{with openmpi} +BuildRequires: openmpi-devel +%endif + +%if %{with mpich} || %{with openmpi} +BuildRequires: environment-modules +%endif + +Requires(post): info +Requires(preun): info + +%description +This package is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, +and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST). + +%package libs +Summary: FFTW run-time library +Provides: fftw3 = %{version}-%{release} +Obsoletes: fftw-libs-threads < %{version}-%{release} fftw-libs-openmp < %{version}-%{release} + +Requires: %{name}-libs-single = %{version}-%{release} %{name}-libs-double = %{version}-%{release} +Requires: %{name}-libs-long = %{version}-%{release} + +%if %{quad} +Requires: %{name}-libs-quad = %{version}-%{release} +%endif + +%description libs +This Package is a dummy package. + +%package devel +Summary: Header files and libraries for development +Provides: fftw3-devel = %{version}-%{release} %{name}-static = %{version}-%{release} +Provides: fftw3-static = %{version}-%{release} +Obsoletes: %{name}-static < %{version}-%{release} + +Requires: pkgconfig %{name} = %{version}-%{release} %{name}-libs = %{version}-%{release} + +%description devel +The fftw-devel package contains the static libraries, the header files and other development content. + +%package libs-double +Summary: FFTW library, double precision + +%description libs-double +This package contains the FFTW library compiled in double precision. + +%package libs-single +Summary: FFTW library, single precision + +%description libs-single +This package contains the FFTW library compiled in single precision. + +%package libs-long +Summary: FFTW library, long double precision + +%description libs-long +This package contains the FFTW library compiled in long double +precision. + +%if %{quad} +%package libs-quad +Summary: The FFTW library compiled in quadruple precision + +%description libs-quad +This package contains the FFTW library compiled in quadruple precision. +%endif + +%if %{with mpich} +%package mpich-libs +Summary: FFTW MPICH run-time library +Provides: fftw3-mpich = %{version}-%{release} + +Requires: %{name}-mpich-libs-single = %{version}-%{release} %{name}-mpich-libs-double = %{version}-%{release} +Requires: %{name}-mpich-libs-long = %{version}-%{release} + +%description mpich-libs +This package contains the FFTW MPICH run-time library. + +%package mpich-devel +Summary: Header files and libraries for the FFTW MPICH library +Provides: fftw3-mpich-devel = %{version}-%{release} fftw3-mpich-static = %{version}-%{release} +Provides: %{name}-mpich-static = %{version}-%{release} +Obsoletes: %{name}-mpich-static < %{version}-%{release} + +Requires: mpich-devel pkgconfig %{name}-devel = %{version}-%{release} %{name}-mpich-libs = %{version}-%{release} + +%description mpich-devel +This package contains the header files and development libraries for MPICH. + +%package mpich-libs-double +Summary: Double precision +Requires: %{name}-libs-double = %{version}-%{release} + +%description mpich-libs-double +This package contains the FFTW MPICH library compiled in double precision. + +%package mpich-libs-single +Summary: Single precision +Requires: %{name}-libs-single = %{version}-%{release} + +%description mpich-libs-single +This package contains the FFTW MPICH library compiled in single precision. + +%package mpich-libs-long +Summary: Long double precision +Requires: %{name}-libs-long = %{version}-%{release} + +%description mpich-libs-long +This package contains the FFTW MPICH library compiled in long double precision. +%endif + +%if %{with openmpi} +%package openmpi-libs +Summary: FFTW OpenMPI run-time library +Provides: fftw3-openmpi = %{version}-%{release} + +Requires: %{name}-openmpi-libs-single = %{version}-%{release} %{name}-openmpi-libs-double = %{version}-%{release} +Requires: %{name}-openmpi-libs-long = %{version}-%{release} + +%description openmpi-libs +This package contains the individual FFTW. + +%package openmpi-devel +Summary: Header files and libraries for the FFTW OpenMPI library +Provides: fftw3-openmpi-devel = %{version}-%{release} fftw3-openmpi-static = %{version}-%{release} +Provides: %{name}-openmpi-static = %{version}-%{release} +Obsoletes: %{name}-openmpi-static < %{version}-%{release} +Requires: openmpi-devel pkgconfig %{name}-devel = %{version}-%{release} %{name}-openmpi-libs = %{version}-%{release} + +%description openmpi-devel +This package contains the header files and libraries for the FFTW OpenMPI library. + +%package openmpi-libs-double +Summary: Double precision +Requires: %{name}-libs-double = %{version}-%{release} + +%description openmpi-libs-double +This package contains the FFTW OpenMPI library compiled in double precision. + +%package openmpi-libs-single +Summary: Single precision +Requires: %{name}-libs-single = %{version}-%{release} + +%description openmpi-libs-single +This package contains the FFTW OpenMPI library compiled in single precision. + +%package openmpi-libs-long +Summary: Long double precision +Requires: %{name}-libs-long = %{version}-%{release} + +%description openmpi-libs-long +This package contains the FFTW OpenMPI library compiled in long double precision. +%endif + +%package help +Summary: Help documentation related to %{name} +BuildArch: noarch +Provides: %{name}-doc = %{version}-%{release} +Obsoletes: %{name}-doc < %{version}-%{release} + +%description help +This package includes help documentation and manuals related to %{name} + +%prep +%autosetup -p1 + +%build +%if %{with mpich} || %{with openmpi} +source /etc/profile.d/modules.sh +%endif +autoreconf -vfi +export F77=gfortran + +function build_section() +{ + ln -s ../configure . + %configure --enable-shared --disable-dependency-tracking --enable-threads --enable-openmp $1 + sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool + sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool + %make_build +} + +function mpi_build_section() +{ + ln -s ../configure . + export CC=mpicc + %configure --enable-shared --disable-dependency-tracking --enable-threads --enable-openmp $1 --enable-mpi --libdir=%{_libdir}/$mpi/lib \ + --bindir=%{_libdir}/$mpi/bin --sbindir=%{_libdir}/$mpi/sbin --includedir=%{_includedir}/$mpi-%{_arch} --mandir=%{_libdir}/$mpi/share/man + %make_build +} + +mkdir single double long quad +%ifarch x86_64 + cd single + siarch="--enable-single --enable-sse2 --enable-avx" + build_section $siarch + cd ../double + diarch="--enable-double --enable-sse2 --enable-avx" + build_section $diarch +%else + cd single + build_section --enable-single + cd ../double + build_section --enable-double +%endif + +cd ../long +build_section --enable-long-double + +%if %{quad} + cd ../quad + build_section --enable-quad-precision +%endif +cd .. + +%if %{with mpich} || %{with openmpi} +for mpi in %{mpi_list} +do + module load mpi/${mpi}-%{_arch} + mkdir ${mpi}-single ${mpi}-double ${mpi}-long ${mpi}-quad + %ifarch x86_64 + cd ${mpi}-single + msiarch="--enable-single --enable-sse2 --enable-avx" + mpi_build_section $msiarch + cd ../${mpi}-double + mdiarch="--enable-double --enable-sse2 --enable-avx" + mpi_build_section $mdiarch + %else + cd ${mpi}-single + mpi_build_section --enable-single + cd ../${mpi}-double + mpi_build_section --enable-double + %endif + + cd ../${mpi}-long + mpi_build_section --enable-long-double + cd .. + module unload mpi/${mpi}-%{_arch} +done +%endif + +%install +function install_section() +{ + %make_install -C ${mpi}-$1 + find %{buildroot}%{_libdir}/${mpi}/lib -name libfftw\* -a \! -name \*_mpi.\* -delete + rm -r %{buildroot}%{_libdir}/${mpi}/{bin,share} +} +%if %{with mpich} || %{with openmpi} +source /etc/profile.d/modules.sh +%endif + +%make_install -C single +%make_install -C double +%make_install -C long + +%if %{quad} + %make_install -C quad +%endif + +%global delete_la find $RPM_BUILD_ROOT -type f -name "*.la" -delete + +%if %{with mpich} || %{with openmpi} +for mpi in %{mpi_list} +do + module load mpi/${mpi}-%{_arch} + install_section single + install_section double + install_section long + module unload mpi/${mpi}-%{_arch} +done +%endif + +rm -f %{buildroot}%{_infodir}/dir +%delete_la + +find %{buildroot} -type f -name '*.so*' -exec strip '{}' ';' +find %{buildroot} -type f -name 'fftw*-wisdom*' -exec strip '{}' ';' + +%check +%if %{with mpich} || %{with openmpi} +source /etc/profile.d/modules.sh +%endif +mydir=`pwd` + +export LD_LIBRARY_PATH=$mydir/single/.libs:$mydir/single/threads/.libs +make %{?_smp_mflags} -C single check +export LD_LIBRARY_PATH=$mydir/double/.libs:$mydir/double/threads/.libs +make %{?_smp_mflags} -C double check +export LD_LIBRARY_PATH=$mydir/long/.libs:$mydir/long/threads/.libs +make %{?_smp_mflags} -C long check + +%if %{quad} + export LD_LIBRARY_PATH=$mydir/quad/.libs:$mydir/quad/threads/.libs + make %{?_smp_mflags} -C quad check +%endif + +%if %{with mpich} || %{with openmpi} +for mpi in %{mpi_list} +do + module load mpi/${mpi}-%{_arch} + export LD_LIBRARY_PATH=$mydir/${mpi}-single/.libs:$mydir/single/threads/.libs + make %{?_smp_mflags} -C ${mpi}-single/mpi check + export LD_LIBRARY_PATH=$mydir/${mpi}-double/mpi check + export LD_LIBRARY_PATH=$mydir/${mpi}-long/.libs:$mydir/long/threads/.libs + make %{?_smp_mflags} -C ${mpi}-long/mpi check + module unload mpi/${mpi}-%{_arch} +done +%endif + +%post libs-single -p /sbin/ldconfig +%postun libs-single -p /sbin/ldconfig +%post libs-double -p /sbin/ldconfig +%postun libs-double -p /sbin/ldconfig +%post libs-long -p /sbin/ldconfig +%postun libs-long -p /sbin/ldconfig + +%if %{quad} +%post libs-quad -p /sbin/ldconfig +%postun libs-quad -p /sbin/ldconfig +%endif + +%post devel +/sbin/install-info --section="Math" %{_infodir}/%{name}.info.gz %{_infodir}/dir 2>/dev/null || : + +%preun devel +if [ "$1" = 0 ] +then + /sbin/install-info --delete %{_infodir}/%{name}.info.gz %{_infodir}/dir 2>/dev/null || : +fi + +%files +%{_bindir}/fftw*-wisdom* +%exclude /usr/lib/debug/usr/bin/fftw*-wisdom* + +%files libs +%exclude /usr/lib/debug/usr/lib64/ + +%files libs-single +%license COPYING COPYRIGHT +%doc AUTHORS ChangeLog NEWS README* TODO +%{_libdir}/libfftw3f.so.* +%{_libdir}/libfftw3f_threads.so.* +%{_libdir}/libfftw3f_omp.so.* + +%files libs-double +%license COPYING COPYRIGHT +%doc AUTHORS ChangeLog NEWS README* TODO +%{_libdir}/libfftw3.so.* +%{_libdir}/libfftw3_threads.so.* +%{_libdir}/libfftw3_omp.so.* + +%files libs-long +%license COPYING COPYRIGHT +%doc AUTHORS ChangeLog NEWS README* TODO +%{_libdir}/libfftw3l.so.* +%{_libdir}/libfftw3l_threads.so.* +%{_libdir}/libfftw3l_omp.so.* + +%if %{quad} +%files libs-quad +%license COPYING COPYRIGHT +%doc AUTHORS ChangeLog NEWS README* TODO +%{_libdir}/libfftw3q.so.* +%{_libdir}/libfftw3q_threads.so.* +%{_libdir}/libfftw3q_omp.so.* +%endif + +%files devel +%doc doc/FAQ/fftw-faq.html/ +%doc %{_infodir}/fftw3.info* +%{_includedir}/fftw3* +%{_libdir}/cmake/fftw3/*.cmake +%{_libdir}/pkgconfig/fftw3*.pc +%{_libdir}/libfftw3*.{so,a} + +%files help +%doc doc/*.pdf doc/html/ +%{_mandir}/man1/fftw*.1* + +%if %{with mpich} +%files mpich-libs + +%files mpich-libs-single +%license COPYING COPYRIGHT +%doc AUTHORS ChangeLog NEWS README* TODO +%{_libdir}/mpich/lib/libfftw3f_mpi.so.* + +%files mpich-libs-double +%license COPYING COPYRIGHT +%doc AUTHORS ChangeLog NEWS README* TODO +%{_libdir}/mpich/lib/libfftw3_mpi.so.* + +%files mpich-libs-long +%license COPYING COPYRIGHT +%doc AUTHORS ChangeLog NEWS README* TODO +%{_libdir}/mpich/lib/libfftw3l_mpi.so.* + +%files mpich-devel +%doc doc/FAQ/fftw-faq.html/ +%{_includedir}/mpich-%{_arch} +%{_libdir}/mpich/lib/cmake/fftw3/*.cmake +%{_libdir}/mpich/lib/pkgconfig/fftw3*.pc +%{_libdir}/mpich/lib/libfftw3*.{so,a} +%endif + +%if %{with openmpi} +%files openmpi-libs + +%files openmpi-libs-single +%license COPYING COPYRIGHT +%doc AUTHORS ChangeLog NEWS README* TODO +%{_libdir}/openmpi/lib/libfftw3f_mpi.so.* + +%files openmpi-libs-double +%license COPYING COPYRIGHT +%doc AUTHORS ChangeLog NEWS README* TODO +%{_libdir}/openmpi/lib/libfftw3_mpi.so.* + +%files openmpi-libs-long +%license COPYING COPYRIGHT +%doc AUTHORS ChangeLog NEWS README* TODO +%{_libdir}/openmpi/lib/libfftw3l_mpi.so.* + +%files openmpi-devel +%doc doc/FAQ/fftw-faq.html/ +%{_includedir}/openmpi-%{_arch} +%{_libdir}/openmpi/lib/cmake/fftw3/*.cmake +%{_libdir}/openmpi/lib/pkgconfig/fftw3*.pc +%{_libdir}/openmpi/lib/libfftw3*.{so,a} +%endif + +%changelog +* Thu Sep 15 2022 lutkunpeng <lutkunpeng@163.com> - 3.3.10-1 +- DESC: update to 3.3.10 + +* Sat Jul 30 2022 yaoxin <yaoxin30@h-partners.com> - 3.3.8-9 +- Strip the symbol table +- Fix self build fail +- Strip the binary fftw*-wisdom* symbol + +* Mon Mar 28 2022 baizhonggui <baizhonggui@huawei.com> - 3.3.8-8 +- fix build fail + +* Tue May 26 2020 Captain Wei <captain.a.wei@gmail.com> - 3.3.8-7 +- isable quad-precision compile tempoary + +* Wed Jan 15 2020 zhangrui <zhangrui182@huawei.com> - 3.3.8-6 +- fix selfbuild fail + +* Thu Dec 19 2019 zhujunhao <zhujunhao5@huawei.com> - 3.3.8-5 +- Modify for x86 build fail + +* Wed Nov 27 2019 dongjian <dongjian13@huawei.com> - 3.3.8-4 +- Package init + +* Fri Nov 15 2019 dongjian <dongjian13@huawei.com> - 3.3.8-3 +- Package init @@ -0,0 +1 @@ +8ccbf6a5ea78a16dbc3e1306e234cc5c fftw-3.3.10.tar.gz |