fftw_3.3.8.bb 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. DESCRIPTION = "FFTW"
  2. SECTION = "libs"
  3. LICENSE = "GPLv2"
  4. LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
  5. SRC_URI = " \
  6. http://www.fftw.org/fftw-${PV}.tar.gz \
  7. file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
  8. "
  9. SRC_URI[md5sum] = "8aac833c943d8e90d51b697b27d4384d"
  10. SRC_URI[sha256sum] = "6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303"
  11. inherit autotools pkgconfig
  12. # we had multiple recipes in the past
  13. PROVIDES = "fftwl fftwf"
  14. EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
  15. CFLAGS += "-D_GNU_SOURCE"
  16. # neon is optional for arm version < 8 -> check tune features
  17. FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}"
  18. # neon is suppored for arm version = 8 -> enable
  19. FFTW_NEON_aarch64 = "--enable-neon"
  20. FFTW_NEON_class-native = ""
  21. do_configure() {
  22. # configure fftw
  23. rm -rf ${WORKDIR}/build-fftw
  24. mkdir -p ${B}
  25. cd ${B}
  26. # full (re)configure
  27. autotools_do_configure
  28. mv ${B} ${WORKDIR}/build-fftw
  29. # configure fftwl
  30. rm -rf ${WORKDIR}/build-fftwl
  31. mkdir -p ${B}
  32. cd ${B}
  33. # configure only
  34. oe_runconf --enable-long-double
  35. mv ${B} ${WORKDIR}/build-fftwl
  36. # configure fftwf
  37. rm -rf ${WORKDIR}/build-fftwf
  38. mkdir -p ${B}
  39. cd ${B}
  40. # configure only
  41. oe_runconf --enable-single ${FFTW_NEON}
  42. mv ${B} ${WORKDIR}/build-fftwf
  43. }
  44. do_compile() {
  45. for lib in fftw fftwl fftwf; do
  46. cd ${WORKDIR}/build-$lib
  47. autotools_do_compile
  48. done
  49. }
  50. do_install() {
  51. for lib in fftw fftwl fftwf; do
  52. cd ${WORKDIR}/build-$lib
  53. autotools_do_install
  54. done
  55. }
  56. PACKAGES =+ "libfftw libfftwl libfftwf"
  57. FILES_libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*"
  58. FILES_libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*"
  59. FILES_libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*"
  60. PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf"
  61. FILES_fftw-wisdom = "${bindir}/fftw-wisdom"
  62. FILES_fftwl-wisdom = "${bindir}/fftwl-wisdom"
  63. FILES_fftwf-wisdom = "${bindir}/fftwf-wisdom"
  64. FILES_fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf"
  65. FILES_${PN}-dev += "${libdir}/cmake"
  66. RDEPENDS_${PN}-dev = "libfftw libfftwl libfftwf"
  67. BBCLASSEXTEND = "native"