56 lines
1.9 KiB
Plaintext
56 lines
1.9 KiB
Plaintext
# Description: C subroutine library for computing discrete Fourier transform.
|
|
# URL: https://www.fftw.org/
|
|
# Maintainer: Tim Biermann, tbier at posteo dot de
|
|
# Depends on: openmpi gcc-fortran
|
|
|
|
name=fftw
|
|
version=3.3.10
|
|
release=2
|
|
source=(http://www.fftw.org/$name-$version.tar.gz)
|
|
|
|
build() {
|
|
cp -av $name-$version ${name}-${version}-double
|
|
cp -av $name-$version ${name}-${version}-long-double
|
|
cp -av $name-$version ${name}-${version}-quad
|
|
|
|
export F77='gfortran'
|
|
CFLAGS+=" -O3 -fomit-frame-pointer -malign-double -fstrict-aliasing -ffast-math"
|
|
# default configure call
|
|
_default_configure="./configure --prefix=/usr --enable-shared --enable-threads --enable-mpi --enable-openmp"
|
|
|
|
# libtool fails to link with ccache in the path
|
|
[ -e '/usr/bin/ccache' ] && PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
|
|
# configure single precision
|
|
cd $SRC/$name-$version
|
|
${_default_configure} --enable-sse --enable-avx --enable-single
|
|
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
|
|
|
|
# configure double precision
|
|
cd $SRC/$name-$version-double
|
|
${_default_configure} --enable-sse2 --enable-avx
|
|
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
|
|
|
|
# configure long-double precission
|
|
cd $SRC/$name-$version-long-double
|
|
${_default_configure} --enable-long-double
|
|
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
|
|
|
|
# configure quad precision
|
|
cd $SRC/$name-$version-quad
|
|
${_default_configure} --disable-mpi --enable-quad-precision
|
|
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
|
|
|
|
make -C $SRC/$name-$version
|
|
make -C $SRC/$name-$version-double
|
|
make -C $SRC/$name-$version-long-double
|
|
make -C $SRC/$name-$version-quad
|
|
|
|
make DESTDIR=$PKG install -C $SRC/$name-$version
|
|
make DESTDIR=$PKG install -C $SRC/$name-$version-double
|
|
make DESTDIR=$PKG install -C $SRC/$name-$version-long-double
|
|
make DESTDIR=$PKG install -C $SRC/$name-$version-quad
|
|
|
|
rm -r $PKG/usr/share/info
|
|
rm $PKG/usr/lib/*.la
|
|
}
|