Building Software from an External Source
Building Software from an External Source using Yocto Project / Openembedded
By default, the OpenEmbedded build system uses the Build Directory when building source code. The build process involves fetching the source files, unpacking them, and then patching them if necessary before the build takes place.
Situations exist where you might want to build software from source files that are external to and thus outside of the OpenEmbedded build system. For example, suppose you have a project that includes a new BSP with a heavily customized kernel. And, you want to minimize exposing the build system to the development team so that they can focus on their project and maintain everyone's workflow as much as possible. In this case, you want a kernel source directory on the development machine where the development occurs. You want the recipe's SRC_URI variable to point to the external directory and use it as is, not copy it.
To build from software that comes from an external source, all you need to do is inherit the externalsrc class and then set the EXTERNALSRC variable to point to your external source code. Here are the statements to put in your local.conf file:
INHERIT += "externalsrc" EXTERNALSRC_pn-myrecipe = "path-to-your-source-tree" # change only myrecipe with your name
Alternatively if it's more permanent, use the externalsrc class - you can inherit this in the original recipe or a bbappend:
inherit externalsrc EXTERNALSRC = "/path/to/sources"