mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-16 04:17:25 +00:00
f274fb5880
* The bench program is installed then moved into the ptest ares so it links. Since we are building for all precisions, we need to build three versions of the bench program. Signed-off-by: Philip Balister <philip@opensdr.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
104 lines
2.9 KiB
BlitzBasic
104 lines
2.9 KiB
BlitzBasic
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[md5sum] = "8aac833c943d8e90d51b697b27d4384d"
|
|
SRC_URI[sha256sum] = "6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303"
|
|
|
|
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"
|