Upgrade to fftw-3.3.10
Signed-off-by: David Cantrell <david.l.cantrell@gmail.com>
This commit is contained in:
parent
84a03db2dd
commit
9f430cc911
1
.gitignore
vendored
1
.gitignore
vendored
@ -9,3 +9,4 @@ fftw-3.2.2.tar.gz
|
||||
/fftw-3.3.4.tar.gz
|
||||
/fftw-3.3.5.tar.gz
|
||||
/fftw-3.3.8.tar.gz
|
||||
/fftw-3.3.10.tar.gz
|
||||
|
156
fftw.spec
156
fftw.spec
@ -11,19 +11,15 @@
|
||||
%global mpi_list %{?mpi_list} openmpi
|
||||
%endif
|
||||
|
||||
|
||||
Name: fftw
|
||||
Version: 3.3.8
|
||||
Release: 11%{?dist}
|
||||
Version: 3.3.10
|
||||
Release: 1%{?dist}
|
||||
Summary: A Fast Fourier Transform library
|
||||
License: GPLv2+
|
||||
URL: http://www.fftw.org
|
||||
Source0: http://www.fftw.org/fftw-%{version}.tar.gz
|
||||
BuildRequires: gcc-gfortran
|
||||
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: libtool
|
||||
BuildRequires: gcc-gfortran
|
||||
|
||||
%global quad 0
|
||||
# Quad precision support only available with gcc >= 4.6 (Fedora >= 15)
|
||||
@ -45,7 +41,7 @@ BuildRequires: openmpi-devel
|
||||
%if %{with mpich} || %{with openmpi}
|
||||
BuildRequires: environment-modules
|
||||
%endif
|
||||
BuildRequires: make
|
||||
BuildRequires: make
|
||||
|
||||
|
||||
%description
|
||||
@ -273,11 +269,8 @@ library.
|
||||
%build
|
||||
# Explicitly load shell support for the environment-modules package, used
|
||||
# below via 'module' pseudo-command.
|
||||
source /etc/profile.d/modules.sh
|
||||
. /etc/profile.d/modules.sh
|
||||
|
||||
# Regenerate autoconf files using current tools so proper build flags
|
||||
# from redhat-rpm-config are used
|
||||
autoreconf -vfi
|
||||
# Configure uses g77 by default, if present on system
|
||||
export F77=gfortran
|
||||
|
||||
@ -298,113 +291,109 @@ prec_flags[3]=--enable-quad-precision
|
||||
|
||||
%ifarch x86_64
|
||||
# Enable SSE2 and AVX support for x86_64
|
||||
for((i=0;i<2;i++)); do
|
||||
prec_flags[i]+=" --enable-sse2 --enable-avx"
|
||||
for ((i=0; i<2; i++)) ; do
|
||||
prec_flags[i]+=" --enable-sse2 --enable-avx"
|
||||
done
|
||||
%endif
|
||||
|
||||
# No NEON run time detection, not all ARM SoCs have NEON
|
||||
#%ifarch %{arm}
|
||||
## Compile support for NEON instructions
|
||||
#for((i=0;i<2;i++)); do
|
||||
# prec_flags[i]+=" --enable-neon"
|
||||
#for ((i=0; i<2; i++)) ; do
|
||||
# prec_flags[i]+=" --enable-neon"
|
||||
#done
|
||||
#%endif
|
||||
|
||||
#%ifarch ppc ppc64
|
||||
## Compile support for Altivec instructions
|
||||
#for((i=0;i<2;i++)); do
|
||||
#prec_flags[i]+=" --enable-altivec"
|
||||
#for ((i=0; i<2; i++)) ; do
|
||||
# prec_flags[i]+=" --enable-altivec"
|
||||
#done
|
||||
#%endif
|
||||
|
||||
# Loop over precisions
|
||||
%if %{quad}
|
||||
for((iprec=0;iprec<4;iprec++))
|
||||
for ((iprec=0; iprec<4; iprec++)) ; do
|
||||
%else
|
||||
for((iprec=0;iprec<3;iprec++))
|
||||
for ((iprec=0; iprec<3; iprec++)) ; do
|
||||
%endif
|
||||
do
|
||||
mkdir ${prec_name[iprec]}${ver_name[iver]}
|
||||
cd ${prec_name[iprec]}${ver_name[iver]}
|
||||
ln -s ../configure .
|
||||
%{configure} ${BASEFLAGS} ${prec_flags[iprec]}
|
||||
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 %{?_smp_mflags}
|
||||
cd ..
|
||||
mkdir ${prec_name[iprec]}${ver_name[iver]}
|
||||
cd ${prec_name[iprec]}${ver_name[iver]}
|
||||
ln -s ../configure .
|
||||
%{configure} ${BASEFLAGS} ${prec_flags[iprec]}
|
||||
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 %{?_smp_mflags}
|
||||
cd ..
|
||||
done
|
||||
|
||||
# MPI Builds - this duplicates the non-mpi builds, but oh well
|
||||
for mpi in %{mpi_list}
|
||||
do
|
||||
module load mpi/${mpi}-%{_arch}
|
||||
# Loop over precisions - no quad precision support with MPI
|
||||
for((iprec=0;iprec<3;iprec++))
|
||||
do
|
||||
mkdir ${mpi}-${prec_name[iprec]}${ver_name[iver]}
|
||||
cd ${mpi}-${prec_name[iprec]}${ver_name[iver]}
|
||||
ln -s ../configure .
|
||||
# Force linking the _mpi.so libraries with the mpi libs. This works because
|
||||
# we get rid of all of the non-mpi components of these builds
|
||||
export CC=mpicc
|
||||
%{configure} ${BASEFLAGS} ${prec_flags[iprec]} --enable-mpi \
|
||||
--libdir=%{_libdir}/$mpi/lib \
|
||||
--bindir=%{_libdir}/$mpi/bin \
|
||||
--sbindir=%{_libdir}/$mpi/sbin \
|
||||
--includedir=%{_includedir}/$mpi-%{_arch} \
|
||||
--mandir=%{_libdir}/$mpi/share/man
|
||||
make %{?_smp_mflags}
|
||||
cd ..
|
||||
done
|
||||
module unload mpi/${mpi}-%{_arch}
|
||||
for mpi in %{mpi_list} ; do
|
||||
module load mpi/${mpi}-%{_arch}
|
||||
# Loop over precisions - no quad precision support with MPI
|
||||
for((iprec=0;iprec<3;iprec++)) ; do
|
||||
mkdir ${mpi}-${prec_name[iprec]}${ver_name[iver]}
|
||||
cd ${mpi}-${prec_name[iprec]}${ver_name[iver]}
|
||||
ln -s ../configure .
|
||||
# Force linking the _mpi.so libraries with the mpi libs. This works because
|
||||
# we get rid of all of the non-mpi components of these builds
|
||||
export CC=mpicc
|
||||
%{configure} ${BASEFLAGS} ${prec_flags[iprec]} \
|
||||
--enable-mpi \
|
||||
--libdir=%{_libdir}/$mpi/lib \
|
||||
--bindir=%{_libdir}/$mpi/bin \
|
||||
--sbindir=%{_libdir}/$mpi/sbin \
|
||||
--includedir=%{_includedir}/$mpi-%{_arch} \
|
||||
--mandir=%{_libdir}/$mpi/share/man
|
||||
make %{?_smp_mflags}
|
||||
cd ..
|
||||
done
|
||||
module unload mpi/${mpi}-%{_arch}
|
||||
done
|
||||
|
||||
|
||||
%install
|
||||
# Explicitly load shell support for the environment-modules package, used
|
||||
# below via 'module' pseudo-command.
|
||||
source /etc/profile.d/modules.sh
|
||||
|
||||
%if %{quad}
|
||||
for ver in single double long quad
|
||||
for ver in single double long quad ; do
|
||||
%else
|
||||
for ver in single double long
|
||||
for ver in single double long ; do
|
||||
%endif
|
||||
do
|
||||
make -C $ver install DESTDIR=%{buildroot}
|
||||
make -C $ver install DESTDIR=%{buildroot}
|
||||
done
|
||||
|
||||
# MPI
|
||||
for mpi in %{mpi_list}
|
||||
do
|
||||
module load mpi/${mpi}-%{_arch}
|
||||
for ver in single double long
|
||||
do
|
||||
make -C ${mpi}-${ver} install DESTDIR=%{buildroot}
|
||||
# Remove duplicated non-mpi libraries, binaries, and data
|
||||
find %{buildroot}%{_libdir}/${mpi}/lib -name libfftw\* -a \! -name \*_mpi.\* -delete
|
||||
rm -r %{buildroot}%{_libdir}/${mpi}/{bin,share}
|
||||
done
|
||||
module unload mpi/${mpi}-%{_arch}
|
||||
for mpi in %{mpi_list} ; do
|
||||
module load mpi/${mpi}-%{_arch}
|
||||
for ver in single double long ; do
|
||||
make -C ${mpi}-${ver} install DESTDIR=%{buildroot}
|
||||
# Remove duplicated non-mpi libraries, binaries, and data
|
||||
find %{buildroot}%{_libdir}/${mpi}/lib -name libfftw\* -a \! -name \*_mpi.\* -delete
|
||||
rm -r %{buildroot}%{_libdir}/${mpi}/{bin,share}
|
||||
done
|
||||
module unload mpi/${mpi}-%{_arch}
|
||||
done
|
||||
|
||||
rm -f %{buildroot}%{_infodir}/dir
|
||||
find %{buildroot} -name \*.la -delete
|
||||
|
||||
%check
|
||||
# Explicitly load shell support for the environment-modules package, used
|
||||
# below via 'module' pseudo-command.
|
||||
source /etc/profile.d/modules.sh
|
||||
. /etc/profile.d/modules.sh
|
||||
|
||||
bdir=`pwd`
|
||||
bdir=$(pwd)
|
||||
%if %{quad}
|
||||
for ver in single double long quad
|
||||
for ver in single double long quad ; do
|
||||
%else
|
||||
for ver in single double long
|
||||
for ver in single double long ; do
|
||||
%endif
|
||||
do
|
||||
export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs
|
||||
make %{?_smp_mflags} -C $ver check
|
||||
export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs
|
||||
make %{?_smp_mflags} -C $ver check
|
||||
done
|
||||
|
||||
# MPI
|
||||
%if %{with openmpi}
|
||||
%ifarch %{ix86}
|
||||
@ -413,15 +402,13 @@ done
|
||||
export OMPI_MCA_btl="^vader"
|
||||
%endif
|
||||
%endif
|
||||
for mpi in %{mpi_list}
|
||||
do
|
||||
module load mpi/${mpi}-%{_arch}
|
||||
for ver in single double long
|
||||
do
|
||||
export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs
|
||||
make %{?_smp_mflags} -C ${mpi}-${ver}/mpi check
|
||||
done
|
||||
module unload mpi/${mpi}-%{_arch}
|
||||
for mpi in %{mpi_list} ; do
|
||||
module load mpi/${mpi}-%{_arch}
|
||||
for ver in single double long ; do
|
||||
export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs
|
||||
make %{?_smp_mflags} -C ${mpi}-${ver}/mpi check
|
||||
done
|
||||
module unload mpi/${mpi}-%{_arch}
|
||||
done
|
||||
|
||||
%ldconfig_scriptlets libs-single
|
||||
@ -543,6 +530,9 @@ done
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Dec 20 2021 David Cantrell <dcantrell@redhat.com> - 3.3.10-1
|
||||
- Upgrade to fftw-3.3.10
|
||||
|
||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.8-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (fftw-3.3.8.tar.gz) = ab918b742a7c7dcb56390a0a0014f517a6dff9a2e4b4591060deeb2c652bf3c6868aa74559a422a276b853289b4b701bdcbd3d4d8c08943acf29167a7be81a38
|
||||
SHA512 (fftw-3.3.10.tar.gz) = 2d34b5ccac7b08740dbdacc6ebe451d8a34cf9d9bfec85a5e776e87adf94abfd803c222412d8e10fbaa4ed46f504aa87180396af1b108666cde4314a55610b40
|
||||
|
Loading…
Reference in New Issue
Block a user