image.bbclass: Add support to build the SDK in parallel with the image
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.) (From OE-Core rev: a0de2a56f19ae4d8cd88e46e96917a7a019fe1ab) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
63c6f46b22
commit
b70c9154e4
|
@ -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"
|
||||
|
|
|
@ -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()])}"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue