db-move: moved seahorse from [testing] to [extra] (x86_64)
[arch-packages.git] / fftw / repos / extra-x86_64 / PKGBUILD
blobbb5c5b4aaa1e4654bf7d715e55bd713b329cc6e6
1 # Maintainer: David Runge <dvzrv@archlinux.org>
2 # Contributor: Ronald van Haren <ronald.archlinux.org>
3 # Contributor: David Runge <dvzrv@archlinux.org>
4 # Contributor: damir <damir@archlinux.org>
6 pkgname=fftw
7 pkgver=3.3.10
8 pkgrel=4
9 pkgdesc="A library for computing the discrete Fourier transform (DFT)"
10 arch=(x86_64)
11 url="http://www.fftw.org/"
12 license=(GPL2)
13 depends=(
14   bash
15   gcc-libs
16   glibc
17   openmpi
19 makedepends=(
20   cmake
21   gcc-fortran
23 provides=(
24   libfftw3q_threads.so
25   libfftw3q_omp.so
26   libfftw3q.so
27   libfftw3l_threads.so
28   libfftw3l_omp.so
29   libfftw3l_mpi.so
30   libfftw3l.so
31   libfftw3f_threads.so
32   libfftw3f_omp.so
33   libfftw3f_mpi.so
34   libfftw3f.so
35   libfftw3_threads.so
36   libfftw3_omp.so
37   libfftw3_mpi.so
38   libfftw3.so
40 source=(http://www.fftw.org/$pkgname-$pkgver.tar.gz)
41 sha512sums=('2d34b5ccac7b08740dbdacc6ebe451d8a34cf9d9bfec85a5e776e87adf94abfd803c222412d8e10fbaa4ed46f504aa87180396af1b108666cde4314a55610b40')
42 b2sums=('3663872bd95a01d2c79af185f53918e1d1a9c91c620082402772c07f25b9b77d4920a78dc686fac6b51aa961b8d62b7e2cef3f3031e096bed40ced80b59b29d5')
43 _build_types=(single double long-double quad)
45 prepare() {
46   local _i
48   # fix wrong soname in FFTW3LibraryDepends.cmake
49   sed -e 's/3.6.9/3.6.10/' -i $pkgname-$pkgver/CMakeLists.txt
51   mv -v $pkgname-$pkgver $pkgname-$pkgver-single
52   for _i in {1..3}; do
53     cp -av $pkgname-$pkgver-single $pkgname-$pkgver-"${_build_types[$_i]}"
54   done
57 build() {
58   local _name
59   local _configure=(
60     ./configure
61     --prefix=/usr
62     --enable-shared
63     --enable-threads
64     --enable-mpi
65     --enable-openmp
66   )
67   local _configure_single=(
68     --enable-sse
69     --enable-avx
70     --enable-single
71   )
72   local _configure_double=(
73     --enable-sse2
74     --enable-avx
75   )
76   local _configure_long_double=(
77     --enable-long-double
78   )
79   local _configure_quad=(
80     --disable-mpi
81     --enable-quad-precision
82   )
83   local _cmake_options=(
84     -B build
85     -S $pkgname-$pkgver-$_build_types
86     -D CMAKE_INSTALL_PREFIX=/usr
87     -D CMAKE_BUILD_TYPE=None
88     -D ENABLE_OPENMP=ON
89     -D ENABLE_THREADS=ON
90     -D ENABLE_FLOAT=ON
91     -D ENABLE_LONG_DOUBLE=ON
92     -D ENABLE_QUAD_PRECISION=ON
93     -D ENABLE_SSE=ON
94     -D ENABLE_SSE2=ON
95     -D ENABLE_AVX=ON
96     -D ENABLE_AVX2=ON
97   )
99   # create missing FFTW3LibraryDepends.cmake
100   # https://bugs.archlinux.org/task/67604
101   cmake "${_cmake_options[@]}"
102   # fix broken IMPORTED_LOCATION: https://github.com/FFTW/fftw3/issues/130#issuecomment-1030280157
103   sed -e 's|\(IMPORTED_LOCATION_NONE\).*|\1 "/usr/lib/libfftw3.so.3"|' -i build/FFTW3LibraryDepends.cmake
105   export F77='gfortran'
106   # use upstream default CFLAGS while keeping our -march/-mtune
107   CFLAGS+=" -O3 -fomit-frame-pointer -malign-double -fstrict-aliasing -ffast-math"
109   for _name in "${_build_types[@]}"; do
110     (
111       cd $pkgname-$pkgver-$_name
112       case $_name in
113         single)
114         "${_configure[@]}" "${_configure_single[@]}"
115         ;;
116         double)
117         "${_configure[@]}" "${_configure_double[@]}"
118         ;;
119         long-double)
120         "${_configure[@]}" "${_configure_long_double[@]}"
121         ;;
122         quad)
123         "${_configure[@]}" "${_configure_quad[@]}"
124         ;;
125       esac
126       # fix overlinking because of libtool
127       sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
128     )
129   done
131   for _name in "${_build_types[@]}"; do
132     make -C $pkgname-$pkgver-$_name
133   done
136 check() {
137   local _name
139   for _name in "${_build_types[@]}"; do
140     make check-local -C $pkgname-$pkgver-$_name/tests
141   done
144 package() {
145   local _name
147   for _name in "${_build_types[@]}"; do
148     make DESTDIR="$pkgdir" install -C $pkgname-$pkgver-$_name
149   done
150   install -vDm 644 $pkgname-$pkgver-$_build_types/{AUTHORS,ChangeLog,NEWS,README,TODO} -t "$pkgdir/usr/share/doc/$pkgname"
151   # install missing FFTW3LibraryDepends.cmake
152   install -vDm 644 build/FFTW3LibraryDepends.cmake -t "$pkgdir/usr/lib/cmake/fftw3/"