Hello, we are using for some time an 'emit-buildvars' class which exports bitbake variables into makefile fragments. This class is used for for developing of kernel, u-boot and other low level software and for generic packaging.
The class supports exporting images over userspace NFS and is available at https://github.com/sigma-embedded/meta-de.sigma-chemnitz/blob/sumo/classes/elito-emit-buildvars.bbclass https://github.com/sigma-embedded/meta-de.sigma-chemnitz/tree/sumo/scripts/buildvars https://github.com/sigma-embedded/meta-de.sigma-chemnitz/blob/sumo/classes/elito-nfs-export.bbclass It is much faster than 'devshell' and can be used in a scripted environment. A complete SDK is far too heavy weight for our tasks and not flexible enough. Is there common interest in such a functionality? If so, I would split it out from our layer and submit it for core. A more detailed description: The generated makefile fragment contains information about the per-package sysroot and can be used to set e.g. $PATH. The system requires a small Makefile to instantiate these variables; e.g. for common cases something like ---- workspace/Makefile.common --- | # --*- makefile -*-- | WORKSPACE_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) | DEPLOY_DIR ?= ${WORKSPACE_DIR}/../build/tmp/deploy | MACHINE ?= imx8m-var-dart | | _BUILDVAR_STYLE ?= _generic_ | include ${DEPLOY_DIR}/buildvars/${MACHINE}/$R.mk | | %: | ${MAKE} $@ is enough. For kernel development, the makefile contains some more information about the image which is going to be exported over NFS. ---- workspace/Makefile.kernel --- | # --*- makefile -*-- | WORKSPACE_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) | DEPLOY_DIR ?= ${WORKSPACE_DIR}/../build/tmp/deploy | MACHINE ?= imx8m-var-dart | | _BUILDVAR_STYLE := kernel | IMAGE_RECIPE = camtest-image | | HAVE_NFSROOT=1 | include ${WORKSPACE_DIR}/../sources/de.sigma-chemnitz.core/mk/nfs-opt.mk | include ${DEPLOY_DIR}/buildvars/${MACHINE}/linux-mainline.mk Now, generate the '.mk' fragments either manually: | $ bitbake busybox -c emit_buildvars or enable it within the recipe (recommended when working on it) | BUILDVARS_EMIT = "true" and build the package. When you try to fix something in 'busybox', extract the sources somewhere (e.g. in workspace/) and call | make -f ../Makefile.common R=busybox all to build it. Else, see the class for more details. Enrico -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core