[oe] [PATCH 1/2] fftw: build all configurations by one recipe

Andreas Müller schnitzeltony at googlemail.com
Sun Sep 18 00:47:25 UTC 2016


* avoids conflicts installing same files into sysroot
* for packages requiring a specific version of fftw: simply add fftw to DEPENDS
* no need for some distro decision - recipes depndong on fftw take what they
  need
* each executable is packed into an own package to avoid dragging in all
  libraries

Signed-off-by: Andreas Müller <schnitzeltony at googlemail.com>
---
 meta-oe/recipes-support/fftw/fftw.inc       | 25 ------------
 meta-oe/recipes-support/fftw/fftw_3.3.4.bb  | 62 ++++++++++++++++++++++++++++-
 meta-oe/recipes-support/fftw/fftwf_3.3.4.bb | 11 -----
 meta-oe/recipes-support/fftw/fftwl_3.3.4.bb |  9 -----
 4 files changed, 61 insertions(+), 46 deletions(-)
 delete mode 100644 meta-oe/recipes-support/fftw/fftw.inc
 delete mode 100644 meta-oe/recipes-support/fftw/fftwf_3.3.4.bb
 delete mode 100644 meta-oe/recipes-support/fftw/fftwl_3.3.4.bb

diff --git a/meta-oe/recipes-support/fftw/fftw.inc b/meta-oe/recipes-support/fftw/fftw.inc
deleted file mode 100644
index a0adf59..0000000
--- a/meta-oe/recipes-support/fftw/fftw.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "FFTW"
-SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-PROVIDES = "virtual/fftw"
-
-RPROVIDES_${PN} += "libfftw3"
-
-SRC_URI = "http://www.fftw.org/fftw-${PV}.tar.gz"
-
-S = "${WORKDIR}/fftw-${PV}"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
-
-do_configure_prepend() {
-    echo 'AM_PROG_AS' >> ${S}/configure.ac
-}
-
-PACKAGES =+ "lib${BPN}"
-FILES_lib${BPN} = "${libdir}/lib*.so.*"
-
-# rename binary in /bin and use u-a tpo choose between different precision implementations?
diff --git a/meta-oe/recipes-support/fftw/fftw_3.3.4.bb b/meta-oe/recipes-support/fftw/fftw_3.3.4.bb
index 990f01e..cbcd1b9 100644
--- a/meta-oe/recipes-support/fftw/fftw_3.3.4.bb
+++ b/meta-oe/recipes-support/fftw/fftw_3.3.4.bb
@@ -1,6 +1,66 @@
-require fftw.inc
+DESCRIPTION = "FFTW"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
 
+SRC_URI = "http://www.fftw.org/fftw-${PV}.tar.gz"
 SRC_URI[md5sum] = "2edab8c06b24feeb3b82bbb3ebf3e7b3"
 SRC_URI[sha256sum] = "8f0cde90929bc05587c3368d2f15cd0530a60b8a9912a8e2979a72dbe5af0982"
 
+inherit autotools pkgconfig
+
+# we had multiple recipes in the past
+PROVIDES = "fftwl fftwf"
+
+EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
+
+do_configure() {
+    # configure fftw
+	mkdir -p ${B}
+    cd ${B}
+    # full (re)configure
+    autotools_do_configure
+    mv ${B} ${WORKDIR}/build-fftw
+
+    # configure fftwl
+	mkdir -p ${B}
+    cd ${B}
+    # configure only
+    oe_runconf  --enable-long-double
+    mv ${B} ${WORKDIR}/build-fftwl 
+
+    # configure fftwf
+	mkdir -p ${B}
+    cd ${B}
+    # configure only
+    oe_runconf --enable-single ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}
+    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
+}
+
+
+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"
+
 BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/fftw/fftwf_3.3.4.bb b/meta-oe/recipes-support/fftw/fftwf_3.3.4.bb
deleted file mode 100644
index 4a65986..0000000
--- a/meta-oe/recipes-support/fftw/fftwf_3.3.4.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require fftw.inc
-
-# conflicts with fftw and fftwl
-EXCLUDE_FROM_WORLD = "1"
-
-EXTRA_OECONF += "--enable-single \
-    ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)} \
-"
-
-SRC_URI[md5sum] = "2edab8c06b24feeb3b82bbb3ebf3e7b3"
-SRC_URI[sha256sum] = "8f0cde90929bc05587c3368d2f15cd0530a60b8a9912a8e2979a72dbe5af0982"
diff --git a/meta-oe/recipes-support/fftw/fftwl_3.3.4.bb b/meta-oe/recipes-support/fftw/fftwl_3.3.4.bb
deleted file mode 100644
index 432ff12..0000000
--- a/meta-oe/recipes-support/fftw/fftwl_3.3.4.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require fftw.inc
-
-# conflicts with fftw and fftwf
-EXCLUDE_FROM_WORLD = "1"
-
-EXTRA_OECONF += "--enable-long-double"
-
-SRC_URI[md5sum] = "2edab8c06b24feeb3b82bbb3ebf3e7b3"
-SRC_URI[sha256sum] = "8f0cde90929bc05587c3368d2f15cd0530a60b8a9912a8e2979a72dbe5af0982"
-- 
2.5.5



More information about the Openembedded-devel mailing list