Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Maintainer (lib32): Nocifer <apmichalopoulos at gmail dot com>
- # Maintainer: David Runge <dvzrv@archlinux.org>
- # Contributor: Ronald van Haren <ronald.archlinux.org>
- # Contributor: David Runge <dvzrv@archlinux.org>
- # Contributor: damir <damir@archlinux.org>
- # Contributor: Adam <adam900710@gmail.com>
- # Contributor: GordonGR <ntheo1979@gmail.com>
- # Contributor: josephgbr <rafael.f.f1@gmail.com>
- _pkgname=fftw
- pkgname=lib32-$_pkgname
- pkgver=3.3.10
- pkgrel=3
- pkgdesc='A library for computing the discrete Fourier transform (DFT) (32 bit)'
- arch=('x86_64')
- url='https://www.fftw.org'
- license=('GPL2')
- depends=("$_pkgname" 'lib32-gcc-libs')
- makedepends=('cmake' 'gcc-fortran')
- provides=('libfftw3q_threads.so' 'libfftw3q_omp.so' 'libfftw3q.so'
- 'libfftw3l_threads.so' 'libfftw3l_omp.so' 'libfftw3l.so'
- 'libfftw3f_threads.so' 'libfftw3f_omp.so' 'libfftw3f.so'
- 'libfftw3_threads.so' 'libfftw3_omp.so' 'libfftw3.so')
- source=("https://www.fftw.org/$_pkgname-$pkgver.tar.gz")
- sha256sums=('56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467')
- _build_types=(single double long-double quad)
- _configure=(
- cmake
- -S $_pkgname-$pkgver
- -G Ninja
- -D CMAKE_INSTALL_PREFIX=/usr
- -D CMAKE_BUILD_TYPE=Release
- -D ENABLE_OPENMP=ON
- -D ENABLE_THREADS=ON
- -D CMAKE_C_FLAGS='-m32'
- -D CMAKE_CXX_FLAGS='-m32'
- -D CMAKE_INSTALL_LIBDIR=lib32
- )
- _configure_single=(
- -D ENABLE_FLOAT=ON
- -D ENABLE_SSE=ON
- -D ENABLE_AVX=ON
- -D ENABLE_AVX2=ON
- )
- _configure_double=(
- -D ENABLE_SSE=ON
- -D ENABLE_SSE2=ON
- -D ENABLE_AVX=ON
- -D ENABLE_AVX2=ON
- )
- _configure_long_double=(
- -D ENABLE_LONG_DOUBLE=ON
- )
- _configure_quad=(
- -D ENABLE_QUAD_PRECISION=ON
- )
- prepare() {
- # fix wrong soname
- sed -e 's/3.6.9/3.6.10/' -i $_pkgname-$pkgver/CMakeLists.txt
- echo '
- if (ENABLE_QUAD_PRECISION)
- target_link_libraries (${fftw3_lib} quadmath)
- endif ()
- ' >> $_pkgname-$pkgver/CMakeLists.txt
- local _name
- for _name in "${_build_types[@]}"; do
- (
- case $_name in
- single)
- "${_configure[@]}" -B $_pkgname-$pkgver-$_name "${_configure_single[@]}"
- ;;
- double)
- "${_configure[@]}" -B $_pkgname-$pkgver-$_name "${_configure_double[@]}"
- ;;
- long-double)
- "${_configure[@]}" -B $_pkgname-$pkgver-$_name "${_configure_long_double[@]}"
- ;;
- quad)
- "${_configure[@]}" -B $_pkgname-$pkgver-$_name "${_configure_quad[@]}"
- ;;
- esac
- )
- done
- }
- build() {
- for _name in "${_build_types[@]}"; do
- ninja -C $_pkgname-$pkgver-$_name
- done
- }
- package() {
- local _name
- for _name in "${_build_types[@]}"; do
- env DESTDIR="$pkgdir" ninja install -C $_pkgname-$pkgver-$_name
- done
- rm -vrf "${pkgdir}/usr"/{bin,include,share}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement