Prebuilt software development in OE way
2020-10-30 , Intermediate Room

Develop a mechanism to reuse same recipe to support source build and proprietary blobs installation with prebuilt libs when sources are not available.


Develop a OE 'bbclass' for prebuilt management (prebuilt.bblcass), which allows generation and restoration of a tarball out of ${D} directory.

To use prebuilt mechanism, a recipe simply needs to inherit the 'prebuilt' class:
inherit prebuilt

On full source build, this recipe will automatically generate a prebuilt under deploy/:
e.g. deploy/prebuilts/aarch64/vim_8.0.0983_prebuilt_aarch64.tar.gz

To use above generated prebuilt tarball instead of fetching the (unavailable private) sources, set the PREBUILT_SRC_DIR variable, pointing to the provided prebuilts (e.g. in conf/local.conf).
PREBUILT_SRC_DIR = "/home/oe-prebuilts/"

Then for each recipe inheriting 'prebuilt' class, the prebuilt package will be installed (if available), disabling usual fetch, compile, install... tasks.

See also:

Embedded Linux developer at Qualcomm.