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