diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.9.bb')
-rw-r--r-- | meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.9.bb | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.9.bb b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.9.bb new file mode 100644 index 000000000..9979c21b8 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.9.bb @@ -0,0 +1,102 @@ +DESCRIPTION = "FFTW" +SECTION = "libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +SRC_URI = " \ + http://www.fftw.org/fftw-${PV}.tar.gz \ + file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \ + file://install-bench.patch \ + file://run-ptest \ +" +SRC_URI[sha256sum] = "bf2c7ce40b04ae811af714deb512510cc2c17b9ab9d6ddcf49fe4487eea7af3d" + +inherit autotools pkgconfig ptest + +# we had multiple recipes in the past +PROVIDES = "fftwl fftwf" + +EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads" + +CFLAGS += "-D_GNU_SOURCE" + +# neon is optional for arm version < 8 -> check tune features +FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}" +# neon is suppored for arm version = 8 -> enable +FFTW_NEON_aarch64 = "--enable-neon" +FFTW_NEON_class-native = "" + +do_configure() { + # configure fftw + rm -rf ${WORKDIR}/build-fftw + mkdir -p ${B} + cd ${B} + # full (re)configure + autotools_do_configure + mv ${B} ${WORKDIR}/build-fftw + + # configure fftwl + rm -rf ${WORKDIR}/build-fftwl + mkdir -p ${B} + cd ${B} + # configure only + oe_runconf --enable-long-double + mv ${B} ${WORKDIR}/build-fftwl + + # configure fftwf + rm -rf ${WORKDIR}/build-fftwf + mkdir -p ${B} + cd ${B} + # configure only + oe_runconf --enable-single ${FFTW_NEON} + mv ${B} ${WORKDIR}/build-fftwf +} + +do_compile() { + for lib in fftw fftwl fftwf; do + cd ${WORKDIR}/build-$lib + autotools_do_compile + done +} + +do_install() { + for lib in fftw fftwl fftwf; do + cd ${WORKDIR}/build-$lib + autotools_do_install + done +} + +do_install_ptest() { + for lib in fftw fftwl fftwf; do + install -d ${D}${PTEST_PATH}/$lib + install -m 0755 ${S}/tests/check.pl ${D}${PTEST_PATH}/$lib + cd ${WORKDIR}/build-$lib + if [ $lib = "fftw" ]; then + mv ${D}${bindir}/bench ${D}${PTEST_PATH}/$lib + fi + if [ $lib = "fftwl" ]; then + mv ${D}${bindir}/benchl ${D}${PTEST_PATH}/$lib + fi + if [ $lib = "fftwf" ]; then + mv ${D}${bindir}/benchf ${D}${PTEST_PATH}/$lib + fi + done +} + +PACKAGES =+ "libfftw libfftwl libfftwf" +FILES_libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*" +FILES_libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*" +FILES_libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*" + +PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf" +FILES_fftw-wisdom = "${bindir}/fftw-wisdom" +FILES_fftwl-wisdom = "${bindir}/fftwl-wisdom" +FILES_fftwf-wisdom = "${bindir}/fftwf-wisdom" +FILES_fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf" + +FILES_${PN}-dev += "${libdir}/cmake" +RDEPENDS_${PN}-dev = "libfftw libfftwl libfftwf" +RDEPENDS_${PN}-ptest += "perl" +RDEPENDS_${PN}-ptest_remove = "fftw" + +BBCLASSEXTEND = "native" |