]> code.ossystems Code Review - openembedded-core.git/commitdiff
image.bbclass: Add support to build the SDK in parallel with the image
authorMark Hatle <mark.hatle@windriver.com>
Sat, 23 Jun 2012 00:38:30 +0000 (19:38 -0500)
committerSaul Wold <sgw@linux.intel.com>
Tue, 3 Jul 2012 07:05:40 +0000 (00:05 -0700)
When building an image recipe, you can now build a companion SDK by
calling the populate_sdk task:
  bitbake -c populate_sdk core-image-minimal

Note: there are still issues w/ the SDK not working completely with
multilibs.

A lock is required between rootfs and populate_sdk activities to prevent
configuration file clashes and similar package management problems in ipk
and deb based systems.  (RPM already had a lock for a different reason.)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
meta/classes/image.bbclass
meta/classes/populate_sdk_base.bbclass
meta/classes/populate_sdk_deb.bbclass
meta/classes/populate_sdk_ipk.bbclass
meta/classes/rootfs_deb.bbclass
meta/classes/rootfs_ipk.bbclass

index 9fae1fe43f3f1da627ef55cbb652559b358817fc..24fd8680877a2166d0adf5e6a925166a15934ca8 100644 (file)
@@ -3,6 +3,11 @@ inherit rootfs_${IMAGE_PKGTYPE}
 IMAGETEST ?= "dummy"
 inherit imagetest-${IMAGETEST}
 
+inherit populate_sdk_base
+
+TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}"
+TOOLCHAIN_TARGET_TASK_ATTEMPTONLY += "${PACKAGE_INSTALL_ATTEMPTONLY} ${PACKAGE_GROUP_dev-pkgs} ${PACKAGE_GROUP_dbg-pkgs}"
+
 inherit gzipnative
 
 LICENSE = "MIT"
index 6dc66fbbbe935fcf9d2d1c96c226b6481503ab0b..ed2dca07809fb5e571d5e3b0d80251c54dab714b 100644 (file)
@@ -120,6 +120,7 @@ populate_sdk_log_check() {
        done
 }
 
+do_populate_sdk[dirs] = "${TOPDIR}"
 do_populate_sdk[nostamp] = "1"
 do_populate_sdk[depends] = "${@' '.join([x + ':do_populate_sysroot' for x in d.getVar('SDK_DEPENDS', True).split()])}"
 do_populate_sdk[rdepends] = "${@' '.join([x + ':do_populate_sysroot' for x in d.getVar('SDK_RDEPENDS', True).split()])}"
index c3b3e0cde12255c14b3dd8015a2d632abf8b4a15..9e9e1e1d8b53e459d85712e1afe713f226567a59 100644 (file)
@@ -6,6 +6,8 @@ DEB_SDK_ARCH = "${@[d.getVar('SDK_ARCH', True), "i386"]\
                 [d.getVar('SDK_ARCH', True) in \
                 ["x86", "i486", "i586", "i686", "pentium"]]}"
 
+do_populate_sdk[lockfiles] += "${WORKDIR}/deb.lock"
+
 populate_sdk_post_deb () {
 
        local target_rootfs=$1
index aa3efde20d4f4afeb9ecae829945c28d522759d7..4321afb2957899c3a0eb1a8864ed274e2010eef8 100644 (file)
@@ -1,6 +1,8 @@
 do_populate_sdk[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
 do_populate_sdk[recrdeptask] += "do_package_write_ipk"
 
+do_populate_sdk[lockfiles] += "${WORKDIR}/ipk.lock"
+
 populate_sdk_ipk() {
 
        rm -f ${IPKGCONF_TARGET}
index 6c9767f98ec47c8d8a381a263c9de9dbe48b4123..4ea71daedcbaaf540c095925bc787a23f05cd06c 100644 (file)
@@ -8,6 +8,8 @@ ROOTFS_PKGMANAGE_BOOTSTRAP  = "run-postinsts"
 do_rootfs[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot"
 do_rootfs[recrdeptask] += "do_package_write_deb"
 
+do_rootfs[lockfiles] += "${WORKDIR}/deb.lock"
+
 DEB_POSTPROCESS_COMMANDS = "rootfs_install_all_locales; "
 
 opkglibdir = "${localstatedir}/lib/opkg"
index 15800864a6c4208571a9a74a135281aae9dffc5a..9732385613fa22733132b2dc2f4e252862fb4213 100644 (file)
@@ -12,6 +12,8 @@ ROOTFS_PKGMANAGE_BOOTSTRAP  = "run-postinsts"
 do_rootfs[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
 do_rootfs[recrdeptask] += "do_package_write_ipk"
 
+do_rootfs[lockfiles] += "${WORKDIR}/ipk.lock"
+
 IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS} --force-overwrite"
 
 OPKG_PREPROCESS_COMMANDS = "package_update_index_ipk; package_generate_ipkg_conf"