contrib/fftw/Pkgfile

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
}