fftw: fixed problems with dependent software

This commit is contained in:
Tim Biermann 2022-09-24 16:03:04 +02:00
parent 6e890bf6ce
commit 92856485f4
Signed by: tb
GPG Key ID: 42F8B4E30B673606
2 changed files with 37 additions and 53 deletions

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3yO8N5sh2TxXTD6FILYUAi74zFY/E99SSw17iAB+hTGliGUGbU66aHSKNQxmkp1zoOhl/lLsKuHbpWR6QdxF+wM=
SHA256 (Pkgfile) = 32f58ea8eb328fefa861cd1873023a1025fb08afeddcf9e21f438bab755badba
RWSagIOpLGJF39g9D/3Pjj7hScxSpdZs2ZLXIygxc0BXZ0Kk9pjm5JBmn2hDU5ipb+KAbLyMVsnfh1Vlb7EysKqM3rtdtsr+TgA=
SHA256 (Pkgfile) = ca26a6ee27fea00bceab04f62445f234b2b0f64acf429cdb904013b219be593d
SHA256 (.footprint) = 21c52df24478e05ef8e774a9e9e0d1d06147380c21dbe698077596d4ae6fe681
SHA256 (fftw-3.3.10.tar.gz) = 56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467

View File

@ -1,71 +1,55 @@
# Description: C subroutine library for computing discrete Fourier transform.
# URL: https://www.fftw.org/
# Maintainer: Danny Rawlins, crux at romster dot me
# Depends on: gcc-fortran openmpi
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on: openmpi gcc-fortran
name=fftw
version=3.3.10
release=2
source=(https://www.fftw.org/$name-$version.tar.gz)
source=(http://www.fftw.org/$name-$version.tar.gz)
build() {
cd $name-$version
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
local config="
F77=gfortran
--prefix=/usr
--enable-threads
--enable-shared
--enable-openmp"
# 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
# use upstream default CFLAGS while keeping our -march/-mtune
CFLAGS+=" -O3 -fomit-frame-pointer -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math -fPIC -mavx2"
# 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
# compiling single precision library
./configure \
$config \
--enable-single \
--enable-avx \
--enable-sse \
--enable-mpi
# 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
make DESTDIR=$PKG install
make clean
make -C $SRC/$name-$version
make -C $SRC/$name-$version-double
make -C $SRC/$name-$version-long-double
make -C $SRC/$name-$version-quad
# compiling double precision library
./configure \
$config \
--enable-avx \
--enable-mpi \
--enable-sse2
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
make
make DESTDIR=$PKG install
make clean
# compiling long double precision library
./configure \
$config \
--enable-long-double \
--enable-mpi
make
make DESTDIR=$PKG install
make clean
# compiling quad precision library
./configure \
$config \
--enable-quad-precision
make
make DESTDIR=$PKG install
# clean up
rm -r $PKG/usr/share/info
rm $PKG/usr/lib/*.la
}