Files
poky/documentation/dev-manual/temporary-source-code.rst
Antonin Godard 8c85aee61c dev-manual/temporary-source-code.rst: fix definition of WORKDIR
Fix the definition of WORKDIR to match OE-Core.
Rename the Source Directory to "project" as part of the transition to
bitbake-setup and the removal of Poky as in "the Poky repository".

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: c1db422b9cba0bc475295bf1c2d72bcb2a6beed9)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 9cb0e8a94590563491e210b403519ccfbde866e9)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:41:30 +00:00

61 lines
2.0 KiB
ReStructuredText

.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Finding Temporary Source Code
*****************************
You might find it helpful during development to modify the temporary
source code used by recipes to build packages. For example, suppose you
are developing a patch and you need to experiment a bit to figure out
your solution. After you have initially built the package, you can
iteratively tweak the source code, which is located in the
:term:`Build Directory`, and then you can force a re-compile and quickly
test your altered code. Once you settle on a solution, you can then preserve
your changes in the form of patches.
During a build, the unpacked temporary source code used by recipes to
build packages is available in the :term:`Build Directory` as defined by the
:term:`S` variable. Below is the default value for the :term:`S` variable as
defined in the ``meta/conf/bitbake.conf`` configuration file in the
:term:`Source Directory`::
S = "${WORKDIR}/${BP}"
You should be aware that many recipes override the
:term:`S` variable. For example, recipes that fetch their source from Git
usually set :term:`S` to ``${WORKDIR}/git``.
.. note::
The :term:`BP` represents the base recipe name, which consists of the name
and version::
BP = "${BPN}-${PV}"
The path to the work directory for the recipe
(:term:`WORKDIR`) is defined as
follows::
${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}
The actual directory depends on several things:
- :term:`BASE_WORKDIR`: The top-level build
output directory.
- :term:`MULTIMACH_TARGET_SYS`:
The target system identifier.
- :term:`PN`: The recipe name.
- :term:`PV`: The recipe version.
As an example, assume a Source Directory top-level folder named
``project``, a default :term:`Build Directory` at ``project/build``, and a
``qemux86-poky-linux`` machine target system. Furthermore, suppose your
recipe is named ``foo_1.3.0.bb``. In this case, the work directory the
build system uses to build the package would be as follows::
project/build/tmp/work/qemux86-poky-linux/foo/1.3.0