Merge pull request #9699 from MehdiChinoune/fftw-avx

fftw: enable avx-128-fma/avx2/avx512
This commit is contained in:
Christoph Reiter
2021-10-04 08:18:40 +03:00
committed by GitHub

View File

@@ -5,13 +5,15 @@ pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
_pkgver=3.3.10
pkgver=${_pkgver//-/.}
pkgrel=1
pkgrel=2
pkgdesc="A library for computing the discrete Fourier transform (DFT) (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
url="https://www.fftw.org/"
license=("GPL")
makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config")
makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config"
$( [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || \
echo "${MINGW_PACKAGE_PREFIX}-gcc-fortran"))
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs")
options=('staticlibs' 'strip')
source=("https://www.fftw.org/${_realname}-${_pkgver}.tar.gz")
@@ -21,26 +23,34 @@ precision="double float long_double \
$( [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "quad" )"
build() {
cd "${srcdir}/${_realname}-${_pkgver}"
# clang complains when trying to use an sse2 intrinsic if sse2 is not enabled
if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-i686* ]]; then
CFLAGS+=" -msse2"
fi
for cur in ${precision}; do
local _config="--enable-sse2 --enable-avx"
[[ -d ${srcdir}/${MSYSTEM}-${cur} ]] && rm -rf ${srcdir}/${MSYSTEM}-${cur}
mkdir -p ${srcdir}/${MSYSTEM}-${cur} && cd ${srcdir}/${MSYSTEM}-${cur}
msg "Building ${_realname} with ${cur} ..."
local -a _config=""
if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-aarch64* ]]; then
_config+="--enable-sse2 --enable-avx --enable-avx-128-fma --enable-avx2"
fi
if [ $CARCH = x86_64 ]; then
_config+=" --enable-avx512"
fi
if [ "${cur}" = "float" ]; then
_config="${_config} --enable-float"
_config+=" --enable-float"
elif [ "${cur}" = "long_double" ]; then
_config="--enable-long-double"
elif [ "${cur}" = "quad" ]; then
_config="--enable-quad-precision"
fi
[[ -d ${MINGW_CHOST}-${cur} ]] && rm -rf ${MINGW_CHOST}-${cur}
mkdir -p ${MINGW_CHOST}-${cur}
pushd ${MINGW_CHOST}-${cur} > /dev/null
msg "Building ${_realname} with ${cur} ..."
../configure \
../${_realname}-${_pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
@@ -52,19 +62,14 @@ build() {
--with-our-malloc \
--with-g77-wrappers \
--with-windows-f77-mangling
make
popd > /dev/null
done
}
package() {
cd "${srcdir}/${_realname}-${_pkgver}"
for cur in ${precision}; do
pushd ${MINGW_CHOST}-${cur} > /dev/null
msg "Instaling ${_realname} with ${cur} ..."
make DESTDIR="${pkgdir}" install
popd > /dev/null
msg "Installing ${_realname} with ${cur} ..."
make DESTDIR="${pkgdir}" install -C ${srcdir}/${MSYSTEM}-${cur}
done
}