2.4 KiB
Build process - Tasks
This describes all tasks that are executed when building a recipe or distribution.
do_package_write_<pkgtype>
For all packages selected with PACKAGE_CLASSES
, packages are downloaded into DL_DIR
Default: poky/build/tmp/deploy/<pkgtype>/<arch>/
- pkgtype: rpm, ipk, deb
- arch: genericx86, ...
Those packages can also be built from sources with the folowing commands.
do_fetch
& do_unpack
Downloads and extracts the package sources.
poky/build/tmp/work/
└── <PACKAGE_ARCH>-poky-linux or <MACHINE>-poky-linux
└── <PACKAGE_NAME>
└── <RECIPE_VERSION>-<RECIPE_REVISION> : The package is built from here
└── <PACKAGE_NAME>-<RECIPE_VERSION> : Package sources
do_patch
Apply some yocto-related patches to package source
The patches are listed in SRC_URI
in the recipe file
do_configure
, do_compile
, do_install
In most cases:
do_configure
:./configure
do_compile
:make
do_install
:make install
The work directory is:
poky/build/tmp/work/
└── <PACKAGE_ARCH>-poky-linux or <MACHINE>-poky-linux
└── <PACKAGE_NAME>
└── <RECIPE_VERSION>-<RECIPE_REVISION>
From the work directory:
<PACKAGE_NAME>-<RECIPE_VERSION>
: Built filesimage
: installed files (eg./configure --prefix
)
do_package
& do_packagedata
do_package
analyses the image
dir:
- splits out debugging symbols
- checks shared library dependencies
- looks at package relationships
do_packagedata
creates the package metadata file.
From working dir:
package
: The destination directory for packages before they are splitpkgdata
: A temporary work area used by the do_package taskpackages-split
: The parent directory for packages after they have been split
These folders are used by do_package_write_*
and generated packages are put into the package feed area (poky/build/tmp/deploy/<pkgtype>/a<rch>/
)
do_rootfs
Unpacks the packages from the package feed area (poky/build/tmp/deploy/<pkgtype>/<arch>/
) to build the root filesystem, depending on the configuration :
IMAGE_INSTALL
: Which base package to installPACKAGE_EXCLUDE
: Which packages to not installIMAGE_FEATURES
: Which features to install. Features maps to specific packages to be installed.PACKAGE_CLASSES
: Package type to use (deb, ipk, tar, ...)IMAGE_LINGUAS
: Languages to install