Advertisement
Guest User

lib32-fftw cmake

a guest
Feb 5th, 2022
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.78 KB | None | 0 0
  1. # Maintainer (lib32): Nocifer <apmichalopoulos at gmail dot com>
  2. # Maintainer: David Runge <dvzrv@archlinux.org>
  3. # Contributor: Ronald van Haren <ronald.archlinux.org>
  4. # Contributor: David Runge <dvzrv@archlinux.org>
  5. # Contributor: damir <damir@archlinux.org>
  6. # Contributor: Adam <adam900710@gmail.com>
  7. # Contributor: GordonGR <ntheo1979@gmail.com>
  8. # Contributor: josephgbr <rafael.f.f1@gmail.com>
  9.  
  10. _pkgname=fftw
  11. pkgname=lib32-$_pkgname
  12. pkgver=3.3.10
  13. pkgrel=3
  14. pkgdesc='A library for computing the discrete Fourier transform (DFT) (32 bit)'
  15. arch=('x86_64')
  16. url='https://www.fftw.org'
  17. license=('GPL2')
  18. depends=("$_pkgname" 'lib32-gcc-libs')
  19. makedepends=('cmake' 'gcc-fortran')
  20. provides=('libfftw3q_threads.so' 'libfftw3q_omp.so' 'libfftw3q.so'
  21.           'libfftw3l_threads.so' 'libfftw3l_omp.so' 'libfftw3l.so'
  22.           'libfftw3f_threads.so' 'libfftw3f_omp.so' 'libfftw3f.so'
  23.           'libfftw3_threads.so' 'libfftw3_omp.so' 'libfftw3.so')
  24. source=("https://www.fftw.org/$_pkgname-$pkgver.tar.gz")
  25. sha256sums=('56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467')
  26.  
  27. _build_types=(single double long-double quad)
  28.  
  29. _configure=(
  30.   cmake
  31.   -S $_pkgname-$pkgver
  32.   -G Ninja
  33.   -D CMAKE_INSTALL_PREFIX=/usr
  34.   -D CMAKE_BUILD_TYPE=Release
  35.   -D ENABLE_OPENMP=ON
  36.   -D ENABLE_THREADS=ON
  37.   -D CMAKE_C_FLAGS='-m32'
  38.   -D CMAKE_CXX_FLAGS='-m32'
  39.   -D CMAKE_INSTALL_LIBDIR=lib32
  40. )
  41. _configure_single=(
  42.   -D ENABLE_FLOAT=ON
  43.   -D ENABLE_SSE=ON
  44.   -D ENABLE_AVX=ON
  45.   -D ENABLE_AVX2=ON
  46. )
  47. _configure_double=(
  48.   -D ENABLE_SSE=ON
  49.   -D ENABLE_SSE2=ON
  50.   -D ENABLE_AVX=ON
  51.   -D ENABLE_AVX2=ON
  52. )
  53. _configure_long_double=(
  54.   -D ENABLE_LONG_DOUBLE=ON
  55. )
  56. _configure_quad=(
  57.   -D ENABLE_QUAD_PRECISION=ON
  58. )
  59.  
  60. prepare() {
  61.   # fix wrong soname
  62.   sed -e 's/3.6.9/3.6.10/' -i $_pkgname-$pkgver/CMakeLists.txt
  63.   echo '
  64. if (ENABLE_QUAD_PRECISION)
  65.  target_link_libraries (${fftw3_lib} quadmath)
  66. endif ()
  67.  ' >> $_pkgname-$pkgver/CMakeLists.txt
  68.   local _name
  69.   for _name in "${_build_types[@]}"; do
  70.     (
  71.       case $_name in
  72.         single)
  73.         "${_configure[@]}" -B $_pkgname-$pkgver-$_name "${_configure_single[@]}"
  74.         ;;
  75.         double)
  76.         "${_configure[@]}" -B $_pkgname-$pkgver-$_name "${_configure_double[@]}"
  77.         ;;
  78.         long-double)
  79.         "${_configure[@]}" -B $_pkgname-$pkgver-$_name "${_configure_long_double[@]}"
  80.         ;;
  81.         quad)
  82.         "${_configure[@]}" -B $_pkgname-$pkgver-$_name "${_configure_quad[@]}"
  83.         ;;
  84.       esac
  85.     )
  86.   done
  87. }
  88.  
  89. build() {
  90.   for _name in "${_build_types[@]}"; do
  91.     ninja -C $_pkgname-$pkgver-$_name
  92.   done
  93. }
  94.  
  95. package() {
  96.   local _name
  97.   for _name in "${_build_types[@]}"; do
  98.     env DESTDIR="$pkgdir" ninja install -C $_pkgname-$pkgver-$_name
  99.   done
  100.   rm -vrf "${pkgdir}/usr"/{bin,include,share}
  101. }
  102.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement